BellD / DevelopersDocumentation · latest

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}/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": [
          "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",
          "credential.created",
          "credential.revoked",
          "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",
          "platform.bootstrapped",
          "product.created",
          "release.created",
          "deployment.requested",
          "deployment.ready",
          "deployment.stopped",
          "plan.changed",
          "budget.changed",
          "capability.denied",
          "capability.output_blocked",
          "capability.fallback",
          "bridge.rejected",
          "usage.denied",
          "access.qualified",
          "access.denied",
          "access.revoked",
          "isolation.unenforced_run",
          "isolation.blocked",
          "pending.resolved",
          "fix.requested",
          "fix.decided",
          "adjudication.decided",
          "authz.forbidden",
          "authz.workspace_mismatch",
          "audit.exported",
          "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": "^(mres|ws|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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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"
                  ]
                }
              }
            },
            "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"
                  ]
                }
              }
            },
            "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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": "outcome",
      "in": "query",
      "schema": {
        "type": "string",
        "enum": [
          "requested",
          "completed",
          "denied",
          "failed"
        ]
      }
    },
    {
      "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",
      "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",
      "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": "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",
      "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",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}

GET /v1/workspaces/{ws}/products/{prod}

Get a Product

{
  "summary": "Get a Product",
  "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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": "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",
      "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",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}

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": "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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": "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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": {
    "201": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReleaseDeployment"
          }
        }
      }
    },
    "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}

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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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}/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"
          }
        }
      }
    }
  }
}

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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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"
        ]
      }
    },
    {
      "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",
      "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",
      "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",
      "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",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}

PUT /v1/workspaces/{ws}/plan

Set workspace plan (owner only)

{
  "summary": "Set workspace plan (owner only)",
  "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/PlanRequest"
        }
      }
    }
  },
  "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",
      "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",
      "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",
      "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",
      "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"
        ]
      }
    },
    {
      "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",
      "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",
      "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",
      "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",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}

GET /v1/workspaces/{ws}/products

List Products

{
  "summary": "List Products",
  "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/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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "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",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}

Components

securitySchemes

bearerAuth

{
  "type": "http",
  "scheme": "bearer",
  "bearerFormat": "JWT"
}

schemas

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"
              ]
            },
            "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"
            ]
          }
        }
      },
      "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"
        ]
      }
    }
  },
  "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",
            "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"
      ]
    }
  },
  "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",
      "const": "staging"
    }
  }
}

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",
      "const": "staging"
    },
    "slot": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "planned",
        "applying",
        "active",
        "superseded",
        "blocked",
        "failed"
      ]
    },
    "reason_code": {
      "type": "string"
    },
    "required_isolation_profile": {
      "type": "string",
      "const": "isolated-vm"
    },
    "egress": {
      "type": "string",
      "const": "deny"
    },
    "isolation": {
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "isolated-vm"
        },
        "enforced": {
          "type": "boolean"
        }
      },
      "required": [
        "profile",
        "enforced"
      ]
    },
    "health": {
      "type": "object",
      "properties": {
        "checked_at": {
          "$ref": "#/$defs/__schema0"
        },
        "attempts": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "latency_ms": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "checked_at",
        "attempts",
        "latency_ms"
      ]
    },
    "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"
          }
        },
        "required": [
          "kind",
          "severity",
          "code",
          "message"
        ]
      }
    },
    "created_at": {
      "$ref": "#/$defs/__schema0"
    },
    "updated_at": {
      "$ref": "#/$defs/__schema0"
    },
    "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": "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))$"
    }
  }
}

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": {
                "$ref": "#/$defs/__schema3"
              },
              "provider": {
                "$ref": "#/$defs/__schema4"
              }
            },
            "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/__schema5"
                }
              },
              "scope": {
                "type": "object",
                "properties": {
                  "prefix": {
                    "type": "string",
                    "pattern": "^\\/(?!.*\\.\\.).*$"
                  },
                  "max_object_bytes": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "prefix",
                  "max_object_bytes"
                ]
              },
              "credential_owner": {
                "$ref": "#/$defs/__schema3"
              },
              "provider": {
                "$ref": "#/$defs/__schema4"
              }
            },
            "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/__schema6"
                }
              },
              "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/__schema7"
                    }
                  },
                  "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/__schema8"
                }
              },
              "scope": {
                "type": "object",
                "properties": {
                  "from_addresses": {
                    "minItems": 1,
                    "maxItems": 32,
                    "type": "array",
                    "items": {
                      "$ref": "#/$defs/__schema9"
                    }
                  },
                  "recipient_domains": {
                    "minItems": 1,
                    "maxItems": 32,
                    "type": "array",
                    "items": {
                      "$ref": "#/$defs/__schema10"
                    }
                  },
                  "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": {
                "$ref": "#/$defs/__schema3"
              },
              "provider": {
                "$ref": "#/$defs/__schema4"
              }
            },
            "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/__schema11"
    },
    "updated_at": {
      "$ref": "#/$defs/__schema11"
    }
  },
  "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": "string",
      "const": "workspace"
    },
    "__schema4": {
      "type": "object",
      "properties": {
        "allow": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "prefer": {
          "type": "string"
        },
        "fallback": {
          "type": "string",
          "enum": [
            "none",
            "listed"
          ]
        }
      },
      "required": [
        "allow",
        "fallback"
      ]
    },
    "__schema5": {
      "type": "string",
      "enum": [
        "read",
        "write",
        "delete",
        "list"
      ]
    },
    "__schema6": {
      "type": "string",
      "enum": [
        "get",
        "set",
        "delete",
        "list",
        "increment"
      ]
    },
    "__schema7": {
      "type": "string",
      "const": "platform"
    },
    "__schema8": {
      "type": "string",
      "enum": [
        "send"
      ]
    },
    "__schema9": {
      "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])?$"
    },
    "__schema10": {
      "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])?)$"
    },
    "__schema11": {
      "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))$"
    }
  }
}

