Control API reference
Source: docs/04-api/control-api/openapi.yaml
Download OpenAPI 3.1 · Authentication, errors, pagination and versioning
Security
{
"security": [
{
"bearerAuth": []
}
],
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
}
}
}- GET /v1/workspaces/{ws}/products/{prod}/environments/{env}/egress
- GET /v1/workspaces/{ws}/products/{prod}/variables
- PUT /v1/workspaces/{ws}/products/{prod}/variables/{name}
- DELETE /v1/workspaces/{ws}/products/{prod}/variables/{name}
- GET /v1/workspaces/{ws}/products/{prod}/environments/{env}/variables
- PUT /v1/workspaces/{ws}/products/{prod}/environments/{env}/variables/{name}
- DELETE /v1/workspaces/{ws}/products/{prod}/environments/{env}/variables/{name}
- GET /v1/workspaces/{ws}/apps/{app}/variables
- PUT /v1/workspaces/{ws}/apps/{app}/variables/{name}
- DELETE /v1/workspaces/{ws}/apps/{app}/variables/{name}
- GET /v1/workspaces/{ws}/apps/{app}/environments/{env}/variables
- PUT /v1/workspaces/{ws}/apps/{app}/environments/{env}/variables/{name}
- DELETE /v1/workspaces/{ws}/apps/{app}/environments/{env}/variables/{name}
- GET /v1/workspaces/{ws}/members
- PATCH /v1/workspaces/{ws}/members/{usr}
- DELETE /v1/workspaces/{ws}/members/{usr}
- GET /v1/workspaces/{ws}/invitations
- POST /v1/workspaces/{ws}/invitations
- DELETE /v1/workspaces/{ws}/invitations/{minv}
- GET /v1/accounts/me/invitations
- POST /v1/accounts/me/invitations/{minv}/accept
- GET /v1/workspaces/{ws}/pending-operations
- POST /v1/workspaces/{ws}/pending-operations/{pend}/approve
- POST /v1/workspaces/{ws}/pending-operations/{pend}/reject
- GET /v1/workspaces/{ws}/products/{prod}/schedules
- GET /v1/workspaces/{ws}/products/{prod}/schedule-runs
- POST /v1/workspaces/{ws}/products/{prod}/inbound-webhooks
- GET /v1/workspaces/{ws}/products/{prod}/inbound-webhooks
- DELETE /v1/workspaces/{ws}/products/{prod}/inbound-webhooks/{trg}
- GET /v1/workspaces/{ws}/products/{prod}/inbound-webhook-deliveries
- POST /v1/workspaces/{ws}/inbound-webhooks/{trg}
- POST /v1/workspaces/{ws}/products/{prod}/auto-deploy
- GET /v1/workspaces/{ws}/products/{prod}/auto-deploy
- DELETE /v1/workspaces/{ws}/products/{prod}/auto-deploy
- POST /v1/workspaces/{ws}/products/{prod}/auto-deploy:github-app
- POST /v1/github/app-webhook
- GET /v1/workspaces/{ws}/products/{prod}/auto-deploy/deliveries
- POST /v1/workspaces/{ws}/auto-deploy/{hook}/github
- GET /v1/workspaces/{ws}/mainline-runs
- POST /v1/workspaces/{ws}/mainline-runs
- GET /v1/workspaces/{ws}/mainline-runs/{mrun}
- POST /v1/workspaces/{ws}/mainline-runs/{mrun}/continue
- POST /v1/workspaces/{ws}/mainline-runs/{mrun}/cancel
- POST /v1/workspaces/{ws}/products/{prod}/closure
- DELETE /v1/workspaces/{ws}/products/{prod}/closure
- POST /v1/workspaces/{ws}/closure
- DELETE /v1/workspaces/{ws}/closure
- POST /v1/accounts/me/closure
- DELETE /v1/accounts/me/closure
- POST /v1/accounts/me/developer
- GET /v1/workspaces/{ws}/audit-records
- GET /v1/workspaces/{ws}/audit-records/{aud}
- GET /v1/workspaces/{ws}/correlations/{evt}/events
- GET /v1/workspaces/{ws}/domains
- POST /v1/workspaces/{ws}/domains
- GET /v1/workspaces/{ws}/domains/{dom}
- DELETE /v1/workspaces/{ws}/domains/{dom}
- POST /v1/workspaces/{ws}/domains/{dom}/verify
- GET /v1/workspaces/{ws}/notifications
- GET /v1/workspaces/{ws}/outbox/dead-letters
- GET /v1/workspaces
- POST /v1/workspaces
- GET /v1/capabilities
- GET /v1/workspaces/{ws}/capability-invocations
- GET /v1/workspaces/{ws}/surfaces
- GET /v1/workspaces/{ws}/products/{prod}
- GET /v1/workspaces/{ws}/revisions/{rev}
- GET /v1/workspaces/{ws}/apps/{app}/graph
- GET /v1/workspaces/{ws}/apps/{app}/versions
- GET /v1/workspaces/{ws}/provider-bindings/{bind}/dependents
- GET /v1/workspaces/{ws}/credentials/{cred}/dependents
- GET /v1/workspaces/{ws}/revisions/{rev}/graph
- GET /v1/workspaces/{ws}/revisions/{rev}/graph/packages
- GET /v1/workspaces/{ws}/revisions/{rev}/draft-descriptor
- GET /v1/workspaces/{ws}/deployments/{dep}/log
- GET /v1/workspaces/{ws}/deployments/{dep}
- POST /v1/workspaces/{ws}/deployments/{dep}:stop
- POST /v1/workspaces/{ws}/deployments/{dep}:start
- GET /v1/workspaces/{ws}/deployments
- GET /v1/workspaces/{ws}/breakages
- GET /v1/workspaces/{ws}/revisions
- POST /v1/runner/pipeline-runs/{pipe}/build-variables:fetch
- POST /v1/runner/deployments/{dep}/secrets:fetch
- POST /v1/runner/egress-reports
- GET /v1/runner/egress-policy
- POST /v1/runner/capability-invocations
- POST /v1/dev/capability-invocations
- POST /v1/platform/service-identities
- GET /v1/platform/service-identities/{svc}
- POST /v1/platform/service-identities/{svc}:revoke
- GET /v1/workspaces/{ws}/service-identities
- POST /v1/workspaces/{ws}/service-identities
- GET /v1/workspaces/{ws}/service-identities/{svc}
- DELETE /v1/workspaces/{ws}/service-identities/{svc}
- GET /v1/workspaces/{ws}/capability-invocations/{cap}
- GET /healthz
- GET /readyz
- GET /v1/workspaces/{ws}/releases
- POST /v1/workspaces/{ws}/releases
- GET /v1/workspaces/{ws}/releases/{rel}
- POST /v1/workspaces/{ws}/releases/{rel}/deployments
- GET /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes
- POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes
- GET /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}
- POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}:approve
- POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}:reject
- POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}:cancel
- GET /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}/patch
- POST /v1/workspaces/{ws}/github-connections:start
- POST /v1/workspaces/{ws}/github-connections
- GET /v1/workspaces/{ws}/github-connections
- GET /v1/workspaces/{ws}/github-connections/{cred}/repositories
- GET /v1/workspaces/{ws}/github-connections/{cred}/branches
- GET /v1/workspaces/{ws}/credentials
- POST /v1/workspaces/{ws}/credentials
- GET /v1/workspaces/{ws}/credentials/{cred}
- DELETE /v1/workspaces/{ws}/credentials/{cred}
- POST /v1/workspaces/{ws}/credentials/{cred}:rotate
- POST /v1/workspaces/{ws}/managed-resources
- GET /v1/workspaces/{ws}/managed-resources
- GET /v1/workspaces/{ws}/managed-resources/{mres}
- DELETE /v1/workspaces/{ws}/managed-resources/{mres}
- GET /v1/workspaces/{ws}/managed-resources/{mres}/kv-history
- POST /v1/workspaces/{ws}/managed-resources/{mres}/kv-history:restore
- POST /v1/workspaces/{ws}/managed-resources/{mres}/detach
- POST /v1/workspaces/{ws}/managed-resources/{mres}/reattach
- POST /v1/workspaces/{ws}/provider-bindings
- GET /v1/workspaces/{ws}/provider-bindings
- GET /v1/workspaces/{ws}/provider-bindings/{bind}
- DELETE /v1/workspaces/{ws}/provider-bindings/{bind}
- GET /v1/workspaces/{ws}/billing-profile
- PUT /v1/workspaces/{ws}/billing-profile
- POST /v1/workspaces/{ws}/wallet/checkout
- GET /v1/workspaces/{ws}/wallet/orders
- GET /v1/workspaces/{ws}/wallet/orders/{pay}
- GET /v1/workspaces/{ws}/subscription
- PUT /v1/workspaces/{ws}/subscription
- GET /v1/workspaces/{ws}/subscription-tiers
- GET /v1/workspaces/{ws}/invoices
- POST /v1/payments/callbacks/{gateway}
- GET /v1/platform/payments/attention
- GET /v1/platform/payments/reconciliation
- POST /v1/platform/payments/subscriptions/{ws}:resolve-renewal
- POST /v1/platform/payments/mandates/{pay}:mark-cancelled
- POST /v1/platform/wallets/{ws}/refunds
- GET /v1/workspaces/{ws}/wallet
- GET /v1/workspaces/{ws}/app-members/monthly
- GET /v1/workspaces/{ws}/wallet/transactions
- POST /v1/platform/wallets/{ws}/grants
- PUT /v1/platform/wallets/{ws}/subscription
- GET /v1/platform/outbox/stuck-deliveries
- POST /v1/platform/outbox/stuck-deliveries/{evt}:redeliver
- POST /v1/platform/outbox/stuck-deliveries/{evt}:close
- GET /v1/platform/outbox/dead-letters
- GET /v1/platform/north-star
- GET /v1/platform/north-star/apps
- GET /v1/platform/background-jobs
- GET /v1/platform/workspace-suspensions
- PUT /v1/platform/workspace-suspensions/{target}
- DELETE /v1/platform/workspace-suspensions/{target}
- GET /v1/platform/signups
- PUT /v1/platform/signups
- POST /v1/platform/signups/releases
- GET /v1/platform/rate-cards
- PUT /v1/platform/rate-cards/{provider}/{model}
- GET /v1/platform/subscription-tiers
- PUT /v1/platform/subscription-tiers/{tier}
- GET /v1/workspaces/{ws}/plan
- GET /v1/workspaces/{ws}/apps/{app}/budget
- PUT /v1/workspaces/{ws}/apps/{app}/budget
- GET /v1/workspaces/{ws}/products/{prod}/budget
- PUT /v1/workspaces/{ws}/products/{prod}/budget
- GET /v1/workspaces/{ws}/budgets
- PUT /v1/workspaces/{ws}/budgets/{category}
- POST /v1/workspaces/{ws}/uploads
- GET /v1/workspaces/{ws}/apps
- POST /v1/workspaces/{ws}/apps
- GET /v1/workspaces/{ws}/apps/{app}
- DELETE /v1/workspaces/{ws}/apps/{app}
- GET /v1/workspaces/{ws}/apps/{app}/member-auth
- PUT /v1/workspaces/{ws}/apps/{app}/member-auth
- GET /v1/workspaces/{ws}/apps/{app}/forwarding
- PUT /v1/workspaces/{ws}/apps/{app}/forwarding
- DELETE /v1/workspaces/{ws}/apps/{app}/forwarding
- GET /v1/workspaces/{ws}/trash
- DELETE /v1/workspaces/{ws}/apps/{app}/closure
- POST /v1/workspaces/{ws}/apps/{app}/closure
- POST /v1/workspaces/{ws}/products/{prod}:move
- GET /v1/workspaces/{ws}/products
- POST /v1/workspaces/{ws}/products
- POST /v1/workspaces/{ws}/subdirectory-scans
- GET /v1/workspaces/{ws}/subdirectory-scans/{frz}
- GET /v1/workspaces/{ws}/source-freezes/{frz}
- POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/descriptor:confirm
- GET /v1/workspaces/{workspace_id}/revisions/{revision_id}/capability-contract
- POST /v1/workspaces/{ws}/revisions/{rev}/evaluations
- GET /v1/workspaces/{ws}/versions/{ver}
- GET /v1/workspaces/{ws}/revisions/{rev}/versions
- GET /v1/workspaces/{ws}/pipeline-runs/{pipe}
- POST /v1/workspaces/{ws}/pipeline-runs/{pipe}:cancel
- GET /v1/workspaces/{ws}/pipeline-runs/{pipe}/stages/{stage}/log
- GET /v1/workspaces/{ws}/pipeline-runs/{pipe}/stages
- GET /v1/workspaces/{ws}/pipeline-runs/{pipe}/stages/{stage}/log/live
- POST /v1/workspaces/{ws}/revisions/{rev}/deployments
- GET /v1/workspaces/{ws}/surfaces/{srf}
- POST /v1/surfaces/{srf}/access
- POST /v1/sessions
- POST /v1/sessions/{ses}/invocations
- GET /v1/sessions/{ses}/invocations/{inv}
GET /v1/workspaces/{ws}/products/{prod}/environments/{env}/egress
Read outbound declarations, last deployment policy and recently blocked connections
{
"summary": "Read outbound declarations, last deployment policy and recently blocked connections",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "env",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvironmentEgress"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/variables
List variables (secret values are never returned)
{
"summary": "List variables (secret values are never returned)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductBuildVariables"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/products/{prod}/variables/{name}
Set a service build variable
{
"summary": "Set a service build variable",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BuildVariableRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductVariable"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/products/{prod}/variables/{name}
Delete a variable (production requires owner/admin)
{
"summary": "Delete a variable (production requires owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Variable deleted"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/environments/{env}/variables
List variables (secret values are never returned)
{
"summary": "List variables (secret values are never returned)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "env",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductVariables"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/products/{prod}/environments/{env}/variables/{name}
Set an environment variable (production requires owner/admin)
{
"summary": "Set an environment variable (production requires owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "env",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
},
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvironmentVariableRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductVariable"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/products/{prod}/environments/{env}/variables/{name}
Delete a variable (production requires owner/admin)
{
"summary": "Delete a variable (production requires owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "env",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
},
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Variable deleted"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/apps/{app}/variables
List variables (secret values are never returned)
{
"summary": "List variables (secret values are never returned)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppVariables"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/apps/{app}/variables/{name}
Set an App build variable
{
"summary": "Set an App build variable",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppBuildVariableRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppVariable"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/apps/{app}/variables/{name}
Delete a variable (production requires owner/admin)
{
"summary": "Delete a variable (production requires owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Variable deleted"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/apps/{app}/environments/{env}/variables
List variables (secret values are never returned)
{
"summary": "List variables (secret values are never returned)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "env",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppVariables"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/apps/{app}/environments/{env}/variables/{name}
Set an environment variable (production requires owner/admin)
{
"summary": "Set an environment variable (production requires owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "env",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
},
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppEnvironmentVariableRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppVariable"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/apps/{app}/environments/{env}/variables/{name}
Delete a variable (production requires owner/admin)
{
"summary": "Delete a variable (production requires owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "env",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
},
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Variable deleted"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/members
List WorkspaceMembers
{
"summary": "List WorkspaceMembers",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceMembers"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PATCH /v1/workspaces/{ws}/members/{usr}
Change a workspace member role (human owner/admin)
{
"summary": "Change a workspace member role (human owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "usr",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^usr_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberRoleRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceMember"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/members/{usr}
Remove a workspace member (human owner/admin)
{
"summary": "Remove a workspace member (human owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "usr",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^usr_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Member removed"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/invitations
List MemberInvitations
{
"summary": "List MemberInvitations",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberInvitations"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/invitations
Invite a workspace member by email (human owner/admin)
{
"summary": "Invite a workspace member by email (human owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberInvitationRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberInvitation"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; a full workspace returns reason: seats_full. Suspended workspace member writes return reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/invitations/{minv}
Revoke a workspace invitation (human owner/admin)
{
"summary": "Revoke a workspace invitation (human owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "minv",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^minv_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Invitation revoked"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/accounts/me/invitations
List AccountInvitations
{
"summary": "List AccountInvitations",
"parameters": [
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccountInvitations"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/accounts/me/invitations/{minv}/accept
Accept an invitation matching the verified email
{
"summary": "Accept an invitation matching the verified email",
"parameters": [
{
"name": "minv",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^minv_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Workspace"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; a full workspace returns reason: seats_full. Suspended workspace member writes return reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/pending-operations
List pending operations (human owner/admin)
{
"summary": "List pending operations (human owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "status",
"in": "query",
"schema": {
"type": "string",
"enum": [
"pending",
"all"
],
"default": "pending"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PendingOperations"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/pending-operations/{pend}/approve
Approve pending operation (human owner/admin)
{
"summary": "Approve pending operation (human owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "pend",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pend_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PendingDecision"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PendingOperation"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/pending-operations/{pend}/reject
Reject pending operation (human owner/admin)
{
"summary": "Reject pending operation (human owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "pend",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pend_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PendingDecision"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PendingOperation"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/schedules
List active schedules for the service's staging environment (owner/admin/developer)
{
"summary": "List active schedules for the service's staging environment (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Schedules"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/schedule-runs
List schedule runs for the service, newest first (owner/admin/developer)
{
"summary": "List schedule runs for the service, newest first (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 2048
}
},
{
"name": "schedule_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduleRuns"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products/{prod}/inbound-webhooks
Create an inbound webhook for the service's staging environment (owner/admin/developer)
{
"summary": "Create an inbound webhook for the service's staging environment (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InboundWebhookCreate"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InboundWebhookCreated"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "At most 10 active webhooks per service. github generates a secret, returned only on creation and same-account idempotent replay. standard_webhooks requires a whsec_ prefixed base64 secret decoding to 24–64 bytes and never returns it. The service's deployment is resolved at delivery time."
}GET /v1/workspaces/{ws}/products/{prod}/inbound-webhooks
List active inbound webhooks without secrets (owner/admin/developer)
{
"summary": "List active inbound webhooks without secrets (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InboundWebhooks"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/products/{prod}/inbound-webhooks/{trg}
Delete an inbound webhook; its URL stops accepting deliveries immediately (owner/admin/developer)
{
"summary": "Delete an inbound webhook; its URL stops accepting deliveries immediately (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "trg",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^trg_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Webhook deleted"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/inbound-webhook-deliveries
List inbound webhook deliveries for the service, newest first (owner/admin/developer)
{
"summary": "List inbound webhook deliveries for the service, newest first (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "webhook_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "cursor",
"in": "query",
"description": "Opaque base64url JSON cursor for received_at, webhook_id, delivery_key.",
"schema": {
"type": "string",
"maxLength": 2048
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InboundWebhookDeliveries"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/inbound-webhooks/{trg}
Verify an inbound webhook and forward it to the service's staging deployment
{
"summary": "Verify an inbound webhook and forward it to the service's staging deployment",
"security": [],
"description": "Raw application/json bytes, maximum 1048576 bytes; JSON is never parsed. Rate limit precedes HMAC verification. Standard Webhooks timestamps allow a 300 second difference. Successful deliveries deduplicate; in-flight deliveries return 409 for two minutes; failed deliveries may be retried by the sender. Synchronous forwarding has a 35 second limit including wake-up. Service response headers are limited to content-type and retry-after.",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "trg",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^trg_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Hub-Signature-256",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 71
}
},
{
"name": "X-GitHub-Event",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "X-GitHub-Delivery",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "webhook-id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "webhook-timestamp",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 32
}
},
{
"name": "webhook-signature",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 4096
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {}
}
}
},
"responses": {
"200": {
"description": "GitHub ping acknowledged without a delivery record",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InboundWebhookAcknowledged"
}
}
}
},
"202": {
"description": "Duplicate of a previously successful delivery",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InboundWebhookAcknowledged"
}
}
}
},
"400": {
"description": "Invalid Content-Type, oversized body or invalid signed delivery identifier",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Missing or invalid signature or timestamp",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Webhook not available",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Delivery in progress or service closure has stopped new access",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"429": {
"description": "Inbound webhook rate limit exceeded",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"504": {
"description": "Surface upstream timeout",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"default": {
"description": "Status and body returned by the service"
}
}
}POST /v1/workspaces/{ws}/products/{prod}/auto-deploy
Enable auto-deploy (owner/admin/developer)
{
"summary": "Enable auto-deploy (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployCreate"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployEnabled"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "Uses the latest repository revision; archive input returns 422, closed/closing service or an enabled hook returns 409. Secret is returned at creation and same-account Idempotency-Key replay only; stored replay metadata never contains plaintext."
}GET /v1/workspaces/{ws}/products/{prod}/auto-deploy
Get enabled auto-deploy hook without secret (owner/admin/developer)
{
"summary": "Get enabled auto-deploy hook without secret (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployHook"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/products/{prod}/auto-deploy
Disable auto-deploy (owner/admin/developer)
{
"summary": "Disable auto-deploy (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Hook disabled; re-enabling creates a new hook and secret"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products/{prod}/auto-deploy:github-app
Enable GitHub App auto-deploy (owner/admin/developer)
{
"summary": "Enable GitHub App auto-deploy (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployCreate"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployHook"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"404": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"409": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"422": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
}
},
"description": "Uses the latest repository input and its GitHub connection unless credential_id is supplied. Creation and replay never return a secret. When source is github_app, the returned url does not accept pushes (404); delivery uses the platform App webhook."
}POST /v1/github/app-webhook
Receive GitHub App push deliveries
{
"summary": "Receive GitHub App push deliveries",
"security": [],
"parameters": [
{
"name": "X-Hub-Signature-256",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 71
}
},
{
"name": "X-GitHub-Event",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "X-GitHub-Delivery",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Ping acknowledged",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployAcknowledged"
}
}
}
},
"202": {
"description": "Delivery acknowledged",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployAcknowledged"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "Raw application/json, at most 1048576 bytes. Content type and size errors return 400 before configuration checks. Disabled App or missing platform secrets returns 503 with reason github_app_webhook_unconfigured. Both configured secrets verify raw bytes. Signed malformed JSON or push/delivery fields return 400. Ping returns 200; other events return 202. Valid pushes always acknowledge without disclosing matched hooks or deliveries.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/auto-deploy/deliveries
List deliveries across all of the service's hooks, including disabled hooks (owner/admin/developer)
{
"summary": "List deliveries across all of the service's hooks, including disabled hooks (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "cursor",
"in": "query",
"description": "Opaque base64url JSON cursor for received_at, hook_id, delivery_id.",
"schema": {
"type": "string",
"maxLength": 2048
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployDeliveries"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/auto-deploy/{hook}/github
Verify GitHub delivery and start a source freeze as the enabler
{
"summary": "Verify GitHub delivery and start a source freeze as the enabler",
"security": [],
"description": "Raw application/json body, maximum 1048576 bytes. Other Content-Types, oversized bodies and malformed signed JSON return 400. Unknown, disabled and foreign-workspace hooks share one 404 problem. Signature uses HMAC-SHA256 of the raw bytes. Ping returns 200 without a record; non-push events return 202 without a record. Push deliveries are deduplicated before authorization and freeze admission. No mainline run is started.",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "hook",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^hook_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "X-Hub-Signature-256",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 71
}
},
{
"name": "X-GitHub-Event",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "X-GitHub-Delivery",
"in": "header",
"required": false,
"description": "Required for push events.",
"schema": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{1,128}$"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"responses": {
"200": {
"description": "Ping acknowledged without a delivery record",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployAcknowledged"
}
}
}
},
"202": {
"description": "Recorded push, duplicate delivery, or ignored event",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoDeployWebhookResponse"
}
}
}
},
"400": {
"description": "Non-JSON Content-Type, body over 1 MiB, invalid JSON or invalid push/delivery identifier",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Missing or incorrect GitHub signature",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Hook not available",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/mainline-runs
List MainlineRuns
{
"summary": "List MainlineRuns",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "product_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MainlineRuns"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/mainline-runs
Create a mainline run
{
"summary": "Create a mainline run",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MainlineRunCreate"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MainlineRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/mainline-runs/{mrun}
Get a mainline run
{
"summary": "Get a mainline run",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "mrun",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^mrun_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MainlineRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/mainline-runs/{mrun}/continue
Continue a stopped mainline run
{
"summary": "Continue a stopped mainline run",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "mrun",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^mrun_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MainlineRunAction"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MainlineRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/mainline-runs/{mrun}/cancel
Cancel a mainline run
{
"summary": "Cancel a mainline run",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "mrun",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^mrun_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MainlineRunAction"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MainlineRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products/{prod}/closure
Request service retirement with 30-day grace (owner)
{
"summary": "Request service retirement with 30-day grace (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"202": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Closure"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/products/{prod}/closure
Withdraw service retirement before grace ends (owner)
{
"summary": "Withdraw service retirement before grace ends (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Closure"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/closure
Request workspace closure with 30-day grace (owner)
{
"summary": "Request workspace closure with 30-day grace (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"202": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Closure"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/closure
Withdraw workspace closure before grace ends (owner)
{
"summary": "Withdraw workspace closure before grace ends (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Closure"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/accounts/me/closure
Request account closure; sole workspace owners receive conflict with workspace IDs
{
"summary": "Request account closure; sole workspace owners receive conflict with workspace IDs",
"parameters": [
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"202": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Closure"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/accounts/me/closure
Withdraw own account closure before grace ends
{
"summary": "Withdraw own account closure before grace ends",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Closure"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/accounts/me/developer
Become a developer: turn the caller's personal workspace into an owned workspace and grant a one-time signup promo
{
"summary": "Become a developer: turn the caller's personal workspace into an owned workspace and grant a one-time signup promo",
"parameters": [
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Workspace"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict: owner_taken does not include reason; free_signups_paused includes reason: free_signups_paused and joins the account to the waitlist.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/audit-records
List workspace audit records
{
"summary": "List workspace audit records",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "action",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"workspace.suspended",
"workspace.unsuspended",
"workspace.created",
"signup.waitlisted",
"signup.gate_changed",
"signup.released",
"variable.set",
"variable.deleted",
"capability.dev_invoked",
"inbound_webhook.created",
"inbound_webhook.deleted",
"auto_deploy.enabled",
"auto_deploy.disabled",
"auto_deploy.triggered",
"closure.requested",
"closure.completed",
"closure.withdrawn",
"billing.arrears_written_off",
"billing.payment_succeeded",
"billing.payment_failed",
"billing.refunded",
"billing.subscription_changed",
"billing.profile_changed",
"billing.invoice_issued",
"billing.granted",
"billing.adjusted",
"billing.tier_changed",
"billing.rate_card_updated",
"billing.subscription_tier_updated",
"credential.created",
"credential.revoked",
"credential.rotated",
"binding.requested",
"binding.ready",
"binding.failed",
"binding.revoked",
"binding.expired",
"service_identity.created",
"service_identity.revoked",
"service_identity.secret_rotated",
"member.upserted",
"member.role_changed",
"member.removed",
"platform.bootstrapped",
"platform.outbox_redelivered",
"platform.outbox_closed",
"app.member_auth_updated",
"app.forwarding_updated",
"app.created",
"app.deleted",
"app.closure_requested",
"product.moved",
"product.created",
"release.created",
"deployment.requested",
"deployment.stop_requested",
"deployment.ready",
"deployment.stopped",
"plan.changed",
"budget.changed",
"capability.denied",
"capability.output_blocked",
"capability.fallback",
"capability.usage_unreported",
"bridge.rejected",
"usage.denied",
"access.qualified",
"access.denied",
"access.revoked",
"isolation.unenforced_run",
"isolation.blocked",
"pending.resolved",
"fix.requested",
"fix.decided",
"fix.patch_withheld",
"adjudication.decided",
"authz.forbidden",
"authz.workspace_mismatch",
"audit.exported",
"managed_resource.kv_restored",
"audit.retention_deleted"
]
}
},
{
"name": "actor_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "target_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "correlation_id",
"in": "query",
"required": false,
"schema": {
"type": "string",
"pattern": "^(brk|rsm|pvar|minv|trg|hook|mrun|mres|ws|aus|mba|app|usr|prod|rev|ver|rel|env|dep|srf|acc|ses|inv|exe|evt|pend|ddl|ntf|pipe|fnd|qual|cred|bind|hdl|cap|svc|frz|adj|fix|upl|dom|wb|ctx|aud|pay|ivc|rfd)_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
{
"name": "since",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
{
"name": "until",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuditRecords"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/audit-records/{aud}
Get a visible audit record
{
"summary": "Get a visible audit record",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "aud",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^aud_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuditRecord"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/correlations/{evt}/events
Get correlation event headers without payload
{
"summary": "Get correlation event headers without payload",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "evt",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CorrelationEvents"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/domains
List Domains
{
"summary": "List Domains",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "product_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Domains"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/domains
Create a custom domain (owner/admin)
{
"summary": "Create a custom domain (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"201": {
"description": "Domain created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Domain"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Hostname already bound",
"content": {
"application/problem+json": {
"schema": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"domain_hostname_taken",
"validation_failed"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reason": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"path",
"message"
]
}
},
"errors_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"correlation_id"
]
}
}
}
},
"422": {
"description": "Validation or domain limit failed",
"content": {
"application/problem+json": {
"schema": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"domain_limit_exceeded",
"validation_failed"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reason": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"path",
"message"
]
}
},
"errors_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"correlation_id"
]
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"staging",
"production"
]
},
"hostname": {
"type": "string"
}
},
"required": [
"product_id",
"environment_type",
"hostname"
]
}
}
}
}
}GET /v1/workspaces/{ws}/domains/{dom}
Get a custom domain
{
"summary": "Get a custom domain",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "dom",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^dom_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Domain"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/domains/{dom}
Remove a custom domain (owner/admin)
{
"summary": "Remove a custom domain (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "dom",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^dom_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Domain removed"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/domains/{dom}/verify
Verify a custom domain (owner/admin)
{
"summary": "Verify a custom domain (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "dom",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^dom_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"202": {
"description": "Verification accepted",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Domain"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/notifications
List notification delivery status (owner/admin)
{
"summary": "List notification delivery status (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 2048
},
"description": "Opaque cursor. Ordered by created_at descending, then id descending."
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Notifications"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/outbox/dead-letters
List outbox dead letters (owner/admin)
{
"summary": "List outbox dead letters (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeadLetters"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces
List Workspaces
{
"summary": "List Workspaces",
"parameters": [
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Workspaces"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces
Create a Free workspace (existing human owner)
{
"summary": "Create a Free workspace (existing human owner)",
"parameters": [
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"201": {
"description": "Workspace created; caller is owner.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceCreated"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden: consumer, service identity or automation token; caller must own a non-closed workspace.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict: workspace_limit_reached (3 owned non-closed workspaces) or free_signups_paused. A paused gate does not join the waitlist or cache the denial; retry the same key after reopening. Detail: Creating new Free workspaces is paused for now. Your existing workspaces are not affected.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "validation_failed: invalid name or missing/invalid Idempotency-Key.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "Requires ownership of a non-closed workspace. At most 3 owned non-closed workspaces, including the personal workspace and closure_pending workspaces. Invited non-owners do not count. The optional name is trimmed and must contain 1–64 Unicode code points without C0, C1, DEL or bidirectional control characters. Omitted names are null. Idempotency is scoped to the account; successful replays return the same workspace.",
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceCreate"
}
}
}
}
}GET /v1/capabilities
List the capability catalog
{
"summary": "List the capability catalog",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CapabilityCatalog"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/capability-invocations
List CapabilityInvocations
{
"summary": "List CapabilityInvocations",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "product_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "outcome",
"in": "query",
"schema": {
"type": "string",
"enum": [
"requested",
"completed",
"denied",
"failed",
"unknown"
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CapabilityInvocations"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/surfaces
List Surfaces
{
"summary": "List Surfaces",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "product_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Surfaces"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}
Get a service
{
"summary": "Get a service",
"operationId": "getProduct",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Product"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/revisions/{rev}
Get a Revision
{
"summary": "Get a Revision",
"operationId": "getRevision",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RevisionDetail"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/apps/{app}/graph
Get an App dependency graph (workspace members, including automation)
{
"summary": "Get an App dependency graph (workspace members, including automation)",
"operationId": "getAppGraph",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "environment",
"in": "query",
"required": true,
"schema": {
"type": "string",
"enum": [
"staging",
"production"
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppGraph"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/apps/{app}/versions
List App versions (workspace members)
{
"summary": "List App versions (workspace members)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "App versions",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppVersions"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"operationId": "listAppVersions",
"description": "Groups all revisions of the app’s current services by source commit; archive revisions each form a separate version. Pagination is not guaranteed to be stable: versions are grouped at read time and latest_created_at can change. If a group gains a revision (for example, an AI fix) between pages, it can move to the front, causing duplicate or missing groups while paging."
}GET /v1/workspaces/{ws}/provider-bindings/{bind}/dependents
Get services eligible for or recently using a binding (owner/admin)
{
"summary": "Get services eligible for or recently using a binding (owner/admin)",
"operationId": "getBindingDependents",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "bind",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^bind_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BindingDependents"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/credentials/{cred}/dependents
Get dependents of all bindings for a credential (owner/admin)
{
"summary": "Get dependents of all bindings for a credential (owner/admin)",
"operationId": "getCredentialDependents",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "cred",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^cred_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CredentialDependents"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/revisions/{rev}/graph
Get a Revision dependency graph
{
"summary": "Get a Revision dependency graph",
"operationId": "getRevisionGraph",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RevisionGraph"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/revisions/{rev}/graph/packages
List Revision dependency packages
{
"summary": "List Revision dependency packages",
"operationId": "listRevisionGraphPackages",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"description": "Opaque next position and package-list SHA-256; a changed list returns 422."
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RevisionGraphPackages"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/revisions/{rev}/draft-descriptor
Get a draft descriptor
{
"summary": "Get a draft descriptor",
"operationId": "getDraftDescriptor",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DraftDescriptor"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "Read platform detection before confirmation. rev is the input revision ID used by descriptor:confirm; a confirmed revision ID is also accepted. Once confirmed, descriptor and descriptor_hash contain the actual confirmed values; confidence, material_fields_complete and diagnostics describe the original detection."
}GET /v1/workspaces/{ws}/deployments/{dep}/log
Read a deployment workload log (member; redacted, last 256 KiB)
{
"summary": "Read a deployment workload log (member; redacted, last 256 KiB)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "dep",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^dep_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogContent"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/deployments/{dep}
Get a Deployment
{
"summary": "Get a Deployment",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "dep",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^dep_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Deployment"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/deployments/{dep}:stop
Stop a staging or production Deployment
{
"summary": "Stop a staging or production Deployment",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "dep",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^dep_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"202": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Deployment"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/deployments/{dep}:start
Start a stopped staging or production Deployment
{
"summary": "Start a stopped staging or production Deployment",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "dep",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^dep_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"202": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentAccepted"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/deployments
List Deployments
{
"summary": "List Deployments",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "product_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "revision_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "release_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^rel_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Deployments"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/breakages
List Breakages
{
"summary": "List Breakages",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "state",
"in": "query",
"schema": {
"type": "string",
"enum": [
"open",
"closed"
]
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "product_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Breakages"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "List open and closed breakage episodes for workspace members, ordered by episode_id (opening time). product_id and app_id are mutually exclusive; supplying both returns 422 validation_failed at app_id."
}GET /v1/workspaces/{ws}/revisions
List Revisions
{
"summary": "List Revisions",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "product_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Revisions"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/runner/pipeline-runs/{pipe}/build-variables:fetch
Fetch the build variables frozen for a pipeline request
{
"x-belld-audience": "runner",
"summary": "Fetch the build variables frozen for a pipeline request",
"security": [
{
"bearerAuth": []
}
],
"description": "Runner service identity only. Repeatable using the H-016 event id until the run is terminal or the request is more than 24 hours old. No Idempotency-Key is used. Errors: 404 pipeline_run_not_found; 403 request_event_mismatch; 409 build_variables_absent; 410 request_expired; 500 internal when the retained set is missing; 503 unavailable when a dependency is unavailable. Request and response bodies are never logged. All responses use Cache-Control: no-store.",
"parameters": [
{
"name": "pipe",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pipe_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BuildVariablesFetchRequest"
}
}
}
},
"responses": {
"200": {
"description": "Frozen build variables sorted by name byte order",
"headers": {
"Cache-Control": {
"schema": {
"type": "string",
"const": "no-store"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BuildVariablesFetchResponse"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"410": {
"description": "Request expired",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/runner/deployments/{dep}/secrets:fetch
Fetch runtime and secret variables once for a deployment start
{
"x-belld-audience": "runner",
"summary": "Fetch runtime and secret variables once for a deployment start",
"security": [
{
"bearerAuth": []
}
],
"description": "Runner service identity only. Exchange an H-042 apply or H-113 start event within 30 minutes for runtime and secret variables in this deployment environment. Exactly 30 minutes is accepted. No Idempotency-Key is used. Errors: 404 deployment_not_found; 403 start_event_mismatch; 410 start_expired; 409 start_already_redeemed. Read or decryption failures return 503 unavailable and roll back redemption so the same event can be retried.",
"parameters": [
{
"name": "dep",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^dep_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RuntimeSecretsFetchRequest"
}
}
}
},
"responses": {
"200": {
"description": "Runtime and secret variables sorted by name",
"headers": {
"Cache-Control": {
"schema": {
"type": "string",
"const": "no-store"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RuntimeSecretsFetchResponse"
},
"example": {
"variables": [
{
"name": "…",
"value": "…"
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"410": {
"description": "Start expired",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/runner/egress-reports
Report a deployment egress usage window
{
"x-belld-audience": "runner",
"summary": "Report a deployment egress usage window",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EgressReport"
}
}
}
},
"responses": {
"202": {
"description": "Egress report accepted"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/runner/egress-policy
Read current workspace and Free pool egress caps
{
"x-belld-audience": "runner",
"summary": "Read current workspace and Free pool egress caps",
"security": [
{
"bearerAuth": []
}
],
"responses": {
"200": {
"description": "Egress policy",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EgressPolicy"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/runner/capability-invocations
Invoke a capability for an in-flight runner execution
{
"x-belld-audience": "runner",
"summary": "Invoke a capability for an in-flight runner execution",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RunnerCapabilityRequest"
}
}
}
},
"responses": {
"200": {
"description": "H-361 capability result",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RunnerCapabilityResult"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/dev/capability-invocations
Invoke a capability for the latest revision as a workspace developer
{
"summary": "Invoke a capability for the latest revision as a workspace developer",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DevCapabilityRequest"
}
}
}
},
"responses": {
"200": {
"description": "Unwrapped capability output",
"content": {
"application/json": {
"schema": {}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"429": {
"description": "Rate or workspace budget exhausted",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/platform/service-identities
Create a platform service identity (ws_platform owner/admin)
{
"summary": "Create a platform service identity (ws_platform owner/admin)",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlatformServiceIdentityRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceIdentityCreated"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/platform/service-identities/{svc}
Read platform service identity (ws_platform owner/admin)
{
"summary": "Read platform service identity (ws_platform owner/admin)",
"parameters": [
{
"name": "svc",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^svc_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceIdentity"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/platform/service-identities/{svc}:revoke
Revoke platform service identity (ws_platform owner/admin)
{
"summary": "Revoke platform service identity (ws_platform owner/admin)",
"parameters": [
{
"name": "svc",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^svc_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceIdentity"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/service-identities
List ServiceIdentities
{
"summary": "List ServiceIdentities",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceIdentities"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/service-identities
Create a service identity (owner/admin); provider secret is returned once and omitted on replay
{
"summary": "Create a service identity (owner/admin); provider secret is returned once and omitted on replay",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceServiceIdentityRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceIdentityCreated"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/service-identities/{svc}
Read service identity metadata (owner/admin)
{
"summary": "Read service identity metadata (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "svc",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^svc_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceIdentity"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/service-identities/{svc}
Permanently revoke a service identity (owner/admin)
{
"summary": "Permanently revoke a service identity (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "svc",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^svc_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceIdentity"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/capability-invocations/{cap}
Get a capability invocation and content summaries
{
"summary": "Get a capability invocation and content summaries",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "cap",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^cap_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CapabilityInvocation"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /healthz
Health check
{
"summary": "Health check",
"security": [],
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Health"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /readyz
Readiness check
{
"summary": "Readiness check",
"security": [],
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Ready or degraded",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Readiness"
}
}
}
},
"503": {
"description": "Not ready",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Readiness"
}
}
}
}
}
}GET /v1/workspaces/{ws}/releases
List Releases
{
"summary": "List Releases",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "product_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Releases"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/releases
Create and validate a staged Release
{
"summary": "Create and validate a staged Release",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReleaseCreateRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Release"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/releases/{rel}
Get a Release
{
"summary": "Get a Release",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rel",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rel_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Release"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/releases/{rel}/deployments
Deploy a Release to staging
{
"summary": "Deploy a Release to staging",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rel",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rel_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReleaseDeploymentRequest"
}
}
}
},
"responses": {
"202": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentAccepted"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes
List fixes for a revision
{
"summary": "List fixes for a revision",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FixRuns"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes
Request a fix for a failed build or startup check
{
"summary": "Request a fix for a failed build or startup check",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FixRequest"
}
}
}
},
"responses": {
"202": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FixRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}
Get fix evidence and reverify status
{
"summary": "Get fix evidence and reverify status",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "fix",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^fix_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FixRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}:approve
Approve a verified patch and create a new revision
{
"summary": "Approve a verified patch and create a new revision",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "fix",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^fix_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FixRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}:reject
Reject a fix candidate
{
"summary": "Reject a fix candidate",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "fix",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^fix_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FixRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}:cancel
Cancel an active fix
{
"summary": "Cancel an active fix",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "fix",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^fix_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FixRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/fixes/{fix}/patch
Read the original fix patch
{
"summary": "Read the original fix patch",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "fix",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^fix_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Original patch bytes",
"content": {
"text/x-diff": {
"schema": {
"type": "string"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/github-connections:start
Start a GitHub installation connection (owner/admin)
{
"summary": "Start a GitHub installation connection (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionStartRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionStarted"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"404": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"409": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"422": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/github-connections
Connect a GitHub installation (owner/admin)
{
"summary": "Connect a GitHub installation (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionRequest"
}
}
}
},
"responses": {
"200": {
"description": "Renewed connection",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnection"
}
}
}
},
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnection"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"404": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"409": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"422": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/github-connections
List GitHub connections (member)
{
"summary": "List GitHub connections (member)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnections"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"404": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"409": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"422": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/github-connections/{cred}/repositories
List GitHub repositories (member)
{
"summary": "List GitHub repositories (member)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "cred",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^cred_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"default": 1
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitHubRepositories"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"404": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"409": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"422": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/github-connections/{cred}/branches
List GitHub repository branches (owner/admin/developer)
{
"summary": "List GitHub repository branches (owner/admin/developer)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "cred",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^cred_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "repository",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "GitHub repository in the form owner/name."
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"default": 1
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitHubBranches"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"404": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"409": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"422": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "GitHub connection problem",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/GitHubConnectionProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/credentials
List Credentials
{
"summary": "List Credentials",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Credentials"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/credentials
Register a write-only encrypted credential (owner/admin)
{
"summary": "Register a write-only encrypted credential (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CredentialRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Credential"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/credentials/{cred}
Get credential metadata (owner/admin)
{
"summary": "Get credential metadata (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "cred",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^cred_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Credential"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/credentials/{cred}
Revoke a credential and its active bindings (owner/admin)
{
"summary": "Revoke a credential and its active bindings (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "cred",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^cred_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CredentialRevoked"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/credentials/{cred}:rotate
Rotate credential secret (owner/admin)
{
"summary": "Rotate credential secret (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "cred",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^cred_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CredentialRotateRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Credential"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/managed-resources
Request a managed resource (owner/admin)
{
"summary": "Request a managed resource (owner/admin)",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManagedResourceRequest"
}
}
}
},
"responses": {
"200": {
"description": "Existing resource",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManagedResource"
}
}
}
},
"201": {
"description": "Created resource",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManagedResource"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/managed-resources
List managed resources (member)
{
"summary": "List managed resources (member)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "product_id",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "environment_type",
"in": "query",
"schema": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
},
{
"name": "kind",
"in": "query",
"schema": {
"type": "string",
"enum": [
"kv"
]
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManagedResources"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/managed-resources/{mres}
Get a managed resource (member)
{
"summary": "Get a managed resource (member)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "mres",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^mres_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManagedResource"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/managed-resources/{mres}
Delete a managed resource (owner/admin)
{
"summary": "Delete a managed resource (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "mres",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^mres_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Resource deleted"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/managed-resources/{mres}/kv-history
List KV history metadata (member)
{
"summary": "List KV history metadata (member)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "mres",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^mres_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "key",
"in": "query",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KvHistory"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/managed-resources/{mres}/kv-history:restore
Restore a KV historical value (owner/admin)
{
"summary": "Restore a KV historical value (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "mres",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^mres_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KvRestoreRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/KvRestored"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/managed-resources/{mres}/detach
Detach a managed resource (owner/admin)
{
"summary": "Detach a managed resource (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "mres",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^mres_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManagedResource"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/managed-resources/{mres}/reattach
Reattach a managed resource (owner/admin)
{
"summary": "Reattach a managed resource (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "mres",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^mres_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManagedResource"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/provider-bindings
Create a scoped provider binding (owner/admin)
{
"summary": "Create a scoped provider binding (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProviderBindingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Existing binding",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProviderBinding"
}
}
}
},
"201": {
"description": "Created binding",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProviderBinding"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/provider-bindings
List provider bindings (owner/admin)
{
"summary": "List provider bindings (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProviderBindings"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/provider-bindings/{bind}
Get a provider binding (owner/admin)
{
"summary": "Get a provider binding (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
}
},
{
"name": "bind",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^bind_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProviderBinding"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/provider-bindings/{bind}
Revoke a provider binding (owner/admin)
{
"summary": "Revoke a provider binding (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
}
},
{
"name": "bind",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^bind_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProviderBinding"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/billing-profile
Get billing profile (owner/admin)
{
"summary": "Get billing profile (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BillingProfile"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/billing-profile
Replace billing profile (owner)
{
"summary": "Replace billing profile (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BillingProfileWrite"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BillingProfile"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/wallet/checkout
Checkout topup or subscription upgrade (owner)
{
"summary": "Checkout topup or subscription upgrade (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentCheckout"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentCheckoutResult"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/wallet/orders
List PaymentOrders
{
"summary": "List PaymentOrders",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentOrders"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/wallet/orders/{pay}
Get payment order (owner/admin)
{
"summary": "Get payment order (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "pay",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pay_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentOrder"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/subscription
Get subscription (owner/admin)
{
"summary": "Get subscription (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentSubscription"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/subscription
Cancel renewal at cycle end; only free accepted (owner)
{
"summary": "Cancel renewal at cycle end; only free accepted (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentSubscriptionWrite"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentSubscription"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/subscription-tiers
List subscription tiers (owner/admin)
{
"summary": "List subscription tiers (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubscriptionTiers"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/invoices
List Invoices
{
"summary": "List Invoices",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Invoices"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}POST /v1/payments/callbacks/{gateway}
Verify gateway callback and settle payment
{
"summary": "Verify gateway callback and settle payment",
"security": [],
"parameters": [
{
"name": "gateway",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"responses": {
"200": {
"description": "Accepted or replayed",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}GET /v1/platform/payments/attention
List pending cancellations, refunds and unconfirmed payments (platform administrator)
{
"summary": "List pending cancellations, refunds and unconfirmed payments (platform administrator)",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentAttention"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}GET /v1/platform/payments/reconciliation
Read monthly payment reconciliation in Asia/Taipei (platform administrator)
{
"summary": "Read monthly payment reconciliation in Asia/Taipei (platform administrator)",
"parameters": [
{
"name": "month",
"in": "query",
"required": true,
"schema": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentReconciliation"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}POST /v1/platform/payments/subscriptions/{ws}:resolve-renewal
Resolve an overdue unconfirmed subscription renewal (platform administrator)
{
"summary": "Resolve an overdue unconfirmed subscription renewal (platform administrator)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RenewalResolution"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentSubscription"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}POST /v1/platform/payments/mandates/{pay}:mark-cancelled
Mark a pending mandate cancelled after provider confirmation (platform administrator)
{
"summary": "Mark a pending mandate cancelled after provider confirmation (platform administrator)",
"parameters": [
{
"name": "pay",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pay_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MandateCancelled"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}POST /v1/platform/wallets/{ws}/refunds
Manually refund payment (platform administrator)
{
"summary": "Manually refund payment (platform administrator)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentRefundWrite"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentRefund"
}
}
}
},
"400": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"404": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"409": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"422": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Payment operation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/PaymentProblem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/wallet
Get Bell Credit wallet
{
"summary": "Get Bell Credit wallet",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Wallet"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Wallet or resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed or provider default rate missing",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/app-members/monthly
Get monthly App member counts
{
"summary": "Get monthly App member counts",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "month",
"in": "query",
"required": false,
"description": "UTC month; defaults to the current UTC month. Future months are rejected.",
"schema": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppMemberMonthly"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/wallet/transactions
List CreditTransactions
{
"summary": "List CreditTransactions",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "since",
"in": "query",
"schema": {
"type": "string",
"pattern": "^rel_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "until",
"in": "query",
"schema": {
"type": "string",
"pattern": "^rel_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "category",
"in": "query",
"schema": {
"type": "string",
"pattern": "^rel_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreditTransactions"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Wallet or resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed or provider default rate missing",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/platform/wallets/{ws}/grants
Grant Bell Credit (platform administrator)
{
"summary": "Grant Bell Credit (platform administrator)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreditGrant"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreditTransaction"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Wallet or resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed or provider default rate missing",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/platform/wallets/{ws}/subscription
Set subscription (platform administrator)
{
"summary": "Set subscription (platform administrator)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WalletSubscription"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Wallet"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Wallet or resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed or provider default rate missing",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/platform/outbox/stuck-deliveries
List stuck external deliveries across workspaces (platform owner/admin)
{
"summary": "List stuck external deliveries across workspaces (platform owner/admin)",
"parameters": [
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StuckDeliveries"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/platform/outbox/stuck-deliveries/{evt}:redeliver
Redeliver a stuck external delivery (platform owner/admin)
{
"summary": "Redeliver a stuck external delivery (platform owner/admin)",
"parameters": [
{
"name": "evt",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StuckDelivery"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "Only subscribed external consumers declaring redeliverUnconfirmed support redelivery. Otherwise returns 409 outbox_not_redeliverable: This consumer does not support safe redelivery. Close the delivery instead. Non-stuck or locked deliveries return 404."
}POST /v1/platform/outbox/stuck-deliveries/{evt}:close
Close a stuck external delivery as failed (platform owner/admin)
{
"summary": "Close a stuck external delivery as failed (platform owner/admin)",
"parameters": [
{
"name": "evt",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlatformDeadLetter"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/platform/outbox/dead-letters
List dead letters across workspaces (platform owner/admin, read-only)
{
"summary": "List dead letters across workspaces (platform owner/admin, read-only)",
"parameters": [
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlatformDeadLetters"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/platform/north-star
Get daily production north star and staging trial (platform owner/admin)
{
"summary": "Get daily production north star and staging trial (platform owner/admin)",
"parameters": [
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NorthStar"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "Requests rejected before admission (including exhausted quota, busy services and app_unavailable) have no execution and are not counted as real requests.\n\nThe executions index is created with ordinary CREATE INDEX inside the migration transaction, which blocks writes while it builds. Staging volume is small; a large production table needs separate rollout planning, such as applying this version while the table is still empty.\n\nDeveloper visits and external monitoring are counted as real requests because they cannot be distinguished.\n\nStaging Surfaces are member-only, so staging trial usage mostly comes from developers and webhooks.\n\nBackfilled days use current app membership and closure state. Launch timestamps overwritten before this change cannot be recovered, so staging launch dates may be later than the actual dates."
}GET /v1/platform/north-star/apps
List daily north star app details (platform owner/admin)
{
"summary": "List daily north star app details (platform owner/admin)",
"parameters": [
{
"name": "environment",
"in": "query",
"required": true,
"schema": {
"type": "string",
"enum": [
"production",
"staging"
]
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NorthStarApps"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "Requests rejected before admission (including exhausted quota, busy services and app_unavailable) have no execution and are not counted as real requests.\n\nThe executions index is created with ordinary CREATE INDEX inside the migration transaction, which blocks writes while it builds. Staging volume is small; a large production table needs separate rollout planning, such as applying this version while the table is still empty.\n\nDeveloper visits and external monitoring are counted as real requests because they cannot be distinguished.\n\nStaging Surfaces are member-only, so staging trial usage mostly comes from developers and webhooks.\n\nBackfilled days use current app membership and closure state. Launch timestamps overwritten before this change cannot be recovered, so staging launch dates may be later than the actual dates."
}GET /v1/platform/background-jobs
Get background job status and outbox counts (platform owner/admin)
{
"summary": "Get background job status and outbox counts (platform owner/admin)",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BackgroundJobs"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/platform/workspace-suspensions
List suspended workspaces (ws_platform owner/admin); reasons are never returned
{
"summary": "List suspended workspaces (ws_platform owner/admin); reasons are never returned",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceSuspensions"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/platform/workspace-suspensions/{target}
Suspend a workspace (ws_platform owner/admin); already suspended returns the original record without another audit or notice
{
"summary": "Suspend a workspace (ws_platform owner/admin); already suspended returns the original record without another audit or notice",
"parameters": [
{
"name": "target",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceSuspensionWrite"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceSuspension"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
},
"description": "Requires Idempotency-Key. Empty or over 500 character reason, a reason containing credential-like patterns, and ws_platform target return 400 validation_failed. Reason is validated before any suspension, notification or audit is written and is stored only in the suspension row and platform audit. Deployments, data and billing are unchanged."
}DELETE /v1/platform/workspace-suspensions/{target}
Restore a workspace (ws_platform owner/admin); absent suspension is also 204
{
"summary": "Restore a workspace (ws_platform owner/admin); absent suspension is also 204",
"parameters": [
{
"name": "target",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Restored or already active; no response body"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/platform/signups
Get Free signup gate and waitlist counts (ws_platform owner/admin)
{
"summary": "Get Free signup gate and waitlist counts (ws_platform owner/admin)",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SignupStatus"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/platform/signups
Pause or open Free signups (ws_platform owner/admin)
{
"summary": "Pause or open Free signups (ws_platform owner/admin)",
"parameters": [
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SignupGateWrite"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SignupGate"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/platform/signups/releases
Release up to 100 active waitlisted accounts in queue order (ws_platform owner/admin)
{
"summary": "Release up to 100 active waitlisted accounts in queue order (ws_platform owner/admin)",
"parameters": [
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SignupReleaseWrite"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SignupRelease"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/platform/rate-cards
List RateCards
{
"summary": "List RateCards",
"parameters": [
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateCards"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Wallet or resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed or provider default rate missing",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/platform/rate-cards/{provider}/{model}
Append rate card version (platform administrator)
{
"summary": "Append rate card version (platform administrator)",
"parameters": [
{
"name": "provider",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "model",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateCardWrite"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateCard"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Wallet or resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed or provider default rate missing",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/platform/subscription-tiers
List subscription tiers (platform administrator)
{
"summary": "List subscription tiers (platform administrator)",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubscriptionTiers"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Wallet or resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed or provider default rate missing",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/platform/subscription-tiers/{tier}
Set tier values (platform administrator)
{
"summary": "Set tier values (platform administrator)",
"parameters": [
{
"name": "tier",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubscriptionTierWrite"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubscriptionTier"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Wallet or resource not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed or provider default rate missing",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/BillingProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/plan
Get workspace plan and entitlements
{
"summary": "Get workspace plan and entitlements",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Plan"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/apps/{app}/budget
Get App monthly budget and current cycle usage
{
"summary": "Get App monthly budget and current cycle usage",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductBudget"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/apps/{app}/budget
Set App monthly Bell Credit cap (owner/admin)
{
"summary": "Set App monthly Bell Credit cap (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductBudgetRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductBudget"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products/{prod}/budget
Get app monthly budget and current cycle usage
{
"summary": "Get app monthly budget and current cycle usage",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductBudget"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/products/{prod}/budget
Set app monthly Bell Credit cap (owner/admin)
{
"summary": "Set app monthly Bell Credit cap (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductBudgetRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductBudget"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/budgets
List current UTC month budgets and usage
{
"summary": "List current UTC month budgets and usage",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Budgets"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/budgets/{category}
Set category budget within plan ceiling (owner only)
{
"summary": "Set category budget within plan ceiling (owner only)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "category",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"ai_tokens",
"runtime",
"provider_call",
"storage",
"app_members"
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BudgetRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Budget"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/uploads
Create a ZIP upload URL (15 minute TTL; signed Content-Length, maximum 200 MiB)
{
"summary": "Create a ZIP upload URL (15 minute TTL; signed Content-Length, maximum 200 MiB)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UploadRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Upload"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/apps
List Apps
{
"summary": "List Apps",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Apps"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/apps
Create an App without services (maximum 20 per workspace)
{
"summary": "Create an App without services (maximum 20 per workspace)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppCreateRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/App"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/apps/{app}
Get an App and its services
{
"summary": "Get an App and its services",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppDetail"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/apps/{app}
Delete an App without services (owner)
{
"summary": "Delete an App without services (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "App deleted"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "app_has_members: active Apps must be closed; member links are deleted 30 days after closure before the App can be deleted. Also rejects Apps with services or scoped bindings.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/apps/{app}/member-auth
Get App member authentication (workspace members)
{
"summary": "Get App member authentication (workspace members)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppMemberAuth"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/apps/{app}/member-auth
Set App member authentication (owner/admin)
{
"summary": "Set App member authentication (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppMemberAuthRequest"
}
}
}
},
"responses": {
"200": {
"description": "App member authentication",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppMemberAuth"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "member_client_missing: member client provisioner is not configured; or App is not active.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "member_issuer_invalid: invalid or unavailable issuer discovery; or invalid request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Member client provisioning unavailable. Enabling leaves the mode unchanged; off/byok commit configuration and audit before disabling the platform client.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/apps/{app}/forwarding
Get App forwarding (workspace members)
{
"summary": "Get App forwarding (workspace members)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppForwarding"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}PUT /v1/workspaces/{ws}/apps/{app}/forwarding
Replace App forwarding (owner/admin)
{
"summary": "Replace App forwarding (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppForwardingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppForwarding"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/apps/{app}/forwarding
Delete App forwarding (owner/admin)
{
"summary": "Delete App forwarding (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"204": {
"description": "Forwarding removed (also succeeds when absent)"
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/trash
List Trash
{
"summary": "List Trash",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Trash"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}DELETE /v1/workspaces/{ws}/apps/{app}/closure
Restore an App and services closed by its request (owner)
{
"summary": "Restore an App and services closed by its request (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppRestore"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/apps/{app}/closure
Close an App with individual 30-day service retirements (owner)
{
"summary": "Close an App with individual 30-day service retirements (owner)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "app",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"202": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppClosure"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products/{prod}:move
Move an active service to another active App (owner/admin)
{
"summary": "Move an active service to another active App (owner/admin)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductMoveRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Product"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/products
List services
{
"summary": "List services",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "app_id",
"in": "query",
"schema": {
"type": "string",
"pattern": "^app_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Products"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products
Queue a repository or ZIP source freeze
{
"summary": "Queue a repository or ZIP source freeze",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductIntakeRequest"
}
}
}
},
"responses": {
"202": {
"description": "Source freeze pending",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SourceFreezeAccepted"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Source intake rejected",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SourceIntakeProblem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/subdirectory-scans
Scan repository subdirectories
{
"summary": "Scan repository subdirectories",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubdirectoryScanRequest"
}
}
}
},
"responses": {
"202": {
"description": "Subdirectory scan pending",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^frz_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"status": {
"type": "string",
"const": "pending"
},
"links": {
"type": "object",
"properties": {
"self": {
"type": "string"
}
},
"required": [
"self"
]
}
},
"required": [
"id",
"status",
"links"
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/subdirectory-scans/{frz}
Read repository subdirectories
{
"summary": "Read repository subdirectories",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "frz",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^frz_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubdirectoryScan"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/source-freezes/{frz}
Read source freeze status
{
"summary": "Read source freeze status",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "frz",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^frz_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SourceFreeze"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/products/{prod}/revisions/{rev}/descriptor:confirm
Confirm the detected descriptor
{
"summary": "Confirm the detected descriptor",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "prod",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^prod_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DescriptorConfirmationRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Revision"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{workspace_id}/revisions/{revision_id}/capability-contract
Get the frozen Capability Contract or rejection
{
"summary": "Get the frozen Capability Contract or rejection",
"parameters": [
{
"name": "workspace_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "revision_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Contract or rejection",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/CapabilityContract"
},
{
"$ref": "#/components/schemas/CapabilityContractRejected"
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/revisions/{rev}/evaluations
Return the preview evaluation or request qualification
{
"summary": "Return the preview evaluation or request qualification",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EvaluationRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PipelineRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/versions/{ver}
Get a qualified Version
{
"summary": "Get a qualified Version",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "ver",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ver_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Version"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/revisions/{rev}/versions
List VersionList
{
"summary": "List VersionList",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
{
"name": "cursor",
"in": "query",
"schema": {
"type": "string",
"maxLength": 128
}
},
{
"name": "order",
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VersionList"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/pipeline-runs/{pipe}
Get a Pipeline Run
{
"summary": "Get a Pipeline Run",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "pipe",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pipe_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PipelineRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/pipeline-runs/{pipe}:cancel
Cancel an active preview or qualification
{
"summary": "Cancel an active preview or qualification",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "pipe",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pipe_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PipelineRun"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/pipeline-runs/{pipe}/stages/{stage}/log
Read a pipeline stage log (member; redacted, last 256 KiB)
{
"summary": "Read a pipeline stage log (member; redacted, last 256 KiB)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "pipe",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pipe_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "stage",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogContent"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/pipeline-runs/{pipe}/stages
Get Pipeline Run stages
{
"summary": "Get Pipeline Run stages",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "pipe",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pipe_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PipelineStages"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/pipeline-runs/{pipe}/stages/{stage}/log/live
Read a live pipeline stage log tail (member; redacted complete lines)
{
"summary": "Read a live pipeline stage log tail (member; redacted complete lines)",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "pipe",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^pipe_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "stage",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LiveLogTail"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/workspaces/{ws}/revisions/{rev}/deployments
Ensure and return the automatic preview Deployment
{
"summary": "Ensure and return the automatic preview Deployment",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "rev",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^rev_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnsureRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Deployment"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/workspaces/{ws}/surfaces/{srf}
Get a Surface
{
"summary": "Get a Surface",
"parameters": [
{
"name": "ws",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ws_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "srf",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^srf_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Surface"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/surfaces/{srf}/access
Qualify Consumer access to a Surface
{
"summary": "Qualify Consumer access to a Surface",
"parameters": [
{
"name": "srf",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^srf_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Access"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/sessions
Expose the Session opened by access qualification
{
"summary": "Expose the Session opened by access qualification",
"parameters": [
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SessionCreateRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}POST /v1/sessions/{ses}/invocations
Create a Consumer Invocation
{
"summary": "Create a Consumer Invocation",
"parameters": [
{
"name": "ses",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ses_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InvocationCreateRequest"
}
}
}
},
"responses": {
"201": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Invocation"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}GET /v1/sessions/{ses}/invocations/{inv}
Get admission and execution presentation for an Invocation
{
"summary": "Get admission and execution presentation for an Invocation",
"parameters": [
{
"name": "ses",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^ses_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "inv",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^inv_[0-7][0-9a-hjkmnp-tv-z]{25}$"
}
},
{
"name": "X-Correlation-Id",
"in": "header",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Invocation"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"401": {
"description": "Unauthenticated",
"headers": {
"WWW-Authenticate": {
"schema": {
"type": "string"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"409": {
"description": "Conflict; suspended workspace member writes and new Surface access return reason: workspace_suspended. GET/HEAD and platform operations remain available.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
},
"503": {
"description": "Unavailable. Suspended managed Surface requests (/s/, platform subdomains, custom domains, triggers and inbound webhooks) return workspace_suspended with detail: This app is temporarily unavailable. Bridge returns unavailable with reason: workspace_suspended.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}
}
}Components
securitySchemes
bearerAuth
{
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
}schemas
ProductMoveRequest
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"app_id"
],
"additionalProperties": false
}AppClosure
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"state": {
"type": "string",
"enum": [
"retiring",
"retired"
]
},
"grace_until": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"product_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"app_id",
"state",
"grace_until",
"product_ids"
]
}AppRestore
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"state": {
"type": "string",
"const": "active"
},
"grace_until": {
"type": "null"
},
"product_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"app_id",
"state",
"grace_until",
"product_ids"
]
}Trash
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"service",
"app",
"workspace"
]
},
"id": {
"anyOf": [
{
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
]
},
"name": {
"type": [
"string",
"null"
]
},
"grace_until": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"restorable": {
"type": "boolean"
},
"purge_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"kind",
"id",
"name",
"grace_until",
"restorable"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}App
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"name": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
},
"state": {
"type": "string",
"enum": [
"active",
"retiring",
"retired"
]
},
"source_repository_url": {
"type": [
"string",
"null"
]
},
"service_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"name",
"state",
"source_repository_url",
"service_count",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}AppDetail
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"name": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
},
"state": {
"type": "string",
"enum": [
"active",
"retiring",
"retired"
]
},
"source_repository_url": {
"type": [
"string",
"null"
]
},
"service_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"closure_state": {
"type": "string",
"enum": [
"active",
"closure_pending",
"retired"
]
}
},
"required": [
"product_id",
"closure_state"
]
}
}
},
"required": [
"id",
"workspace_id",
"name",
"state",
"source_repository_url",
"service_count",
"created_at",
"updated_at",
"services"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}AppCreateRequest
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"name"
]
}SubdirectoryScanRequest
{
"type": "object",
"properties": {
"repo_url": {
"type": "string",
"minLength": 1
},
"ref": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"credential_id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"repo_url",
"ref"
],
"additionalProperties": false
}SubdirectoryScan
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^frz_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"status": {
"type": "string",
"enum": [
"pending",
"completed",
"rejected",
"failed"
]
},
"repo_url": {
"type": "string"
},
"ref": {
"type": "string"
},
"commit_sha": {
"type": [
"string",
"null"
]
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"root_path": {
"type": "string"
},
"lockfile": {
"type": "string",
"enum": [
"subdirectory",
"repository_root",
"none"
]
}
},
"required": [
"root_path",
"lockfile"
]
}
},
"truncated": {
"type": "boolean"
},
"problem": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"bad_request",
"unauthenticated",
"forbidden",
"not_found",
"conflict",
"validation_failed",
"rate_limited",
"internal",
"unavailable"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reason": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"code": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"path"
]
}
},
"errors_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"correlation_id"
]
}
},
"required": [
"id",
"status",
"repo_url",
"ref",
"commit_sha",
"candidates",
"truncated"
]
}EnvironmentEgress
{
"type": "object",
"properties": {
"environment": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"deployment_id": {
"anyOf": [
{
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"revision_id": {
"anyOf": [
{
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"declared": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string"
},
"port": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"host",
"port"
]
}
},
"sent": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"const": "deny"
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "allowlist"
},
"tier": {
"type": "string",
"enum": [
"free",
"paid"
]
},
"entries": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"mode",
"entries"
],
"additionalProperties": false
}
]
},
{
"type": "null"
}
]
},
"open_ports": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"blocked_since": {
"$ref": "#/$defs/__schema1"
},
"blocked": {
"type": "array",
"items": {
"type": "object",
"properties": {
"domain": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"sni",
"dns",
"shared_front"
]
},
"count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"last_at": {
"$ref": "#/$defs/__schema1"
}
},
"required": [
"domain",
"kind",
"count",
"last_at"
]
}
}
},
"required": [
"environment",
"deployment_id",
"revision_id",
"declared",
"sent",
"open_ports",
"blocked_since",
"blocked"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"host": {
"type": "string",
"maxLength": 253,
"pattern": "^(\\*\\.)?([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]([a-z0-9-]{0,61}[a-z0-9])?$"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
],
"additionalProperties": false
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}SourceFreezeAccepted
{
"type": "object",
"properties": {
"source_freeze_id": {
"type": "string",
"pattern": "^frz_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"status": {
"type": "string",
"const": "pending"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"links": {
"type": "object",
"properties": {
"self": {
"type": "string"
}
},
"required": [
"self"
]
}
},
"required": [
"source_freeze_id",
"status",
"product_id",
"links"
]
}SourceFreeze
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"pending",
"frozen",
"rejected",
"failed"
]
},
"provenance": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "repository"
},
"repo_url": {
"type": "string"
},
"ref": {
"type": "string"
},
"commit_sha": {
"type": "string",
"pattern": "^[0-9a-f]{40}$"
}
},
"required": [
"kind",
"repo_url",
"ref",
"commit_sha"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "archive"
},
"upload_id": {
"type": "string",
"pattern": "^upl_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
}
},
"required": [
"kind",
"upload_id",
"sha256"
]
}
]
},
"product": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"type": {
"type": "string",
"const": "hosted-app"
},
"created_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"type",
"created_at"
]
},
"revision": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"input_type": {
"type": "string",
"enum": [
"repository",
"archive"
]
},
"created_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"product_id",
"input_type",
"created_at"
]
},
"snapshot": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"minLength": 1
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
},
"replayed": {
"type": "boolean"
},
"rejection": {
"oneOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": [
"size_limit",
"file_count_limit",
"depth_limit",
"file_size_limit",
"path_length",
"traversal",
"symlink_escape",
"ref_not_found",
"host_not_allowed",
"private_source_unsupported",
"fetch_timeout",
"fetch_failed",
"archive_bomb",
"nested_archive",
"archive_invalid",
"upload_mismatch",
"workspace_unavailable",
"storage_unavailable",
"report_missing",
"internal_error",
"runner_unavailable"
]
},
"detail": {
"type": "object",
"properties": {
"actual": {
"type": "number"
},
"limit": {
"type": "number"
}
},
"required": [
"actual",
"limit"
]
}
},
"required": [
"code"
]
},
{
"type": "object",
"properties": {
"code": {
"type": "string",
"const": "credential_in_descriptor"
},
"detail": {
"type": "object",
"properties": {
"field": {
"type": "string"
}
},
"required": [
"field"
]
}
},
"required": [
"code"
]
}
]
},
"problem": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"bad_request",
"unauthenticated",
"forbidden",
"not_found",
"conflict",
"validation_failed",
"rate_limited",
"internal",
"unavailable"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reason": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"code": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"path"
]
}
},
"errors_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"correlation_id"
]
}
},
"required": [
"status"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}SourceIntakeProblem
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"bad_request",
"unauthenticated",
"forbidden",
"not_found",
"conflict",
"validation_failed",
"rate_limited",
"internal",
"unavailable"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reason": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"code": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"path"
]
}
},
"errors_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"correlation_id"
]
}ReleaseCreateRequest
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"version_id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"channel": {
"type": "string",
"const": "staged"
},
"audience": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"internal"
]
}
},
"required": [
"kind"
]
},
"window": {
"type": "object",
"properties": {
"starts_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"ends_at": {
"type": "null"
}
},
"required": [
"starts_at",
"ends_at"
]
}
},
"required": [
"product_id",
"version_id",
"channel",
"audience",
"window"
]
}Release
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"version_id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"channel": {
"type": "string",
"enum": [
"preview_internal",
"staged",
"production"
]
},
"audience": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"internal",
"workspace",
"custom"
]
}
},
"required": [
"kind"
]
},
"window": {
"type": "object",
"properties": {
"starts_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"starts_at",
"ends_at"
]
},
"id": {
"type": "string",
"pattern": "^rel_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"status": {
"type": "string",
"enum": [
"draft",
"ready",
"live",
"retired",
"blocked",
"pending_approval"
]
},
"frozen_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"product_id",
"version_id",
"channel",
"audience",
"window",
"id",
"workspace_id",
"status",
"frozen_at",
"reason_code",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}ReleaseDeploymentRequest
{
"type": "object",
"properties": {
"environment_type": {
"default": "staging",
"type": "string",
"enum": [
"staging",
"production"
]
}
}
}ReleaseDeployment
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_id": {
"type": "string",
"pattern": "^env_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"staging",
"production"
]
},
"slot": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"planned",
"applying",
"active",
"superseded",
"stopped",
"blocked",
"failed"
]
},
"reason_code": {
"type": "string"
},
"required_isolation_profile": {
"type": "string",
"const": "isolated-vm"
},
"egress": {
"anyOf": [
{
"type": "string",
"const": "deny"
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "allowlist"
},
"tier": {
"type": "string",
"enum": [
"free",
"paid"
]
},
"entries": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"mode",
"entries"
],
"additionalProperties": false
}
]
},
"database_check": {
"oneOf": [
{
"type": "object",
"properties": {
"result": {
"type": "string",
"const": "unreachable"
},
"phase": {
"type": "string",
"enum": [
"dns",
"no_public_ipv4",
"connect",
"timeout"
]
},
"checked_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"result",
"phase",
"checked_at"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"result": {
"type": "string",
"const": "blocked"
},
"blocked_reason": {
"type": "string",
"enum": [
"not_declared",
"platform",
"no_egress"
]
},
"checked_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"result",
"blocked_reason",
"checked_at"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"result": {
"type": "string",
"enum": [
"ok",
"auth_failed",
"database_not_found",
"rejected",
"invalid_url",
"tls_unsupported",
"tls_failed"
]
},
"checked_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"result",
"checked_at"
],
"additionalProperties": false
}
]
},
"isolation": {
"type": "object",
"properties": {
"profile": {
"type": "string",
"const": "isolated-vm"
},
"enforced": {
"type": "boolean"
}
},
"required": [
"profile",
"enforced"
]
},
"health": {
"type": "object",
"properties": {
"checked_at": {
"$ref": "#/$defs/__schema1"
},
"attempts": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"latency_ms": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"observed": {
"anyOf": [
{
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"healthy",
"unhealthy",
"not_running",
"missing",
"asleep",
"unknown"
]
},
"sampled_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"type": "null"
}
]
},
"last_healthy_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"type": "null"
}
]
},
"consecutive_failures": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"last_status_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"latency_ms": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"exit_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reason_code": {
"anyOf": [
{
"type": "string",
"enum": [
"http_status",
"timeout",
"connection_failed",
"process_exited",
"not_registered",
"workload_absent"
]
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"sampled_at",
"last_healthy_at",
"consecutive_failures",
"last_status_code",
"latency_ms",
"exit_code",
"reason_code"
]
},
{
"type": "null"
}
]
}
},
"required": [
"checked_at",
"attempts",
"latency_ms",
"observed"
]
},
"endpoint": {
"type": "object",
"properties": {
"address": {
"type": "string",
"minLength": 1
}
},
"required": [
"address"
]
},
"superseded_deployment_id": {
"anyOf": [
{
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"surface_id": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"severity": {
"type": "string"
},
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"path": {
"type": "string"
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"path",
"line"
]
},
{
"type": "null"
}
]
},
"rule_id": {
"type": [
"string",
"null"
]
},
"dependency": {
"anyOf": [
{
"type": "object",
"properties": {
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"cvss",
"fixed_in"
]
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"severity",
"code",
"message"
]
}
},
"created_at": {
"$ref": "#/$defs/__schema1"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"source": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "release"
},
"release_id": {
"type": "string",
"pattern": "^rel_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"version_id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"release_id",
"version_id"
]
}
},
"required": [
"id",
"workspace_id",
"product_id",
"revision_id",
"environment_type",
"slot",
"status",
"required_isolation_profile",
"egress",
"findings",
"created_at",
"updated_at",
"source"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"host": {
"type": "string",
"maxLength": 253,
"pattern": "^(\\*\\.)?([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]([a-z0-9-]{0,61}[a-z0-9])?$"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
],
"additionalProperties": false
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}DeploymentAccepted
{
"type": "object",
"properties": {
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"status": {
"type": "string",
"const": "pending"
},
"links": {
"type": "object",
"properties": {
"self": {
"type": "string"
}
},
"required": [
"self"
]
}
},
"required": [
"deployment_id",
"status",
"links"
]
}CapabilityContract
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"capabilities": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ai.generate"
},
"required": {
"$ref": "#/$defs/__schema0"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema1"
}
},
"scope": {
"type": "object",
"properties": {
"models": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema2"
}
},
"max_tokens_per_call": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"models",
"max_tokens_per_call"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "storage.object"
},
"required": {
"$ref": "#/$defs/__schema0"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema4"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_object_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"prefix",
"max_object_bytes"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "data.kv"
},
"required": {
"$ref": "#/$defs/__schema0"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema5"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_value_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 65536
},
"max_keys": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"prefix",
"max_value_bytes",
"max_keys"
]
},
"credential_owner": {
"type": "string",
"const": "platform"
},
"provider": {
"type": "object",
"properties": {
"allow": {
"minItems": 1,
"maxItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema6"
}
},
"prefer": {
"type": "string",
"const": "platform"
},
"fallback": {
"type": "string",
"const": "none"
}
},
"required": [
"allow",
"fallback"
]
}
},
"required": [
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "email.send"
},
"required": {
"$ref": "#/$defs/__schema0"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema7"
}
},
"scope": {
"type": "object",
"properties": {
"from_addresses": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema8"
}
},
"recipient_domains": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema9"
}
},
"max_recipients": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_message_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1048576
}
},
"required": [
"from_addresses",
"recipient_domains",
"max_recipients",
"max_message_bytes"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "appuser.directory"
},
"required": {
"$ref": "#/$defs/__schema0"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema10"
}
},
"scope": {
"type": "object",
"properties": {
"roles": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema11"
}
}
},
"required": [
"roles"
]
},
"credential_owner": {
"type": "string",
"const": "platform"
},
"provider": {
"type": "object",
"properties": {
"allow": {
"minItems": 1,
"maxItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema12"
}
},
"prefer": {
"type": "string",
"const": "platform"
},
"fallback": {
"type": "string",
"const": "none"
}
},
"required": [
"allow",
"fallback"
]
}
},
"required": [
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
}
]
}
},
"contract_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"confirmed_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"$ref": "#/$defs/__schema13"
},
"updated_at": {
"$ref": "#/$defs/__schema13"
}
},
"required": [
"product_id",
"revision_id",
"workspace_id",
"capabilities",
"contract_hash",
"confirmed_at",
"id",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "boolean"
},
"__schema1": {
"type": "string",
"enum": [
"generate"
]
},
"__schema2": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"__schema3": {
"type": "object",
"properties": {
"allow": {
"type": "array",
"items": {
"type": "string"
}
},
"prefer": {
"type": "string"
},
"fallback": {
"type": "string",
"enum": [
"none",
"listed"
]
}
},
"required": [
"allow",
"fallback"
]
},
"__schema4": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"__schema5": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"__schema6": {
"type": "string",
"const": "platform"
},
"__schema7": {
"type": "string",
"enum": [
"send"
]
},
"__schema8": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema9": {
"type": "string",
"maxLength": 253,
"pattern": "^(?:\\*|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$"
},
"__schema10": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"__schema11": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
},
"__schema12": {
"type": "string",
"const": "platform"
},
"__schema13": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Plan
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"plan": {
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
},
"entitlements": {
"type": "object",
"properties": {
"ai_tokens": {
"type": "boolean"
},
"runtime": {
"type": "boolean"
},
"provider_call": {
"type": "boolean"
},
"storage": {
"type": "boolean"
},
"app_members": {
"type": "boolean"
}
},
"required": [
"ai_tokens",
"runtime",
"provider_call",
"storage",
"app_members"
]
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"plan",
"entitlements",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}BudgetRequest
{
"type": "object",
"properties": {
"limit_units": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
}
},
"required": [
"limit_units"
]
}Budget
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"usage_category": {
"type": "string",
"enum": [
"ai_tokens",
"runtime",
"provider_call",
"storage",
"app_members"
]
},
"month": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}$"
},
"limit_units": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
],
"description": "Monthly usage limit. For storage, this is the storage transfer limit in bytes."
},
"used_units": {
"type": "number",
"minimum": 0,
"description": "Usage in the UTC month. For storage, this is storage transfer in bytes."
},
"reserved_units": {
"type": "number",
"minimum": 0
},
"stored_limit_bytes": {
"description": "Plan-defined limit in bytes for platform-managed KV data stored, including earlier versions. Only on the storage item; not customizable.",
"$ref": "#/$defs/__schema1"
},
"stored_bytes": {
"description": "Bytes of platform-managed KV data, including earlier versions (up to 10 per key, kept for 7 days). Only on the storage item.",
"$ref": "#/$defs/__schema2"
},
"created_at": {
"$ref": "#/$defs/__schema3"
},
"updated_at": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"id",
"workspace_id",
"usage_category",
"month",
"limit_units",
"used_units",
"reserved_units",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "number",
"minimum": 0
},
"__schema1": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"__schema2": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"__schema3": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Budgets
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"usage_category": {
"type": "string",
"enum": [
"ai_tokens",
"runtime",
"provider_call",
"storage",
"app_members"
]
},
"month": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}$"
},
"limit_units": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
],
"description": "Monthly usage limit. For storage, this is the storage transfer limit in bytes."
},
"used_units": {
"type": "number",
"minimum": 0,
"description": "Usage in the UTC month. For storage, this is storage transfer in bytes."
},
"reserved_units": {
"type": "number",
"minimum": 0
},
"stored_limit_bytes": {
"description": "Plan-defined limit in bytes for platform-managed KV data stored, including earlier versions. Only on the storage item; not customizable.",
"$ref": "#/$defs/__schema1"
},
"stored_bytes": {
"description": "Bytes of platform-managed KV data, including earlier versions (up to 10 per key, kept for 7 days). Only on the storage item.",
"$ref": "#/$defs/__schema2"
},
"created_at": {
"$ref": "#/$defs/__schema3"
},
"updated_at": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"id",
"workspace_id",
"usage_category",
"month",
"limit_units",
"used_units",
"reserved_units",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": "null"
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "number",
"minimum": 0
},
"__schema1": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"__schema2": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"__schema3": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Health
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ok",
"ready"
]
}
},
"required": [
"status"
]
}ProductIntakeRequest
{
"oneOf": [
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"repo_url": {
"type": "string",
"minLength": 1
},
"root_path": {
"type": "string",
"maxLength": 256
},
"ref": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"auth": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "none"
}
},
"required": [
"kind"
]
}
]
},
"credential_id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_type": {
"type": "string",
"const": "hosted-app"
},
"input_type": {
"type": "string",
"const": "repository"
}
},
"required": [
"repo_url",
"ref",
"auth"
]
},
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"input_type": {
"type": "string",
"const": "archive"
},
"archive": {
"type": "object",
"properties": {
"upload_id": {
"type": "string",
"pattern": "^upl_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"upload_id"
]
},
"product_type": {
"type": "string",
"const": "hosted-app"
}
},
"required": [
"input_type",
"archive"
]
}
]
}UploadRequest
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "archive"
},
"size_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 209715200
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
}
},
"required": [
"kind",
"size_bytes",
"sha256"
]
}Upload
{
"type": "object",
"properties": {
"upload_id": {
"type": "string",
"pattern": "^upl_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"put_url": {
"type": "string",
"format": "uri"
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"upload_id",
"put_url",
"expires_at"
]
}DescriptorConfirmationRequest
{
"type": "object",
"properties": {
"edits": {
"type": "object",
"properties": {
"build_plan": {
"type": "object",
"properties": {
"install": {
"type": "object",
"properties": {
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"command"
],
"additionalProperties": false
},
"build": {
"type": "object",
"properties": {
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"command"
],
"additionalProperties": false
},
"start": {
"type": "object",
"properties": {
"command": {
"type": "string"
}
},
"required": [
"command"
],
"additionalProperties": false
},
"health": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^\\/.*"
}
},
"required": [
"path"
],
"additionalProperties": false
}
},
"additionalProperties": false
},
"runtime": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "node"
},
"version": {
"type": "string",
"minLength": 1
}
},
"required": [
"kind",
"version"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "python"
},
"version": {
"type": "string",
"const": "3.14"
}
},
"required": [
"kind",
"version"
]
}
]
},
"entrypoint": {
"type": "object",
"properties": {
"command": {
"type": "string",
"minLength": 1
},
"args": {
"maxItems": 256,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"command",
"args"
]
},
"ports": {
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema1"
}
}
}
}
},
"$defs": {
"__schema0": {
"type": "string"
},
"__schema1": {
"type": "object",
"properties": {
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"protocol": {
"type": "string",
"const": "http"
}
},
"required": [
"port",
"protocol"
]
}
}
}EnsureRequest
{
"type": "object",
"properties": {}
}EvaluationRequest
{
"type": "object",
"properties": {
"intent": {
"type": "string",
"enum": [
"preview",
"qualification"
]
},
"rerun": {
"type": "boolean"
}
}
}AccessRequest
{
"type": "object",
"properties": {}
}SessionCreateRequest
{
"type": "object",
"properties": {
"surface_id": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"surface_id"
]
}InvocationCreateRequest
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "http_request"
},
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"pattern": "^\\/[^?#]*$"
},
"query_evidence": {
"$ref": "#/$defs/__schema0"
},
"body_evidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"method",
"path",
"body_evidence"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"minLength": 1
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
}
}
}Product
{
"type": "object",
"properties": {
"app_budget": {
"type": "object",
"properties": {
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"monthly_cap_credits": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"settled_credits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"reserved_credits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"app_id",
"monthly_cap_credits",
"settled_credits",
"reserved_credits"
]
},
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"root_path": {
"default": null,
"type": [
"string",
"null"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"type": {
"type": "string",
"const": "hosted-app"
},
"input_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"app_id",
"id",
"workspace_id",
"type",
"input_revision_id",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Revision
{
"type": "object",
"properties": {
"capability_contract": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "rejected"
},
"reason": {
"type": "string",
"enum": [
"unknown_capability",
"unknown_action",
"scope_invalid",
"scope_widened",
"owner_not_supported",
"contract_too_large"
]
}
},
"required": [
"status",
"reason"
]
},
"id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"input_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_type": {
"type": "string",
"const": "hosted-app"
},
"descriptor": {
"type": "object",
"properties": {
"build_plan": {
"type": "object",
"properties": {
"runtime": {
"$ref": "#/$defs/__schema0"
},
"workdir": {
"$ref": "#/$defs/__schema1"
},
"install": {
"$ref": "#/$defs/__schema2"
},
"build": {
"$ref": "#/$defs/__schema3"
},
"start": {
"$ref": "#/$defs/__schema4"
},
"port": {
"$ref": "#/$defs/__schema5"
},
"health": {
"$ref": "#/$defs/__schema6"
},
"env": {
"$ref": "#/$defs/__schema7"
}
},
"required": [
"runtime",
"workdir",
"install",
"build",
"start",
"port",
"health",
"env"
]
},
"runtime": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
"entrypoint": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"command",
"args"
]
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"port": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"protocol": {
"type": "string",
"const": "http"
}
},
"required": [
"port",
"protocol"
]
}
},
"field_sources": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"detected",
"developer"
]
}
}
},
"required": [
"runtime",
"entrypoint",
"ports",
"field_sources"
]
},
"descriptor_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"build_variables_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"confirmed_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"$ref": "#/$defs/__schema8"
},
"updated_at": {
"$ref": "#/$defs/__schema8"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"input_revision_id",
"product_type",
"descriptor",
"descriptor_hash",
"confirmed_by",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
"__schema1": {
"type": "string",
"pattern": "^\\/.*"
},
"__schema2": {
"type": "object",
"properties": {
"package_manager": {
"anyOf": [
{
"type": "string",
"enum": [
"pnpm",
"npm",
"yarn",
"pip",
"uv",
"poetry"
]
},
{
"type": "null"
}
]
},
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"package_manager",
"command"
]
},
"__schema3": {
"type": "object",
"properties": {
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"command"
]
},
"__schema4": {
"type": "object",
"properties": {
"command": {
"type": "string"
}
},
"required": [
"command"
]
},
"__schema5": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"__schema6": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^\\/.*"
},
"timeout_ms": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"timeout_ms"
]
},
"__schema7": {
"type": "array",
"items": {
"type": "string",
"enum": [
"PORT",
"NODE_ENV"
]
}
},
"__schema8": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}CapabilityContractRejected
{
"type": "object",
"properties": {
"capability_contract": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "rejected"
},
"reason": {
"type": "string",
"enum": [
"unknown_capability",
"unknown_action",
"scope_invalid",
"scope_widened",
"owner_not_supported",
"contract_too_large"
]
}
},
"required": [
"status",
"reason"
]
}
},
"required": [
"capability_contract"
]
}PipelineRun
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"intent": {
"type": "string",
"enum": [
"preview",
"qualification",
"reassessment",
"fix_reverify"
]
},
"status": {
"type": "string",
"enum": [
"pending_snapshot",
"authorization_requested",
"blocked",
"admitted",
"requested",
"reported",
"completed",
"failed",
"passed",
"warning",
"unsafe"
]
},
"reason_code": {
"type": "string"
},
"evidence": {
"default": [],
"type": "array",
"items": {
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
},
"log_evidence": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"minLength": 1
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
}
},
"required": [
"stage",
"log_evidence"
]
}
},
"qualification": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"qualified",
"stopped",
"pending"
]
},
"reason": {
"type": "string",
"enum": [
"missing_evidence",
"blocking_findings",
"verification_blocked"
]
},
"version_id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"status"
]
},
"findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"severity": {
"type": "string"
},
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"path": {
"type": "string"
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"path",
"line"
]
},
{
"type": "null"
}
]
},
"rule_id": {
"type": [
"string",
"null"
]
},
"dependency": {
"anyOf": [
{
"type": "object",
"properties": {
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"cvss",
"fixed_in"
]
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"severity",
"code",
"message"
]
}
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"revision_id",
"intent",
"status",
"findings",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}PipelineStages
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
},
"status": {
"type": "string",
"enum": [
"pending",
"running",
"ok",
"failed",
"timed_out",
"skipped"
]
},
"duration_ms": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"exit_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"message": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"started_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"stage",
"status",
"duration_ms",
"exit_code",
"message"
]
}
},
"next_cursor": {
"type": "null"
},
"phase": {
"type": "string",
"enum": [
"queued",
"preparing",
"running"
]
}
},
"required": [
"items",
"next_cursor"
]
}Version
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"qualification_record_id": {
"type": "string",
"pattern": "^qual_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"descriptor_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"artifact": {
"type": "object",
"properties": {
"uri": {
"$ref": "#/$defs/__schema0"
},
"sha256": {
"$ref": "#/$defs/__schema1"
},
"size_bytes": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"enum": [
"image",
"snapshot"
]
}
},
"required": [
"uri",
"sha256",
"size_bytes",
"kind"
]
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
},
"log_evidence": {
"type": "object",
"properties": {
"uri": {
"$ref": "#/$defs/__schema0"
},
"sha256": {
"$ref": "#/$defs/__schema1"
},
"size_bytes": {
"$ref": "#/$defs/__schema2"
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
}
},
"required": [
"stage",
"log_evidence"
]
}
},
"qualified_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"workspace_id",
"revision_id",
"product_id",
"qualification_record_id",
"pipeline_run_id",
"descriptor_hash",
"evidence",
"qualified_at"
],
"$defs": {
"__schema0": {
"type": "string",
"minLength": 1
},
"__schema1": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"__schema2": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}Deployment
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_id": {
"type": "string",
"pattern": "^env_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"slot": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"planned",
"applying",
"active",
"superseded",
"stopped",
"blocked",
"failed"
]
},
"reason_code": {
"type": "string"
},
"required_isolation_profile": {
"type": "string",
"const": "isolated-vm"
},
"egress": {
"anyOf": [
{
"type": "string",
"const": "deny"
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "allowlist"
},
"tier": {
"type": "string",
"enum": [
"free",
"paid"
]
},
"entries": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"mode",
"entries"
],
"additionalProperties": false
}
]
},
"database_check": {
"oneOf": [
{
"type": "object",
"properties": {
"result": {
"type": "string",
"const": "unreachable"
},
"phase": {
"type": "string",
"enum": [
"dns",
"no_public_ipv4",
"connect",
"timeout"
]
},
"checked_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"result",
"phase",
"checked_at"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"result": {
"type": "string",
"const": "blocked"
},
"blocked_reason": {
"type": "string",
"enum": [
"not_declared",
"platform",
"no_egress"
]
},
"checked_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"result",
"blocked_reason",
"checked_at"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"result": {
"type": "string",
"enum": [
"ok",
"auth_failed",
"database_not_found",
"rejected",
"invalid_url",
"tls_unsupported",
"tls_failed"
]
},
"checked_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"result",
"checked_at"
],
"additionalProperties": false
}
]
},
"isolation": {
"type": "object",
"properties": {
"profile": {
"type": "string",
"const": "isolated-vm"
},
"enforced": {
"type": "boolean"
}
},
"required": [
"profile",
"enforced"
]
},
"health": {
"type": "object",
"properties": {
"checked_at": {
"$ref": "#/$defs/__schema1"
},
"attempts": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"latency_ms": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"observed": {
"anyOf": [
{
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"healthy",
"unhealthy",
"not_running",
"missing",
"asleep",
"unknown"
]
},
"sampled_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"type": "null"
}
]
},
"last_healthy_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"type": "null"
}
]
},
"consecutive_failures": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"last_status_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"latency_ms": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"exit_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reason_code": {
"anyOf": [
{
"type": "string",
"enum": [
"http_status",
"timeout",
"connection_failed",
"process_exited",
"not_registered",
"workload_absent"
]
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"sampled_at",
"last_healthy_at",
"consecutive_failures",
"last_status_code",
"latency_ms",
"exit_code",
"reason_code"
]
},
{
"type": "null"
}
]
}
},
"required": [
"checked_at",
"attempts",
"latency_ms",
"observed"
]
},
"endpoint": {
"type": "object",
"properties": {
"address": {
"type": "string",
"minLength": 1
}
},
"required": [
"address"
]
},
"superseded_deployment_id": {
"anyOf": [
{
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"surface_id": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"severity": {
"type": "string"
},
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"path": {
"type": "string"
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"path",
"line"
]
},
{
"type": "null"
}
]
},
"rule_id": {
"type": [
"string",
"null"
]
},
"dependency": {
"anyOf": [
{
"type": "object",
"properties": {
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"cvss",
"fixed_in"
]
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"severity",
"code",
"message"
]
}
},
"created_at": {
"$ref": "#/$defs/__schema1"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "revision"
}
},
"required": [
"kind"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "release"
},
"release_id": {
"type": "string",
"pattern": "^rel_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"version_id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"release_id",
"version_id"
]
}
]
}
},
"required": [
"id",
"workspace_id",
"product_id",
"revision_id",
"environment_type",
"slot",
"status",
"required_isolation_profile",
"egress",
"findings",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"host": {
"type": "string",
"maxLength": 253,
"pattern": "^(\\*\\.)?([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]([a-z0-9-]{0,61}[a-z0-9])?$"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
],
"additionalProperties": false
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Surface
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_id": {
"type": "string",
"pattern": "^env_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"surface_type": {
"type": "string",
"const": "web"
},
"status": {
"type": "string",
"enum": [
"awaiting_expiration_registration",
"validating",
"active",
"expiration_registration_failed",
"configuration_failed",
"expired"
]
},
"reason_code": {
"type": "string"
},
"url": {
"type": "string"
},
"route": {
"type": "object",
"properties": {
"host": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"host",
"path"
]
},
"identity_requirement": {
"type": "string",
"enum": [
"none",
"workspace_member"
]
},
"access_policy": {
"type": "string",
"enum": [
"preview_direct",
"workspace_private"
]
},
"expires_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"deadline_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ddl_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"reachability": {
"type": "object",
"properties": {
"checked_at": {
"$ref": "#/$defs/__schema0"
},
"status_code": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"latency_ms": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"checked_at",
"status_code",
"latency_ms"
]
},
"activated_at": {
"$ref": "#/$defs/__schema0"
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"deployment_id",
"environment_id",
"environment_type",
"surface_type",
"status",
"identity_requirement",
"access_policy",
"expires_at",
"deadline_id",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Access
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^acc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"account_id": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"surface_id": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"access_entry": {
"type": "string",
"const": "direct_surface"
},
"entitlement_source": {
"type": "string",
"const": "direct"
},
"expires_at": {
"$ref": "#/$defs/__schema0"
},
"session_id": {
"type": "string",
"pattern": "^ses_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reused_existing_access": {
"type": "boolean"
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"account_id",
"product_id",
"surface_id",
"deployment_id",
"access_entry",
"entitlement_source",
"expires_at",
"reused_existing_access",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Session
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ses_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"surface_id": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"account_id": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"access_id": {
"type": "string",
"pattern": "^acc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_id": {
"type": "string",
"pattern": "^env_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"state": {
"type": "string",
"enum": [
"active",
"closed"
]
},
"closed_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"surface_id",
"account_id",
"access_id",
"environment_id",
"state",
"closed_at",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Invocation
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^inv_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"session_id": {
"type": "string",
"pattern": "^ses_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"surface_id": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"account_id": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"access_id": {
"type": "string",
"pattern": "^acc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"sequence": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"input": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "http_request"
},
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"pattern": "^\\/[^?#]*$"
},
"query_evidence": {
"$ref": "#/$defs/__schema0"
},
"body_evidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"method",
"path",
"body_evidence"
]
},
"admission": {
"anyOf": [
{
"type": "object",
"properties": {
"invocation_id": {
"$ref": "#/$defs/__schema1"
},
"session_id": {
"$ref": "#/$defs/__schema2"
},
"workspace_id": {
"$ref": "#/$defs/__schema3"
},
"product_id": {
"$ref": "#/$defs/__schema4"
},
"surface_id": {
"$ref": "#/$defs/__schema5"
},
"account_id": {
"$ref": "#/$defs/__schema6"
},
"outcome": {
"$ref": "#/$defs/__schema7"
},
"reason": {
"$ref": "#/$defs/__schema8"
},
"execution_id": {
"$ref": "#/$defs/__schema9"
},
"pending_operation_id": {
"$ref": "#/$defs/__schema10"
},
"checks": {
"$ref": "#/$defs/__schema11"
},
"message": {
"$ref": "#/$defs/__schema13"
},
"decided_at": {
"$ref": "#/$defs/__schema14"
}
},
"required": [
"invocation_id",
"session_id",
"workspace_id",
"product_id",
"surface_id",
"account_id",
"outcome",
"reason",
"execution_id",
"pending_operation_id",
"checks",
"message",
"decided_at"
]
},
{
"type": "null"
}
]
},
"execution": {
"anyOf": [
{
"type": "object",
"properties": {
"execution_id": {
"$ref": "#/$defs/__schema15"
},
"invocation_id": {
"$ref": "#/$defs/__schema16"
},
"session_id": {
"$ref": "#/$defs/__schema17"
},
"workspace_id": {
"$ref": "#/$defs/__schema18"
},
"product_id": {
"$ref": "#/$defs/__schema19"
},
"deployment_id": {
"$ref": "#/$defs/__schema20"
},
"execution_mode": {
"$ref": "#/$defs/__schema21"
},
"status": {
"$ref": "#/$defs/__schema22"
},
"failure": {
"$ref": "#/$defs/__schema23"
},
"result": {
"$ref": "#/$defs/__schema24"
},
"log_evidence": {
"$ref": "#/$defs/__schema26"
},
"usage": {
"$ref": "#/$defs/__schema27"
},
"started_at": {
"$ref": "#/$defs/__schema28"
},
"finished_at": {
"$ref": "#/$defs/__schema29"
}
},
"required": [
"execution_id",
"invocation_id",
"session_id",
"workspace_id",
"product_id",
"deployment_id",
"execution_mode",
"status",
"failure",
"result",
"log_evidence",
"usage",
"started_at",
"finished_at"
]
},
{
"type": "null"
}
]
},
"created_at": {
"$ref": "#/$defs/__schema30"
},
"updated_at": {
"$ref": "#/$defs/__schema30"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"session_id",
"surface_id",
"account_id",
"access_id",
"sequence",
"input",
"admission",
"execution",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"minLength": 1
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
},
"__schema1": {
"type": "string",
"pattern": "^inv_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema2": {
"type": "string",
"pattern": "^ses_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema4": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema5": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema6": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"__schema7": {
"type": "string",
"enum": [
"admitted",
"denied",
"pending"
]
},
"__schema8": {
"type": "string",
"enum": [
"admitted",
"permission_denied",
"policy_blocked",
"binding_unavailable",
"verification_blocked",
"usage_denied",
"rate_limited",
"pending_consent"
]
},
"__schema9": {
"anyOf": [
{
"type": "string",
"pattern": "^exe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"__schema10": {
"anyOf": [
{
"type": "string",
"pattern": "^pend_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"__schema11": {
"minItems": 1,
"maxItems": 5,
"type": "array",
"items": {
"$ref": "#/$defs/__schema12"
}
},
"__schema12": {
"type": "object",
"properties": {
"name": {
"type": "string",
"enum": [
"permission",
"policy",
"binding",
"verification",
"usage"
]
},
"status": {
"type": "string",
"enum": [
"passed",
"failed",
"skipped"
]
}
},
"required": [
"name",
"status"
]
},
"__schema13": {
"type": "string",
"maxLength": 512
},
"__schema14": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema15": {
"type": "string",
"pattern": "^exe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema16": {
"type": "string",
"pattern": "^inv_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema17": {
"type": "string",
"pattern": "^ses_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema18": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema19": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema20": {
"anyOf": [
{
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"__schema21": {
"type": "string",
"enum": [
"managed",
"remote",
"bridge"
]
},
"__schema22": {
"type": "string",
"enum": [
"completed",
"failed",
"cancelled",
"timed_out"
]
},
"__schema23": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": [
"product_error",
"runtime_error",
"timeout",
"cancelled",
"isolation_violation"
]
},
"message": {
"type": "string",
"maxLength": 2048
}
},
"required": [
"code",
"message"
]
},
{
"type": "null"
}
]
},
"__schema24": {
"type": "object",
"properties": {
"http_status": {
"anyOf": [
{
"type": "integer",
"minimum": 100,
"maximum": 599
},
{
"type": "null"
}
]
},
"body_evidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema25"
},
{
"type": "null"
}
]
}
},
"required": [
"http_status",
"body_evidence"
]
},
"__schema25": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"minLength": 1
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
},
"__schema26": {
"anyOf": [
{
"$ref": "#/$defs/__schema25"
},
{
"type": "null"
}
]
},
"__schema27": {
"type": "object",
"properties": {
"duration_ms": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"cpu_ms": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"memory_peak_bytes": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"duration_ms",
"cpu_ms",
"memory_peak_bytes"
]
},
"__schema28": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema29": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema30": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Problem
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"bad_request",
"unauthenticated",
"forbidden",
"not_found",
"conflict",
"validation_failed",
"rate_limited",
"internal",
"unavailable",
"outbox_not_redeliverable",
"log_not_available",
"workspace_suspended"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reason": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"path",
"message"
]
}
},
"errors_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"issue_class": {
"type": "string"
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"correlation_id"
]
}WorkspaceCreate
{
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
}WorkspaceCreated
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"name": {
"type": [
"string",
"null"
]
},
"workspace_role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
}
},
"required": [
"id",
"name",
"workspace_role"
]
}SignupGate
{
"type": "object",
"properties": {
"paused": {
"type": "boolean"
},
"changed_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"changed_by": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
}
},
"required": [
"paused",
"changed_at",
"changed_by"
]
}SignupStatus
{
"type": "object",
"properties": {
"paused": {
"type": "boolean"
},
"changed_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"changed_by": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"waiting_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"oldest_joined_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"released_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"paused",
"changed_at",
"changed_by",
"waiting_count",
"oldest_joined_at",
"released_count"
]
}SignupGateWrite
{
"type": "object",
"properties": {
"paused": {
"type": "boolean"
}
},
"required": [
"paused"
],
"additionalProperties": false
}SignupReleaseWrite
{
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"count"
],
"additionalProperties": false
}SignupRelease
{
"type": "object",
"properties": {
"released_count": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
},
"required": [
"released_count"
]
}WorkspaceSuspension
{
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"suspended_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"suspended_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"workspace_id",
"suspended_at",
"suspended_by"
]
}WorkspaceSuspensions
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"suspended_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"suspended_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"workspace_id",
"suspended_at",
"suspended_by"
]
}
}
},
"required": [
"items"
]
}WorkspaceSuspensionWrite
{
"type": "object",
"properties": {
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"reason"
]
}LogContent
{
"oneOf": [
{
"type": "object",
"properties": {
"workspace_id": {
"$ref": "#/$defs/__schema0"
},
"reported_at": {
"$ref": "#/$defs/__schema1"
},
"stored_size_bytes": {
"$ref": "#/$defs/__schema2"
},
"stored_sha256": {
"$ref": "#/$defs/__schema3"
},
"content": {
"$ref": "#/$defs/__schema4"
},
"content_bytes": {
"$ref": "#/$defs/__schema5"
},
"is_truncated": {
"$ref": "#/$defs/__schema6"
},
"redaction_count": {
"$ref": "#/$defs/__schema7"
},
"source": {
"type": "string",
"const": "pipeline_stage"
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"stage": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
}
},
"required": [
"workspace_id",
"reported_at",
"stored_size_bytes",
"stored_sha256",
"content",
"content_bytes",
"is_truncated",
"redaction_count",
"source",
"pipeline_run_id",
"stage"
]
},
{
"type": "object",
"properties": {
"workspace_id": {
"$ref": "#/$defs/__schema0"
},
"reported_at": {
"$ref": "#/$defs/__schema1"
},
"stored_size_bytes": {
"$ref": "#/$defs/__schema2"
},
"stored_sha256": {
"$ref": "#/$defs/__schema3"
},
"content": {
"$ref": "#/$defs/__schema4"
},
"content_bytes": {
"$ref": "#/$defs/__schema5"
},
"is_truncated": {
"$ref": "#/$defs/__schema6"
},
"redaction_count": {
"$ref": "#/$defs/__schema7"
},
"source": {
"type": "string",
"const": "deployment"
},
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"workspace_id",
"reported_at",
"stored_size_bytes",
"stored_sha256",
"content",
"content_bytes",
"is_truncated",
"redaction_count",
"source",
"deployment_id"
]
}
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema2": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"__schema3": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"__schema4": {
"type": "string"
},
"__schema5": {
"type": "integer",
"minimum": 0,
"maximum": 262144
},
"__schema6": {
"type": "boolean"
},
"__schema7": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}LiveLogTail
{
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"stage": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
},
"observed_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"content": {
"type": "string"
},
"content_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"total_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"is_truncated": {
"type": "boolean"
},
"line_in_progress": {
"type": "boolean"
},
"withheld_long_lines": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"withheld_reason": {
"anyOf": [
{
"type": "string",
"enum": [
"too_large",
"not_streamed"
]
},
{
"type": "null"
}
]
},
"redaction_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"workspace_id",
"pipeline_run_id",
"stage",
"observed_at",
"content",
"content_bytes",
"total_bytes",
"is_truncated",
"line_in_progress",
"withheld_long_lines",
"withheld_reason",
"redaction_count"
]
}VersionList
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"qualification_record_id": {
"type": "string",
"pattern": "^qual_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"descriptor_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"artifact": {
"type": "object",
"properties": {
"uri": {
"$ref": "#/$defs/__schema0"
},
"sha256": {
"$ref": "#/$defs/__schema1"
},
"size_bytes": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"enum": [
"image",
"snapshot"
]
}
},
"required": [
"uri",
"sha256",
"size_bytes",
"kind"
]
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
},
"log_evidence": {
"type": "object",
"properties": {
"uri": {
"$ref": "#/$defs/__schema0"
},
"sha256": {
"$ref": "#/$defs/__schema1"
},
"size_bytes": {
"$ref": "#/$defs/__schema2"
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
}
},
"required": [
"stage",
"log_evidence"
]
}
},
"qualified_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"workspace_id",
"revision_id",
"product_id",
"qualification_record_id",
"pipeline_run_id",
"descriptor_hash",
"evidence",
"qualified_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"minLength": 1
},
"__schema1": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"__schema2": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}ProductBudgetRequest
{
"type": "object",
"properties": {
"monthly_cap_credits": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"monthly_cap_credits"
],
"additionalProperties": false
}ProductBudget
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"monthly_cap_credits": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"cycle_started_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"cycle_ends_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"settled_credits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"reserved_credits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"platform_cost_estimate_credits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"forecast_credits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"forecast_is_estimate": {
"type": "boolean",
"const": true
},
"thresholds_reached": {
"type": "array",
"items": {
"anyOf": [
{
"type": "number",
"const": 70
},
{
"type": "number",
"const": 85
},
{
"type": "number",
"const": 95
},
{
"type": "number",
"const": 100
}
]
}
}
},
"required": [
"app_id",
"monthly_cap_credits",
"cycle_started_at",
"cycle_ends_at",
"settled_credits",
"reserved_credits",
"platform_cost_estimate_credits",
"forecast_credits",
"forecast_is_estimate",
"thresholds_reached"
]
}DevCapabilityRequest
{
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"capability_id": {
"type": "string",
"minLength": 1
},
"action": {
"type": "string",
"minLength": 1
},
"request": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"input": {},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"required": [
"workspace_id",
"product_id",
"capability_id",
"action",
"request",
"input",
"idempotency_key"
],
"additionalProperties": false
}AppMemberMonthly
{
"type": "object",
"properties": {
"month": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
},
"total_members": {
"$ref": "#/$defs/__schema0"
},
"free_members": {
"$ref": "#/$defs/__schema0"
},
"billable_members": {
"description": "Members above the monthly free allowance. Months with billing_active=false are not charged.",
"$ref": "#/$defs/__schema0"
},
"charged_members": {
"$ref": "#/$defs/__schema0"
},
"charged_credits": {
"type": "number",
"minimum": 0
},
"charged_as_of": {
"anyOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"type": "null"
}
],
"description": "Latest member settlement write time. The hourly sweep writes settlements, which may lag by up to one hour; null when no settlement exists."
},
"credits_per_member": {
"type": "number",
"minimum": 0
},
"billing_active": {
"type": "boolean"
},
"rate_from_billing_start": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
},
"billing_starts_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"apps": {
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema2"
}
},
"apps_truncated": {
"type": "boolean"
}
},
"required": [
"month",
"total_members",
"free_members",
"billable_members",
"charged_members",
"charged_credits",
"charged_as_of",
"credits_per_member",
"billing_active",
"rate_from_billing_start",
"billing_starts_at",
"apps",
"apps_truncated"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema2": {
"type": "object",
"properties": {
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"app_name": {
"type": [
"string",
"null"
]
},
"members": {
"exclusiveMinimum": 0,
"$ref": "#/$defs/__schema0"
}
},
"required": [
"app_id",
"app_name",
"members"
]
}
}
}BillingProblem
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"bad_request",
"unauthenticated",
"forbidden",
"not_found",
"conflict",
"validation_failed",
"rate_limited",
"internal",
"unavailable",
"wallet_not_found",
"rate_card_missing"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reason": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"path",
"message"
]
}
},
"errors_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"correlation_id"
]
}Wallet
{
"type": "object",
"properties": {
"seats": {
"type": "object",
"properties": {
"included": {
"$ref": "#/$defs/__schema0"
},
"extra": {
"$ref": "#/$defs/__schema0"
},
"pending_extra": {
"$ref": "#/$defs/__schema0"
},
"max": {
"$ref": "#/$defs/__schema0"
},
"used": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"included",
"extra",
"pending_extra",
"max",
"used"
]
},
"exhausted_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"subscription_tier": {
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
},
"cycle_started_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"cycle_ends_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"available_credits": {
"$ref": "#/$defs/__schema0"
},
"reserved_credits": {
"$ref": "#/$defs/__schema0"
},
"arrears_credits": {
"$ref": "#/$defs/__schema0"
},
"buckets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"promo",
"subscription",
"purchased"
]
},
"remaining_credits": {
"$ref": "#/$defs/__schema0"
},
"expires_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"remaining_credits",
"expires_at"
]
}
}
},
"required": [
"seats",
"subscription_tier",
"cycle_started_at",
"cycle_ends_at",
"available_credits",
"reserved_credits",
"buckets"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}CreditTransaction
{
"type": "object",
"properties": {
"product_id": {
"anyOf": [
{
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"native_units": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"unit": {
"anyOf": [
{
"type": "string",
"enum": [
"ms",
"byte_days",
"tokens",
"calls",
"bytes",
"members"
]
},
{
"type": "null"
}
]
},
"id": {
"type": "string",
"pattern": "^ctx_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"kind": {
"type": "string",
"enum": [
"grant",
"reserve",
"settle",
"release",
"refund",
"adjust",
"cycle_reset"
]
},
"credits": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"bucket_breakdown": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"usage_category": {
"anyOf": [
{
"type": "string",
"enum": [
"ai_tokens",
"runtime",
"storage",
"provider_call",
"app_members"
]
},
{
"type": "null"
}
]
},
"subject_id": {
"type": [
"string",
"null"
]
},
"evidence_key": {
"type": [
"string",
"null"
]
},
"rate_card_version": {
"type": [
"string",
"null"
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"actor": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "usr"
},
"id": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"id"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "system"
},
"id": {
"type": "string",
"const": "platform"
}
},
"required": [
"kind",
"id"
]
}
]
},
"detail": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"input_units": {
"$ref": "#/$defs/__schema0"
},
"output_units": {
"$ref": "#/$defs/__schema0"
},
"input_rate": {
"$ref": "#/$defs/__schema0"
},
"output_rate": {
"$ref": "#/$defs/__schema0"
},
"fallback_used": {
"type": "boolean"
},
"rate_card_missing": {
"type": "boolean",
"const": true
}
}
}
},
"required": [
"product_id",
"native_units",
"unit",
"id",
"workspace_id",
"kind",
"credits",
"bucket_breakdown",
"usage_category",
"subject_id",
"evidence_key",
"rate_card_version",
"created_at",
"actor"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}CreditTransactions
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_id": {
"anyOf": [
{
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"native_units": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"unit": {
"anyOf": [
{
"type": "string",
"enum": [
"ms",
"byte_days",
"tokens",
"calls",
"bytes",
"members"
]
},
{
"type": "null"
}
]
},
"id": {
"type": "string",
"pattern": "^ctx_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"kind": {
"type": "string",
"enum": [
"grant",
"reserve",
"settle",
"release",
"refund",
"adjust",
"cycle_reset"
]
},
"credits": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"bucket_breakdown": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"usage_category": {
"anyOf": [
{
"type": "string",
"enum": [
"ai_tokens",
"runtime",
"storage",
"provider_call",
"app_members"
]
},
{
"type": "null"
}
]
},
"subject_id": {
"type": [
"string",
"null"
]
},
"evidence_key": {
"type": [
"string",
"null"
]
},
"rate_card_version": {
"type": [
"string",
"null"
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"actor": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "usr"
},
"id": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"id"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "system"
},
"id": {
"type": "string",
"const": "platform"
}
},
"required": [
"kind",
"id"
]
}
]
},
"detail": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"input_units": {
"$ref": "#/$defs/__schema0"
},
"output_units": {
"$ref": "#/$defs/__schema0"
},
"input_rate": {
"$ref": "#/$defs/__schema0"
},
"output_rate": {
"$ref": "#/$defs/__schema0"
},
"fallback_used": {
"type": "boolean"
},
"rate_card_missing": {
"type": "boolean",
"const": true
}
}
}
},
"required": [
"product_id",
"native_units",
"unit",
"id",
"workspace_id",
"kind",
"credits",
"bucket_breakdown",
"usage_category",
"subject_id",
"evidence_key",
"rate_card_version",
"created_at",
"actor"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}CreditGrant
{
"type": "object",
"properties": {
"kind": {
"$ref": "#/$defs/__schema0"
},
"credits": {
"$ref": "#/$defs/__schema1"
},
"expires_at": {
"$ref": "#/$defs/__schema2"
},
"reason": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"kind",
"credits",
"reason"
],
"$defs": {
"__schema0": {
"type": "string",
"enum": [
"promo",
"purchased"
]
},
"__schema1": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"__schema2": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema3": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
}
}WalletSubscription
{
"type": "object",
"properties": {
"tier": {
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
}
},
"required": [
"tier"
]
}RateCardWrite
{
"type": "object",
"properties": {
"input_rate": {
"$ref": "#/$defs/__schema0"
},
"output_rate": {
"$ref": "#/$defs/__schema0"
},
"effective_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"input_rate",
"output_rate",
"effective_at"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}RateCard
{
"type": "object",
"properties": {
"input_rate": {
"$ref": "#/$defs/__schema0"
},
"output_rate": {
"$ref": "#/$defs/__schema0"
},
"effective_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"provider": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"model": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"rate_card_version": {
"type": "string"
}
},
"required": [
"input_rate",
"output_rate",
"effective_at",
"provider",
"model",
"rate_card_version"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}RateCards
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"input_rate": {
"$ref": "#/$defs/__schema0"
},
"output_rate": {
"$ref": "#/$defs/__schema0"
},
"effective_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"provider": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"model": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"rate_card_version": {
"type": "string"
}
},
"required": [
"input_rate",
"output_rate",
"effective_at",
"provider",
"model",
"rate_card_version"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}SubscriptionTierWrite
{
"type": "object",
"properties": {
"monthly_credits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"price_twd": {
"type": "number",
"minimum": 0
}
},
"required": [
"monthly_credits",
"price_twd"
]
}SubscriptionTier
{
"type": "object",
"properties": {
"monthly_credits": {
"$ref": "#/$defs/__schema0"
},
"price_twd": {
"type": "number",
"minimum": 0
},
"tier": {
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
},
"seats_included": {
"$ref": "#/$defs/__schema0"
},
"seats_max": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"monthly_credits",
"price_twd",
"tier",
"seats_included",
"seats_max"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}SubscriptionTiers
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"monthly_credits": {
"$ref": "#/$defs/__schema0"
},
"price_twd": {
"type": "number",
"minimum": 0
},
"tier": {
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
},
"seats_included": {
"$ref": "#/$defs/__schema0"
},
"seats_max": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"monthly_credits",
"price_twd",
"tier",
"seats_included",
"seats_max"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}PaymentReconciliation
{
"type": "object",
"properties": {
"month": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
},
"timezone": {
"type": "string",
"const": "Asia/Taipei"
},
"from": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"to": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"orders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"gateway": {
"$ref": "#/$defs/__schema0"
},
"kind": {
"type": "string",
"enum": [
"topup",
"subscription",
"renewal"
]
},
"amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"credits": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"tier": {
"anyOf": [
{
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"created",
"pending",
"paid",
"failed",
"cancelled",
"refunded",
"partially_refunded"
]
},
"gateway_order_no": {
"type": "string"
},
"gateway_trade_no": {
"type": [
"string",
"null"
]
},
"period_no": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"idempotency_key": {
"type": "string"
},
"actor": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"paid_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"credit_bucket_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"workspace_id",
"gateway",
"kind",
"amount_twd",
"credits",
"tier",
"status",
"gateway_order_no",
"idempotency_key",
"actor",
"created_at",
"paid_at",
"credit_bucket_id"
]
}
},
"refunds": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^rfd_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"payment_order_id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"reason": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"requested",
"succeeded",
"failed"
]
},
"gateway_refund_no": {
"type": [
"string",
"null"
]
},
"actor": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"invoice_job_status": {
"type": "string",
"enum": [
"pending",
"in_flight",
"done",
"failed",
"unknown"
]
},
"invoice_ref": {
"type": [
"string",
"null"
]
},
"gateway": {
"$ref": "#/$defs/__schema0"
},
"gateway_order_no": {
"type": "string"
}
},
"required": [
"id",
"workspace_id",
"payment_order_id",
"amount_twd",
"reason",
"status",
"gateway_refund_no",
"actor",
"created_at",
"invoice_job_status",
"invoice_ref",
"gateway",
"gateway_order_no"
]
}
},
"totals": {
"type": "object",
"properties": {
"paid_orders": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"paid_amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"refunded_amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"open_orders": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"not_credited_orders": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"paid_orders",
"paid_amount_twd",
"refunded_amount_twd",
"open_orders",
"not_credited_orders"
]
}
},
"required": [
"month",
"timezone",
"from",
"to",
"orders",
"refunds",
"totals"
],
"$defs": {
"__schema0": {
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
}
}
}RenewalResolution
{
"oneOf": [
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"const": "paid"
},
"trade_no": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"required": [
"outcome",
"trade_no"
]
},
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"const": "failed"
}
},
"required": [
"outcome"
]
}
]
}PaymentAttention
{
"type": "object",
"properties": {
"initial_unconfirmed": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspace_id": {
"$ref": "#/$defs/__schema0"
},
"order_id": {
"$ref": "#/$defs/__schema1"
},
"gateway": {
"$ref": "#/$defs/__schema2"
},
"since": {
"$ref": "#/$defs/__schema3"
},
"reason": {
"type": "string",
"const": "unknown"
}
},
"required": [
"workspace_id",
"order_id",
"gateway",
"since",
"reason"
]
}
},
"renewal_overdue": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspace_id": {
"$ref": "#/$defs/__schema0"
},
"order_id": {
"$ref": "#/$defs/__schema1"
},
"gateway": {
"$ref": "#/$defs/__schema2"
},
"since": {
"$ref": "#/$defs/__schema3"
},
"reason": {
"type": "string",
"enum": [
"unknown",
"lookup_failed",
"mandate_terminated",
"mandate_paused"
]
}
},
"required": [
"workspace_id",
"order_id",
"gateway",
"since",
"reason"
]
}
},
"cancel_pending": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"order_id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"gateway": {
"$ref": "#/$defs/__schema2"
},
"cancel_attempts": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"next_cancel_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"workspace_id",
"order_id",
"gateway",
"cancel_attempts",
"next_cancel_at"
]
}
},
"refund_due": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"order_id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"gateway": {
"$ref": "#/$defs/__schema2"
},
"amount_twd": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"workspace_id",
"order_id",
"gateway",
"amount_twd"
]
}
}
},
"required": [
"initial_unconfirmed",
"renewal_overdue",
"cancel_pending",
"refund_due"
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema2": {
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
},
"__schema3": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}MandateCancelled
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"mandate_state": {
"type": "string",
"const": "cancelled"
}
},
"required": [
"order_id",
"mandate_state"
]
}PaymentProblem
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"bad_request",
"unauthenticated",
"forbidden",
"not_found",
"conflict",
"validation_failed",
"rate_limited",
"internal",
"unavailable",
"billing_profile_required",
"subscription_change_pending",
"order_not_payable",
"refund_exceeds_paid",
"refund_window_closed",
"refund_exceeds_unused",
"callback_signature_invalid",
"gateway_unavailable"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reason": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"path",
"message"
]
}
},
"errors_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"correlation_id"
]
}BillingProfile
{
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"buyer_kind": {
"type": "string",
"enum": [
"individual",
"business"
]
},
"title": {
"type": "string"
},
"tax_id": {
"type": [
"string",
"null"
]
},
"invoice_email": {
"type": "string",
"maxLength": 50,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"carrier": {
"anyOf": [
{
"type": "string",
"maxLength": 50
},
{
"type": "null"
}
]
},
"donation_code": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{3,7}$"
},
{
"type": "null"
}
]
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"workspace_id",
"buyer_kind",
"title",
"tax_id",
"invoice_email",
"carrier",
"donation_code",
"updated_at"
]
}BillingProfileWrite
{
"oneOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"$ref": "#/$defs/__schema4"
}
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"invoice_email": {
"$ref": "#/$defs/__schema1"
},
"carrier": {
"$ref": "#/$defs/__schema2"
},
"donation_code": {
"$ref": "#/$defs/__schema3"
},
"buyer_kind": {
"type": "string",
"const": "individual"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 30
},
"tax_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{8}$"
},
{
"type": "null"
}
]
}
},
"required": [
"invoice_email",
"carrier",
"donation_code",
"buyer_kind",
"title",
"tax_id"
]
},
"__schema1": {
"type": "string",
"maxLength": 50,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"__schema2": {
"anyOf": [
{
"type": "string",
"maxLength": 50
},
{
"type": "null"
}
]
},
"__schema3": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{3,7}$"
},
{
"type": "null"
}
]
},
"__schema4": {
"type": "object",
"properties": {
"invoice_email": {
"$ref": "#/$defs/__schema1"
},
"carrier": {
"$ref": "#/$defs/__schema2"
},
"donation_code": {
"$ref": "#/$defs/__schema3"
},
"buyer_kind": {
"type": "string",
"const": "business"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"tax_id": {
"type": "string",
"pattern": "^\\d{8}$"
}
},
"required": [
"invoice_email",
"carrier",
"donation_code",
"buyer_kind",
"title",
"tax_id"
]
}
}
}PaymentCheckout
{
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "topup"
},
"gateway": {
"$ref": "#/$defs/__schema0"
},
"amount_twd": {
"anyOf": [
{
"type": "number",
"const": 100
},
{
"type": "number",
"const": 300
},
{
"type": "number",
"const": 500
}
]
},
"return_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind",
"gateway",
"amount_twd",
"return_url"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "subscription"
},
"gateway": {
"$ref": "#/$defs/__schema0"
},
"tier": {
"type": "string",
"enum": [
"starter",
"pro",
"business"
]
},
"return_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind",
"gateway",
"tier",
"return_url"
]
}
],
"$defs": {
"__schema0": {
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
}
}
}PaymentOrder
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"gateway": {
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
},
"kind": {
"type": "string",
"enum": [
"topup",
"subscription",
"renewal"
]
},
"amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"credits": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"tier": {
"anyOf": [
{
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"created",
"pending",
"paid",
"failed",
"cancelled",
"refunded",
"partially_refunded"
]
},
"gateway_order_no": {
"type": "string"
},
"gateway_trade_no": {
"type": [
"string",
"null"
]
},
"period_no": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"idempotency_key": {
"type": "string"
},
"actor": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"paid_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"workspace_id",
"gateway",
"kind",
"amount_twd",
"credits",
"tier",
"status",
"gateway_order_no",
"idempotency_key",
"actor",
"created_at",
"paid_at"
]
}PaymentOrders
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"gateway": {
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
},
"kind": {
"type": "string",
"enum": [
"topup",
"subscription",
"renewal"
]
},
"amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"credits": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"tier": {
"anyOf": [
{
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"created",
"pending",
"paid",
"failed",
"cancelled",
"refunded",
"partially_refunded"
]
},
"gateway_order_no": {
"type": "string"
},
"gateway_trade_no": {
"type": [
"string",
"null"
]
},
"period_no": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"idempotency_key": {
"type": "string"
},
"actor": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"paid_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"workspace_id",
"gateway",
"kind",
"amount_twd",
"credits",
"tier",
"status",
"gateway_order_no",
"idempotency_key",
"actor",
"created_at",
"paid_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}PaymentSubscription
{
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"tier": {
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
},
"gateway": {
"anyOf": [
{
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
},
{
"type": "null"
}
]
},
"recurring_ref": {
"type": [
"string",
"null"
]
},
"renewal_state": {
"type": "string",
"enum": [
"active",
"cancel_at_cycle_end",
"past_due_grace",
"free"
]
},
"cycle_ends_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"grace_until": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"next_charge_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"workspace_id",
"tier",
"gateway",
"recurring_ref",
"renewal_state",
"cycle_ends_at",
"grace_until",
"next_charge_at",
"updated_at"
]
}PaymentSubscriptionWrite
{
"type": "object",
"properties": {
"tier": {
"type": "string",
"const": "free"
}
},
"required": [
"tier"
]
}PaymentCheckoutResult
{
"type": "object",
"properties": {
"order": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"gateway": {
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
},
"kind": {
"type": "string",
"enum": [
"topup",
"subscription",
"renewal"
]
},
"amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"credits": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"tier": {
"anyOf": [
{
"type": "string",
"enum": [
"free",
"starter",
"pro",
"business"
]
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"created",
"pending",
"paid",
"failed",
"cancelled",
"refunded",
"partially_refunded"
]
},
"gateway_order_no": {
"type": "string"
},
"gateway_trade_no": {
"type": [
"string",
"null"
]
},
"period_no": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"idempotency_key": {
"type": "string"
},
"actor": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"paid_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"workspace_id",
"gateway",
"kind",
"amount_twd",
"credits",
"tier",
"status",
"gateway_order_no",
"idempotency_key",
"actor",
"created_at",
"paid_at"
]
},
"redirect": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"method": {
"type": "string",
"const": "POST"
},
"fields": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"url",
"method",
"fields"
]
}
},
"required": [
"order",
"redirect"
]
}Invoices
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ivc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"payment_order_id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"issuer": {
"type": "string",
"const": "ezpay"
},
"invoice_no": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string",
"enum": [
"pending",
"issued",
"voided",
"failed"
]
},
"buyer": {
"type": "object",
"properties": {
"buyer_kind": {
"type": "string",
"enum": [
"individual",
"business"
]
},
"title": {
"type": "string"
},
"tax_id": {
"type": [
"string",
"null"
]
},
"carrier": {
"anyOf": [
{
"type": "string",
"maxLength": 50
},
{
"type": "null"
}
]
},
"donation_code": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{3,7}$"
},
{
"type": "null"
}
]
}
},
"required": [
"buyer_kind",
"title",
"tax_id",
"carrier",
"donation_code"
]
},
"issued_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"attempts": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"last_error_code": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"workspace_id",
"payment_order_id",
"issuer",
"invoice_no",
"status",
"issued_at",
"attempts",
"last_error_code"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}PaymentRefundWrite
{
"type": "object",
"properties": {
"payment_id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"amount_twd": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"basis": {
"type": "string",
"enum": [
"cancellation",
"account_terminated",
"service_discontinued",
"billing_error"
]
}
},
"required": [
"payment_id",
"amount_twd",
"reason"
]
}PaymentRefund
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^rfd_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"payment_order_id": {
"type": "string",
"pattern": "^pay_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"reason": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"requested",
"succeeded",
"failed"
]
},
"gateway_refund_no": {
"type": [
"string",
"null"
]
},
"actor": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"invoice_job_status": {
"type": "string",
"enum": [
"pending",
"in_flight",
"done",
"failed",
"unknown"
]
},
"invoice_ref": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"workspace_id",
"payment_order_id",
"amount_twd",
"reason",
"status",
"gateway_refund_no",
"actor",
"created_at",
"invoice_job_status",
"invoice_ref"
]
}AuditRecord
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"occurred_at": {
"$ref": "#/$defs/__schema2"
},
"recorded_at": {
"$ref": "#/$defs/__schema3"
},
"action": {
"$ref": "#/$defs/__schema4"
},
"actor": {
"$ref": "#/$defs/__schema5"
},
"target": {
"$ref": "#/$defs/__schema6"
},
"outcome": {
"$ref": "#/$defs/__schema10"
},
"reason": {
"$ref": "#/$defs/__schema11"
},
"correlation_id": {
"$ref": "#/$defs/__schema9"
},
"source_event_id": {
"$ref": "#/$defs/__schema13"
},
"source_request_id": {
"$ref": "#/$defs/__schema14"
},
"environment": {
"$ref": "#/$defs/__schema15"
},
"detail": {
"$ref": "#/$defs/__schema16"
}
},
"required": [
"id",
"workspace_id",
"occurred_at",
"recorded_at",
"action",
"actor",
"target",
"outcome",
"reason",
"correlation_id",
"source_event_id",
"source_request_id",
"environment",
"detail"
],
"additionalProperties": false,
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^aud_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"__schema2": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema3": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema4": {
"type": "string",
"enum": [
"workspace.suspended",
"workspace.unsuspended",
"workspace.created",
"signup.waitlisted",
"signup.gate_changed",
"signup.released",
"variable.set",
"variable.deleted",
"capability.dev_invoked",
"inbound_webhook.created",
"inbound_webhook.deleted",
"auto_deploy.enabled",
"auto_deploy.disabled",
"auto_deploy.triggered",
"closure.requested",
"closure.completed",
"closure.withdrawn",
"billing.arrears_written_off",
"billing.payment_succeeded",
"billing.payment_failed",
"billing.refunded",
"billing.subscription_changed",
"billing.profile_changed",
"billing.invoice_issued",
"billing.granted",
"billing.adjusted",
"billing.tier_changed",
"billing.rate_card_updated",
"billing.subscription_tier_updated",
"credential.created",
"credential.revoked",
"credential.rotated",
"binding.requested",
"binding.ready",
"binding.failed",
"binding.revoked",
"binding.expired",
"service_identity.created",
"service_identity.revoked",
"service_identity.secret_rotated",
"member.upserted",
"member.role_changed",
"member.removed",
"platform.bootstrapped",
"platform.outbox_redelivered",
"platform.outbox_closed",
"app.member_auth_updated",
"app.forwarding_updated",
"app.created",
"app.deleted",
"app.closure_requested",
"product.moved",
"product.created",
"release.created",
"deployment.requested",
"deployment.stop_requested",
"deployment.ready",
"deployment.stopped",
"plan.changed",
"budget.changed",
"capability.denied",
"capability.output_blocked",
"capability.fallback",
"capability.usage_unreported",
"bridge.rejected",
"usage.denied",
"access.qualified",
"access.denied",
"access.revoked",
"isolation.unenforced_run",
"isolation.blocked",
"pending.resolved",
"fix.requested",
"fix.decided",
"fix.patch_withheld",
"adjudication.decided",
"authz.forbidden",
"authz.workspace_mismatch",
"audit.exported",
"managed_resource.kv_restored",
"audit.retention_deleted"
]
},
"__schema5": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "usr"
},
"id": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "svc"
},
"id": {
"type": "string",
"pattern": "^svc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "prod"
},
"id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "system"
},
"id": {
"type": "string",
"enum": [
"platform",
"platform-bootstrap",
"make",
"deliver",
"identity"
]
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "runner"
},
"id": {
"type": "string",
"const": "runner"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
}
]
},
"__schema6": {
"type": "object",
"properties": {
"kind": {
"$ref": "#/$defs/__schema7"
},
"id": {
"$ref": "#/$defs/__schema8"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
"__schema7": {
"type": "string",
"enum": [
"brk",
"rsm",
"pvar",
"minv",
"trg",
"hook",
"mrun",
"mres",
"ws",
"aus",
"mba",
"app",
"usr",
"prod",
"rev",
"ver",
"rel",
"env",
"dep",
"srf",
"acc",
"ses",
"inv",
"exe",
"evt",
"pend",
"ddl",
"ntf",
"pipe",
"fnd",
"qual",
"cred",
"bind",
"hdl",
"cap",
"svc",
"frz",
"adj",
"fix",
"upl",
"dom",
"wb",
"ctx",
"aud",
"pay",
"ivc",
"rfd"
]
},
"__schema8": {
"anyOf": [
{
"$ref": "#/$defs/__schema9"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"__schema9": {
"type": "string",
"pattern": "^(brk|rsm|pvar|minv|trg|hook|mrun|mres|ws|aus|mba|app|usr|prod|rev|ver|rel|env|dep|srf|acc|ses|inv|exe|evt|pend|ddl|ntf|pipe|fnd|qual|cred|bind|hdl|cap|svc|frz|adj|fix|upl|dom|wb|ctx|aud|pay|ivc|rfd)_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema10": {
"type": "string",
"enum": [
"allowed",
"denied",
"failed",
"changed"
]
},
"__schema11": {
"anyOf": [
{
"$ref": "#/$defs/__schema12"
},
{
"type": "null"
}
]
},
"__schema12": {
"type": "string",
"enum": [
"insufficient_credit",
"app_budget_exceeded",
"outside_contract",
"permission_denied",
"policy_blocked",
"binding_missing",
"binding_revoked",
"usage_denied",
"provider_unavailable",
"provider_rejected",
"output_blocked",
"platform_unavailable",
"other",
"scope_denied",
"rate_limited",
"budget_exhausted",
"within_policy",
"budget_exceeded",
"plan_not_entitled",
"approval_rejected",
"approval_expired",
"qualified",
"identity_required",
"membership_required",
"rate_card_missing",
"surface_expired",
"surface_not_found",
"trust_blocked",
"isolation_blocked",
"sanitized_input",
"test_fixture",
"dead_code",
"not_reachable",
"sink_reachable",
"no_sanitizer",
"pattern_only",
"model_error",
"excerpt_missing",
"timeout",
"forbidden",
"workspace_mismatch"
]
},
"__schema13": {
"anyOf": [
{
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"__schema14": {
"anyOf": [
{
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"__schema15": {
"anyOf": [
{
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
{
"type": "null"
}
]
},
"__schema16": {
"anyOf": [
{
"type": "object",
"properties": {
"member_auth_mode": {
"type": "string",
"enum": [
"off",
"platform",
"byok"
]
},
"suspension_reason": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"paused": {
"type": "boolean"
},
"released_count": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"from_product_id": {
"anyOf": [
{
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"to_product_id": {
"anyOf": [
{
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"path_prefix": {
"anyOf": [
{
"type": "string",
"const": "/api/"
},
{
"type": "null"
}
]
},
"from_app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"to_app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"variable_name": {
"type": "string",
"pattern": "^[A-Z_][A-Z0-9_]{0,63}$"
},
"variable_kind": {
"type": "string",
"enum": [
"build",
"runtime",
"secret"
]
},
"gateway": {
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
},
"amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"order_kind": {
"type": "string",
"enum": [
"topup",
"subscription",
"renewal"
]
},
"credits": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"bucket": {
"type": "string",
"enum": [
"subscription",
"topup",
"grant"
]
},
"tier": {
"$ref": "#/$defs/__schema17"
},
"rate_card_version": {
"$ref": "#/$defs/__schema17"
},
"capability": {
"$ref": "#/$defs/__schema17"
},
"action": {
"$ref": "#/$defs/__schema17"
},
"provider": {
"$ref": "#/$defs/__schema17"
},
"plan": {
"$ref": "#/$defs/__schema17"
},
"budget_category": {
"$ref": "#/$defs/__schema17"
},
"unit": {
"$ref": "#/$defs/__schema17"
},
"units": {
"type": "number",
"minimum": 0
},
"http_status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"isolation_profile": {
"type": "string",
"enum": [
"isolated-vm",
"isolated-kernel",
"trusted"
]
},
"enforced": {
"type": "boolean"
},
"role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
},
"environment": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"reason": {
"$ref": "#/$defs/__schema12"
},
"route": {
"type": "string",
"maxLength": 256
},
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS"
]
},
"usage_category": {
"type": "string",
"enum": [
"ai_tokens",
"runtime",
"provider_call",
"storage",
"app_members"
]
},
"identity_kind": {
"type": "string",
"enum": [
"workspace-member",
"consumer",
"service"
]
},
"code": {
"$ref": "#/$defs/__schema17"
},
"phase": {
"type": "string",
"enum": [
"apply",
"startup",
"health_check"
]
},
"outcome": {
"type": "string",
"enum": [
"approved",
"rejected",
"withdrawn",
"expired",
"superseded",
"false_positive",
"confirmed",
"inconclusive"
]
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"__schema17": {
"type": "string",
"maxLength": 256
}
}
}AuditRecords
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"occurred_at": {
"$ref": "#/$defs/__schema2"
},
"recorded_at": {
"$ref": "#/$defs/__schema3"
},
"action": {
"$ref": "#/$defs/__schema4"
},
"actor": {
"$ref": "#/$defs/__schema5"
},
"target": {
"$ref": "#/$defs/__schema6"
},
"outcome": {
"$ref": "#/$defs/__schema10"
},
"reason": {
"$ref": "#/$defs/__schema11"
},
"correlation_id": {
"$ref": "#/$defs/__schema9"
},
"source_event_id": {
"$ref": "#/$defs/__schema13"
},
"source_request_id": {
"$ref": "#/$defs/__schema14"
},
"environment": {
"$ref": "#/$defs/__schema15"
},
"detail": {
"$ref": "#/$defs/__schema16"
}
},
"required": [
"id",
"workspace_id",
"occurred_at",
"recorded_at",
"action",
"actor",
"target",
"outcome",
"reason",
"correlation_id",
"source_event_id",
"source_request_id",
"environment",
"detail"
],
"additionalProperties": false
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^aud_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"__schema2": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema3": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema4": {
"type": "string",
"enum": [
"workspace.suspended",
"workspace.unsuspended",
"workspace.created",
"signup.waitlisted",
"signup.gate_changed",
"signup.released",
"variable.set",
"variable.deleted",
"capability.dev_invoked",
"inbound_webhook.created",
"inbound_webhook.deleted",
"auto_deploy.enabled",
"auto_deploy.disabled",
"auto_deploy.triggered",
"closure.requested",
"closure.completed",
"closure.withdrawn",
"billing.arrears_written_off",
"billing.payment_succeeded",
"billing.payment_failed",
"billing.refunded",
"billing.subscription_changed",
"billing.profile_changed",
"billing.invoice_issued",
"billing.granted",
"billing.adjusted",
"billing.tier_changed",
"billing.rate_card_updated",
"billing.subscription_tier_updated",
"credential.created",
"credential.revoked",
"credential.rotated",
"binding.requested",
"binding.ready",
"binding.failed",
"binding.revoked",
"binding.expired",
"service_identity.created",
"service_identity.revoked",
"service_identity.secret_rotated",
"member.upserted",
"member.role_changed",
"member.removed",
"platform.bootstrapped",
"platform.outbox_redelivered",
"platform.outbox_closed",
"app.member_auth_updated",
"app.forwarding_updated",
"app.created",
"app.deleted",
"app.closure_requested",
"product.moved",
"product.created",
"release.created",
"deployment.requested",
"deployment.stop_requested",
"deployment.ready",
"deployment.stopped",
"plan.changed",
"budget.changed",
"capability.denied",
"capability.output_blocked",
"capability.fallback",
"capability.usage_unreported",
"bridge.rejected",
"usage.denied",
"access.qualified",
"access.denied",
"access.revoked",
"isolation.unenforced_run",
"isolation.blocked",
"pending.resolved",
"fix.requested",
"fix.decided",
"fix.patch_withheld",
"adjudication.decided",
"authz.forbidden",
"authz.workspace_mismatch",
"audit.exported",
"managed_resource.kv_restored",
"audit.retention_deleted"
]
},
"__schema5": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "usr"
},
"id": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "svc"
},
"id": {
"type": "string",
"pattern": "^svc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "prod"
},
"id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "system"
},
"id": {
"type": "string",
"enum": [
"platform",
"platform-bootstrap",
"make",
"deliver",
"identity"
]
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "runner"
},
"id": {
"type": "string",
"const": "runner"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
}
]
},
"__schema6": {
"type": "object",
"properties": {
"kind": {
"$ref": "#/$defs/__schema7"
},
"id": {
"$ref": "#/$defs/__schema8"
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
"__schema7": {
"type": "string",
"enum": [
"brk",
"rsm",
"pvar",
"minv",
"trg",
"hook",
"mrun",
"mres",
"ws",
"aus",
"mba",
"app",
"usr",
"prod",
"rev",
"ver",
"rel",
"env",
"dep",
"srf",
"acc",
"ses",
"inv",
"exe",
"evt",
"pend",
"ddl",
"ntf",
"pipe",
"fnd",
"qual",
"cred",
"bind",
"hdl",
"cap",
"svc",
"frz",
"adj",
"fix",
"upl",
"dom",
"wb",
"ctx",
"aud",
"pay",
"ivc",
"rfd"
]
},
"__schema8": {
"anyOf": [
{
"$ref": "#/$defs/__schema9"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"__schema9": {
"type": "string",
"pattern": "^(brk|rsm|pvar|minv|trg|hook|mrun|mres|ws|aus|mba|app|usr|prod|rev|ver|rel|env|dep|srf|acc|ses|inv|exe|evt|pend|ddl|ntf|pipe|fnd|qual|cred|bind|hdl|cap|svc|frz|adj|fix|upl|dom|wb|ctx|aud|pay|ivc|rfd)_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema10": {
"type": "string",
"enum": [
"allowed",
"denied",
"failed",
"changed"
]
},
"__schema11": {
"anyOf": [
{
"$ref": "#/$defs/__schema12"
},
{
"type": "null"
}
]
},
"__schema12": {
"type": "string",
"enum": [
"insufficient_credit",
"app_budget_exceeded",
"outside_contract",
"permission_denied",
"policy_blocked",
"binding_missing",
"binding_revoked",
"usage_denied",
"provider_unavailable",
"provider_rejected",
"output_blocked",
"platform_unavailable",
"other",
"scope_denied",
"rate_limited",
"budget_exhausted",
"within_policy",
"budget_exceeded",
"plan_not_entitled",
"approval_rejected",
"approval_expired",
"qualified",
"identity_required",
"membership_required",
"rate_card_missing",
"surface_expired",
"surface_not_found",
"trust_blocked",
"isolation_blocked",
"sanitized_input",
"test_fixture",
"dead_code",
"not_reachable",
"sink_reachable",
"no_sanitizer",
"pattern_only",
"model_error",
"excerpt_missing",
"timeout",
"forbidden",
"workspace_mismatch"
]
},
"__schema13": {
"anyOf": [
{
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"__schema14": {
"anyOf": [
{
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"__schema15": {
"anyOf": [
{
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
{
"type": "null"
}
]
},
"__schema16": {
"anyOf": [
{
"type": "object",
"properties": {
"member_auth_mode": {
"type": "string",
"enum": [
"off",
"platform",
"byok"
]
},
"suspension_reason": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"paused": {
"type": "boolean"
},
"released_count": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"from_product_id": {
"anyOf": [
{
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"to_product_id": {
"anyOf": [
{
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"path_prefix": {
"anyOf": [
{
"type": "string",
"const": "/api/"
},
{
"type": "null"
}
]
},
"from_app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"to_app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"variable_name": {
"type": "string",
"pattern": "^[A-Z_][A-Z0-9_]{0,63}$"
},
"variable_kind": {
"type": "string",
"enum": [
"build",
"runtime",
"secret"
]
},
"gateway": {
"type": "string",
"enum": [
"newebpay",
"ecpay"
]
},
"amount_twd": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"order_kind": {
"type": "string",
"enum": [
"topup",
"subscription",
"renewal"
]
},
"credits": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"bucket": {
"type": "string",
"enum": [
"subscription",
"topup",
"grant"
]
},
"tier": {
"$ref": "#/$defs/__schema17"
},
"rate_card_version": {
"$ref": "#/$defs/__schema17"
},
"capability": {
"$ref": "#/$defs/__schema17"
},
"action": {
"$ref": "#/$defs/__schema17"
},
"provider": {
"$ref": "#/$defs/__schema17"
},
"plan": {
"$ref": "#/$defs/__schema17"
},
"budget_category": {
"$ref": "#/$defs/__schema17"
},
"unit": {
"$ref": "#/$defs/__schema17"
},
"units": {
"type": "number",
"minimum": 0
},
"http_status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"isolation_profile": {
"type": "string",
"enum": [
"isolated-vm",
"isolated-kernel",
"trusted"
]
},
"enforced": {
"type": "boolean"
},
"role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
},
"environment": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"reason": {
"$ref": "#/$defs/__schema12"
},
"route": {
"type": "string",
"maxLength": 256
},
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS"
]
},
"usage_category": {
"type": "string",
"enum": [
"ai_tokens",
"runtime",
"provider_call",
"storage",
"app_members"
]
},
"identity_kind": {
"type": "string",
"enum": [
"workspace-member",
"consumer",
"service"
]
},
"code": {
"$ref": "#/$defs/__schema17"
},
"phase": {
"type": "string",
"enum": [
"apply",
"startup",
"health_check"
]
},
"outcome": {
"type": "string",
"enum": [
"approved",
"rejected",
"withdrawn",
"expired",
"superseded",
"false_positive",
"confirmed",
"inconclusive"
]
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"__schema17": {
"type": "string",
"maxLength": 256
}
}
}CorrelationEvents
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"event_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"event_type": {
"type": "string"
},
"schema_version": {
"type": "string"
},
"producer": {
"type": "string"
},
"occurred_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"causation_id": {
"anyOf": [
{
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
}
},
"required": [
"event_id",
"event_type",
"schema_version",
"producer",
"occurred_at",
"causation_id"
]
}
},
"next_cursor": {
"type": "null"
}
},
"required": [
"items",
"next_cursor"
]
}RevisionDetail
{
"type": "object",
"properties": {
"capability_contract": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "rejected"
},
"reason": {
"type": "string",
"enum": [
"unknown_capability",
"unknown_action",
"scope_invalid",
"scope_widened",
"owner_not_supported",
"contract_too_large"
]
}
},
"required": [
"status",
"reason"
]
},
"id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"input_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_type": {
"type": "string",
"const": "hosted-app"
},
"descriptor": {
"type": "object",
"properties": {
"build_plan": {
"type": "object",
"properties": {
"runtime": {
"$ref": "#/$defs/__schema0"
},
"workdir": {
"$ref": "#/$defs/__schema1"
},
"install": {
"$ref": "#/$defs/__schema2"
},
"build": {
"$ref": "#/$defs/__schema3"
},
"start": {
"$ref": "#/$defs/__schema4"
},
"port": {
"$ref": "#/$defs/__schema5"
},
"health": {
"$ref": "#/$defs/__schema6"
},
"env": {
"$ref": "#/$defs/__schema7"
}
},
"required": [
"runtime",
"workdir",
"install",
"build",
"start",
"port",
"health",
"env"
]
},
"runtime": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
"entrypoint": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"command",
"args"
]
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"port": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"protocol": {
"type": "string",
"const": "http"
}
},
"required": [
"port",
"protocol"
]
}
},
"field_sources": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"detected",
"developer"
]
}
}
},
"required": [
"runtime",
"entrypoint",
"ports",
"field_sources"
]
},
"descriptor_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"build_variables_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"confirmed_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"$ref": "#/$defs/__schema8"
},
"updated_at": {
"$ref": "#/$defs/__schema8"
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"repository_url": {
"type": "string"
},
"repository_ref": {
"type": "string"
},
"commit_sha": {
"type": "string",
"pattern": "^[0-9a-f]{40}$"
}
},
"required": [
"repository_url",
"repository_ref",
"commit_sha"
]
},
{
"type": "null"
}
]
},
"contract_status": {
"type": "string",
"enum": [
"ready",
"rejected",
"pending"
]
},
"current_verification": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"verified",
"degraded",
"blocked",
"revoked"
]
},
"computed_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"status",
"computed_at"
]
},
{
"type": "null"
}
]
},
"dependency_recheck": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"clean",
"findings",
"unavailable",
"not_covered"
]
},
"checked_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"snapshot_date": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"findings": {
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema9"
}
},
"findings_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"status",
"checked_at",
"snapshot_date",
"findings",
"findings_total"
]
},
{
"type": "null"
}
]
},
"pipeline_runs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"intent": {
"type": "string",
"enum": [
"preview",
"qualification",
"reassessment",
"fix_reverify"
]
},
"status": {
"type": "string",
"enum": [
"pending_snapshot",
"authorization_requested",
"blocked",
"admitted",
"requested",
"reported",
"completed",
"failed",
"passed",
"warning",
"unsafe"
]
},
"reason_code": {
"type": "string"
},
"evidence": {
"default": [],
"type": "array",
"items": {
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
},
"log_evidence": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"minLength": 1
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
}
},
"required": [
"stage",
"log_evidence"
]
}
},
"qualification": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"qualified",
"stopped",
"pending"
]
},
"reason": {
"type": "string",
"enum": [
"missing_evidence",
"blocking_findings",
"verification_blocked"
]
},
"version_id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"status"
]
},
"findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"severity": {
"type": "string"
},
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"path": {
"type": "string"
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"path",
"line"
]
},
{
"type": "null"
}
]
},
"rule_id": {
"type": [
"string",
"null"
]
},
"dependency": {
"anyOf": [
{
"type": "object",
"properties": {
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"cvss",
"fixed_in"
]
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"severity",
"code",
"message"
]
}
},
"created_at": {
"$ref": "#/$defs/__schema8"
},
"updated_at": {
"$ref": "#/$defs/__schema8"
}
},
"required": [
"id",
"workspace_id",
"revision_id",
"intent",
"status",
"findings",
"created_at",
"updated_at"
]
}
}
},
"required": [
"id",
"workspace_id",
"product_id",
"input_revision_id",
"product_type",
"descriptor",
"descriptor_hash",
"confirmed_by",
"created_at",
"updated_at",
"contract_status",
"current_verification",
"dependency_recheck",
"pipeline_runs"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
"__schema1": {
"type": "string",
"pattern": "^\\/.*"
},
"__schema2": {
"type": "object",
"properties": {
"package_manager": {
"anyOf": [
{
"type": "string",
"enum": [
"pnpm",
"npm",
"yarn",
"pip",
"uv",
"poetry"
]
},
{
"type": "null"
}
]
},
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"package_manager",
"command"
]
},
"__schema3": {
"type": "object",
"properties": {
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"command"
]
},
"__schema4": {
"type": "object",
"properties": {
"command": {
"type": "string"
}
},
"required": [
"command"
]
},
"__schema5": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"__schema6": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^\\/.*"
},
"timeout_ms": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"timeout_ms"
]
},
"__schema7": {
"type": "array",
"items": {
"type": "string",
"enum": [
"PORT",
"NODE_ENV"
]
}
},
"__schema8": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema9": {
"type": "object",
"properties": {
"ecosystem": {
"type": "string",
"enum": [
"npm",
"PyPI"
]
},
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"info",
"warning",
"error"
]
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"severity",
"cvss",
"fixed_in"
]
}
}
}DraftDescriptor
{
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"input_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"status": {
"type": "string",
"enum": [
"detected",
"confirmed"
]
},
"revision_id": {
"anyOf": [
{
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"descriptor_hash": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
{
"type": "null"
}
]
},
"descriptor": {
"type": "object",
"properties": {
"build_plan": {
"anyOf": [
{
"type": "object",
"properties": {
"runtime": {
"$ref": "#/$defs/__schema0"
},
"workdir": {
"$ref": "#/$defs/__schema1"
},
"install": {
"$ref": "#/$defs/__schema2"
},
"build": {
"$ref": "#/$defs/__schema3"
},
"start": {
"$ref": "#/$defs/__schema4"
},
"port": {
"$ref": "#/$defs/__schema5"
},
"health": {
"$ref": "#/$defs/__schema6"
},
"env": {
"$ref": "#/$defs/__schema7"
}
},
"required": [
"runtime",
"workdir",
"install",
"build",
"start",
"port",
"health",
"env"
]
},
{
"type": "null"
}
]
},
"runtime": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
{
"type": "null"
}
]
},
"entrypoint": {
"anyOf": [
{
"type": "object",
"properties": {
"command": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"command",
"args"
]
},
{
"type": "null"
}
]
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"port": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"protocol": {
"type": "string",
"const": "http"
}
},
"required": [
"port",
"protocol"
]
}
},
"field_sources": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"detected",
"developer"
]
}
}
},
"required": [
"runtime",
"entrypoint",
"ports",
"field_sources"
]
},
"confidence": {
"type": "object",
"properties": {
"runtime": {
"$ref": "#/$defs/__schema8"
},
"entrypoint": {
"$ref": "#/$defs/__schema8"
},
"ports": {
"$ref": "#/$defs/__schema8"
}
},
"required": [
"runtime",
"entrypoint",
"ports"
]
},
"material_fields_complete": {
"type": "boolean"
},
"diagnostics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"field": {
"type": "string",
"enum": [
"runtime",
"entrypoint",
"ports"
]
},
"confidence": {
"$ref": "#/$defs/__schema8"
},
"message": {
"type": "string"
}
},
"required": [
"code",
"field",
"confidence",
"message"
]
}
}
},
"required": [
"workspace_id",
"product_id",
"input_revision_id",
"status",
"revision_id",
"descriptor_hash",
"descriptor",
"confidence",
"material_fields_complete",
"diagnostics"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
"__schema1": {
"type": "string",
"pattern": "^\\/.*"
},
"__schema2": {
"type": "object",
"properties": {
"package_manager": {
"anyOf": [
{
"type": "string",
"enum": [
"pnpm",
"npm",
"yarn",
"pip",
"uv",
"poetry"
]
},
{
"type": "null"
}
]
},
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"package_manager",
"command"
]
},
"__schema3": {
"type": "object",
"properties": {
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"command"
]
},
"__schema4": {
"type": "object",
"properties": {
"command": {
"type": "string"
}
},
"required": [
"command"
]
},
"__schema5": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"__schema6": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^\\/.*"
},
"timeout_ms": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"timeout_ms"
]
},
"__schema7": {
"type": "array",
"items": {
"type": "string",
"enum": [
"PORT",
"NODE_ENV"
]
}
},
"__schema8": {
"type": "string",
"enum": [
"high",
"low"
]
}
}
}Domain
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^dom_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"staging",
"production"
]
},
"hostname": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending_verification",
"verified",
"issuing",
"active",
"verification_failed",
"certificate_failed",
"removed"
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"verification": {
"type": "object",
"properties": {
"txt_name": {
"type": "string"
},
"txt_value": {
"type": "string"
},
"cname_target": {
"type": "string"
},
"address_targets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"txt_name",
"txt_value",
"cname_target",
"address_targets"
]
},
"last_check": {
"anyOf": [
{
"type": "object",
"properties": {
"checked_at": {
"$ref": "#/$defs/__schema0"
},
"outcome": {
"type": "string"
}
},
"required": [
"checked_at",
"outcome"
]
},
{
"type": "null"
}
]
},
"certificate": {
"anyOf": [
{
"type": "object",
"properties": {
"not_before": {
"$ref": "#/$defs/__schema0"
},
"not_after": {
"$ref": "#/$defs/__schema0"
},
"issuer": {
"type": "string"
},
"fingerprint_sha256": {
"type": "string"
}
},
"required": [
"not_before",
"not_after",
"issuer",
"fingerprint_sha256"
]
},
{
"type": "null"
}
]
},
"surface_id": {
"anyOf": [
{
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"environment_type",
"hostname",
"status",
"reason_code",
"verification",
"last_check",
"certificate",
"surface_id",
"created_at",
"updated_at"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Domains
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^dom_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"staging",
"production"
]
},
"hostname": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending_verification",
"verified",
"issuing",
"active",
"verification_failed",
"certificate_failed",
"removed"
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"verification": {
"type": "object",
"properties": {
"txt_name": {
"type": "string"
},
"txt_value": {
"type": "string"
},
"cname_target": {
"type": "string"
},
"address_targets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"txt_name",
"txt_value",
"cname_target",
"address_targets"
]
},
"last_check": {
"anyOf": [
{
"type": "object",
"properties": {
"checked_at": {
"$ref": "#/$defs/__schema0"
},
"outcome": {
"type": "string"
}
},
"required": [
"checked_at",
"outcome"
]
},
{
"type": "null"
}
]
},
"certificate": {
"anyOf": [
{
"type": "object",
"properties": {
"not_before": {
"$ref": "#/$defs/__schema0"
},
"not_after": {
"$ref": "#/$defs/__schema0"
},
"issuer": {
"type": "string"
},
"fingerprint_sha256": {
"type": "string"
}
},
"required": [
"not_before",
"not_after",
"issuer",
"fingerprint_sha256"
]
},
{
"type": "null"
}
]
},
"surface_id": {
"anyOf": [
{
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"environment_type",
"hostname",
"status",
"reason_code",
"verification",
"last_check",
"certificate",
"surface_id",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}FixRequest
{
"type": "object",
"properties": {
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"finding_ids": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^fnd_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
}FixRun
{
"type": "object",
"properties": {
"expires_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"fix_run_id": {
"type": "string",
"pattern": "^fix_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"attempt": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"status": {
"$ref": "#/$defs/__schema0"
},
"status_history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attempt": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"status": {
"$ref": "#/$defs/__schema0"
},
"entered_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"attempt",
"status",
"entered_at"
]
}
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"patch_evidence": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"sha256": {
"type": "string"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
},
"touched_paths": {
"type": "array",
"items": {
"type": "string"
}
},
"reverify": {
"$ref": "#/$defs/__schema1"
},
"relock": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"applied",
"skipped",
"failed"
]
}
},
"required": [
"status"
]
},
"lockfile_integrity": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"verified",
"mismatch",
"unchecked"
]
}
},
"required": [
"status"
]
},
"model": {
"type": "object",
"properties": {
"binding_id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"provider": {
"type": "string"
}
},
"required": [
"binding_id",
"provider"
]
},
"units_used": {
"type": "number",
"minimum": 0
},
"failure": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"required": [
"code"
]
},
"new_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"requested_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"decided_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"issue_class": {
"type": "string"
},
"deterministic_path": {
"type": "boolean"
},
"human_decision": {
"type": "string",
"enum": [
"approved",
"rejected",
"expired"
]
},
"dependencies_removed": {
"type": "array",
"items": {
"type": "string"
}
},
"auto_apply": {
"type": "object",
"properties": {
"eligible": {
"type": "boolean"
},
"reason": {
"type": "string",
"enum": [
"class_not_open",
"mixed_classes",
"unknown_class",
"not_deterministic",
"dependencies_removed",
"eligible"
]
}
},
"required": [
"eligible",
"reason"
]
},
"attempts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attempt": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reverify": {
"$ref": "#/$defs/__schema1"
}
},
"required": [
"attempt"
]
}
}
},
"required": [
"fix_run_id",
"workspace_id",
"product_id",
"revision_id",
"attempt",
"status",
"units_used",
"requested_at",
"deterministic_path",
"attempts"
],
"$defs": {
"__schema0": {
"type": "string",
"enum": [
"requested",
"context",
"generating",
"patch_apply",
"reverify",
"candidate",
"failed",
"approved",
"rejected",
"expired"
]
},
"__schema1": {
"type": "object",
"properties": {
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"status": {
"type": "string",
"enum": [
"passed",
"failed"
]
},
"residual_advisory_candidate": {
"type": "boolean"
},
"residual_advisory_candidates": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"pipeline_run_id",
"status"
]
}
}
}FixRuns
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"expires_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"fix_run_id": {
"type": "string",
"pattern": "^fix_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"attempt": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"status": {
"$ref": "#/$defs/__schema0"
},
"status_history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attempt": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"status": {
"$ref": "#/$defs/__schema0"
},
"entered_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"attempt",
"status",
"entered_at"
]
}
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"patch_evidence": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"sha256": {
"type": "string"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
},
"touched_paths": {
"type": "array",
"items": {
"type": "string"
}
},
"reverify": {
"$ref": "#/$defs/__schema1"
},
"relock": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"applied",
"skipped",
"failed"
]
}
},
"required": [
"status"
]
},
"lockfile_integrity": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"verified",
"mismatch",
"unchecked"
]
}
},
"required": [
"status"
]
},
"model": {
"type": "object",
"properties": {
"binding_id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"provider": {
"type": "string"
}
},
"required": [
"binding_id",
"provider"
]
},
"units_used": {
"type": "number",
"minimum": 0
},
"failure": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"required": [
"code"
]
},
"new_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"requested_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"decided_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"issue_class": {
"type": "string"
},
"deterministic_path": {
"type": "boolean"
},
"human_decision": {
"type": "string",
"enum": [
"approved",
"rejected",
"expired"
]
},
"dependencies_removed": {
"type": "array",
"items": {
"type": "string"
}
},
"auto_apply": {
"type": "object",
"properties": {
"eligible": {
"type": "boolean"
},
"reason": {
"type": "string",
"enum": [
"class_not_open",
"mixed_classes",
"unknown_class",
"not_deterministic",
"dependencies_removed",
"eligible"
]
}
},
"required": [
"eligible",
"reason"
]
},
"attempts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attempt": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reverify": {
"$ref": "#/$defs/__schema1"
}
},
"required": [
"attempt"
]
}
}
},
"required": [
"fix_run_id",
"workspace_id",
"product_id",
"revision_id",
"attempt",
"status",
"units_used",
"requested_at",
"deterministic_path",
"attempts"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"enum": [
"requested",
"context",
"generating",
"patch_apply",
"reverify",
"candidate",
"failed",
"approved",
"rejected",
"expired"
]
},
"__schema1": {
"type": "object",
"properties": {
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"status": {
"type": "string",
"enum": [
"passed",
"failed"
]
},
"residual_advisory_candidate": {
"type": "boolean"
},
"residual_advisory_candidates": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"pipeline_run_id",
"status"
]
}
}
}Readiness
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ready",
"degraded",
"not_ready"
]
},
"checked_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"checks": {
"type": "object",
"properties": {
"db": {
"$ref": "#/$defs/__schema0"
},
"storage": {
"$ref": "#/$defs/__schema0"
},
"runner": {
"$ref": "#/$defs/__schema0"
},
"oidc": {
"$ref": "#/$defs/__schema0"
},
"intake": {
"$ref": "#/$defs/__schema0"
},
"persistence": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"db",
"storage",
"runner",
"oidc",
"intake",
"persistence"
]
}
},
"required": [
"status",
"checked_at",
"checks"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ok",
"fail",
"skipped"
]
},
"latency_ms": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"detail": {
"type": "string",
"enum": [
"available",
"unavailable",
"timeout",
"not configured",
"bridge_ledger_and_replays_injected"
]
}
},
"required": [
"status"
]
}
}
}BackgroundJobs
{
"type": "object",
"properties": {
"jobs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"last_started_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"last_succeeded_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"last_failed_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"running_since": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"running_ms": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"last_started_at",
"last_succeeded_at",
"last_failed_at",
"running_since",
"running_ms"
]
}
},
"outbox": {
"type": "object",
"properties": {
"unconfirmed": {
"type": "array",
"items": {
"$ref": "#/$defs/__schema1"
}
},
"dead_letters": {
"type": "array",
"items": {
"$ref": "#/$defs/__schema1"
}
}
},
"required": [
"unconfirmed",
"dead_letters"
]
}
},
"required": [
"jobs",
"outbox"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema1": {
"type": "object",
"properties": {
"consumer": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"consumer",
"count"
]
}
}
}Notifications
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"notification_id": {
"type": "string",
"pattern": "^ntf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"category": {
"type": "string"
},
"template_key": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"requested",
"delivered",
"failed"
],
"description": "Delivered means Resend accepted the email; it does not mean the email reached the recipient inbox."
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"delivered_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
],
"description": "Delivered means Resend accepted the email; it does not mean the email reached the recipient inbox."
},
"recipients": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"delivered": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Delivered means Resend accepted the email; it does not mean the email reached the recipient inbox."
},
"failed": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"total",
"delivered",
"failed"
]
}
},
"required": [
"notification_id",
"category",
"template_key",
"status",
"created_at",
"delivered_at",
"recipients"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}DeadLetters
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"event_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"consumer": {
"type": "string",
"minLength": 1
},
"attempts": {
"type": "number",
"const": 5
},
"last_error": {
"type": "string",
"maxLength": 64,
"pattern": "^(handler_failed|contract_violation|persistence_error|handler_error:[A-Za-z0-9_]+)$"
},
"failed_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"event_id",
"consumer",
"attempts",
"last_error",
"failed_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}PlatformDeadLetter
{
"type": "object",
"properties": {
"event_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"consumer": {
"type": "string",
"minLength": 1
},
"attempts": {
"type": "number",
"const": 5
},
"last_error": {
"type": "string",
"maxLength": 64,
"pattern": "^(handler_failed|contract_violation|persistence_error|handler_error:[A-Za-z0-9_]+)$"
},
"failed_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
}
},
"required": [
"event_id",
"consumer",
"attempts",
"last_error",
"failed_at",
"workspace_id"
]
}PlatformDeadLetters
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"event_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"consumer": {
"type": "string",
"minLength": 1
},
"attempts": {
"type": "number",
"const": 5
},
"last_error": {
"type": "string",
"maxLength": 64,
"pattern": "^(handler_failed|contract_violation|persistence_error|handler_error:[A-Za-z0-9_]+)$"
},
"failed_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
}
},
"required": [
"event_id",
"consumer",
"attempts",
"last_error",
"failed_at",
"workspace_id"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}StuckDelivery
{
"type": "object",
"properties": {
"event_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"event_type": {
"type": "string"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"consumer": {
"type": "string",
"minLength": 1
},
"attempts": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"claimed_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"redeliverable": {
"type": "boolean"
}
},
"required": [
"event_id",
"event_type",
"workspace_id",
"consumer",
"attempts",
"claimed_at",
"redeliverable"
]
}StuckDeliveries
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"event_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"event_type": {
"type": "string"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"consumer": {
"type": "string",
"minLength": 1
},
"attempts": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"claimed_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"redeliverable": {
"type": "boolean"
}
},
"required": [
"event_id",
"event_type",
"workspace_id",
"consumer",
"attempts",
"claimed_at",
"redeliverable"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}WorkspaceServiceIdentityRequest
{
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"default": "bridge",
"type": "string",
"const": "bridge"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"scope": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ai.generate"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"scope": {
"type": "object",
"properties": {
"models": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema1"
}
},
"max_tokens_per_call": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"models",
"max_tokens_per_call"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "storage.object"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema2"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_object_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"prefix",
"max_object_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "data.kv"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema3"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_value_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 65536
},
"max_keys": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"prefix",
"max_value_bytes",
"max_keys"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "email.send"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema4"
}
},
"scope": {
"type": "object",
"properties": {
"from_addresses": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema5"
}
},
"recipient_domains": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema6"
}
},
"max_recipients": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_message_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1048576
}
},
"required": [
"from_addresses",
"recipient_domains",
"max_recipients",
"max_message_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "appuser.directory"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema7"
}
},
"scope": {
"type": "object",
"properties": {
"roles": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema8"
}
}
},
"required": [
"roles"
]
}
},
"required": [
"id",
"actions",
"scope"
]
}
]
},
"budget": {
"type": "object",
"properties": {
"units": {
"type": "number",
"minimum": 0
},
"unit": {
"type": "string",
"enum": [
"tokens",
"bytes",
"calls"
]
}
},
"required": [
"units",
"unit"
]
}
},
"required": [
"product_id",
"scope",
"budget"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "automation"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
}
},
"required": [
"kind",
"name",
"product_id",
"scope",
"budget"
],
"additionalProperties": false
}
],
"$defs": {
"__schema0": {
"type": "string",
"enum": [
"generate"
]
},
"__schema1": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"__schema2": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"__schema3": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"__schema4": {
"type": "string",
"enum": [
"send"
]
},
"__schema5": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema6": {
"type": "string",
"maxLength": 253,
"pattern": "^(?:\\*|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$"
},
"__schema7": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"__schema8": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
}
}
}PlatformServiceIdentityRequest
{
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "runner"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
}
},
"required": [
"kind",
"name",
"product_id",
"scope",
"budget"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "control-plane"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
}
},
"required": [
"kind",
"name",
"product_id",
"scope",
"budget"
]
}
]
}NorthStar
{
"type": "object",
"properties": {
"computed_day": {
"anyOf": [
{
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
{
"type": "null"
}
]
},
"production": {
"type": "object",
"properties": {
"north_star": {
"$ref": "#/$defs/__schema0"
},
"launched_apps": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"north_star",
"launched_apps"
]
},
"staging_trial": {
"type": "object",
"properties": {
"north_star": {
"$ref": "#/$defs/__schema0"
},
"launched_apps": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"north_star",
"launched_apps"
]
},
"definitions": {
"type": "object",
"properties": {
"minimum_age_days": {
"$ref": "#/$defs/__schema0"
},
"usage_window_days": {
"$ref": "#/$defs/__schema0"
},
"minimum_daily_samples": {
"type": "number",
"exclusiveMinimum": 0
},
"healthy_ratio": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"minimum_age_days",
"usage_window_days",
"minimum_daily_samples",
"healthy_ratio"
]
}
},
"required": [
"computed_day",
"production",
"staging_trial",
"definitions"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}NorthStarApps
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"launched_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
{
"type": "null"
}
]
},
"days_since_launch": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"service_count": {
"$ref": "#/$defs/__schema0"
},
"used_days_last_7": {
"maximum": 7,
"$ref": "#/$defs/__schema0"
},
"healthy": {
"type": "boolean"
},
"qualifies": {
"type": "boolean"
},
"request_days": {
"$ref": "#/$defs/__schema0"
},
"healthy_days": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"workspace_id",
"app_id",
"launched_on",
"days_since_launch",
"service_count",
"used_days_last_7",
"healthy",
"qualifies",
"request_days",
"healthy_days"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
}AppVersion
{
"type": "object",
"properties": {
"source": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "commit"
},
"commit_sha": {
"type": "string",
"pattern": "^[0-9a-f]{40}$"
},
"repository_url": {
"type": "string"
}
},
"required": [
"kind",
"commit_sha",
"repository_url"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "archive"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"revision_id"
]
}
]
},
"latest_created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revisions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"fix_run_id": {
"anyOf": [
{
"type": "string",
"pattern": "^fix_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
}
},
"required": [
"revision_id",
"created_at",
"fix_run_id"
]
}
}
},
"required": [
"product_id",
"revisions"
]
}
}
},
"required": [
"source",
"latest_created_at",
"services"
]
}AppVersions
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "commit"
},
"commit_sha": {
"type": "string",
"pattern": "^[0-9a-f]{40}$"
},
"repository_url": {
"type": "string"
}
},
"required": [
"kind",
"commit_sha",
"repository_url"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "archive"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"revision_id"
]
}
]
},
"latest_created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revisions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"fix_run_id": {
"anyOf": [
{
"type": "string",
"pattern": "^fix_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
}
},
"required": [
"revision_id",
"created_at",
"fix_run_id"
]
}
}
},
"required": [
"product_id",
"revisions"
]
}
}
},
"required": [
"source",
"latest_created_at",
"services"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}Apps
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"name": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
},
"state": {
"type": "string",
"enum": [
"active",
"retiring",
"retired"
]
},
"source_repository_url": {
"type": [
"string",
"null"
]
},
"service_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"name",
"state",
"source_repository_url",
"service_count",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Workspace
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"name": {
"type": [
"string",
"null"
]
},
"workspace_role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
}
},
"required": [
"id",
"workspace_role"
]
}Workspaces
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"name": {
"type": [
"string",
"null"
]
},
"workspace_role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
}
},
"required": [
"id",
"workspace_role"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}Products
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"app_budget": {
"type": "object",
"properties": {
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"monthly_cap_credits": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"settled_credits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"reserved_credits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"app_id",
"monthly_cap_credits",
"settled_credits",
"reserved_credits"
]
},
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"root_path": {
"default": null,
"type": [
"string",
"null"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"type": {
"type": "string",
"const": "hosted-app"
},
"input_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"app_id",
"id",
"workspace_id",
"type",
"input_revision_id",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Revisions
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"capability_contract": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "rejected"
},
"reason": {
"type": "string",
"enum": [
"unknown_capability",
"unknown_action",
"scope_invalid",
"scope_widened",
"owner_not_supported",
"contract_too_large"
]
}
},
"required": [
"status",
"reason"
]
},
"id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"input_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_type": {
"type": "string",
"const": "hosted-app"
},
"descriptor": {
"type": "object",
"properties": {
"build_plan": {
"type": "object",
"properties": {
"runtime": {
"$ref": "#/$defs/__schema0"
},
"workdir": {
"$ref": "#/$defs/__schema1"
},
"install": {
"$ref": "#/$defs/__schema2"
},
"build": {
"$ref": "#/$defs/__schema3"
},
"start": {
"$ref": "#/$defs/__schema4"
},
"port": {
"$ref": "#/$defs/__schema5"
},
"health": {
"$ref": "#/$defs/__schema6"
},
"env": {
"$ref": "#/$defs/__schema7"
}
},
"required": [
"runtime",
"workdir",
"install",
"build",
"start",
"port",
"health",
"env"
]
},
"runtime": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
"entrypoint": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"command",
"args"
]
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"port": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"protocol": {
"type": "string",
"const": "http"
}
},
"required": [
"port",
"protocol"
]
}
},
"field_sources": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"detected",
"developer"
]
}
}
},
"required": [
"runtime",
"entrypoint",
"ports",
"field_sources"
]
},
"descriptor_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"build_variables_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"confirmed_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"$ref": "#/$defs/__schema8"
},
"updated_at": {
"$ref": "#/$defs/__schema8"
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"repository_url": {
"type": "string"
},
"repository_ref": {
"type": "string"
},
"commit_sha": {
"type": "string",
"pattern": "^[0-9a-f]{40}$"
}
},
"required": [
"repository_url",
"repository_ref",
"commit_sha"
]
},
{
"type": "null"
}
]
},
"contract_status": {
"type": "string",
"enum": [
"ready",
"rejected",
"pending"
]
},
"current_verification": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"verified",
"degraded",
"blocked",
"revoked"
]
},
"computed_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"status",
"computed_at"
]
},
{
"type": "null"
}
]
},
"dependency_recheck": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"clean",
"findings",
"unavailable",
"not_covered"
]
},
"checked_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"snapshot_date": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"findings": {
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema9"
}
},
"findings_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"status",
"checked_at",
"snapshot_date",
"findings",
"findings_total"
]
},
{
"type": "null"
}
]
},
"pipeline_runs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"intent": {
"type": "string",
"enum": [
"preview",
"qualification",
"reassessment",
"fix_reverify"
]
},
"status": {
"type": "string",
"enum": [
"pending_snapshot",
"authorization_requested",
"blocked",
"admitted",
"requested",
"reported",
"completed",
"failed",
"passed",
"warning",
"unsafe"
]
},
"reason_code": {
"type": "string"
},
"evidence": {
"default": [],
"type": "array",
"items": {
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"build",
"scan",
"startup_check"
]
},
"log_evidence": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"minLength": 1
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"uri",
"sha256",
"size_bytes"
]
}
},
"required": [
"stage",
"log_evidence"
]
}
},
"qualification": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"qualified",
"stopped",
"pending"
]
},
"reason": {
"type": "string",
"enum": [
"missing_evidence",
"blocking_findings",
"verification_blocked"
]
},
"version_id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"status"
]
},
"findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"severity": {
"type": "string"
},
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"path": {
"type": "string"
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"path",
"line"
]
},
{
"type": "null"
}
]
},
"rule_id": {
"type": [
"string",
"null"
]
},
"dependency": {
"anyOf": [
{
"type": "object",
"properties": {
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"cvss",
"fixed_in"
]
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"severity",
"code",
"message"
]
}
},
"created_at": {
"$ref": "#/$defs/__schema8"
},
"updated_at": {
"$ref": "#/$defs/__schema8"
}
},
"required": [
"id",
"workspace_id",
"revision_id",
"intent",
"status",
"findings",
"created_at",
"updated_at"
]
}
}
},
"required": [
"id",
"workspace_id",
"product_id",
"input_revision_id",
"product_type",
"descriptor",
"descriptor_hash",
"confirmed_by",
"created_at",
"updated_at",
"contract_status",
"current_verification",
"dependency_recheck",
"pipeline_runs"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
"__schema1": {
"type": "string",
"pattern": "^\\/.*"
},
"__schema2": {
"type": "object",
"properties": {
"package_manager": {
"anyOf": [
{
"type": "string",
"enum": [
"pnpm",
"npm",
"yarn",
"pip",
"uv",
"poetry"
]
},
{
"type": "null"
}
]
},
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"package_manager",
"command"
]
},
"__schema3": {
"type": "object",
"properties": {
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"command"
]
},
"__schema4": {
"type": "object",
"properties": {
"command": {
"type": "string"
}
},
"required": [
"command"
]
},
"__schema5": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"__schema6": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^\\/.*"
},
"timeout_ms": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"timeout_ms"
]
},
"__schema7": {
"type": "array",
"items": {
"type": "string",
"enum": [
"PORT",
"NODE_ENV"
]
}
},
"__schema8": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema9": {
"type": "object",
"properties": {
"ecosystem": {
"type": "string",
"enum": [
"npm",
"PyPI"
]
},
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"info",
"warning",
"error"
]
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"severity",
"cvss",
"fixed_in"
]
}
}
}Releases
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"version_id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"channel": {
"type": "string",
"enum": [
"preview_internal",
"staged",
"production"
]
},
"audience": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"internal",
"workspace",
"custom"
]
}
},
"required": [
"kind"
]
},
"window": {
"type": "object",
"properties": {
"starts_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"starts_at",
"ends_at"
]
},
"id": {
"type": "string",
"pattern": "^rel_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"status": {
"type": "string",
"enum": [
"draft",
"ready",
"live",
"retired",
"blocked",
"pending_approval"
]
},
"frozen_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"product_id",
"version_id",
"channel",
"audience",
"window",
"id",
"workspace_id",
"status",
"frozen_at",
"reason_code",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Deployments
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"pipeline_run_id": {
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_id": {
"type": "string",
"pattern": "^env_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"slot": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"planned",
"applying",
"active",
"superseded",
"stopped",
"blocked",
"failed"
]
},
"reason_code": {
"type": "string"
},
"required_isolation_profile": {
"type": "string",
"const": "isolated-vm"
},
"egress": {
"anyOf": [
{
"type": "string",
"const": "deny"
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "allowlist"
},
"tier": {
"type": "string",
"enum": [
"free",
"paid"
]
},
"entries": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
},
"required": [
"mode",
"entries"
],
"additionalProperties": false
}
]
},
"isolation": {
"type": "object",
"properties": {
"profile": {
"type": "string",
"const": "isolated-vm"
},
"enforced": {
"type": "boolean"
}
},
"required": [
"profile",
"enforced"
]
},
"health": {
"type": "object",
"properties": {
"checked_at": {
"$ref": "#/$defs/__schema1"
},
"attempts": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"latency_ms": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"observed": {
"anyOf": [
{
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"healthy",
"unhealthy",
"not_running",
"missing",
"asleep",
"unknown"
]
},
"sampled_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"type": "null"
}
]
},
"last_healthy_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"type": "null"
}
]
},
"consecutive_failures": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"last_status_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"latency_ms": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"exit_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reason_code": {
"anyOf": [
{
"type": "string",
"enum": [
"http_status",
"timeout",
"connection_failed",
"process_exited",
"not_registered",
"workload_absent"
]
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"sampled_at",
"last_healthy_at",
"consecutive_failures",
"last_status_code",
"latency_ms",
"exit_code",
"reason_code"
]
},
{
"type": "null"
}
]
}
},
"required": [
"checked_at",
"attempts",
"latency_ms",
"observed"
]
},
"endpoint": {
"type": "object",
"properties": {
"address": {
"type": "string",
"minLength": 1
}
},
"required": [
"address"
]
},
"superseded_deployment_id": {
"anyOf": [
{
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"surface_id": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"severity": {
"type": "string"
},
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"path": {
"type": "string"
},
"line": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"path",
"line"
]
},
{
"type": "null"
}
]
},
"rule_id": {
"type": [
"string",
"null"
]
},
"dependency": {
"anyOf": [
{
"type": "object",
"properties": {
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"cvss",
"fixed_in"
]
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"severity",
"code",
"message"
]
}
},
"created_at": {
"$ref": "#/$defs/__schema1"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "revision"
}
},
"required": [
"kind"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "release"
},
"release_id": {
"type": "string",
"pattern": "^rel_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"version_id": {
"type": "string",
"pattern": "^ver_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"kind",
"release_id",
"version_id"
]
}
]
}
},
"required": [
"id",
"workspace_id",
"product_id",
"revision_id",
"environment_type",
"slot",
"status",
"required_isolation_profile",
"egress",
"findings",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"host": {
"type": "string",
"maxLength": 253,
"pattern": "^(\\*\\.)?([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]([a-z0-9-]{0,61}[a-z0-9])?$"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
],
"additionalProperties": false
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Surfaces
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_id": {
"type": "string",
"pattern": "^env_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"surface_type": {
"type": "string",
"const": "web"
},
"status": {
"type": "string",
"enum": [
"awaiting_expiration_registration",
"validating",
"active",
"expiration_registration_failed",
"configuration_failed",
"expired"
]
},
"reason_code": {
"type": "string"
},
"url": {
"type": "string"
},
"route": {
"type": "object",
"properties": {
"host": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"host",
"path"
]
},
"identity_requirement": {
"type": "string",
"enum": [
"none",
"workspace_member"
]
},
"access_policy": {
"type": "string",
"enum": [
"preview_direct",
"workspace_private"
]
},
"expires_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"deadline_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ddl_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"reachability": {
"type": "object",
"properties": {
"checked_at": {
"$ref": "#/$defs/__schema0"
},
"status_code": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"latency_ms": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"checked_at",
"status_code",
"latency_ms"
]
},
"activated_at": {
"$ref": "#/$defs/__schema0"
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema0"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"deployment_id",
"environment_id",
"environment_type",
"surface_type",
"status",
"identity_requirement",
"access_policy",
"expires_at",
"deadline_id",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}Breakage
{
"oneOf": [
{
"type": "object",
"properties": {
"episode_id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"$ref": "#/$defs/__schema2"
},
"environment_id": {
"$ref": "#/$defs/__schema3"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"state": {
"$ref": "#/$defs/__schema5"
},
"opened_at": {
"$ref": "#/$defs/__schema6"
},
"closed_at": {
"$ref": "#/$defs/__schema7"
},
"close_reason": {
"$ref": "#/$defs/__schema8"
},
"occurrences": {
"$ref": "#/$defs/__schema9"
},
"deployment_id": {
"$ref": "#/$defs/__schema10"
},
"revision_id": {
"$ref": "#/$defs/__schema11"
},
"kind": {
"type": "string",
"const": "deployment_failed"
},
"detail": {
"type": "object",
"properties": {
"phase": {
"type": "string",
"enum": [
"apply",
"startup",
"health_check"
]
},
"finding_codes": {
"maxItems": 10,
"type": "array",
"items": {
"$ref": "#/$defs/__schema12"
}
}
},
"required": [
"phase",
"finding_codes"
],
"additionalProperties": false
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"episode_id",
"workspace_id",
"product_id",
"environment_id",
"environment_type",
"state",
"opened_at",
"closed_at",
"close_reason",
"occurrences",
"deployment_id",
"revision_id",
"kind",
"detail",
"last_seen_at"
]
},
{
"type": "object",
"properties": {
"episode_id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"$ref": "#/$defs/__schema2"
},
"environment_id": {
"$ref": "#/$defs/__schema3"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"state": {
"$ref": "#/$defs/__schema5"
},
"opened_at": {
"$ref": "#/$defs/__schema6"
},
"closed_at": {
"$ref": "#/$defs/__schema7"
},
"close_reason": {
"$ref": "#/$defs/__schema8"
},
"occurrences": {
"$ref": "#/$defs/__schema9"
},
"deployment_id": {
"$ref": "#/$defs/__schema10"
},
"revision_id": {
"$ref": "#/$defs/__schema11"
},
"kind": {
"type": "string",
"const": "workload_lost"
},
"detail": {
"type": "object",
"properties": {
"detected_by": {
"type": "string",
"enum": [
"visitor",
"probe"
]
}
},
"required": [
"detected_by"
],
"additionalProperties": false
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"episode_id",
"workspace_id",
"product_id",
"environment_id",
"environment_type",
"state",
"opened_at",
"closed_at",
"close_reason",
"occurrences",
"deployment_id",
"revision_id",
"kind",
"detail",
"last_seen_at"
]
},
{
"type": "object",
"properties": {
"episode_id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"$ref": "#/$defs/__schema2"
},
"environment_id": {
"$ref": "#/$defs/__schema3"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"state": {
"$ref": "#/$defs/__schema5"
},
"opened_at": {
"$ref": "#/$defs/__schema6"
},
"closed_at": {
"$ref": "#/$defs/__schema7"
},
"close_reason": {
"$ref": "#/$defs/__schema8"
},
"occurrences": {
"$ref": "#/$defs/__schema9"
},
"deployment_id": {
"$ref": "#/$defs/__schema10"
},
"revision_id": {
"$ref": "#/$defs/__schema11"
},
"kind": {
"type": "string",
"const": "health_check_failed"
},
"detail": {
"type": "object",
"properties": {
"health_state": {
"type": "string",
"enum": [
"unhealthy",
"not_running"
]
},
"reason_code": {
"anyOf": [
{
"type": "string",
"enum": [
"http_status",
"timeout",
"connection_failed",
"process_exited",
"not_registered",
"workload_absent"
]
},
{
"type": "null"
}
]
}
},
"required": [
"health_state",
"reason_code"
],
"additionalProperties": false
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"episode_id",
"workspace_id",
"product_id",
"environment_id",
"environment_type",
"state",
"opened_at",
"closed_at",
"close_reason",
"occurrences",
"deployment_id",
"revision_id",
"kind",
"detail",
"last_seen_at"
]
},
{
"type": "object",
"properties": {
"episode_id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"$ref": "#/$defs/__schema2"
},
"environment_id": {
"$ref": "#/$defs/__schema3"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"state": {
"$ref": "#/$defs/__schema5"
},
"opened_at": {
"$ref": "#/$defs/__schema6"
},
"closed_at": {
"$ref": "#/$defs/__schema7"
},
"close_reason": {
"$ref": "#/$defs/__schema8"
},
"occurrences": {
"$ref": "#/$defs/__schema9"
},
"deployment_id": {
"$ref": "#/$defs/__schema10"
},
"revision_id": {
"$ref": "#/$defs/__schema11"
},
"kind": {
"type": "string",
"const": "vulnerability_found"
},
"detail": {
"type": "object",
"properties": {
"finding_count": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"highest_severity": {
"type": "string",
"enum": [
"info",
"warning",
"error",
"critical"
]
}
},
"required": [
"finding_count",
"highest_severity"
],
"additionalProperties": false
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"episode_id",
"workspace_id",
"product_id",
"environment_id",
"environment_type",
"state",
"opened_at",
"closed_at",
"close_reason",
"occurrences",
"deployment_id",
"revision_id",
"kind",
"detail",
"last_seen_at"
]
}
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^brk_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema2": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"type": "string",
"pattern": "^env_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema4": {
"type": "string",
"enum": [
"staging",
"production"
]
},
"__schema5": {
"type": "string",
"enum": [
"open",
"closed"
]
},
"__schema6": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema7": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"__schema8": {
"anyOf": [
{
"type": "string",
"enum": [
"redeployed",
"recovered",
"deployment_stopped",
"product_closed"
]
},
{
"type": "null"
}
]
},
"__schema9": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"__schema10": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema11": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema12": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
}Breakages
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"episode_id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"$ref": "#/$defs/__schema2"
},
"environment_id": {
"$ref": "#/$defs/__schema3"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"state": {
"$ref": "#/$defs/__schema5"
},
"opened_at": {
"$ref": "#/$defs/__schema6"
},
"closed_at": {
"$ref": "#/$defs/__schema7"
},
"close_reason": {
"$ref": "#/$defs/__schema8"
},
"occurrences": {
"$ref": "#/$defs/__schema9"
},
"deployment_id": {
"$ref": "#/$defs/__schema10"
},
"revision_id": {
"$ref": "#/$defs/__schema11"
},
"kind": {
"type": "string",
"const": "deployment_failed"
},
"detail": {
"type": "object",
"properties": {
"phase": {
"type": "string",
"enum": [
"apply",
"startup",
"health_check"
]
},
"finding_codes": {
"maxItems": 10,
"type": "array",
"items": {
"$ref": "#/$defs/__schema12"
}
}
},
"required": [
"phase",
"finding_codes"
],
"additionalProperties": false
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"episode_id",
"workspace_id",
"product_id",
"environment_id",
"environment_type",
"state",
"opened_at",
"closed_at",
"close_reason",
"occurrences",
"deployment_id",
"revision_id",
"kind",
"detail",
"last_seen_at"
]
},
{
"type": "object",
"properties": {
"episode_id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"$ref": "#/$defs/__schema2"
},
"environment_id": {
"$ref": "#/$defs/__schema3"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"state": {
"$ref": "#/$defs/__schema5"
},
"opened_at": {
"$ref": "#/$defs/__schema6"
},
"closed_at": {
"$ref": "#/$defs/__schema7"
},
"close_reason": {
"$ref": "#/$defs/__schema8"
},
"occurrences": {
"$ref": "#/$defs/__schema9"
},
"deployment_id": {
"$ref": "#/$defs/__schema10"
},
"revision_id": {
"$ref": "#/$defs/__schema11"
},
"kind": {
"type": "string",
"const": "workload_lost"
},
"detail": {
"type": "object",
"properties": {
"detected_by": {
"type": "string",
"enum": [
"visitor",
"probe"
]
}
},
"required": [
"detected_by"
],
"additionalProperties": false
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"episode_id",
"workspace_id",
"product_id",
"environment_id",
"environment_type",
"state",
"opened_at",
"closed_at",
"close_reason",
"occurrences",
"deployment_id",
"revision_id",
"kind",
"detail",
"last_seen_at"
]
},
{
"type": "object",
"properties": {
"episode_id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"$ref": "#/$defs/__schema2"
},
"environment_id": {
"$ref": "#/$defs/__schema3"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"state": {
"$ref": "#/$defs/__schema5"
},
"opened_at": {
"$ref": "#/$defs/__schema6"
},
"closed_at": {
"$ref": "#/$defs/__schema7"
},
"close_reason": {
"$ref": "#/$defs/__schema8"
},
"occurrences": {
"$ref": "#/$defs/__schema9"
},
"deployment_id": {
"$ref": "#/$defs/__schema10"
},
"revision_id": {
"$ref": "#/$defs/__schema11"
},
"kind": {
"type": "string",
"const": "health_check_failed"
},
"detail": {
"type": "object",
"properties": {
"health_state": {
"type": "string",
"enum": [
"unhealthy",
"not_running"
]
},
"reason_code": {
"anyOf": [
{
"type": "string",
"enum": [
"http_status",
"timeout",
"connection_failed",
"process_exited",
"not_registered",
"workload_absent"
]
},
{
"type": "null"
}
]
}
},
"required": [
"health_state",
"reason_code"
],
"additionalProperties": false
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"episode_id",
"workspace_id",
"product_id",
"environment_id",
"environment_type",
"state",
"opened_at",
"closed_at",
"close_reason",
"occurrences",
"deployment_id",
"revision_id",
"kind",
"detail",
"last_seen_at"
]
},
{
"type": "object",
"properties": {
"episode_id": {
"$ref": "#/$defs/__schema0"
},
"workspace_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"$ref": "#/$defs/__schema2"
},
"environment_id": {
"$ref": "#/$defs/__schema3"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"state": {
"$ref": "#/$defs/__schema5"
},
"opened_at": {
"$ref": "#/$defs/__schema6"
},
"closed_at": {
"$ref": "#/$defs/__schema7"
},
"close_reason": {
"$ref": "#/$defs/__schema8"
},
"occurrences": {
"$ref": "#/$defs/__schema9"
},
"deployment_id": {
"$ref": "#/$defs/__schema10"
},
"revision_id": {
"$ref": "#/$defs/__schema11"
},
"kind": {
"type": "string",
"const": "vulnerability_found"
},
"detail": {
"type": "object",
"properties": {
"finding_count": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"highest_severity": {
"type": "string",
"enum": [
"info",
"warning",
"error",
"critical"
]
}
},
"required": [
"finding_count",
"highest_severity"
],
"additionalProperties": false
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"episode_id",
"workspace_id",
"product_id",
"environment_id",
"environment_type",
"state",
"opened_at",
"closed_at",
"close_reason",
"occurrences",
"deployment_id",
"revision_id",
"kind",
"detail",
"last_seen_at"
]
}
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^brk_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema2": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"type": "string",
"pattern": "^env_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema4": {
"type": "string",
"enum": [
"staging",
"production"
]
},
"__schema5": {
"type": "string",
"enum": [
"open",
"closed"
]
},
"__schema6": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema7": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"__schema8": {
"anyOf": [
{
"type": "string",
"enum": [
"redeployed",
"recovered",
"deployment_stopped",
"product_closed"
]
},
{
"type": "null"
}
]
},
"__schema9": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"__schema10": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema11": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema12": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
}
}CapabilityInvocations
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^cap_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"anyOf": [
{
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"execution_id": {
"anyOf": [
{
"type": "string",
"pattern": "^exe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"bridge_invocation_id": {
"anyOf": [
{
"type": "string",
"pattern": "^inv_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"capability": {
"type": [
"string",
"null"
]
},
"action": {
"type": [
"string",
"null"
]
},
"environment_type": {
"anyOf": [
{
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
{
"type": "null"
}
]
},
"binding_id": {
"anyOf": [
{
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"outcome": {
"type": "string",
"enum": [
"requested",
"completed",
"denied",
"failed",
"unknown"
]
},
"reason": {
"anyOf": [
{
"type": "string",
"enum": [
"outside_contract",
"permission_denied",
"policy_blocked",
"binding_missing",
"binding_revoked",
"usage_denied",
"provider_unavailable",
"provider_rejected",
"output_blocked",
"platform_unavailable"
]
},
{
"type": "null"
}
]
},
"provider": {
"type": [
"string",
"null"
]
},
"is_fallback_used": {
"type": "boolean"
},
"usage_units": {
"type": "number",
"minimum": 0
},
"usage_unit": {
"type": "string",
"enum": [
"tokens",
"ms",
"calls",
"bytes"
]
},
"requested_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"finished_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"revision_id",
"execution_id",
"bridge_invocation_id",
"capability",
"action",
"environment_type",
"outcome",
"reason",
"provider",
"is_fallback_used",
"usage_units",
"usage_unit",
"requested_at",
"finished_at",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}Credentials
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"active",
"revoked"
]
},
"revoked_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"owner_kind": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"type": "string"
},
"capability": {
"type": "string"
},
"actions": {
"type": "array",
"items": {
"type": "string"
}
},
"scope": {
"type": "array",
"items": {
"type": "string"
}
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"created_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"state",
"revoked_at",
"id",
"workspace_id",
"owner_kind",
"provider",
"capability",
"actions",
"scope",
"expires_at",
"created_by",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}ServiceIdentities
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"default": "bridge",
"type": "string",
"const": "bridge"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"scope": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ai.generate"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema6"
}
},
"scope": {
"type": "object",
"properties": {
"models": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema7"
}
},
"max_tokens_per_call": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"models",
"max_tokens_per_call"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "storage.object"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema8"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_object_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"prefix",
"max_object_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "data.kv"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema9"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_value_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 65536
},
"max_keys": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"prefix",
"max_value_bytes",
"max_keys"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "email.send"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema10"
}
},
"scope": {
"type": "object",
"properties": {
"from_addresses": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema11"
}
},
"recipient_domains": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema12"
}
},
"max_recipients": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_message_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1048576
}
},
"required": [
"from_addresses",
"recipient_domains",
"max_recipients",
"max_message_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "appuser.directory"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema13"
}
},
"scope": {
"type": "object",
"properties": {
"roles": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema14"
}
}
},
"required": [
"roles"
]
}
},
"required": [
"id",
"actions",
"scope"
]
}
]
},
"budget": {
"type": "object",
"properties": {
"units": {
"type": "number",
"minimum": 0
},
"unit": {
"type": "string",
"enum": [
"tokens",
"bytes",
"calls"
]
}
},
"required": [
"units",
"unit"
]
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"product_id",
"scope",
"budget",
"workspace_id"
]
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"type": "string",
"const": "runner"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
},
"workspace_id": {
"type": "string",
"const": "ws_platform"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"kind",
"name",
"product_id",
"scope",
"budget",
"workspace_id"
]
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"type": "string",
"const": "control-plane"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
},
"workspace_id": {
"type": "string",
"const": "ws_platform"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"kind",
"name",
"product_id",
"scope",
"budget",
"workspace_id"
]
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"type": "string",
"const": "automation"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"kind",
"name",
"product_id",
"scope",
"budget",
"workspace_id"
]
}
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^svc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"type": "string",
"pattern": "^svc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema2": {
"type": "string",
"minLength": 1
},
"__schema3": {
"type": "string",
"enum": [
"active",
"revoked"
]
},
"__schema4": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema5": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema6": {
"type": "string",
"enum": [
"generate"
]
},
"__schema7": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"__schema8": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"__schema9": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"__schema10": {
"type": "string",
"enum": [
"send"
]
},
"__schema11": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema12": {
"type": "string",
"maxLength": 253,
"pattern": "^(?:\\*|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$"
},
"__schema13": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"__schema14": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
}
}
}CredentialRequest
{
"type": "object",
"properties": {
"secret": {
"type": "string",
"minLength": 1,
"maxLength": 16384
},
"provider": {
"$ref": "#/$defs/__schema0"
},
"capability": {
"$ref": "#/$defs/__schema0"
},
"actions": {
"minItems": 1,
"maxItems": 64,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"scope": {
"maxItems": 200,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"secret",
"provider",
"capability",
"actions",
"scope",
"expires_at"
],
"$defs": {
"__schema0": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
}
}CredentialRotateRequest
{
"type": "object",
"properties": {
"secret": {
"type": "string",
"minLength": 1,
"maxLength": 16384
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"secret"
]
}Credential
{
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"active",
"revoked"
]
},
"revoked_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"owner_kind": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"type": "string"
},
"capability": {
"type": "string"
},
"actions": {
"type": "array",
"items": {
"type": "string"
}
},
"scope": {
"type": "array",
"items": {
"type": "string"
}
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"created_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"state",
"revoked_at",
"id",
"workspace_id",
"owner_kind",
"provider",
"capability",
"actions",
"scope",
"expires_at",
"created_by",
"created_at",
"updated_at"
]
}CredentialRevoked
{
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"active",
"revoked"
]
},
"revoked_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"owner_kind": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"type": "string"
},
"capability": {
"type": "string"
},
"actions": {
"type": "array",
"items": {
"type": "string"
}
},
"scope": {
"type": "array",
"items": {
"type": "string"
}
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"created_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"revoked_binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"state",
"revoked_at",
"id",
"workspace_id",
"owner_kind",
"provider",
"capability",
"actions",
"scope",
"expires_at",
"created_by",
"created_at",
"updated_at",
"revoked_binding_ids"
]
}ProviderBindingRequest
{
"type": "object",
"properties": {
"credential_id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"capability": {
"$ref": "#/$defs/__schema0"
},
"actions": {
"minItems": 1,
"maxItems": 64,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"scope": {
"maxItems": 200,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"app_id": {
"anyOf": [
{
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"purpose": {
"default": "fix",
"type": "string",
"enum": [
"fix",
"adjudication",
"product"
]
},
"budget": {
"type": "object",
"properties": {
"units": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"unit": {
"type": "string",
"const": "tokens"
}
},
"required": [
"units",
"unit"
]
},
"capability_scope": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ai.generate"
},
"scope": {
"type": "object",
"properties": {
"models": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema1"
}
},
"max_tokens_per_call": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"models",
"max_tokens_per_call"
]
},
"provider_models": {
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1
},
"embedding": {
"type": "string",
"minLength": 1
}
}
}
},
"required": [
"id",
"scope",
"provider_models"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "storage.object"
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_object_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"prefix",
"max_object_bytes"
]
}
},
"required": [
"id",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "data.kv"
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_value_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 65536
},
"max_keys": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"prefix",
"max_value_bytes",
"max_keys"
]
}
},
"required": [
"id",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "email.send"
},
"scope": {
"type": "object",
"properties": {
"from_addresses": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema2"
}
},
"recipient_domains": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema3"
}
},
"max_recipients": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_message_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1048576
}
},
"required": [
"from_addresses",
"recipient_domains",
"max_recipients",
"max_message_bytes"
]
}
},
"required": [
"id",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "appuser.directory"
},
"scope": {
"type": "object",
"properties": {
"roles": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema4"
}
}
},
"required": [
"roles"
]
}
},
"required": [
"id",
"scope"
]
}
]
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"credential_id",
"capability",
"actions",
"scope",
"environment_type",
"expires_at"
],
"$defs": {
"__schema0": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"__schema1": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"__schema2": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema3": {
"type": "string",
"maxLength": 253,
"pattern": "^(?:\\*|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$"
},
"__schema4": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
},
{
"type": "string",
"const": "*"
}
]
}
}
}ProviderBinding
{
"type": "object",
"properties": {
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"owner_kind": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"type": "string"
},
"capability": {
"type": "string"
},
"actions": {
"type": "array",
"items": {
"type": "string"
}
},
"scope": {
"type": "array",
"items": {
"type": "string"
}
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"app_id": {
"anyOf": [
{
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"suspected_invalid": {
"type": "boolean"
},
"suspected_invalid_since": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"consecutive_auth_failures": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"purpose": {
"default": "fix",
"type": "string",
"enum": [
"fix",
"adjudication",
"product"
]
},
"budget": {
"type": "object",
"properties": {
"units": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"unit": {
"type": "string",
"const": "tokens"
}
},
"required": [
"units",
"unit"
]
},
"id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"credential_id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"requested_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"state": {
"type": "string",
"enum": [
"requested",
"active",
"blocked",
"revoked"
]
},
"reason": {
"type": [
"string",
"null"
]
}
},
"required": [
"workspace_id",
"owner_kind",
"provider",
"capability",
"actions",
"scope",
"expires_at",
"created_at",
"updated_at",
"app_id",
"environment_type",
"suspected_invalid",
"suspected_invalid_since",
"consecutive_auth_failures",
"id",
"credential_id",
"requested_by",
"state",
"reason"
]
}ProviderBindings
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"owner_kind": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"type": "string"
},
"capability": {
"type": "string"
},
"actions": {
"type": "array",
"items": {
"type": "string"
}
},
"scope": {
"type": "array",
"items": {
"type": "string"
}
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"app_id": {
"anyOf": [
{
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"suspected_invalid": {
"type": "boolean"
},
"suspected_invalid_since": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"consecutive_auth_failures": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"purpose": {
"default": "fix",
"type": "string",
"enum": [
"fix",
"adjudication",
"product"
]
},
"budget": {
"type": "object",
"properties": {
"units": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"unit": {
"type": "string",
"const": "tokens"
}
},
"required": [
"units",
"unit"
]
},
"id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"credential_id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"requested_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"state": {
"type": "string",
"enum": [
"requested",
"active",
"blocked",
"revoked"
]
},
"reason": {
"type": [
"string",
"null"
]
}
},
"required": [
"workspace_id",
"owner_kind",
"provider",
"capability",
"actions",
"scope",
"expires_at",
"created_at",
"updated_at",
"app_id",
"environment_type",
"suspected_invalid",
"suspected_invalid_since",
"consecutive_auth_failures",
"id",
"credential_id",
"requested_by",
"state",
"reason"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}BridgeRequest
{
"type": "object",
"properties": {
"request": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ai.generate"
},
"action": {
"type": "string",
"const": "generate"
},
"model_kind": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"max_tokens": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"action",
"model_kind",
"max_tokens"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "storage.object"
},
"action": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"key": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"action",
"key"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "data.kv"
},
"action": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"key": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"action",
"key"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "email.send"
},
"action": {
"type": "string",
"const": "send"
},
"from": {
"$ref": "#/$defs/__schema0"
},
"recipients": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"action",
"from",
"recipients",
"bytes"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "appuser.directory"
},
"action": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"member_id": {
"type": "string",
"pattern": "^aus_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"role": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
},
"cursor": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"id",
"action"
]
}
]
},
"input": {
"oneOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"$ref": "#/$defs/__schema2"
}
]
}
},
"required": [
"request",
"input"
],
"$defs": {
"__schema0": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema1": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "inline"
},
"json": {}
},
"required": [
"kind",
"json"
]
},
"__schema2": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"kind": {
"type": "string",
"const": "evidence"
}
},
"required": [
"uri",
"sha256",
"size_bytes",
"kind"
]
}
}
}BridgeOutput
{
"oneOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"$ref": "#/$defs/__schema1"
}
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "inline"
},
"json": {}
},
"required": [
"kind",
"json"
]
},
"__schema1": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"kind": {
"type": "string",
"const": "evidence"
}
},
"required": [
"uri",
"sha256",
"size_bytes",
"kind"
]
}
}
}ServiceIdentityRequest
{
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"default": "bridge",
"type": "string",
"const": "bridge"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"scope": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ai.generate"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"scope": {
"type": "object",
"properties": {
"models": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema1"
}
},
"max_tokens_per_call": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"models",
"max_tokens_per_call"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "storage.object"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema2"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_object_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"prefix",
"max_object_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "data.kv"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema3"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_value_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 65536
},
"max_keys": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"prefix",
"max_value_bytes",
"max_keys"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "email.send"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema4"
}
},
"scope": {
"type": "object",
"properties": {
"from_addresses": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema5"
}
},
"recipient_domains": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema6"
}
},
"max_recipients": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_message_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1048576
}
},
"required": [
"from_addresses",
"recipient_domains",
"max_recipients",
"max_message_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "appuser.directory"
},
"actions": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema7"
}
},
"scope": {
"type": "object",
"properties": {
"roles": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema8"
}
}
},
"required": [
"roles"
]
}
},
"required": [
"id",
"actions",
"scope"
]
}
]
},
"budget": {
"type": "object",
"properties": {
"units": {
"type": "number",
"minimum": 0
},
"unit": {
"type": "string",
"enum": [
"tokens",
"bytes",
"calls"
]
}
},
"required": [
"units",
"unit"
]
}
},
"required": [
"product_id",
"scope",
"budget"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "runner"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
}
},
"required": [
"kind",
"name",
"product_id",
"scope",
"budget"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "control-plane"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
}
},
"required": [
"kind",
"name",
"product_id",
"scope",
"budget"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "automation"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
}
},
"required": [
"kind",
"name",
"product_id",
"scope",
"budget"
],
"additionalProperties": false
}
],
"$defs": {
"__schema0": {
"type": "string",
"enum": [
"generate"
]
},
"__schema1": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"__schema2": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"__schema3": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"__schema4": {
"type": "string",
"enum": [
"send"
]
},
"__schema5": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema6": {
"type": "string",
"maxLength": 253,
"pattern": "^(?:\\*|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$"
},
"__schema7": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"__schema8": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
}
}
}ServiceIdentity
{
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"default": "bridge",
"type": "string",
"const": "bridge"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"scope": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ai.generate"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema6"
}
},
"scope": {
"type": "object",
"properties": {
"models": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema7"
}
},
"max_tokens_per_call": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"models",
"max_tokens_per_call"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "storage.object"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema8"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_object_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"prefix",
"max_object_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "data.kv"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema9"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_value_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 65536
},
"max_keys": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"prefix",
"max_value_bytes",
"max_keys"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "email.send"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema10"
}
},
"scope": {
"type": "object",
"properties": {
"from_addresses": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema11"
}
},
"recipient_domains": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema12"
}
},
"max_recipients": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_message_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1048576
}
},
"required": [
"from_addresses",
"recipient_domains",
"max_recipients",
"max_message_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "appuser.directory"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema13"
}
},
"scope": {
"type": "object",
"properties": {
"roles": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema14"
}
}
},
"required": [
"roles"
]
}
},
"required": [
"id",
"actions",
"scope"
]
}
]
},
"budget": {
"type": "object",
"properties": {
"units": {
"type": "number",
"minimum": 0
},
"unit": {
"type": "string",
"enum": [
"tokens",
"bytes",
"calls"
]
}
},
"required": [
"units",
"unit"
]
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"product_id",
"scope",
"budget",
"workspace_id"
]
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"type": "string",
"const": "runner"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
},
"workspace_id": {
"type": "string",
"const": "ws_platform"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"kind",
"name",
"product_id",
"scope",
"budget",
"workspace_id"
]
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"type": "string",
"const": "control-plane"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
},
"workspace_id": {
"type": "string",
"const": "ws_platform"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"kind",
"name",
"product_id",
"scope",
"budget",
"workspace_id"
]
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"type": "string",
"const": "automation"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"kind",
"name",
"product_id",
"scope",
"budget",
"workspace_id"
]
}
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^svc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"type": "string",
"pattern": "^svc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema2": {
"type": "string",
"minLength": 1
},
"__schema3": {
"type": "string",
"enum": [
"active",
"revoked"
]
},
"__schema4": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema5": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema6": {
"type": "string",
"enum": [
"generate"
]
},
"__schema7": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"__schema8": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"__schema9": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"__schema10": {
"type": "string",
"enum": [
"send"
]
},
"__schema11": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema12": {
"type": "string",
"maxLength": 253,
"pattern": "^(?:\\*|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$"
},
"__schema13": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"__schema14": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
}
}
}ServiceIdentityCreated
{
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"default": "bridge",
"type": "string",
"const": "bridge"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"scope": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ai.generate"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema6"
}
},
"scope": {
"type": "object",
"properties": {
"models": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema7"
}
},
"max_tokens_per_call": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"models",
"max_tokens_per_call"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "storage.object"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema8"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_object_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"prefix",
"max_object_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "data.kv"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema9"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_value_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 65536
},
"max_keys": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"prefix",
"max_value_bytes",
"max_keys"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "email.send"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema10"
}
},
"scope": {
"type": "object",
"properties": {
"from_addresses": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema11"
}
},
"recipient_domains": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema12"
}
},
"max_recipients": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_message_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1048576
}
},
"required": [
"from_addresses",
"recipient_domains",
"max_recipients",
"max_message_bytes"
]
}
},
"required": [
"id",
"actions",
"scope"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "appuser.directory"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema13"
}
},
"scope": {
"type": "object",
"properties": {
"roles": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema14"
}
}
},
"required": [
"roles"
]
}
},
"required": [
"id",
"actions",
"scope"
]
}
]
},
"budget": {
"type": "object",
"properties": {
"units": {
"type": "number",
"minimum": 0
},
"unit": {
"type": "string",
"enum": [
"tokens",
"bytes",
"calls"
]
}
},
"required": [
"units",
"unit"
]
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"client_secret": {
"type": "string"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"product_id",
"scope",
"budget",
"workspace_id"
]
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"type": "string",
"const": "runner"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
},
"workspace_id": {
"type": "string",
"const": "ws_platform"
},
"client_secret": {
"type": "string"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"kind",
"name",
"product_id",
"scope",
"budget",
"workspace_id"
]
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"type": "string",
"const": "control-plane"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
},
"workspace_id": {
"type": "string",
"const": "ws_platform"
},
"client_secret": {
"type": "string"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"kind",
"name",
"product_id",
"scope",
"budget",
"workspace_id"
]
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/__schema0"
},
"service_identity_id": {
"$ref": "#/$defs/__schema1"
},
"oidc_client_id": {
"$ref": "#/$defs/__schema2"
},
"status": {
"$ref": "#/$defs/__schema3"
},
"created_at": {
"$ref": "#/$defs/__schema4"
},
"updated_at": {
"$ref": "#/$defs/__schema5"
},
"kind": {
"type": "string",
"const": "automation"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"product_id": {
"type": "null"
},
"scope": {
"type": "null"
},
"budget": {
"type": "null"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"client_secret": {
"type": "string"
}
},
"required": [
"id",
"service_identity_id",
"oidc_client_id",
"status",
"created_at",
"updated_at",
"kind",
"name",
"product_id",
"scope",
"budget",
"workspace_id"
]
}
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^svc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"type": "string",
"pattern": "^svc_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema2": {
"type": "string",
"minLength": 1
},
"__schema3": {
"type": "string",
"enum": [
"active",
"revoked"
]
},
"__schema4": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema5": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema6": {
"type": "string",
"enum": [
"generate"
]
},
"__schema7": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"__schema8": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"__schema9": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"__schema10": {
"type": "string",
"enum": [
"send"
]
},
"__schema11": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema12": {
"type": "string",
"maxLength": 253,
"pattern": "^(?:\\*|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$"
},
"__schema13": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"__schema14": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
}
}
}CapabilityInvocation
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^cap_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"anyOf": [
{
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"execution_id": {
"anyOf": [
{
"type": "string",
"pattern": "^exe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"bridge_invocation_id": {
"anyOf": [
{
"type": "string",
"pattern": "^inv_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"capability": {
"type": [
"string",
"null"
]
},
"action": {
"type": [
"string",
"null"
]
},
"environment_type": {
"anyOf": [
{
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
{
"type": "null"
}
]
},
"binding_id": {
"anyOf": [
{
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"outcome": {
"type": "string",
"enum": [
"requested",
"completed",
"denied",
"failed",
"unknown"
]
},
"reason": {
"anyOf": [
{
"type": "string",
"enum": [
"outside_contract",
"permission_denied",
"policy_blocked",
"binding_missing",
"binding_revoked",
"usage_denied",
"provider_unavailable",
"provider_rejected",
"output_blocked",
"platform_unavailable"
]
},
{
"type": "null"
}
]
},
"provider": {
"type": [
"string",
"null"
]
},
"is_fallback_used": {
"type": "boolean"
},
"usage_units": {
"type": "number",
"minimum": 0
},
"usage_unit": {
"type": "string",
"enum": [
"tokens",
"ms",
"calls",
"bytes"
]
},
"requested_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"finished_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"revision_id",
"execution_id",
"bridge_invocation_id",
"capability",
"action",
"environment_type",
"outcome",
"reason",
"provider",
"is_fallback_used",
"usage_units",
"usage_unit",
"requested_at",
"finished_at",
"created_at",
"updated_at"
]
}RunnerCapabilityRequest
{
"type": "object",
"properties": {
"execution_id": {
"type": "string",
"pattern": "^exe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"request_event_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"correlation_id": {
"type": "string",
"pattern": "^(brk|rsm|pvar|minv|trg|hook|mrun|mres|ws|aus|mba|app|usr|prod|rev|ver|rel|env|dep|srf|acc|ses|inv|exe|evt|pend|ddl|ntf|pipe|fnd|qual|cred|bind|hdl|cap|svc|frz|adj|fix|upl|dom|wb|ctx|aud|pay|ivc|rfd)_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"request": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "ai.generate"
},
"action": {
"type": "string",
"const": "generate"
},
"model_kind": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"max_tokens": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"action",
"model_kind",
"max_tokens"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "storage.object"
},
"action": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"key": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"action",
"key"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "data.kv"
},
"action": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"key": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"action",
"key"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "email.send"
},
"action": {
"type": "string",
"const": "send"
},
"from": {
"$ref": "#/$defs/__schema0"
},
"recipients": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"action",
"from",
"recipients",
"bytes"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"const": "appuser.directory"
},
"action": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"member_id": {
"type": "string",
"pattern": "^aus_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"role": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
},
"cursor": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"id",
"action"
]
}
]
},
"input": {
"oneOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"$ref": "#/$defs/__schema2"
}
]
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"required": [
"execution_id",
"request_event_id",
"correlation_id",
"request",
"input"
],
"$defs": {
"__schema0": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema1": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "inline"
},
"json": {}
},
"required": [
"kind",
"json"
]
},
"__schema2": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"kind": {
"type": "string",
"const": "evidence"
}
},
"required": [
"uri",
"sha256",
"size_bytes",
"kind"
]
}
}
}RunnerCapabilityResult
{
"type": "object",
"properties": {
"event_id": {
"$ref": "#/$defs/__schema0"
},
"event_type": {
"type": "string",
"const": "H-361.capability.invocation_resulted"
},
"schema_version": {
"type": "string",
"const": "1.0.0"
},
"occurred_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"producer": {
"type": "string",
"const": "use"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"correlation_id": {
"type": "string",
"pattern": "^(brk|rsm|pvar|minv|trg|hook|mrun|mres|ws|aus|mba|app|usr|prod|rev|ver|rel|env|dep|srf|acc|ses|inv|exe|evt|pend|ddl|ntf|pipe|fnd|qual|cred|bind|hdl|cap|svc|frz|adj|fix|upl|dom|wb|ctx|aud|pay|ivc|rfd)_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"causation_id": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"payload": {
"type": "object",
"properties": {
"binding_id": {
"$ref": "#/$defs/__schema1"
},
"capability_invocation_id": {
"$ref": "#/$defs/__schema2"
},
"workspace_id": {
"$ref": "#/$defs/__schema3"
},
"product_id": {
"$ref": "#/$defs/__schema4"
},
"outcome": {
"$ref": "#/$defs/__schema5"
},
"reason": {
"$ref": "#/$defs/__schema6"
},
"output": {
"$ref": "#/$defs/__schema7"
},
"provider": {
"$ref": "#/$defs/__schema10"
},
"fallback_used": {
"$ref": "#/$defs/__schema11"
},
"usage": {
"$ref": "#/$defs/__schema12"
},
"finished_at": {
"$ref": "#/$defs/__schema13"
}
},
"required": [
"capability_invocation_id",
"workspace_id",
"product_id",
"outcome",
"reason",
"output",
"provider",
"fallback_used",
"usage",
"finished_at"
]
}
},
"required": [
"event_id",
"event_type",
"schema_version",
"occurred_at",
"producer",
"workspace_id",
"correlation_id",
"causation_id",
"idempotency_key",
"payload"
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"anyOf": [
{
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"__schema2": {
"type": "string",
"pattern": "^cap_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema4": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema5": {
"type": "string",
"enum": [
"completed",
"denied",
"failed",
"unknown"
]
},
"__schema6": {
"anyOf": [
{
"type": "string",
"enum": [
"outside_contract",
"permission_denied",
"policy_blocked",
"binding_missing",
"binding_revoked",
"usage_denied",
"provider_unavailable",
"provider_rejected",
"output_blocked",
"platform_unavailable"
]
},
{
"type": "null"
}
]
},
"__schema7": {
"anyOf": [
{
"oneOf": [
{
"$ref": "#/$defs/__schema8"
},
{
"$ref": "#/$defs/__schema9"
}
]
},
{
"type": "null"
}
]
},
"__schema8": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "inline"
},
"json": {}
},
"required": [
"kind",
"json"
]
},
"__schema9": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"kind": {
"type": "string",
"const": "evidence"
}
},
"required": [
"uri",
"sha256",
"size_bytes",
"kind"
]
},
"__schema10": {
"type": [
"string",
"null"
]
},
"__schema11": {
"type": "boolean"
},
"__schema12": {
"type": "object",
"properties": {
"units": {
"type": "number",
"minimum": 0
},
"unit": {
"type": "string",
"enum": [
"tokens",
"ms",
"calls",
"bytes"
]
}
},
"required": [
"units",
"unit"
]
},
"__schema13": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}AppMemberAuth
{
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"off",
"platform"
]
}
},
"required": [
"mode"
]
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "byok"
},
"issuer": {
"type": "string",
"minLength": 1
},
"client_id": {
"type": "string",
"minLength": 1
},
"client_secret_set": {
"type": "boolean"
}
},
"required": [
"mode",
"issuer",
"client_id",
"client_secret_set"
]
}
]
}AppMemberAuthRequest
{
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"off",
"platform"
]
}
},
"required": [
"mode"
]
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "byok"
},
"issuer": {
"type": "string",
"minLength": 1
},
"client_id": {
"type": "string",
"minLength": 1
},
"client_secret": {
"type": "string",
"minLength": 1
}
},
"required": [
"mode",
"issuer",
"client_id"
]
}
]
}AppForwardingRequest
{
"type": "object",
"properties": {
"from_product_id": {
"$ref": "#/$defs/__schema0"
},
"to_product_id": {
"$ref": "#/$defs/__schema1"
}
},
"required": [
"from_product_id",
"to_product_id"
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
}AppForwarding
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"forwarding": {
"anyOf": [
{
"type": "object",
"properties": {
"from_product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"to_product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"path_prefix": {
"type": "string",
"const": "/api/"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"from_product_id",
"to_product_id",
"path_prefix",
"updated_at"
]
},
{
"type": "null"
}
]
}
},
"required": [
"app_id",
"forwarding"
]
}GitHubConnectionProblem
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"code": {
"type": "string",
"enum": [
"bad_request",
"unauthenticated",
"forbidden",
"not_found",
"conflict",
"validation_failed",
"rate_limited",
"internal",
"unavailable"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"reason": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"path"
]
}
},
"errors_total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"correlation_id"
]
}GitHubConnectionStartRequest
{
"type": "object",
"properties": {
"installation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"redirect_uri": {
"type": "string",
"format": "uri"
}
},
"required": [
"installation_id",
"redirect_uri"
]
}GitHubConnectionStarted
{
"type": "object",
"properties": {
"authorize_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"authorize_url"
]
}GitHubConnectionRequest
{
"type": "object",
"properties": {
"state": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 512
}
},
"required": [
"state",
"code"
]
}GitHubConnection
{
"type": "object",
"properties": {
"credential_id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"account_login": {
"type": "string"
},
"account_type": {
"type": "string",
"enum": [
"User",
"Organization"
]
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"renewed": {
"type": "boolean"
}
},
"required": [
"credential_id",
"account_login",
"account_type",
"expires_at",
"renewed"
]
}GitHubConnections
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"credential_id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"account_login": {
"type": "string"
},
"account_type": {
"type": "string",
"enum": [
"User",
"Organization"
]
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"credential_id",
"account_login",
"account_type",
"expires_at"
]
}
},
"install_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"items",
"install_url"
]
}GitHubRepositories
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"full_name": {
"type": "string"
},
"private": {
"type": "boolean"
},
"default_branch": {
"type": "string"
}
},
"required": [
"full_name",
"private",
"default_branch"
]
}
},
"next_page": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"items",
"next_page"
]
}GitHubBranches
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"required": [
"name"
]
}
},
"next_page": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"items",
"next_page"
]
}RevisionGraph
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "belld.graph"
},
"version": {
"type": "string",
"const": "1.0.0"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"descriptor": {
"type": "object",
"properties": {
"product_type": {
"type": "string",
"enum": [
"hosted-app",
"hosted-api",
"agent",
"remote",
"bridge"
]
},
"descriptor_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"descriptor": {
"type": "object",
"properties": {
"runtime": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"version"
]
},
"entrypoint": {
"type": "object",
"properties": {
"command": {
"type": "string",
"minLength": 1
},
"args": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"command",
"args"
]
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"protocol": {
"type": "string",
"const": "http"
}
},
"required": [
"port",
"protocol"
]
}
},
"field_sources": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"detected",
"developer"
]
}
},
"build_plan": {
"type": "object",
"properties": {
"runtime": {
"$ref": "#/$defs/__schema0"
},
"workdir": {
"$ref": "#/$defs/__schema1"
},
"install": {
"$ref": "#/$defs/__schema2"
},
"build": {
"$ref": "#/$defs/__schema3"
},
"start": {
"$ref": "#/$defs/__schema4"
},
"port": {
"$ref": "#/$defs/__schema5"
},
"health": {
"$ref": "#/$defs/__schema6"
},
"env": {
"$ref": "#/$defs/__schema7"
}
},
"required": [
"runtime",
"workdir",
"install",
"build",
"start",
"port",
"health",
"env"
]
}
},
"required": [
"runtime",
"entrypoint",
"ports",
"field_sources"
]
}
},
"required": [
"product_type",
"descriptor_hash",
"descriptor"
]
},
"capabilities": {
"anyOf": [
{
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "ai.generate"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema9"
}
},
"scope": {
"type": "object",
"properties": {
"models": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema10"
}
},
"max_tokens_per_call": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"models",
"max_tokens_per_call"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"$ref": "#/$defs/__schema11"
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "storage.object"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema12"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_object_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"prefix",
"max_object_bytes"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"$ref": "#/$defs/__schema11"
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "data.kv"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema13"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_value_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 65536
},
"max_keys": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"prefix",
"max_value_bytes",
"max_keys"
]
},
"credential_owner": {
"type": "string",
"const": "platform"
},
"provider": {
"type": "object",
"properties": {
"allow": {
"minItems": 1,
"maxItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema14"
}
},
"prefer": {
"type": "string",
"const": "platform"
},
"fallback": {
"type": "string",
"const": "none"
}
},
"required": [
"allow",
"fallback"
]
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "email.send"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema15"
}
},
"scope": {
"type": "object",
"properties": {
"from_addresses": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema16"
}
},
"recipient_domains": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema17"
}
},
"max_recipients": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_message_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1048576
}
},
"required": [
"from_addresses",
"recipient_domains",
"max_recipients",
"max_message_bytes"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"$ref": "#/$defs/__schema11"
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "appuser.directory"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema18"
}
},
"scope": {
"type": "object",
"properties": {
"roles": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema19"
}
}
},
"required": [
"roles"
]
},
"credential_owner": {
"type": "string",
"const": "platform"
},
"provider": {
"type": "object",
"properties": {
"allow": {
"minItems": 1,
"maxItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema20"
}
},
"prefer": {
"type": "string",
"const": "platform"
},
"fallback": {
"type": "string",
"const": "none"
}
},
"required": [
"allow",
"fallback"
]
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
}
]
}
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"observed_undeclared": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"action": {
"type": [
"string",
"null"
]
},
"sources": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema27"
}
},
"confidence": {
"$ref": "#/$defs/__schema21"
}
},
"required": [
"capability",
"action",
"sources",
"confidence"
]
}
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable",
"no_source_facts",
"invalid_source_facts"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"packages": {
"anyOf": [
{
"type": "object",
"properties": {
"layer": {
"type": "string",
"const": "native"
},
"status": {
"type": "string",
"const": "known"
},
"total": {
"$ref": "#/$defs/__schema25"
},
"ecosystems": {
"type": "array",
"items": {
"type": "string",
"enum": [
"npm",
"PyPI"
]
}
},
"list_version": {
"type": "string",
"enum": [
"1.0.0",
"1.1.0"
]
},
"snapshot_date": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
}
},
"required": [
"layer",
"status",
"total",
"ecosystems",
"list_version",
"snapshot_date"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"no_package_list",
"invalid_package_list",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"egress": {
"type": "object",
"properties": {
"layer": {
"type": "string",
"const": "native"
},
"declared": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
]
}
}
},
"required": [
"layer",
"declared"
]
},
"schedules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"cron": {
"type": "string"
}
},
"required": [
"path",
"cron"
]
}
},
"requirements": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"truncated": {
"type": "array",
"items": {
"type": "string",
"enum": [
"dependencies",
"scripts",
"imports",
"env",
"routes"
]
}
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"class": {
"type": "string",
"enum": [
"capability",
"managed_resource",
"platform_service",
"lifecycle_trigger",
"secret_migration",
"unknown"
]
},
"target": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"capability",
"managed_resource",
"trigger",
"platform_service",
"none"
]
},
"id": {
"type": "string"
}
},
"required": [
"kind"
]
},
"action": {
"type": "string",
"enum": [
"declare_capability",
"request_resource",
"declare_trigger",
"migrate_secret",
"no_official_capability",
"inform"
]
},
"confidence": {
"$ref": "#/$defs/__schema21"
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"dependency",
"import",
"env",
"route",
"script",
"env_committed"
]
},
"value": {
"type": "string"
}
},
"required": [
"kind",
"value"
]
}
}
},
"required": [
"id",
"class",
"target",
"action",
"confidence",
"evidence"
]
}
}
},
"required": [
"status",
"truncated",
"items"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
}
},
"required": [
"status",
"reason"
]
}
]
},
"forwarding": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"const": "not_available"
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "none"
}
},
"required": [
"status"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "configured"
},
"from_product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"to_product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"path_prefix": {
"type": "string",
"const": "/api/"
}
},
"required": [
"status",
"from_product_id",
"to_product_id",
"path_prefix"
]
}
]
},
"app_id": {
"anyOf": [
{
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"built": {
"type": "object",
"properties": {
"source": {
"type": "string",
"enum": [
"stored",
"computed"
]
},
"built_at": {
"$ref": "#/$defs/__schema24"
},
"pipeline_run_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"source",
"built_at",
"pipeline_run_id"
]
},
"environments": {
"type": "object",
"properties": {
"staging": {
"$ref": "#/$defs/__schema28"
},
"production": {
"$ref": "#/$defs/__schema28"
}
},
"required": [
"staging",
"production"
]
},
"managed_resources": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"resource_id": {
"type": "string",
"pattern": "^mres_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"kind": {
"type": "string",
"enum": [
"kv"
]
},
"provision_model": {
"type": "string",
"enum": [
"platform_pool",
"provider_backed"
]
},
"handle_mode": {
"type": "string",
"enum": [
"capability",
"injected"
]
},
"state": {
"type": "string",
"enum": [
"requested",
"provisioning",
"ready",
"failed",
"detached",
"deleted"
]
},
"layer": {
"type": "string",
"const": "managed"
},
"detached_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"retention_due_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"created_at": {
"$ref": "#/$defs/__schema24"
},
"updated_at": {
"$ref": "#/$defs/__schema24"
}
},
"required": [
"resource_id",
"workspace_id",
"product_id",
"environment_type",
"kind",
"provision_model",
"handle_mode",
"state",
"layer",
"detached_at",
"retention_due_at",
"created_at",
"updated_at"
]
}
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"current_verification": {
"anyOf": [
{
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"verified",
"degraded",
"blocked",
"revoked"
]
},
"computed_at": {
"$ref": "#/$defs/__schema24"
}
},
"required": [
"status",
"computed_at"
]
},
{
"type": "null"
}
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"dependency_recheck": {
"anyOf": [
{
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"clean",
"findings",
"unavailable",
"not_covered"
]
},
"checked_at": {
"$ref": "#/$defs/__schema24"
},
"snapshot_date": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"findings": {
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema29"
}
},
"findings_total": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"checked_at",
"snapshot_date",
"findings",
"findings_total"
]
},
{
"type": "null"
}
]
},
{
"$ref": "#/$defs/__schema26"
}
]
}
},
"required": [
"schema",
"version",
"workspace_id",
"product_id",
"revision_id",
"descriptor",
"capabilities",
"observed_undeclared",
"packages",
"egress",
"schedules",
"requirements",
"forwarding",
"app_id",
"built",
"environments",
"managed_resources",
"current_verification",
"dependency_recheck"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
"__schema1": {
"type": "string",
"pattern": "^\\/.*"
},
"__schema2": {
"type": "object",
"properties": {
"package_manager": {
"anyOf": [
{
"type": "string",
"enum": [
"pnpm",
"npm",
"yarn",
"pip",
"uv",
"poetry"
]
},
{
"type": "null"
}
]
},
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"package_manager",
"command"
]
},
"__schema3": {
"type": "object",
"properties": {
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"command"
]
},
"__schema4": {
"type": "object",
"properties": {
"command": {
"type": "string"
}
},
"required": [
"command"
]
},
"__schema5": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"__schema6": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^\\/.*"
},
"timeout_ms": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"timeout_ms"
]
},
"__schema7": {
"type": "array",
"items": {
"type": "string",
"enum": [
"PORT",
"NODE_ENV"
]
}
},
"__schema8": {
"type": "boolean"
},
"__schema9": {
"type": "string",
"enum": [
"generate"
]
},
"__schema10": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"__schema11": {
"type": "object",
"properties": {
"allow": {
"type": "array",
"items": {
"type": "string"
}
},
"prefer": {
"type": "string"
},
"fallback": {
"type": "string",
"enum": [
"none",
"listed"
]
}
},
"required": [
"allow",
"fallback"
]
},
"__schema12": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"__schema13": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"__schema14": {
"type": "string",
"const": "platform"
},
"__schema15": {
"type": "string",
"enum": [
"send"
]
},
"__schema16": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema17": {
"type": "string",
"maxLength": 253,
"pattern": "^(?:\\*|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$"
},
"__schema18": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"__schema19": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
},
"__schema20": {
"type": "string",
"const": "platform"
},
"__schema21": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"__schema22": {
"type": "string",
"const": "unknown"
},
"__schema23": {
"type": "string",
"enum": [
"no_source_facts",
"invalid_source_facts",
"not_qualified",
"unavailable"
]
},
"__schema24": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema25": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"__schema26": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"const": "unavailable"
}
},
"required": [
"status",
"reason"
]
},
"__schema27": {
"type": "string",
"enum": [
"scan",
"requirement"
]
},
"__schema28": {
"type": "object",
"properties": {
"deployment": {
"anyOf": [
{
"anyOf": [
{
"type": "object",
"properties": {
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"health": {
"anyOf": [
{
"type": "object",
"properties": {
"checked_at": {
"$ref": "#/$defs/__schema24"
},
"attempts": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"latency_ms": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"observed": {
"anyOf": [
{
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"healthy",
"unhealthy",
"not_running",
"missing",
"asleep",
"unknown"
]
},
"sampled_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"last_healthy_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"consecutive_failures": {
"$ref": "#/$defs/__schema25"
},
"last_status_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"latency_ms": {
"anyOf": [
{
"$ref": "#/$defs/__schema25"
},
{
"type": "null"
}
]
},
"exit_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reason_code": {
"anyOf": [
{
"type": "string",
"enum": [
"http_status",
"timeout",
"connection_failed",
"process_exited",
"not_registered",
"workload_absent"
]
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"sampled_at",
"last_healthy_at",
"consecutive_failures",
"last_status_code",
"latency_ms",
"exit_code",
"reason_code"
]
},
{
"type": "null"
}
]
}
},
"required": [
"checked_at",
"attempts",
"latency_ms",
"observed"
]
},
{
"type": "null"
}
]
}
},
"required": [
"deployment_id",
"revision_id",
"health"
]
},
{
"type": "null"
}
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"bindings": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"present",
"missing",
"unknown"
]
},
"reason": {
"type": "string",
"const": "unavailable"
},
"bindings": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"binding_id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"provider": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"requested",
"active",
"blocked",
"revoked"
]
},
"expires_at": {
"$ref": "#/$defs/__schema24"
},
"suspected_invalid": {
"type": [
"boolean",
"null"
]
},
"suspected_invalid_since": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"consecutive_auth_failures": {
"anyOf": [
{
"$ref": "#/$defs/__schema25"
},
{
"type": "null"
}
]
},
"credential": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"provider": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"active",
"revoked"
]
}
},
"required": [
"id",
"provider",
"state"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
}
},
"required": [
"binding_id",
"provider",
"state",
"expires_at",
"suspected_invalid",
"suspected_invalid_since",
"consecutive_auth_failures",
"credential"
]
}
},
{
"$ref": "#/$defs/__schema26"
}
]
}
},
"required": [
"capability",
"status"
]
}
},
{
"$ref": "#/$defs/__schema26"
}
]
}
},
"required": [
"deployment",
"bindings"
]
},
"__schema29": {
"type": "object",
"properties": {
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"info",
"warning",
"error"
]
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"severity",
"cvss",
"fixed_in"
]
}
}
}RevisionGraphPackages
{
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"items": {
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"status",
"items",
"next_cursor",
"total"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"no_package_list",
"invalid_package_list",
"not_qualified",
"unavailable"
]
},
"items": {
"minItems": 0,
"maxItems": 0,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
"next_cursor": {
"type": "null"
},
"total": {
"type": "number",
"const": 0
}
},
"required": [
"status",
"reason",
"items",
"next_cursor",
"total"
]
}
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"ecosystem": {
"type": "string",
"enum": [
"npm",
"PyPI"
]
},
"name": {
"type": "string",
"minLength": 1
},
"version": {
"type": "string",
"minLength": 1
},
"lockfile": {
"type": "string",
"minLength": 1,
"pattern": "^(?!\\/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|\\/)\\.\\.(?:\\/|$)).+$"
}
},
"required": [
"ecosystem",
"name",
"version",
"lockfile"
],
"additionalProperties": false
}
}
}AppGraph
{
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"app_id": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment": {
"type": "string",
"enum": [
"staging",
"production"
]
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"closure_state": {
"type": "string",
"enum": [
"active",
"closure_pending",
"retired"
]
},
"deployment": {
"anyOf": [
{
"type": "object",
"properties": {
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"deployment_id",
"revision_id"
]
},
{
"type": "null"
}
]
},
"graph": {
"anyOf": [
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "belld.graph"
},
"version": {
"type": "string",
"const": "1.0.0"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"descriptor": {
"type": "object",
"properties": {
"product_type": {
"type": "string",
"enum": [
"hosted-app",
"hosted-api",
"agent",
"remote",
"bridge"
]
},
"descriptor_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"descriptor": {
"type": "object",
"properties": {
"runtime": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"version"
]
},
"entrypoint": {
"type": "object",
"properties": {
"command": {
"type": "string",
"minLength": 1
},
"args": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"command",
"args"
]
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"protocol": {
"type": "string",
"const": "http"
}
},
"required": [
"port",
"protocol"
]
}
},
"field_sources": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"detected",
"developer"
]
}
},
"build_plan": {
"type": "object",
"properties": {
"runtime": {
"$ref": "#/$defs/__schema0"
},
"workdir": {
"$ref": "#/$defs/__schema1"
},
"install": {
"$ref": "#/$defs/__schema2"
},
"build": {
"$ref": "#/$defs/__schema3"
},
"start": {
"$ref": "#/$defs/__schema4"
},
"port": {
"$ref": "#/$defs/__schema5"
},
"health": {
"$ref": "#/$defs/__schema6"
},
"env": {
"$ref": "#/$defs/__schema7"
}
},
"required": [
"runtime",
"workdir",
"install",
"build",
"start",
"port",
"health",
"env"
]
}
},
"required": [
"runtime",
"entrypoint",
"ports",
"field_sources"
]
}
},
"required": [
"product_type",
"descriptor_hash",
"descriptor"
]
},
"capabilities": {
"anyOf": [
{
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "ai.generate"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema9"
}
},
"scope": {
"type": "object",
"properties": {
"models": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema10"
}
},
"max_tokens_per_call": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"models",
"max_tokens_per_call"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"$ref": "#/$defs/__schema11"
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "storage.object"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema12"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_object_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"prefix",
"max_object_bytes"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"$ref": "#/$defs/__schema11"
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "data.kv"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema13"
}
},
"scope": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"pattern": "^\\/(?!.*\\.\\.).*$"
},
"max_value_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 65536
},
"max_keys": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"required": [
"prefix",
"max_value_bytes",
"max_keys"
]
},
"credential_owner": {
"type": "string",
"const": "platform"
},
"provider": {
"type": "object",
"properties": {
"allow": {
"minItems": 1,
"maxItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema14"
}
},
"prefer": {
"type": "string",
"const": "platform"
},
"fallback": {
"type": "string",
"const": "none"
}
},
"required": [
"allow",
"fallback"
]
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "email.send"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema15"
}
},
"scope": {
"type": "object",
"properties": {
"from_addresses": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema16"
}
},
"recipient_domains": {
"minItems": 1,
"maxItems": 32,
"type": "array",
"items": {
"$ref": "#/$defs/__schema17"
}
},
"max_recipients": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_message_bytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1048576
}
},
"required": [
"from_addresses",
"recipient_domains",
"max_recipients",
"max_message_bytes"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"provider": {
"$ref": "#/$defs/__schema11"
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
},
{
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"layer": {
"type": "string",
"enum": [
"connected",
"managed"
]
},
"declared": {
"type": "boolean",
"const": true
},
"observed": {
"type": "object",
"properties": {
"scan": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"used",
"unused"
]
}
},
"required": [
"action",
"state"
]
}
}
},
"required": [
"status",
"actions"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"requirement": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"confidence": {
"anyOf": [
{
"$ref": "#/$defs/__schema21"
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"confidence"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
},
"confidence": {
"type": "null"
}
},
"required": [
"status",
"reason",
"confidence"
]
}
]
},
"invoked": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"scan",
"requirement",
"invoked"
]
},
"executed": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"completed": {
"$ref": "#/$defs/__schema25"
},
"denied": {
"$ref": "#/$defs/__schema25"
},
"failed": {
"$ref": "#/$defs/__schema25"
},
"requested": {
"$ref": "#/$defs/__schema25"
},
"unknown": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"scope",
"since",
"completed",
"denied",
"failed",
"requested"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"selected": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"scope": {
"type": "string",
"const": "product"
},
"since": {
"$ref": "#/$defs/__schema24"
},
"binding_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
},
"required": [
"status",
"scope",
"since",
"binding_ids"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"unavailable",
"binding_not_recorded"
]
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_applicable"
}
},
"required": [
"status"
]
}
]
},
"id": {
"type": "string",
"const": "appuser.directory"
},
"required": {
"$ref": "#/$defs/__schema8"
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema18"
}
},
"scope": {
"type": "object",
"properties": {
"roles": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"$ref": "#/$defs/__schema19"
}
}
},
"required": [
"roles"
]
},
"credential_owner": {
"type": "string",
"const": "platform"
},
"provider": {
"type": "object",
"properties": {
"allow": {
"minItems": 1,
"maxItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema20"
}
},
"prefer": {
"type": "string",
"const": "platform"
},
"fallback": {
"type": "string",
"const": "none"
}
},
"required": [
"allow",
"fallback"
]
}
},
"required": [
"capability",
"layer",
"declared",
"observed",
"executed",
"id",
"required",
"actions",
"scope",
"credential_owner",
"provider"
]
}
]
}
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"observed_undeclared": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"action": {
"type": [
"string",
"null"
]
},
"sources": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/$defs/__schema27"
}
},
"confidence": {
"$ref": "#/$defs/__schema21"
}
},
"required": [
"capability",
"action",
"sources",
"confidence"
]
}
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"scan_unavailable",
"not_qualified",
"unavailable",
"no_source_facts",
"invalid_source_facts"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"packages": {
"anyOf": [
{
"type": "object",
"properties": {
"layer": {
"type": "string",
"const": "native"
},
"status": {
"type": "string",
"const": "known"
},
"total": {
"$ref": "#/$defs/__schema25"
},
"ecosystems": {
"type": "array",
"items": {
"type": "string",
"enum": [
"npm",
"PyPI"
]
}
},
"list_version": {
"type": "string",
"enum": [
"1.0.0",
"1.1.0"
]
},
"snapshot_date": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
}
},
"required": [
"layer",
"status",
"total",
"ecosystems",
"list_version",
"snapshot_date"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"enum": [
"no_package_list",
"invalid_package_list",
"not_qualified",
"unavailable"
]
}
},
"required": [
"status",
"reason"
]
}
]
},
"egress": {
"type": "object",
"properties": {
"layer": {
"type": "string",
"const": "native"
},
"declared": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"host",
"port"
]
}
}
},
"required": [
"layer",
"declared"
]
},
"schedules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"cron": {
"type": "string"
}
},
"required": [
"path",
"cron"
]
}
},
"requirements": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"known",
"partial"
]
},
"truncated": {
"type": "array",
"items": {
"type": "string",
"enum": [
"dependencies",
"scripts",
"imports",
"env",
"routes"
]
}
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"class": {
"type": "string",
"enum": [
"capability",
"managed_resource",
"platform_service",
"lifecycle_trigger",
"secret_migration",
"unknown"
]
},
"target": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"capability",
"managed_resource",
"trigger",
"platform_service",
"none"
]
},
"id": {
"type": "string"
}
},
"required": [
"kind"
]
},
"action": {
"type": "string",
"enum": [
"declare_capability",
"request_resource",
"declare_trigger",
"migrate_secret",
"no_official_capability",
"inform"
]
},
"confidence": {
"$ref": "#/$defs/__schema21"
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"dependency",
"import",
"env",
"route",
"script",
"env_committed"
]
},
"value": {
"type": "string"
}
},
"required": [
"kind",
"value"
]
}
}
},
"required": [
"id",
"class",
"target",
"action",
"confidence",
"evidence"
]
}
}
},
"required": [
"status",
"truncated",
"items"
]
},
{
"type": "object",
"properties": {
"status": {
"$ref": "#/$defs/__schema22"
},
"reason": {
"$ref": "#/$defs/__schema23"
}
},
"required": [
"status",
"reason"
]
}
]
},
"forwarding": {
"$ref": "#/$defs/__schema28"
},
"app_id": {
"anyOf": [
{
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"built": {
"type": "object",
"properties": {
"source": {
"type": "string",
"enum": [
"stored",
"computed"
]
},
"built_at": {
"$ref": "#/$defs/__schema24"
},
"pipeline_run_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"source",
"built_at",
"pipeline_run_id"
]
},
"environments": {
"type": "object",
"properties": {
"staging": {
"$ref": "#/$defs/__schema29"
},
"production": {
"$ref": "#/$defs/__schema29"
}
},
"required": [
"staging",
"production"
]
},
"managed_resources": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"resource_id": {
"type": "string",
"pattern": "^mres_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"kind": {
"type": "string",
"enum": [
"kv"
]
},
"provision_model": {
"type": "string",
"enum": [
"platform_pool",
"provider_backed"
]
},
"handle_mode": {
"type": "string",
"enum": [
"capability",
"injected"
]
},
"state": {
"type": "string",
"enum": [
"requested",
"provisioning",
"ready",
"failed",
"detached",
"deleted"
]
},
"layer": {
"type": "string",
"const": "managed"
},
"detached_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"retention_due_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"created_at": {
"$ref": "#/$defs/__schema24"
},
"updated_at": {
"$ref": "#/$defs/__schema24"
}
},
"required": [
"resource_id",
"workspace_id",
"product_id",
"environment_type",
"kind",
"provision_model",
"handle_mode",
"state",
"layer",
"detached_at",
"retention_due_at",
"created_at",
"updated_at"
]
}
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"current_verification": {
"anyOf": [
{
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"verified",
"degraded",
"blocked",
"revoked"
]
},
"computed_at": {
"$ref": "#/$defs/__schema24"
}
},
"required": [
"status",
"computed_at"
]
},
{
"type": "null"
}
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"dependency_recheck": {
"anyOf": [
{
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"clean",
"findings",
"unavailable",
"not_covered"
]
},
"checked_at": {
"$ref": "#/$defs/__schema24"
},
"snapshot_date": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"findings": {
"maxItems": 50,
"type": "array",
"items": {
"$ref": "#/$defs/__schema30"
}
},
"findings_total": {
"$ref": "#/$defs/__schema25"
}
},
"required": [
"status",
"checked_at",
"snapshot_date",
"findings",
"findings_total"
]
},
{
"type": "null"
}
]
},
{
"$ref": "#/$defs/__schema26"
}
]
}
},
"required": [
"schema",
"version",
"workspace_id",
"product_id",
"revision_id",
"descriptor",
"capabilities",
"observed_undeclared",
"packages",
"egress",
"schedules",
"requirements",
"forwarding",
"app_id",
"built",
"environments",
"managed_resources",
"current_verification",
"dependency_recheck"
]
},
{
"type": "null"
}
]
}
},
"required": [
"product_id",
"closure_state",
"deployment",
"graph"
]
}
},
"forwarding": {
"$ref": "#/$defs/__schema28"
}
},
"required": [
"workspace_id",
"app_id",
"environment",
"services",
"forwarding"
],
"$defs": {
"__schema0": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"node",
"shell",
"python"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind",
"version"
]
},
"__schema1": {
"type": "string",
"pattern": "^\\/.*"
},
"__schema2": {
"type": "object",
"properties": {
"package_manager": {
"anyOf": [
{
"type": "string",
"enum": [
"pnpm",
"npm",
"yarn",
"pip",
"uv",
"poetry"
]
},
{
"type": "null"
}
]
},
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"package_manager",
"command"
]
},
"__schema3": {
"type": "object",
"properties": {
"command": {
"type": [
"string",
"null"
]
}
},
"required": [
"command"
]
},
"__schema4": {
"type": "object",
"properties": {
"command": {
"type": "string"
}
},
"required": [
"command"
]
},
"__schema5": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"__schema6": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^\\/.*"
},
"timeout_ms": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"path",
"timeout_ms"
]
},
"__schema7": {
"type": "array",
"items": {
"type": "string",
"enum": [
"PORT",
"NODE_ENV"
]
}
},
"__schema8": {
"type": "boolean"
},
"__schema9": {
"type": "string",
"enum": [
"generate"
]
},
"__schema10": {
"type": "string",
"enum": [
"text",
"embedding"
]
},
"__schema11": {
"type": "object",
"properties": {
"allow": {
"type": "array",
"items": {
"type": "string"
}
},
"prefer": {
"type": "string"
},
"fallback": {
"type": "string",
"enum": [
"none",
"listed"
]
}
},
"required": [
"allow",
"fallback"
]
},
"__schema12": {
"type": "string",
"enum": [
"read",
"write",
"delete",
"list"
]
},
"__schema13": {
"type": "string",
"enum": [
"get",
"set",
"delete",
"list",
"increment"
]
},
"__schema14": {
"type": "string",
"const": "platform"
},
"__schema15": {
"type": "string",
"enum": [
"send"
]
},
"__schema16": {
"type": "string",
"maxLength": 254,
"pattern": "^(?!.*[A-Z])(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[ !#-[\\]-~]|\\\\[ -~])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
},
"__schema17": {
"type": "string",
"maxLength": 253,
"pattern": "^(?:\\*|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$"
},
"__schema18": {
"type": "string",
"enum": [
"get",
"list",
"update_role",
"delete"
]
},
"__schema19": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^[a-z0-9_-]+$"
},
"__schema20": {
"type": "string",
"const": "platform"
},
"__schema21": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"__schema22": {
"type": "string",
"const": "unknown"
},
"__schema23": {
"type": "string",
"enum": [
"no_source_facts",
"invalid_source_facts",
"not_qualified",
"unavailable"
]
},
"__schema24": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema25": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"__schema26": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"const": "unavailable"
}
},
"required": [
"status",
"reason"
]
},
"__schema27": {
"type": "string",
"enum": [
"scan",
"requirement"
]
},
"__schema28": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"const": "not_available"
}
},
"required": [
"status",
"reason"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "none"
}
},
"required": [
"status"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "configured"
},
"from_product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"to_product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"path_prefix": {
"type": "string",
"const": "/api/"
}
},
"required": [
"status",
"from_product_id",
"to_product_id",
"path_prefix"
]
}
]
},
"__schema29": {
"type": "object",
"properties": {
"deployment": {
"anyOf": [
{
"anyOf": [
{
"type": "object",
"properties": {
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"health": {
"anyOf": [
{
"type": "object",
"properties": {
"checked_at": {
"$ref": "#/$defs/__schema24"
},
"attempts": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"latency_ms": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"observed": {
"anyOf": [
{
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"healthy",
"unhealthy",
"not_running",
"missing",
"asleep",
"unknown"
]
},
"sampled_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"last_healthy_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"consecutive_failures": {
"$ref": "#/$defs/__schema25"
},
"last_status_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"latency_ms": {
"anyOf": [
{
"$ref": "#/$defs/__schema25"
},
{
"type": "null"
}
]
},
"exit_code": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reason_code": {
"anyOf": [
{
"type": "string",
"enum": [
"http_status",
"timeout",
"connection_failed",
"process_exited",
"not_registered",
"workload_absent"
]
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"sampled_at",
"last_healthy_at",
"consecutive_failures",
"last_status_code",
"latency_ms",
"exit_code",
"reason_code"
]
},
{
"type": "null"
}
]
}
},
"required": [
"checked_at",
"attempts",
"latency_ms",
"observed"
]
},
{
"type": "null"
}
]
}
},
"required": [
"deployment_id",
"revision_id",
"health"
]
},
{
"type": "null"
}
]
},
{
"$ref": "#/$defs/__schema26"
}
]
},
"bindings": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"capability": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"present",
"missing",
"unknown"
]
},
"reason": {
"type": "string",
"const": "unavailable"
},
"bindings": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"binding_id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"provider": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"requested",
"active",
"blocked",
"revoked"
]
},
"expires_at": {
"$ref": "#/$defs/__schema24"
},
"suspected_invalid": {
"type": [
"boolean",
"null"
]
},
"suspected_invalid_since": {
"anyOf": [
{
"$ref": "#/$defs/__schema24"
},
{
"type": "null"
}
]
},
"consecutive_auth_failures": {
"anyOf": [
{
"$ref": "#/$defs/__schema25"
},
{
"type": "null"
}
]
},
"credential": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"provider": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"active",
"revoked"
]
}
},
"required": [
"id",
"provider",
"state"
]
},
{
"$ref": "#/$defs/__schema26"
}
]
}
},
"required": [
"binding_id",
"provider",
"state",
"expires_at",
"suspected_invalid",
"suspected_invalid_since",
"consecutive_auth_failures",
"credential"
]
}
},
{
"$ref": "#/$defs/__schema26"
}
]
}
},
"required": [
"capability",
"status"
]
}
},
{
"$ref": "#/$defs/__schema26"
}
]
}
},
"required": [
"deployment",
"bindings"
]
},
"__schema30": {
"type": "object",
"properties": {
"package": {
"type": "string"
},
"version": {
"type": "string"
},
"advisory_id": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"info",
"warning",
"error"
]
},
"cvss": {
"type": [
"string",
"null"
]
},
"fixed_in": {
"type": [
"string",
"null"
]
}
},
"required": [
"package",
"version",
"advisory_id",
"severity",
"cvss",
"fixed_in"
]
}
}
}BindingDependents
{
"type": "object",
"properties": {
"binding_id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"capability": {
"type": "string"
},
"environment": {
"$ref": "#/$defs/__schema0"
},
"state": {
"type": "string",
"enum": [
"requested",
"active",
"blocked",
"revoked"
]
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"eligible": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"app_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment": {
"$ref": "#/$defs/__schema0"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"app_id",
"product_id",
"environment",
"revision_id"
]
}
}
},
"required": [
"status",
"items"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"const": "unavailable"
}
},
"required": [
"status",
"reason"
]
}
]
},
"recent": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"app_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"count": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"last_used_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"app_id",
"product_id",
"environment",
"count",
"last_used_at"
]
}
}
},
"required": [
"status",
"items"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"const": "unavailable"
}
},
"required": [
"status",
"reason"
]
}
]
}
},
"required": [
"binding_id",
"capability",
"environment",
"state",
"expires_at",
"eligible",
"recent"
],
"$defs": {
"__schema0": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"__schema1": {
"anyOf": [
{
"$ref": "#/$defs/__schema2"
},
{
"type": "null"
}
],
"description": "The App the service belongs to at read time."
},
"__schema2": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
}CredentialDependents
{
"type": "object",
"properties": {
"credential_id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"bindings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"binding_id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"capability": {
"type": "string"
},
"environment": {
"$ref": "#/$defs/__schema0"
},
"state": {
"type": "string",
"enum": [
"requested",
"active",
"blocked",
"revoked"
]
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"binding_id",
"capability",
"environment",
"state",
"expires_at"
]
}
},
"eligible": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"app_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment": {
"$ref": "#/$defs/__schema0"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"binding_id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"app_id",
"product_id",
"environment",
"revision_id",
"binding_id"
]
}
}
},
"required": [
"status",
"items"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"const": "unavailable"
}
},
"required": [
"status",
"reason"
]
}
]
},
"recent": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "known"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"app_id": {
"$ref": "#/$defs/__schema1"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"count": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"last_used_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"binding_id": {
"type": "string",
"pattern": "^bind_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"app_id",
"product_id",
"environment",
"count",
"last_used_at",
"binding_id"
]
}
}
},
"required": [
"status",
"items"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unknown"
},
"reason": {
"type": "string",
"const": "unavailable"
}
},
"required": [
"status",
"reason"
]
}
]
}
},
"required": [
"credential_id",
"bindings",
"eligible",
"recent"
],
"$defs": {
"__schema0": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"__schema1": {
"anyOf": [
{
"$ref": "#/$defs/__schema2"
},
{
"type": "null"
}
],
"description": "The App the service belongs to at read time."
},
"__schema2": {
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
}BuildVariablesFetchRequest
{
"type": "object",
"properties": {
"request_event_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"request_event_id"
],
"additionalProperties": false
}BuildVariablesFetchResponse
{
"type": "object",
"properties": {
"build_variables_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"variables": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
]
}
}
},
"required": [
"build_variables_hash",
"variables"
]
}RuntimeSecretsFetchRequest
{
"type": "object",
"properties": {
"start_event_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"start_event_id"
],
"additionalProperties": false
}RuntimeSecretsFetchResponse
{
"type": "object",
"properties": {
"variables": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
]
}
}
},
"required": [
"variables"
]
}EgressReport
{
"type": "object",
"properties": {
"event_id": {
"$ref": "#/$defs/__schema0"
},
"event_type": {
"type": "string",
"const": "H-116.egress.usage_reported"
},
"schema_version": {
"type": "string",
"const": "1.0.0"
},
"occurred_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"producer": {
"type": "string",
"const": "runner"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"correlation_id": {
"type": "string",
"pattern": "^(brk|rsm|pvar|minv|trg|hook|mrun|mres|ws|aus|mba|app|usr|prod|rev|ver|rel|env|dep|srf|acc|ses|inv|exe|evt|pend|ddl|ntf|pipe|fnd|qual|cred|bind|hdl|cap|svc|frz|adj|fix|upl|dom|wb|ctx|aud|pay|ivc|rfd)_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"causation_id": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"payload": {
"type": "object",
"properties": {
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"window_start": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"window_end": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"bytes_sent": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"bytes_received": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"deployment_capped": {
"type": "boolean"
},
"denied": {
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema1"
}
}
},
"required": [
"deployment_id",
"workspace_id",
"window_start",
"window_end",
"bytes_sent",
"bytes_received",
"deployment_capped",
"denied"
]
}
},
"required": [
"event_id",
"event_type",
"schema_version",
"occurred_at",
"producer",
"workspace_id",
"correlation_id",
"causation_id",
"idempotency_key",
"payload"
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema1": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]([a-z0-9-]{0,61}[a-z0-9])?$"
},
"kind": {
"type": "string",
"enum": [
"sni",
"dns",
"shared_front"
]
},
"count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"last_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"domain",
"kind",
"count",
"last_at"
],
"additionalProperties": false
}
}
}EgressPolicy
{
"type": "object",
"properties": {
"free_pool_exhausted": {
"type": "boolean"
},
"capped_workspaces": {
"type": "array",
"items": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"as_of": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"free_pool_exhausted",
"capped_workspaces",
"as_of"
]
}BuildVariableRequest
{
"type": "object",
"properties": {
"value": {
"type": "string"
}
},
"required": [
"value"
]
}EnvironmentVariableRequest
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"runtime",
"secret"
]
},
"value": {
"type": "string"
}
},
"required": [
"kind",
"value"
]
}ProductVariable
{
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "build"
},
"environment_type": {
"type": "null"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "runtime"
},
"environment_type": {
"$ref": "#/$defs/__schema3"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "secret"
},
"environment_type": {
"$ref": "#/$defs/__schema3"
},
"value": {
"type": "null"
},
"set": {
"type": "boolean",
"const": true
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"set"
]
}
],
"$defs": {
"__schema0": {
"type": "string"
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema2": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
}
}ProductVariables
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "build"
},
"environment_type": {
"type": "null"
},
"value": {
"type": "string"
},
"source": {
"$ref": "#/$defs/__schema3"
},
"overridden": {
"$ref": "#/$defs/__schema4"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"source",
"overridden"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "runtime"
},
"environment_type": {
"$ref": "#/$defs/__schema5"
},
"value": {
"type": "string"
},
"source": {
"$ref": "#/$defs/__schema3"
},
"overridden": {
"$ref": "#/$defs/__schema4"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"source",
"overridden"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "secret"
},
"environment_type": {
"$ref": "#/$defs/__schema5"
},
"value": {
"type": "null"
},
"set": {
"type": "boolean",
"const": true
},
"source": {
"$ref": "#/$defs/__schema3"
},
"overridden": {
"$ref": "#/$defs/__schema4"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"set",
"source",
"overridden"
]
}
]
}
},
"next_cursor": {
"type": "null"
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string"
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema2": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"type": "string",
"enum": [
"product",
"app"
]
},
"__schema4": {
"type": "boolean"
},
"__schema5": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
}
}ProductBuildVariables
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "build"
},
"environment_type": {
"type": "null"
},
"value": {
"type": "string"
},
"source": {
"$ref": "#/$defs/__schema3"
},
"overridden": {
"$ref": "#/$defs/__schema4"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"source",
"overridden"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "runtime"
},
"environment_type": {
"$ref": "#/$defs/__schema5"
},
"value": {
"type": "string"
},
"source": {
"$ref": "#/$defs/__schema3"
},
"overridden": {
"$ref": "#/$defs/__schema4"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"source",
"overridden"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "secret"
},
"environment_type": {
"$ref": "#/$defs/__schema5"
},
"value": {
"type": "null"
},
"set": {
"type": "boolean",
"const": true
},
"source": {
"$ref": "#/$defs/__schema3"
},
"overridden": {
"$ref": "#/$defs/__schema4"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"set",
"source",
"overridden"
]
}
]
}
},
"next_cursor": {
"type": "null"
},
"build_variables_hash": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
{
"type": "null"
}
]
}
},
"required": [
"items",
"next_cursor",
"build_variables_hash"
],
"$defs": {
"__schema0": {
"type": "string"
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema2": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"type": "string",
"enum": [
"product",
"app"
]
},
"__schema4": {
"type": "boolean"
},
"__schema5": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
}
}ProductVariableListItem
{
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "build"
},
"environment_type": {
"type": "null"
},
"value": {
"type": "string"
},
"source": {
"$ref": "#/$defs/__schema3"
},
"overridden": {
"$ref": "#/$defs/__schema4"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"source",
"overridden"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "runtime"
},
"environment_type": {
"$ref": "#/$defs/__schema5"
},
"value": {
"type": "string"
},
"source": {
"$ref": "#/$defs/__schema3"
},
"overridden": {
"$ref": "#/$defs/__schema4"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"source",
"overridden"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "secret"
},
"environment_type": {
"$ref": "#/$defs/__schema5"
},
"value": {
"type": "null"
},
"set": {
"type": "boolean",
"const": true
},
"source": {
"$ref": "#/$defs/__schema3"
},
"overridden": {
"$ref": "#/$defs/__schema4"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"set",
"source",
"overridden"
]
}
],
"$defs": {
"__schema0": {
"type": "string"
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema2": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"type": "string",
"enum": [
"product",
"app"
]
},
"__schema4": {
"type": "boolean"
},
"__schema5": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
}
}AppBuildVariableRequest
{
"type": "object",
"properties": {
"value": {
"type": "string"
},
"applies_to": {
"anyOf": [
{
"type": "string",
"const": "all"
},
{
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"required": [
"value"
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
}AppEnvironmentVariableRequest
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"runtime",
"secret"
]
},
"value": {
"type": "string"
},
"applies_to": {
"anyOf": [
{
"type": "string",
"const": "all"
},
{
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"required": [
"kind",
"value"
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
}AppVariable
{
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "build"
},
"environment_type": {
"type": "null"
},
"value": {
"type": "string"
},
"applies_to": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"applies_to"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "runtime"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"value": {
"type": "string"
},
"applies_to": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"applies_to"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "secret"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"value": {
"type": "null"
},
"set": {
"type": "boolean",
"const": true
},
"applies_to": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"set",
"applies_to"
]
}
],
"$defs": {
"__schema0": {
"type": "string"
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema2": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"anyOf": [
{
"type": "string",
"const": "all"
},
{
"type": "array",
"items": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
]
},
"__schema4": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
}
}AppVariables
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "build"
},
"environment_type": {
"type": "null"
},
"value": {
"type": "string"
},
"applies_to": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"applies_to"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "runtime"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"value": {
"type": "string"
},
"applies_to": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"applies_to"
]
},
{
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/__schema0"
},
"updated_at": {
"$ref": "#/$defs/__schema1"
},
"updated_by": {
"$ref": "#/$defs/__schema2"
},
"kind": {
"type": "string",
"const": "secret"
},
"environment_type": {
"$ref": "#/$defs/__schema4"
},
"value": {
"type": "null"
},
"set": {
"type": "boolean",
"const": true
},
"applies_to": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"name",
"updated_at",
"updated_by",
"kind",
"environment_type",
"value",
"set",
"applies_to"
]
}
]
}
},
"next_cursor": {
"type": "null"
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string"
},
"__schema1": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"__schema2": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"__schema3": {
"anyOf": [
{
"type": "string",
"const": "all"
},
{
"type": "array",
"items": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
]
},
"__schema4": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
}
}
}WorkspaceMember
{
"type": "object",
"properties": {
"account_id": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
},
"joined_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"email": {
"type": [
"string",
"null"
]
}
},
"required": [
"account_id",
"workspace_role",
"joined_at",
"email"
]
}WorkspaceMembers
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"account_id": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
},
"joined_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"email": {
"type": [
"string",
"null"
]
}
},
"required": [
"account_id",
"workspace_role",
"joined_at",
"email"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}MemberRoleRequest
{
"type": "object",
"properties": {
"role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
}
},
"required": [
"role"
]
}MemberInvitation
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^minv_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"email": {
"type": "string"
},
"role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"email",
"role",
"created_at",
"expires_at"
]
}MemberInvitations
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^minv_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"email": {
"type": "string"
},
"role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"email",
"role",
"created_at",
"expires_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}MemberInvitationRequest
{
"type": "object",
"properties": {
"email": {
"type": "string"
},
"role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
}
},
"required": [
"email",
"role"
]
}AccountInvitations
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^minv_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_name": {
"type": [
"string",
"null"
]
},
"role": {
"type": "string",
"enum": [
"owner",
"admin",
"developer"
]
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"workspace_id",
"workspace_name",
"role",
"expires_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}CapabilityCatalog
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"capability": {
"type": "string",
"enum": [
"ai.generate",
"storage.object",
"data.kv",
"email.send",
"appuser.directory"
]
},
"credential_owner": {
"type": "string",
"enum": [
"workspace",
"platform"
]
},
"credential_owners": {
"type": "array",
"items": {
"type": "string",
"enum": [
"workspace",
"platform"
]
}
},
"actions": {
"type": "array",
"items": {
"type": "string"
}
},
"usage_unit": {
"type": "string",
"enum": [
"tokens",
"bytes",
"calls"
]
}
},
"required": [
"capability",
"credential_owner",
"credential_owners",
"actions",
"usage_unit"
]
}
}
},
"required": [
"items"
]
}PendingOperation
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pend_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"purpose": {
"type": "string",
"enum": [
"spending_approval",
"consent",
"input_required",
"admin_decision"
]
},
"product_id": {
"anyOf": [
{
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"app_id": {
"anyOf": [
{
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"pending",
"approved",
"rejected",
"withdrawn",
"expired",
"superseded"
]
},
"usage_category": {
"type": [
"string",
"null"
]
},
"estimated_units": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"expires_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"decided_by": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"decided_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"reason": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"purpose",
"status",
"usage_category",
"estimated_units",
"created_at",
"expires_at",
"decided_by",
"decided_at",
"reason"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}PendingOperations
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pend_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"purpose": {
"type": "string",
"enum": [
"spending_approval",
"consent",
"input_required",
"admin_decision"
]
},
"product_id": {
"anyOf": [
{
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"app_id": {
"anyOf": [
{
"type": "string",
"pattern": "^app_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"pending",
"approved",
"rejected",
"withdrawn",
"expired",
"superseded"
]
},
"usage_category": {
"type": [
"string",
"null"
]
},
"estimated_units": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
},
"created_at": {
"$ref": "#/$defs/__schema0"
},
"expires_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"decided_by": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"decided_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"reason": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"purpose",
"status",
"usage_category",
"estimated_units",
"created_at",
"expires_at",
"decided_by",
"decided_at",
"reason"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"$defs": {
"__schema0": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
}PendingDecision
{
"type": "object",
"properties": {
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
}
}InboundWebhookCreate
{
"type": "object",
"properties": {
"path": {
"$ref": "#/$defs/__schema0"
},
"format": {
"$ref": "#/$defs/__schema1"
},
"secret": {
"$ref": "#/$defs/__schema2"
}
},
"required": [
"path",
"format"
],
"additionalProperties": false,
"$defs": {
"__schema0": {
"type": "string"
},
"__schema1": {
"type": "string",
"enum": [
"github",
"standard_webhooks"
]
},
"__schema2": {}
}
}InboundWebhook
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"const": "staging"
},
"path": {
"type": "string"
},
"format": {
"type": "string",
"enum": [
"github",
"standard_webhooks"
]
},
"url": {
"type": "string",
"format": "uri"
},
"state": {
"type": "string",
"const": "active"
},
"created_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"product_id",
"environment_type",
"path",
"format",
"url",
"state",
"created_by",
"created_at"
]
}InboundWebhookCreated
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"const": "staging"
},
"path": {
"type": "string"
},
"format": {
"type": "string",
"enum": [
"github",
"standard_webhooks"
]
},
"url": {
"type": "string",
"format": "uri"
},
"state": {
"type": "string",
"const": "active"
},
"created_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"secret": {
"type": "string"
}
},
"required": [
"id",
"product_id",
"environment_type",
"path",
"format",
"url",
"state",
"created_by",
"created_at"
]
}InboundWebhooks
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"const": "staging"
},
"path": {
"type": "string"
},
"format": {
"type": "string",
"enum": [
"github",
"standard_webhooks"
]
},
"url": {
"type": "string",
"format": "uri"
},
"state": {
"type": "string",
"const": "active"
},
"created_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"product_id",
"environment_type",
"path",
"format",
"url",
"state",
"created_by",
"created_at"
]
}
},
"next_cursor": {
"type": "null"
}
},
"required": [
"items",
"next_cursor"
]
}InboundWebhookDelivery
{
"type": "object",
"properties": {
"webhook_id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"delivery_key": {
"type": "string"
},
"sender_delivery_id": {
"type": [
"string",
"null"
]
},
"outcome": {
"type": "string",
"enum": [
"forwarding",
"succeeded",
"failed",
"timed_out",
"platform_unavailable",
"app_unavailable",
"product_closed",
"no_deployment",
"interrupted"
]
},
"http_status": {
"anyOf": [
{
"type": "integer",
"minimum": 100,
"maximum": 599
},
{
"type": "null"
}
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"deployment_id": {
"anyOf": [
{
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"attempts": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"received_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"finished_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"duration_ms": {
"type": [
"number",
"null"
]
}
},
"required": [
"webhook_id",
"delivery_key",
"sender_delivery_id",
"outcome",
"http_status",
"reason_code",
"deployment_id",
"correlation_id",
"attempts",
"received_at",
"updated_at",
"finished_at",
"duration_ms"
]
}InboundWebhookDeliveries
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"webhook_id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"delivery_key": {
"type": "string"
},
"sender_delivery_id": {
"type": [
"string",
"null"
]
},
"outcome": {
"type": "string",
"enum": [
"forwarding",
"succeeded",
"failed",
"timed_out",
"platform_unavailable",
"app_unavailable",
"product_closed",
"no_deployment",
"interrupted"
]
},
"http_status": {
"anyOf": [
{
"type": "integer",
"minimum": 100,
"maximum": 599
},
{
"type": "null"
}
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"deployment_id": {
"anyOf": [
{
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"attempts": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"received_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"finished_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"duration_ms": {
"type": [
"number",
"null"
]
}
},
"required": [
"webhook_id",
"delivery_key",
"sender_delivery_id",
"outcome",
"http_status",
"reason_code",
"deployment_id",
"correlation_id",
"attempts",
"received_at",
"updated_at",
"finished_at",
"duration_ms"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}InboundWebhookAcknowledged
{
"type": "object",
"properties": {
"received": {
"type": "boolean",
"const": true
},
"duplicate": {
"type": "boolean",
"const": true
}
},
"required": [
"received"
]
}AutoDeployCreate
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"credential_id": {
"type": "string",
"pattern": "^cred_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
}
}AutoDeployHook
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^hook_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"url": {
"type": "string",
"format": "uri"
},
"repo_url": {
"type": "string"
},
"source": {
"default": "webhook",
"type": "string",
"enum": [
"webhook",
"github_app"
]
},
"ref": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"enabled",
"disabled"
]
},
"enabled_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"product_id",
"url",
"repo_url",
"ref",
"state",
"enabled_by",
"created_at"
]
}AutoDeployEnabled
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^hook_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"url": {
"type": "string",
"format": "uri"
},
"repo_url": {
"type": "string"
},
"source": {
"default": "webhook",
"type": "string",
"enum": [
"webhook",
"github_app"
]
},
"ref": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"enabled",
"disabled"
]
},
"enabled_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"secret": {
"type": "string"
}
},
"required": [
"id",
"product_id",
"url",
"repo_url",
"ref",
"state",
"enabled_by",
"created_at",
"secret"
]
}AutoDeployDelivery
{
"type": "object",
"properties": {
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"hook_id": {
"type": "string",
"pattern": "^hook_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"delivery_id": {
"type": "string"
},
"event": {
"type": "string",
"const": "push"
},
"pushed_sha": {
"type": [
"string",
"null"
]
},
"outcome": {
"type": "string",
"enum": [
"ignored",
"enabler_not_authorized",
"product_closed",
"freezing",
"conflict",
"not_found",
"run_created",
"freeze_failed",
"disabled_before_run",
"run_rejected"
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"source_freeze_id": {
"anyOf": [
{
"type": "string",
"pattern": "^frz_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"frozen_sha": {
"type": [
"string",
"null"
]
},
"mainline_run_id": {
"anyOf": [
{
"type": "string",
"pattern": "^mrun_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"received_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"workspace_id",
"hook_id",
"delivery_id",
"event",
"pushed_sha",
"outcome",
"reason_code",
"source_freeze_id",
"frozen_sha",
"mainline_run_id",
"received_at",
"updated_at"
]
}AutoDeployDeliveries
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"hook_id": {
"type": "string",
"pattern": "^hook_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"delivery_id": {
"type": "string"
},
"event": {
"type": "string",
"const": "push"
},
"pushed_sha": {
"type": [
"string",
"null"
]
},
"outcome": {
"type": "string",
"enum": [
"ignored",
"enabler_not_authorized",
"product_closed",
"freezing",
"conflict",
"not_found",
"run_created",
"freeze_failed",
"disabled_before_run",
"run_rejected"
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"source_freeze_id": {
"anyOf": [
{
"type": "string",
"pattern": "^frz_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"frozen_sha": {
"type": [
"string",
"null"
]
},
"mainline_run_id": {
"anyOf": [
{
"type": "string",
"pattern": "^mrun_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"received_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"workspace_id",
"hook_id",
"delivery_id",
"event",
"pushed_sha",
"outcome",
"reason_code",
"source_freeze_id",
"frozen_sha",
"mainline_run_id",
"received_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}AutoDeployAcknowledged
{
"type": "object",
"properties": {
"received": {
"type": "boolean",
"const": true
}
},
"required": [
"received"
]
}AutoDeployWebhookResponse
{
"anyOf": [
{
"type": "object",
"properties": {
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"hook_id": {
"type": "string",
"pattern": "^hook_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"delivery_id": {
"type": "string"
},
"event": {
"type": "string",
"const": "push"
},
"pushed_sha": {
"type": [
"string",
"null"
]
},
"outcome": {
"type": "string",
"enum": [
"ignored",
"enabler_not_authorized",
"product_closed",
"freezing",
"conflict",
"not_found",
"run_created",
"freeze_failed",
"disabled_before_run",
"run_rejected"
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"source_freeze_id": {
"anyOf": [
{
"type": "string",
"pattern": "^frz_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"frozen_sha": {
"type": [
"string",
"null"
]
},
"mainline_run_id": {
"anyOf": [
{
"type": "string",
"pattern": "^mrun_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"received_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"workspace_id",
"hook_id",
"delivery_id",
"event",
"pushed_sha",
"outcome",
"reason_code",
"source_freeze_id",
"frozen_sha",
"mainline_run_id",
"received_at",
"updated_at"
]
},
{
"type": "object",
"properties": {
"received": {
"type": "boolean",
"const": true
}
},
"required": [
"received"
]
}
]
}Schedule
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"const": "staging"
},
"path": {
"type": "string"
},
"cron": {
"type": "string"
},
"state": {
"type": "string",
"const": "active"
},
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"next_run_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"last_run": {
"anyOf": [
{
"type": "object",
"properties": {
"schedule_id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"scheduled_for": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"outcome": {
"type": "string",
"enum": [
"dispatching",
"succeeded",
"failed",
"timed_out",
"platform_unavailable",
"app_unavailable",
"interrupted",
"product_closed"
]
},
"http_status": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"dispatched_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"finished_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"duration_ms": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
}
},
"required": [
"schedule_id",
"scheduled_for",
"outcome",
"http_status",
"reason_code",
"correlation_id",
"dispatched_at",
"finished_at",
"duration_ms"
]
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"product_id",
"environment_type",
"path",
"cron",
"state",
"deployment_id",
"revision_id",
"next_run_at",
"last_run"
]
}Schedules
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"const": "staging"
},
"path": {
"type": "string"
},
"cron": {
"type": "string"
},
"state": {
"type": "string",
"const": "active"
},
"deployment_id": {
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"next_run_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"last_run": {
"anyOf": [
{
"type": "object",
"properties": {
"schedule_id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"scheduled_for": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"outcome": {
"type": "string",
"enum": [
"dispatching",
"succeeded",
"failed",
"timed_out",
"platform_unavailable",
"app_unavailable",
"interrupted",
"product_closed"
]
},
"http_status": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"dispatched_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"finished_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"duration_ms": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
}
},
"required": [
"schedule_id",
"scheduled_for",
"outcome",
"http_status",
"reason_code",
"correlation_id",
"dispatched_at",
"finished_at",
"duration_ms"
]
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"product_id",
"environment_type",
"path",
"cron",
"state",
"deployment_id",
"revision_id",
"next_run_at",
"last_run"
]
}
},
"next_cursor": {
"type": "null"
}
},
"required": [
"items",
"next_cursor"
]
}ScheduleRun
{
"type": "object",
"properties": {
"schedule_id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"scheduled_for": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"outcome": {
"type": "string",
"enum": [
"dispatching",
"succeeded",
"failed",
"timed_out",
"platform_unavailable",
"app_unavailable",
"interrupted",
"product_closed"
]
},
"http_status": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"dispatched_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"finished_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"duration_ms": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
}
},
"required": [
"schedule_id",
"scheduled_for",
"outcome",
"http_status",
"reason_code",
"correlation_id",
"dispatched_at",
"finished_at",
"duration_ms"
]
}ScheduleRuns
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"schedule_id": {
"type": "string",
"pattern": "^trg_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"scheduled_for": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"outcome": {
"type": "string",
"enum": [
"dispatching",
"succeeded",
"failed",
"timed_out",
"platform_unavailable",
"app_unavailable",
"interrupted",
"product_closed"
]
},
"http_status": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reason_code": {
"type": [
"string",
"null"
]
},
"correlation_id": {
"type": "string",
"pattern": "^evt_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"dispatched_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"finished_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"duration_ms": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
}
},
"required": [
"schedule_id",
"scheduled_for",
"outcome",
"http_status",
"reason_code",
"correlation_id",
"dispatched_at",
"finished_at",
"duration_ms"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}KvHistory
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"history_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"change": {
"type": "string",
"enum": [
"overwritten",
"deleted",
"expired"
]
},
"recorded_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"size_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"history_id",
"version",
"change",
"recorded_at",
"size_bytes"
]
}
}
},
"required": [
"items"
]
}KvRestoreRequest
{
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"history_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"key",
"history_id"
]
}KvRestored
{
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"key",
"version"
]
}ManagedResourceRequest
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"kind": {
"type": "string",
"const": "kv"
}
},
"required": [
"product_id",
"environment_type",
"kind"
]
}ManagedResource
{
"type": "object",
"properties": {
"resource_id": {
"type": "string",
"pattern": "^mres_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"kind": {
"type": "string",
"enum": [
"kv"
]
},
"provision_model": {
"type": "string",
"enum": [
"platform_pool",
"provider_backed"
]
},
"handle_mode": {
"type": "string",
"enum": [
"capability",
"injected"
]
},
"state": {
"type": "string",
"enum": [
"requested",
"provisioning",
"ready",
"failed",
"detached",
"deleted"
]
},
"detached_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"retention_due_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"resource_id",
"workspace_id",
"product_id",
"environment_type",
"kind",
"provision_model",
"handle_mode",
"state",
"detached_at",
"retention_due_at",
"created_at",
"updated_at"
]
}ManagedResources
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resource_id": {
"type": "string",
"pattern": "^mres_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"anyOf": [
{
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "string",
"const": "ws_platform"
}
]
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"environment_type": {
"type": "string",
"enum": [
"preview",
"staging",
"production"
]
},
"kind": {
"type": "string",
"enum": [
"kv"
]
},
"provision_model": {
"type": "string",
"enum": [
"platform_pool",
"provider_backed"
]
},
"handle_mode": {
"type": "string",
"enum": [
"capability",
"injected"
]
},
"state": {
"type": "string",
"enum": [
"requested",
"provisioning",
"ready",
"failed",
"detached",
"deleted"
]
},
"detached_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"retention_due_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"resource_id",
"workspace_id",
"product_id",
"environment_type",
"kind",
"provision_model",
"handle_mode",
"state",
"detached_at",
"retention_due_at",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}MainlineRun
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^mrun_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"input_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"requested_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"trigger": {
"type": "string",
"enum": [
"manual",
"push"
]
},
"state": {
"type": "string",
"enum": [
"running",
"stopped",
"completed",
"superseded",
"cancelled"
]
},
"step": {
"type": "string",
"enum": [
"descriptor",
"qualification",
"release",
"deployment",
"surface"
]
},
"step_status": {
"type": "string"
},
"reason_code": {
"type": [
"string",
"null"
]
},
"pipeline_run_id": {
"anyOf": [
{
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"revision_id": {
"anyOf": [
{
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"release_id": {
"anyOf": [
{
"type": "string",
"pattern": "^rel_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"deployment_id": {
"anyOf": [
{
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"surface_id": {
"anyOf": [
{
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"superseded_by_run_id": {
"anyOf": [
{
"type": "string",
"pattern": "^mrun_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"cancelled_by": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"input_revision_id",
"requested_by",
"trigger",
"state",
"step",
"step_status",
"reason_code",
"pipeline_run_id",
"revision_id",
"release_id",
"deployment_id",
"surface_id",
"superseded_by_run_id",
"cancelled_by",
"created_at",
"updated_at"
]
}MainlineRuns
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^mrun_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"workspace_id": {
"type": "string",
"pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"input_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"requested_by": {
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"trigger": {
"type": "string",
"enum": [
"manual",
"push"
]
},
"state": {
"type": "string",
"enum": [
"running",
"stopped",
"completed",
"superseded",
"cancelled"
]
},
"step": {
"type": "string",
"enum": [
"descriptor",
"qualification",
"release",
"deployment",
"surface"
]
},
"step_status": {
"type": "string"
},
"reason_code": {
"type": [
"string",
"null"
]
},
"pipeline_run_id": {
"anyOf": [
{
"type": "string",
"pattern": "^pipe_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"revision_id": {
"anyOf": [
{
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"release_id": {
"anyOf": [
{
"type": "string",
"pattern": "^rel_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"deployment_id": {
"anyOf": [
{
"type": "string",
"pattern": "^dep_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"surface_id": {
"anyOf": [
{
"type": "string",
"pattern": "^srf_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"superseded_by_run_id": {
"anyOf": [
{
"type": "string",
"pattern": "^mrun_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"cancelled_by": {
"anyOf": [
{
"type": "string",
"pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"workspace_id",
"product_id",
"input_revision_id",
"requested_by",
"trigger",
"state",
"step",
"step_status",
"reason_code",
"pipeline_run_id",
"revision_id",
"release_id",
"deployment_id",
"surface_id",
"superseded_by_run_id",
"cancelled_by",
"created_at",
"updated_at"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
]
}MainlineRunCreate
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
},
"input_revision_id": {
"type": "string",
"pattern": "^rev_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
}
},
"required": [
"product_id",
"input_revision_id"
]
}MainlineRunAction
{
"type": "object",
"properties": {}
}Closure
{
"type": "object",
"properties": {
"closure_kind": {
"type": "string",
"enum": [
"product_retire",
"account_close",
"workspace_close"
]
},
"grace_until": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
},
"state": {
"type": "string",
"enum": [
"active",
"closure_pending",
"retired",
"closed"
]
}
},
"required": [
"closure_kind",
"grace_until",
"state"
]
}