PlanRequest

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "enum": [
        "free",
        "team",
        "enterprise"
      ]
    }
  },
  "required": [
    "plan"
  ]
}

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",
        "team",
        "enterprise"
      ]
    },
    "entitlements": {
      "type": "object",
      "properties": {
        "ai_tokens": {
          "type": "boolean"
        },
        "runtime": {
          "type": "boolean"
        },
        "provider_call": {
          "type": "boolean"
        },
        "storage": {
          "type": "boolean"
        }
      },
      "required": [
        "ai_tokens",
        "runtime",
        "provider_call",
        "storage"
      ]
    },
    "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"
      ]
    },
    "month": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}$"
    },
    "limit_units": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "used_units": {
      "type": "number",
      "minimum": 0
    },
    "reserved_units": {
      "type": "number",
      "minimum": 0
    },
    "created_at": {
      "$ref": "#/$defs/__schema0"
    },
    "updated_at": {
      "$ref": "#/$defs/__schema0"
    }
  },
  "required": [
    "id",
    "workspace_id",
    "usage_category",
    "month",
    "limit_units",
    "used_units",
    "reserved_units",
    "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))$"
    }
  }
}

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"
            ]
          },
          "month": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "limit_units": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "used_units": {
            "type": "number",
            "minimum": 0
          },
          "reserved_units": {
            "type": "number",
            "minimum": 0
          },
          "created_at": {
            "$ref": "#/$defs/__schema0"
          },
          "updated_at": {
            "$ref": "#/$defs/__schema0"
          }
        },
        "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": "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": {
        "repo_url": {
          "type": "string",
          "minLength": 1
        },
        "ref": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "auth": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "const": "none"
                }
              },
              "required": [
                "kind"
              ]
            }
          ]
        },
        "product_type": {
          "type": "string",
          "const": "hosted-app"
        },
        "input_type": {
          "type": "string",
          "const": "repository"
        }
      },
      "required": [
        "repo_url",
        "ref",
        "auth"
      ]
    },
    {
      "type": "object",
      "properties": {
        "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": {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "node"
            },
            "version": {
              "type": "string",
              "minLength": 1
            }
          },
          "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"
            ]
          }
        }
      }
    }
  }
}

EnsureRequest

{
  "type": "object",
  "properties": {}
}

EvaluationRequest

{
  "type": "object",
  "properties": {
    "intent": {
      "type": "string",
      "enum": [
        "preview",
        "qualification"
      ]
    }
  }
}

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": {
    "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": [
    "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"
              ]
            },
            "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}$"
    },
    "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"
          ]
        },
        "version": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "kind",
        "version"
      ]
    },
    "__schema1": {
      "type": "string",
      "pattern": "^\\/.*"
    },
    "__schema2": {
      "type": "object",
      "properties": {
        "package_manager": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "pnpm",
                "npm",
                "yarn"
              ]
            },
            {
              "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"
          ]
        },
        "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"
          }
        },
        "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))$"
    }
  }
}

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",
        "blocked",
        "failed"
      ]
    },
    "reason_code": {
      "type": "string"
    },
    "required_isolation_profile": {
      "type": "string",
      "const": "isolated-vm"
    },
    "egress": {
      "type": "string",
      "const": "deny"
    },
    "isolation": {
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "isolated-vm"
        },
        "enforced": {
          "type": "boolean"
        }
      },
      "required": [
        "profile",
        "enforced"
      ]
    },
    "health": {
      "type": "object",
      "properties": {
        "checked_at": {
          "$ref": "#/$defs/__schema0"
        },
        "attempts": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "latency_ms": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "checked_at",
        "attempts",
        "latency_ms"
      ]
    },
    "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"
          }
        },
        "required": [
          "kind",
          "severity",
          "code",
          "message"
        ]
      }
    },
    "created_at": {
      "$ref": "#/$defs/__schema0"
    },
    "updated_at": {
      "$ref": "#/$defs/__schema0"
    },
    "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": "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",
      "const": "none"
    },
    "access_policy": {
      "type": "string",
      "const": "preview_direct"
    },
    "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"
      ]
    },
    "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"
        ]
      }
    },
    "issue_class": {
      "type": "string"
    }
  },
  "required": [
    "type",
    "title",
    "status",
    "detail",
    "instance",
    "code",
    "correlation_id"
  ]
}

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
    }
  }
}

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"
        ]
      }
    }
  },
  "required": [
    "type",
    "title",
    "status",
    "detail",
    "instance",
    "code",
    "correlation_id"
  ]
}

Wallet

{
  "type": "object",
  "properties": {
    "subscription_tier": {
      "type": "string",
      "enum": [
        "free",
        "starter",
        "pro"
      ]
    },
    "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": [
    "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": {
    "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"
          ]
        },
        {
          "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": [
    "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": {
          "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"
                ]
              },
              {
                "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": [
          "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"
      ]
    }
  },
  "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": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "price_twd": {
      "type": "number",
      "minimum": 0
    },
    "tier": {
      "type": "string",
      "enum": [
        "free",
        "starter",
        "pro"
      ]
    }
  },
  "required": [
    "monthly_credits",
    "price_twd",
    "tier"
  ]
}

SubscriptionTiers

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "monthly_credits": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "price_twd": {
            "type": "number",
            "minimum": 0
          },
          "tier": {
            "type": "string",
            "enum": [
              "free",
              "starter",
              "pro"
            ]
          }
        },
        "required": [
          "monthly_credits",
          "price_twd",
          "tier"
        ]
      }
    },
    "next_cursor": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "items",
    "next_cursor"
  ]
}

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",
        "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"
        ]
      }
    }
  },
  "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-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-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"
          ]
        },
        "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"
          ]
        },
        {
          "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"
                ]
              },
              {
                "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"
      ]
    },
    "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"
              ]
            },
            {
              "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
    }
  },
  "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": [
        "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",
        "credential.created",
        "credential.revoked",
        "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",
        "platform.bootstrapped",
        "product.created",
        "release.created",
        "deployment.requested",
        "deployment.ready",
        "deployment.stopped",
        "plan.changed",
        "budget.changed",
        "capability.denied",
        "capability.output_blocked",
        "capability.fallback",
        "bridge.rejected",
        "usage.denied",
        "access.qualified",
        "access.denied",
        "access.revoked",
        "isolation.unenforced_run",
        "isolation.blocked",
        "pending.resolved",
        "fix.requested",
        "fix.decided",
        "adjudication.decided",
        "authz.forbidden",
        "authz.workspace_mismatch",
        "audit.exported",
        "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"
              ]
            }
          },
          "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": [
        "mres",
        "ws",
        "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": "^(mres|ws|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",
        "outside_contract",
        "permission_denied",
        "policy_blocked",
        "binding_missing",
        "binding_revoked",
        "usage_denied",
        "provider_unavailable",
        "provider_rejected",
        "output_blocked",
        "other",
        "scope_denied",
        "rate_limited",
        "budget_exhausted",
        "within_policy",
        "budget_exceeded",
        "plan_not_entitled",
        "approval_rejected",
        "approval_expired",
        "qualified",
        "identity_required",
        "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": {
            "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"
              ]
            },
            "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": [
        "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",
        "credential.created",
        "credential.revoked",
        "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",
        "platform.bootstrapped",
        "product.created",
        "release.created",
        "deployment.requested",
        "deployment.ready",
        "deployment.stopped",
        "plan.changed",
        "budget.changed",
        "capability.denied",
        "capability.output_blocked",
        "capability.fallback",
        "bridge.rejected",
        "usage.denied",
        "access.qualified",
        "access.denied",
        "access.revoked",
        "isolation.unenforced_run",
        "isolation.blocked",
        "pending.resolved",
        "fix.requested",
        "fix.decided",
        "adjudication.decided",
        "authz.forbidden",
        "authz.workspace_mismatch",
        "audit.exported",
        "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"
              ]
            }
          },
          "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": [
        "mres",
        "ws",
        "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": "^(mres|ws|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",
        "outside_contract",
        "permission_denied",
        "policy_blocked",
        "binding_missing",
        "binding_revoked",
        "usage_denied",
        "provider_unavailable",
        "provider_rejected",
        "output_blocked",
        "other",
        "scope_denied",
        "rate_limited",
        "budget_exhausted",
        "within_policy",
        "budget_exceeded",
        "plan_not_entitled",
        "approval_rejected",
        "approval_expired",
        "qualified",
        "identity_required",
        "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": {
            "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"
              ]
            },
            "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"
              ]
            },
            "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}$"
    },
    "confirmed_by": {
      "type": "string",
      "pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
    },
    "created_at": {
      "$ref": "#/$defs/__schema8"
    },
    "updated_at": {
      "$ref": "#/$defs/__schema8"
    },
    "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"
        }
      ]
    },
    "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"
                ]
              },
              "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"
                }
              },
              "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",
    "pipeline_runs"
  ],
  "$defs": {
    "__schema0": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "node",
            "shell"
          ]
        },
        "version": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "kind",
        "version"
      ]
    },
    "__schema1": {
      "type": "string",
      "pattern": "^\\/.*"
    },
    "__schema2": {
      "type": "object",
      "properties": {
        "package_manager": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "pnpm",
                "npm",
                "yarn"
              ]
            },
            {
              "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))$"
    }
  }
}

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": {
    "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": {
      "type": "string",
      "enum": [
        "requested",
        "context",
        "generating",
        "patch_apply",
        "reverify",
        "candidate",
        "failed",
        "approved",
        "rejected",
        "expired"
      ]
    },
    "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/__schema0"
    },
    "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/__schema0"
          }
        },
        "required": [
          "attempt"
        ]
      }
    }
  },
  "required": [
    "fix_run_id",
    "workspace_id",
    "product_id",
    "revision_id",
    "attempt",
    "status",
    "units_used",
    "requested_at",
    "deterministic_path",
    "attempts"
  ],
  "$defs": {
    "__schema0": {
      "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"
      ]
    }
  }
}

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"
  ]
}

WorkspaceServiceIdentityRequest

{
  "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,
              "type": "array",
              "items": {
                "$ref": "#/$defs/__schema0"
              }
            },
            "scope": {
              "type": "object",
              "properties": {
                "models": {
                  "minItems": 1,
                  "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,
              "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,
              "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,
              "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"
          ]
        }
      ]
    },
    "budget": {
      "type": "object",
      "properties": {
        "units": {
          "type": "number",
          "minimum": 0
        },
        "unit": {
          "type": "string",
          "enum": [
            "tokens",
            "bytes",
            "calls"
          ]
        }
      },
      "required": [
        "units",
        "unit"
      ]
    }
  },
  "required": [
    "product_id",
    "scope",
    "budget"
  ],
  "$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])?)$"
    }
  }
}

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"
      ]
    }
  ]
}

Workspaces

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^ws_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
          },
          "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": {
          "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": [
          "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"
                    ]
                  },
                  "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}$"
          },
          "confirmed_by": {
            "type": "string",
            "pattern": "^usr_[0-7][0123456789abcdefghjkmnpqrstvwxyz]{25}$"
          },
          "created_at": {
            "$ref": "#/$defs/__schema8"
          },
          "updated_at": {
            "$ref": "#/$defs/__schema8"
          },
          "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"
              }
            ]
          },
          "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"
                      ]
                    },
                    "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"
                      }
                    },
                    "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",
          "pipeline_runs"
        ]
      }
    },
    "next_cursor": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "items",
    "next_cursor"
  ],
  "$defs": {
    "__schema0": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "node",
            "shell"
          ]
        },
        "version": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "kind",
        "version"
      ]
    },
    "__schema1": {
      "type": "string",
      "pattern": "^\\/.*"
    },
    "__schema2": {
      "type": "object",
      "properties": {
        "package_manager": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "pnpm",
                "npm",
                "yarn"
              ]
            },
            {
              "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))$"
    }
  }
}

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",
              "blocked",
              "failed"
            ]
          },
          "reason_code": {
            "type": "string"
          },
          "required_isolation_profile": {
            "type": "string",
            "const": "isolated-vm"
          },
          "egress": {
            "type": "string",
            "const": "deny"
          },
          "isolation": {
            "type": "object",
            "properties": {
              "profile": {
                "type": "string",
                "const": "isolated-vm"
              },
              "enforced": {
                "type": "boolean"
              }
            },
            "required": [
              "profile",
              "enforced"
            ]
          },
          "health": {
            "type": "object",
            "properties": {
              "checked_at": {
                "$ref": "#/$defs/__schema0"
              },
              "attempts": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "latency_ms": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "checked_at",
              "attempts",
              "latency_ms"
            ]
          },
          "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"
                }
              },
              "required": [
                "kind",
                "severity",
                "code",
                "message"
              ]
            }
          },
          "created_at": {
            "$ref": "#/$defs/__schema0"
          },
          "updated_at": {
            "$ref": "#/$defs/__schema0"
          },
          "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": "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",
            "const": "none"
          },
          "access_policy": {
            "type": "string",
            "const": "preview_direct"
          },
          "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))$"
    }
  }
}

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"
            ]
          },
          "outcome": {
            "type": "string",
            "enum": [
              "requested",
              "completed",
              "denied",
              "failed"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "outside_contract",
                  "permission_denied",
                  "policy_blocked",
                  "binding_missing",
                  "binding_revoked",
                  "usage_denied",
                  "provider_unavailable",
                  "provider_rejected",
                  "output_blocked"
                ]
              },
              {
                "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",
          "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": {
          "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": [
          "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"
                    ]
                  }
                ]
              },
              "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"
            ]
          }
        ]
      }
    },
    "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])?)$"
    }
  }
}

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
    }
  }
}

Credential

{
  "type": "object",
  "properties": {
    "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": [
    "id",
    "workspace_id",
    "owner_kind",
    "provider",
    "capability",
    "actions",
    "scope",
    "expires_at",
    "created_by",
    "created_at",
    "updated_at"
  ]
}

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"
      }
    },
    "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,
                  "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"
          ]
        }
      ]
    },
    "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",
    "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])?)$"
    }
  }
}

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))$"
    },
    "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",
    "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))$"
          },
          "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",
          "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"
          ]
        }
      ]
    },
    "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,
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/__schema0"
                  }
                },
                "scope": {
                  "type": "object",
                  "properties": {
                    "models": {
                      "minItems": 1,
                      "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,
                  "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,
                  "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,
                  "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"
              ]
            }
          ]
        },
        "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"
      ]
    }
  ],
  "$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])?)$"
    }
  }
}

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"
              ]
            }
          ]
        },
        "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"
      ]
    }
  ],
  "$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])?)$"
    }
  }
}

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"
              ]
            }
          ]
        },
        "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"
      ]
    }
  ],
  "$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])?)$"
    }
  }
}

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"
      ]
    },
    "outcome": {
      "type": "string",
      "enum": [
        "requested",
        "completed",
        "denied",
        "failed"
      ]
    },
    "reason": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "outside_contract",
            "permission_denied",
            "policy_blocked",
            "binding_missing",
            "binding_revoked",
            "usage_denied",
            "provider_unavailable",
            "provider_rejected",
            "output_blocked"
          ]
        },
        {
          "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",
    "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": "^(mres|ws|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"
          ]
        }
      ]
    },
    "input": {
      "oneOf": [
        {
          "$ref": "#/$defs/__schema1"
        },
        {
          "$ref": "#/$defs/__schema2"
        }
      ]
    }
  },
  "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": "^(mres|ws|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"
      ]
    },
    "__schema6": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "outside_contract",
            "permission_denied",
            "policy_blocked",
            "binding_missing",
            "binding_revoked",
            "usage_denied",
            "provider_unavailable",
            "provider_rejected",
            "output_blocked"
          ]
        },
        {
          "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))$"
    }
  }
}

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"
  ]
}