{ "components": { "parameters": { "relatableEntityType": { "description": "Type of the entity (deployment, environment, or resource)", "in": "path", "name": "relatableEntityType", "required": true, "schema": { "$ref": "#/components/schemas/RelatableEntityType" } } }, "schemas": { "AnyApprovalRule": { "properties": { "minApprovals": { "format": "int32", "type": "integer" } }, "required": [ "minApprovals" ], "type": "object" }, "ApprovalStatus": { "enum": [ "approved", "rejected" ], "type": "string" }, "ArgoCDJobAgentConfig": { "properties": { "apiKey": { "description": "ArgoCD API token.", "type": "string" }, "serverUrl": { "description": "ArgoCD server address (host[:port] or URL).", "type": "string" }, "template": { "description": "ArgoCD application template.", "type": "string" } }, "required": [ "serverUrl", "apiKey", "template" ], "type": "object" }, "BasicResource": { "properties": { "id": { "type": "string" }, "identifier": { "type": "string" }, "kind": { "type": "string" }, "name": { "type": "string" }, "version": { "type": "string" }, "workspaceId": { "type": "string" } }, "required": [ "id", "name", "version", "kind", "identifier", "workspaceId" ], "type": "object" }, "BooleanValue": { "type": "boolean" }, "CelMatcher": { "properties": { "cel": { "type": "string" } }, "required": [ "cel" ], "type": "object" }, "DatadogMetricProvider": { "properties": { "aggregator": { "default": "last", "description": "Datadog aggregator", "enum": [ "avg", "min", "max", "sum", "last", "percentile", "mean", "l2norm", "area" ], "type": "string" }, "apiKey": { "description": "Datadog API key (supports Go templates for variable references)", "example": "{{.variables.dd_api_key}}", "type": "string" }, "appKey": { "description": "Datadog Application key (supports Go templates for variable references)", "example": "{{.variables.dd_app_key}}", "type": "string" }, "formula": { "description": "Datadog formula (supports Go templates)", "type": "string" }, "intervalSeconds": { "example": 30, "format": "int64", "maximum": 3600, "minimum": 1, "type": "integer" }, "queries": { "additionalProperties": { "type": "string" }, "description": "Datadog metrics queries (supports Go templates)", "example": { "q": "sum:requests.error.rate{service:{{.resource.name}}}" }, "type": "object" }, "site": { "default": "datadoghq.com", "description": "Datadog site URL (e.g., datadoghq.com, datadoghq.eu, us3.datadoghq.com)", "type": "string" }, "type": { "description": "Provider type", "enum": [ "datadog" ], "type": "string" } }, "required": [ "type", "apiKey", "appKey", "queries" ], "type": "object" }, "DeployDecision": { "properties": { "policyResults": { "items": { "$ref": "#/components/schemas/PolicyEvaluation" }, "type": "array" } }, "required": [ "policyResults" ], "type": "object" }, "Deployment": { "properties": { "description": { "type": "string" }, "id": { "type": "string" }, "jobAgentConfig": { "$ref": "#/components/schemas/JobAgentConfig" }, "jobAgentId": { "type": "string" }, "jobAgents": { "items": { "$ref": "#/components/schemas/DeploymentJobAgent" }, "type": "array" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "type": "string" }, "resourceSelector": { "description": "CEL expression to determine if the deployment should be used", "type": "string" }, "slug": { "type": "string" } }, "required": [ "id", "name", "slug", "jobAgentConfig", "metadata" ], "type": "object" }, "DeploymentAndSystems": { "properties": { "deployment": { "$ref": "#/components/schemas/Deployment" }, "systems": { "items": { "$ref": "#/components/schemas/System" }, "type": "array" } }, "required": [ "deployment", "systems" ], "type": "object" }, "DeploymentDependencyRule": { "properties": { "dependsOn": { "description": "CEL expression to match upstream deployment(s) that must have a successful release before this deployment can proceed.", "type": "string" } }, "required": [ "dependsOn" ], "type": "object" }, "DeploymentJobAgent": { "properties": { "config": { "$ref": "#/components/schemas/JobAgentConfig" }, "ref": { "type": "string" }, "selector": { "description": "CEL expression to determine if the job agent should be used", "type": "string" } }, "required": [ "ref", "config", "selector" ], "type": "object" }, "DeploymentVariable": { "properties": { "defaultValue": { "$ref": "#/components/schemas/LiteralValue" }, "deploymentId": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "key": { "type": "string" } }, "required": [ "id", "key", "deploymentId" ], "type": "object" }, "DeploymentVariableValue": { "properties": { "deploymentVariableId": { "type": "string" }, "id": { "type": "string" }, "priority": { "format": "int64", "type": "integer" }, "resourceSelector": { "description": "CEL expression to determine if the deployment variable value should be used", "type": "string" }, "value": { "$ref": "#/components/schemas/Value" } }, "required": [ "id", "deploymentVariableId", "priority", "value" ], "type": "object" }, "DeploymentVariableWithValues": { "properties": { "values": { "items": { "$ref": "#/components/schemas/DeploymentVariableValue" }, "type": "array" }, "variable": { "$ref": "#/components/schemas/DeploymentVariable" } }, "required": [ "variable", "values" ], "type": "object" }, "DeploymentVersion": { "properties": { "config": { "additionalProperties": true, "type": "object" }, "createdAt": { "format": "date-time", "type": "string" }, "deploymentId": { "type": "string" }, "id": { "type": "string" }, "jobAgentConfig": { "$ref": "#/components/schemas/JobAgentConfig" }, "message": { "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "type": "string" }, "status": { "$ref": "#/components/schemas/DeploymentVersionStatus" }, "tag": { "type": "string" } }, "required": [ "id", "name", "tag", "config", "jobAgentConfig", "deploymentId", "status", "createdAt", "metadata" ], "type": "object" }, "DeploymentVersionStatus": { "enum": [ "unspecified", "building", "ready", "failed", "rejected", "paused" ], "type": "string" }, "DeploymentWindowRule": { "properties": { "allowWindow": { "default": true, "description": "If true, deployments are only allowed during the window. If false, deployments are blocked during the window (deny window)", "type": "boolean" }, "durationMinutes": { "description": "Duration of each deployment window in minutes", "format": "int32", "minimum": 1, "type": "integer" }, "rrule": { "description": "RFC 5545 recurrence rule defining when deployment windows start (e.g., FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;BYHOUR=9)", "type": "string" }, "timezone": { "description": "IANA timezone for the rrule (e.g., America/New_York). Defaults to UTC if not specified", "type": "string" } }, "required": [ "rrule", "durationMinutes" ], "type": "object" }, "DeploymentWithVariablesAndSystems": { "properties": { "deployment": { "$ref": "#/components/schemas/Deployment" }, "systems": { "items": { "$ref": "#/components/schemas/System" }, "type": "array" }, "variables": { "items": { "$ref": "#/components/schemas/DeploymentVariableWithValues" }, "type": "array" } }, "required": [ "deployment", "variables", "systems" ], "type": "object" }, "DispatchContext": { "properties": { "deployment": { "$ref": "#/components/schemas/Deployment" }, "environment": { "$ref": "#/components/schemas/Environment" }, "inputs": { "additionalProperties": true, "description": "Resolved input values for the workflow run.", "type": "object" }, "jobAgent": { "$ref": "#/components/schemas/JobAgent" }, "jobAgentConfig": { "$ref": "#/components/schemas/JobAgentConfig" }, "release": { "$ref": "#/components/schemas/Release" }, "resource": { "$ref": "#/components/schemas/Resource" }, "variables": { "additionalProperties": { "$ref": "#/components/schemas/LiteralValue" }, "type": "object" }, "version": { "$ref": "#/components/schemas/DeploymentVersion" }, "workflow": { "$ref": "#/components/schemas/Workflow" }, "workflowJob": { "$ref": "#/components/schemas/WorkflowJob" }, "workflowRun": { "$ref": "#/components/schemas/WorkflowRun" } }, "required": [ "jobAgent", "jobAgentConfig" ], "type": "object" }, "EntityRelation": { "properties": { "direction": { "$ref": "#/components/schemas/RelationDirection" }, "entity": { "$ref": "#/components/schemas/RelatableEntity" }, "entityId": { "description": "ID of the related entity", "type": "string" }, "entityType": { "$ref": "#/components/schemas/RelatableEntityType" }, "rule": { "$ref": "#/components/schemas/RelationshipRule" } }, "required": [ "rule", "direction", "entityType", "entityId", "entity" ], "type": "object" }, "Environment": { "properties": { "createdAt": { "format": "date-time", "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "type": "string" }, "resourceSelector": { "description": "CEL expression to determine if the environment should be used", "type": "string" }, "workspaceId": { "type": "string" } }, "required": [ "id", "name", "createdAt", "metadata", "workspaceId" ], "type": "object" }, "EnvironmentProgressionRule": { "properties": { "dependsOnEnvironmentSelector": { "description": "CEL expression to determine if the environment progression rule should be used", "type": "string" }, "maximumAgeHours": { "description": "Maximum age of dependency deployment before blocking progression (prevents stale promotions)", "format": "int32", "minimum": 0, "type": "integer" }, "minimumSockTimeMinutes": { "default": 0, "description": "Minimum time to wait after the depends on environment is in a success state before the current environment can be deployed", "format": "int32", "minimum": 0, "type": "integer" }, "minimumSuccessPercentage": { "default": 100, "format": "float", "maximum": 100, "minimum": 0, "type": "number" }, "successStatuses": { "items": { "$ref": "#/components/schemas/JobStatus" }, "type": "array" } }, "required": [ "dependsOnEnvironmentSelector" ], "type": "object" }, "EnvironmentSummary": { "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "name" ], "type": "object" }, "EnvironmentWithSystems": { "allOf": [ { "$ref": "#/components/schemas/Environment" }, { "properties": { "systems": { "items": { "$ref": "#/components/schemas/System" }, "type": "array" } }, "required": [ "systems" ], "type": "object" } ] }, "ErrorResponse": { "properties": { "error": { "example": "Workspace not found", "type": "string" } }, "type": "object" }, "EvaluateReleaseTargetRequest": { "properties": { "releaseTarget": { "$ref": "#/components/schemas/ReleaseTarget" }, "version": { "$ref": "#/components/schemas/DeploymentVersion" } }, "required": [ "releaseTarget", "version" ], "type": "object" }, "EvaluationScope": { "properties": { "environmentId": { "type": "string" }, "versionId": { "type": "string" } }, "type": "object" }, "GithubEntity": { "properties": { "installationId": { "type": "integer" }, "slug": { "type": "string" } }, "required": [ "installationId", "slug" ], "type": "object" }, "GithubJobAgentConfig": { "properties": { "installationId": { "description": "GitHub app installation ID.", "format": "int", "type": "integer" }, "owner": { "description": "GitHub repository owner.", "type": "string" }, "ref": { "description": "Git ref to run the workflow on (defaults to \"main\" if omitted).", "type": "string" }, "repo": { "description": "GitHub repository name.", "type": "string" }, "workflowId": { "description": "GitHub Actions workflow ID.", "format": "int64", "type": "integer" } }, "required": [ "installationId", "owner", "repo", "workflowId" ], "type": "object" }, "GradualRolloutRule": { "properties": { "rolloutType": { "description": "Strategy for scheduling deployments to release targets. \"linear\": Each target is deployed at a fixed interval of timeScaleInterval seconds. \"linear-normalized\": Deployments are spaced evenly so that the last target is scheduled at or before timeScaleInterval seconds. See rolloutType algorithm documentation for details.", "enum": [ "linear", "linear-normalized" ], "type": "string" }, "timeScaleInterval": { "description": "Base time interval in seconds used to compute the delay between deployments to release targets.", "format": "int32", "minimum": 0, "type": "integer" } }, "required": [ "timeScaleInterval", "rolloutType" ], "type": "object" }, "HTTPMetricProvider": { "properties": { "body": { "description": "Request body (supports Go templates)", "type": "string" }, "headers": { "additionalProperties": { "type": "string" }, "description": "HTTP headers (values support Go templates)", "type": "object" }, "method": { "default": "GET", "description": "HTTP method", "enum": [ "GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS" ], "type": "string" }, "timeout": { "default": "30s", "description": "Request timeout (duration string, e.g., \"30s\")", "type": "string" }, "type": { "description": "Provider type", "enum": [ "http" ], "type": "string" }, "url": { "description": "HTTP endpoint URL (supports Go templates)", "example": "http://{{ .resource.name }}.{{ .environment.name }}/health", "type": "string" } }, "required": [ "type", "url" ], "type": "object" }, "IntegerValue": { "type": "integer" }, "Job": { "properties": { "completedAt": { "format": "date-time", "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "dispatchContext": { "$ref": "#/components/schemas/DispatchContext" }, "externalId": { "type": "string" }, "id": { "type": "string" }, "jobAgentConfig": { "$ref": "#/components/schemas/JobAgentConfig" }, "jobAgentId": { "type": "string" }, "message": { "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "releaseId": { "type": "string" }, "startedAt": { "format": "date-time", "type": "string" }, "status": { "$ref": "#/components/schemas/JobStatus" }, "traceToken": { "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "workflowJobId": { "type": "string" } }, "required": [ "id", "releaseId", "workflowJobId", "jobAgentId", "jobAgentConfig", "status", "createdAt", "updatedAt", "metadata" ], "type": "object" }, "JobAgent": { "properties": { "config": { "$ref": "#/components/schemas/JobAgentConfig" }, "id": { "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "type": "string" }, "type": { "type": "string" }, "workspaceId": { "type": "string" } }, "required": [ "id", "workspaceId", "name", "type", "config" ], "type": "object" }, "JobAgentConfig": { "additionalProperties": true, "type": "object" }, "JobStatus": { "enum": [ "cancelled", "skipped", "inProgress", "actionRequired", "pending", "failure", "invalidJobAgent", "invalidIntegration", "externalRunNotFound", "successful" ], "type": "string" }, "JobSummary": { "properties": { "id": { "type": "string" }, "links": { "additionalProperties": { "type": "string" }, "description": "External links extracted from job metadata", "type": "object" }, "message": { "type": "string" }, "status": { "$ref": "#/components/schemas/JobStatus" }, "verifications": { "items": { "$ref": "#/components/schemas/JobVerification" }, "type": "array" } }, "required": [ "id", "status", "verifications" ], "type": "object" }, "JobUpdateEvent": { "oneOf": [ { "required": [ "id" ] }, { "required": [ "agentId", "externalId" ] } ], "properties": { "agentId": { "type": "string" }, "externalId": { "type": "string" }, "fieldsToUpdate": { "items": { "enum": [ "completedAt", "createdAt", "dispatchContext", "externalId", "id", "jobAgentConfig", "jobAgentId", "message", "metadata", "releaseId", "startedAt", "status", "traceToken", "updatedAt", "workflowJobId" ], "type": "string" }, "type": "array" }, "id": { "type": "string" }, "job": { "$ref": "#/components/schemas/Job" } }, "required": [ "job" ], "type": "object" }, "JobVerification": { "properties": { "createdAt": { "description": "When verification was created", "format": "date-time", "type": "string" }, "id": { "type": "string" }, "jobId": { "type": "string" }, "message": { "description": "Summary message of verification result", "type": "string" }, "metrics": { "description": "Metrics associated with this verification", "items": { "$ref": "#/components/schemas/VerificationMetricStatus" }, "type": "array" } }, "required": [ "id", "jobId", "metrics", "createdAt" ], "type": "object" }, "JobVerificationStatus": { "enum": [ "running", "passed", "failed", "cancelled" ], "type": "string" }, "JobWithRelease": { "properties": { "deployment": { "$ref": "#/components/schemas/Deployment" }, "environment": { "$ref": "#/components/schemas/Environment" }, "job": { "$ref": "#/components/schemas/Job" }, "release": { "$ref": "#/components/schemas/Release" }, "resource": { "$ref": "#/components/schemas/Resource" } }, "required": [ "job", "release" ], "type": "object" }, "JobWithVerifications": { "properties": { "job": { "$ref": "#/components/schemas/Job" }, "verifications": { "items": { "$ref": "#/components/schemas/JobVerification" }, "type": "array" } }, "required": [ "job", "verifications" ], "type": "object" }, "LiteralValue": { "oneOf": [ { "$ref": "#/components/schemas/BooleanValue" }, { "$ref": "#/components/schemas/NumberValue" }, { "$ref": "#/components/schemas/IntegerValue" }, { "$ref": "#/components/schemas/StringValue" }, { "$ref": "#/components/schemas/ObjectValue" }, { "$ref": "#/components/schemas/NullValue" } ] }, "MetricProvider": { "discriminator": { "mapping": { "datadog": "#/components/schemas/DatadogMetricProvider", "http": "#/components/schemas/HTTPMetricProvider", "prometheus": "#/components/schemas/PrometheusMetricProvider", "sleep": "#/components/schemas/SleepMetricProvider", "terraformCloudRun": "#/components/schemas/TerraformCloudRunMetricProvider" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/HTTPMetricProvider" }, { "$ref": "#/components/schemas/SleepMetricProvider" }, { "$ref": "#/components/schemas/DatadogMetricProvider" }, { "$ref": "#/components/schemas/PrometheusMetricProvider" }, { "$ref": "#/components/schemas/TerraformCloudRunMetricProvider" } ] }, "NullValue": { "enum": [ true ], "type": "boolean" }, "NumberValue": { "type": "number" }, "ObjectValue": { "properties": { "object": { "additionalProperties": true, "type": "object" } }, "required": [ "object" ], "type": "object" }, "Policy": { "properties": { "createdAt": { "type": "string" }, "description": { "type": "string" }, "enabled": { "type": "boolean" }, "id": { "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "description": "Arbitrary metadata for the policy (record)", "type": "object" }, "name": { "type": "string" }, "priority": { "type": "integer" }, "rules": { "items": { "$ref": "#/components/schemas/PolicyRule" }, "type": "array" }, "selector": { "description": "CEL expression for matching release targets. Use \"true\" to match all targets.", "type": "string" }, "workspaceId": { "type": "string" } }, "required": [ "id", "name", "createdAt", "workspaceId", "selector", "rules", "metadata", "priority", "enabled" ], "type": "object" }, "PolicyEvaluation": { "properties": { "policy": { "$ref": "#/components/schemas/Policy", "nullable": true }, "ruleResults": { "items": { "$ref": "#/components/schemas/RuleEvaluation" }, "type": "array" }, "summary": { "type": "string" } }, "required": [ "ruleResults" ], "type": "object" }, "PolicyRule": { "properties": { "anyApproval": { "$ref": "#/components/schemas/AnyApprovalRule" }, "createdAt": { "type": "string" }, "deploymentDependency": { "$ref": "#/components/schemas/DeploymentDependencyRule" }, "deploymentWindow": { "$ref": "#/components/schemas/DeploymentWindowRule" }, "environmentProgression": { "$ref": "#/components/schemas/EnvironmentProgressionRule" }, "gradualRollout": { "$ref": "#/components/schemas/GradualRolloutRule" }, "id": { "type": "string" }, "policyId": { "type": "string" }, "retry": { "$ref": "#/components/schemas/RetryRule" }, "rollback": { "$ref": "#/components/schemas/RollbackRule" }, "verification": { "$ref": "#/components/schemas/VerificationRule" }, "versionCooldown": { "$ref": "#/components/schemas/VersionCooldownRule" }, "versionSelector": { "$ref": "#/components/schemas/VersionSelectorRule" } }, "required": [ "id", "policyId", "createdAt" ], "type": "object" }, "PolicySkip": { "properties": { "createdAt": { "description": "When this skip was created", "format": "date-time", "type": "string" }, "createdBy": { "description": "User ID who created this skip", "type": "string" }, "environmentId": { "description": "Environment this skip applies to. If null, applies to all environments.", "type": "string" }, "expiresAt": { "description": "When this skip expires. If null, skip never expires.", "format": "date-time", "type": "string" }, "id": { "description": "Unique identifier for the skip", "type": "string" }, "reason": { "description": "Required reason for why this skip is needed (e.g., incident ticket, emergency situation)", "type": "string" }, "resourceId": { "description": "Resource this skip applies to. If null, applies to all resources (in the environment if specified, or globally).", "type": "string" }, "ruleId": { "description": "Rule ID this skip applies to", "type": "string" }, "versionId": { "description": "Deployment version this skip applies to", "type": "string" }, "workspaceId": { "description": "Workspace this skip belongs to", "type": "string" } }, "required": [ "id", "workspaceId", "versionId", "ruleId", "reason", "createdBy", "createdAt" ], "type": "object" }, "PrometheusMetricProvider": { "properties": { "address": { "description": "Prometheus server address (supports Go templates)", "example": "http://prometheus.example.com:9090", "type": "string" }, "authentication": { "description": "Authentication configuration for Prometheus", "properties": { "bearerToken": { "description": "Bearer token for authentication (supports Go templates for variable references)", "example": "{{.variables.prometheus_token}}", "type": "string" }, "oauth2": { "description": "OAuth2 client credentials flow", "properties": { "clientId": { "description": "OAuth2 client ID (supports Go templates)", "type": "string" }, "clientSecret": { "description": "OAuth2 client secret (supports Go templates)", "type": "string" }, "scopes": { "description": "OAuth2 scopes", "items": { "type": "string" }, "type": "array" }, "tokenUrl": { "description": "Token endpoint URL", "type": "string" } }, "required": [ "tokenUrl", "clientId", "clientSecret" ], "type": "object" } }, "type": "object" }, "headers": { "description": "Additional HTTP headers for the Prometheus request (values support Go templates)", "items": { "properties": { "key": { "example": "X-Scope-OrgID", "type": "string" }, "value": { "example": "tenant_a", "type": "string" } }, "required": [ "key", "value" ], "type": "object" }, "type": "array" }, "insecure": { "default": false, "description": "Skip TLS certificate verification", "type": "boolean" }, "query": { "description": "PromQL query expression (supports Go templates)", "example": "sum(irate(istio_requests_total{reporter=\"source\",destination_service=~\"{{.resource.name}}\",response_code!~\"5.*\"}[5m]))", "type": "string" }, "rangeQuery": { "description": "If provided, a range query (/api/v1/query_range) is used instead of an instant query (/api/v1/query)", "properties": { "end": { "description": "How far back from now for the query end, as a Prometheus duration (e.g., \"0s\" for now, \"1m\" for 1 minute ago). Defaults to \"0s\" (now) if unset.", "example": "0s", "type": "string" }, "start": { "description": "How far back from now to start the query, as a Prometheus duration (e.g., \"5m\", \"1h\"). Defaults to 10 * step if unset.", "example": "5m", "type": "string" }, "step": { "description": "Query resolution step width as a Prometheus duration (e.g., \"15s\", \"1m\", \"500ms\")", "example": "1m", "type": "string" } }, "required": [ "step" ], "type": "object" }, "timeout": { "description": "Query timeout in seconds", "example": 30, "format": "int64", "type": "integer" }, "type": { "description": "Provider type", "enum": [ "prometheus" ], "type": "string" } }, "required": [ "type", "address", "query" ], "type": "object" }, "PropertiesMatcher": { "properties": { "properties": { "items": { "$ref": "#/components/schemas/PropertyMatcher" }, "type": "array" } }, "required": [ "properties" ], "type": "object" }, "PropertyMatcher": { "properties": { "fromProperty": { "items": { "type": "string" }, "type": "array" }, "operator": { "enum": [ "equals", "notEquals", "contains", "startsWith", "endsWith", "regex" ], "type": "string" }, "toProperty": { "items": { "type": "string" }, "type": "array" } }, "required": [ "fromProperty", "toProperty", "operator" ], "type": "object" }, "ReferenceValue": { "properties": { "path": { "items": { "type": "string" }, "type": "array" }, "reference": { "type": "string" } }, "required": [ "reference", "path" ], "type": "object" }, "RelatableEntity": { "oneOf": [ { "$ref": "#/components/schemas/Deployment" }, { "$ref": "#/components/schemas/Environment" }, { "$ref": "#/components/schemas/Resource" } ] }, "RelatableEntityType": { "enum": [ "deployment", "environment", "resource" ], "type": "string" }, "RelationDirection": { "enum": [ "from", "to" ], "type": "string" }, "RelationshipRule": { "properties": { "description": { "type": "string" }, "fromSelector": { "description": "CEL expression to determine if the relationship rule should be used", "type": "string" }, "fromType": { "$ref": "#/components/schemas/RelatableEntityType" }, "id": { "type": "string" }, "matcher": { "oneOf": [ { "$ref": "#/components/schemas/CelMatcher" }, { "$ref": "#/components/schemas/PropertiesMatcher" } ] }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "type": "string" }, "reference": { "type": "string" }, "relationshipType": { "type": "string" }, "toSelector": { "description": "CEL expression to determine if the relationship rule should be used", "type": "string" }, "toType": { "$ref": "#/components/schemas/RelatableEntityType" }, "workspaceId": { "type": "string" } }, "required": [ "id", "name", "reference", "fromType", "toType", "matcher", "relationshipType", "metadata", "workspaceId" ], "type": "object" }, "Release": { "properties": { "createdAt": { "type": "string" }, "encryptedVariables": { "items": { "type": "string" }, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "releaseTarget": { "$ref": "#/components/schemas/ReleaseTarget" }, "variables": { "additionalProperties": { "$ref": "#/components/schemas/LiteralValue" }, "type": "object" }, "version": { "$ref": "#/components/schemas/DeploymentVersion" } }, "required": [ "id", "version", "variables", "encryptedVariables", "releaseTarget", "createdAt" ], "type": "object" }, "ReleaseTarget": { "properties": { "deploymentId": { "type": "string" }, "environmentId": { "type": "string" }, "resourceId": { "type": "string" } }, "required": [ "resourceId", "environmentId", "deploymentId" ], "type": "object" }, "ReleaseTargetAndState": { "properties": { "releaseTarget": { "$ref": "#/components/schemas/ReleaseTarget" }, "state": { "$ref": "#/components/schemas/ReleaseTargetState" } }, "required": [ "releaseTarget", "state" ], "type": "object" }, "ReleaseTargetItem": { "properties": { "currentVersion": { "nullable": true, "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "tag": { "type": "string" } }, "required": [ "id", "name", "tag" ], "type": "object" }, "desiredVersion": { "nullable": true, "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "tag": { "type": "string" } }, "required": [ "id", "name", "tag" ], "type": "object" }, "environment": { "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "name" ], "type": "object" }, "latestJob": { "nullable": true, "properties": { "completedAt": { "format": "date-time", "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "id": { "type": "string" }, "message": { "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "status": { "$ref": "#/components/schemas/JobStatus" }, "verifications": { "items": { "properties": { "id": { "type": "string" }, "jobId": { "type": "string" }, "metrics": { "items": { "properties": { "count": { "type": "integer" }, "failureCondition": { "nullable": true, "type": "string" }, "failureThreshold": { "nullable": true, "type": "integer" }, "id": { "type": "string" }, "jobId": { "type": "string" }, "name": { "type": "string" }, "policyRuleVerificationMetricId": { "type": "string" }, "provider": { "additionalProperties": true, "type": "object" }, "successCondition": { "type": "string" }, "successThreshold": { "nullable": true, "type": "integer" } }, "required": [ "id", "name", "provider", "count", "successCondition", "successThreshold", "failureCondition", "failureThreshold" ], "type": "object" }, "type": "array" } }, "required": [ "id", "jobId", "metrics" ], "type": "object" }, "type": "array" } }, "required": [ "id", "status", "createdAt", "metadata", "verifications" ], "type": "object" }, "releaseTarget": { "properties": { "deploymentId": { "type": "string" }, "environmentId": { "type": "string" }, "resourceId": { "type": "string" } }, "required": [ "resourceId", "environmentId", "deploymentId" ], "type": "object" }, "resource": { "properties": { "id": { "type": "string" }, "identifier": { "type": "string" }, "kind": { "type": "string" }, "name": { "type": "string" }, "version": { "type": "string" } }, "required": [ "id", "name", "version", "kind", "identifier" ], "type": "object" } }, "required": [ "releaseTarget", "environment", "resource" ], "type": "object" }, "ReleaseTargetPreview": { "properties": { "deployment": { "$ref": "#/components/schemas/Deployment" }, "environment": { "$ref": "#/components/schemas/Environment" }, "system": { "$ref": "#/components/schemas/System" } }, "required": [ "system", "deployment", "environment" ], "type": "object" }, "ReleaseTargetState": { "properties": { "currentRelease": { "$ref": "#/components/schemas/Release" }, "desiredRelease": { "$ref": "#/components/schemas/Release" }, "latestJob": { "$ref": "#/components/schemas/JobWithVerifications" } }, "type": "object" }, "ReleaseTargetSummary": { "properties": { "currentVersion": { "$ref": "#/components/schemas/VersionSummary" }, "desiredVersion": { "$ref": "#/components/schemas/VersionSummary" }, "environment": { "$ref": "#/components/schemas/EnvironmentSummary" }, "latestJob": { "$ref": "#/components/schemas/JobSummary" }, "releaseTarget": { "$ref": "#/components/schemas/ReleaseTarget" }, "resource": { "$ref": "#/components/schemas/ResourceSummary" } }, "required": [ "releaseTarget", "resource", "environment" ], "type": "object" }, "ReleaseTargetWithState": { "properties": { "deployment": { "$ref": "#/components/schemas/Deployment" }, "environment": { "$ref": "#/components/schemas/Environment" }, "releaseTarget": { "$ref": "#/components/schemas/ReleaseTarget" }, "resource": { "$ref": "#/components/schemas/Resource" }, "state": { "$ref": "#/components/schemas/ReleaseTargetState" } }, "required": [ "releaseTarget", "state", "environment", "resource", "deployment" ], "type": "object" }, "ResolvedPolicy": { "properties": { "environmentIds": { "items": { "type": "string" }, "type": "array" }, "policy": { "$ref": "#/components/schemas/Policy" }, "releaseTargets": { "items": { "$ref": "#/components/schemas/ReleaseTarget" }, "type": "array" } }, "required": [ "policy", "environmentIds", "releaseTargets" ], "type": "object" }, "Resource": { "properties": { "config": { "additionalProperties": true, "type": "object" }, "createdAt": { "format": "date-time", "type": "string" }, "deletedAt": { "format": "date-time", "type": "string" }, "id": { "type": "string" }, "identifier": { "type": "string" }, "kind": { "type": "string" }, "lockedAt": { "format": "date-time", "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "type": "string" }, "providerId": { "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "version": { "type": "string" }, "workspaceId": { "type": "string" } }, "required": [ "id", "name", "version", "kind", "identifier", "createdAt", "workspaceId", "config", "metadata" ], "type": "object" }, "ResourcePreviewRequest": { "properties": { "config": { "additionalProperties": true, "type": "object" }, "identifier": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "type": "string" }, "version": { "type": "string" } }, "required": [ "name", "version", "kind", "identifier", "config", "metadata" ], "type": "object" }, "ResourceProvider": { "properties": { "createdAt": { "format": "date-time", "type": "string" }, "id": { "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "type": "string" }, "workspaceId": { "format": "uuid", "type": "string" } }, "required": [ "id", "workspaceId", "name", "createdAt", "metadata" ], "type": "object" }, "ResourceSummary": { "properties": { "id": { "type": "string" }, "identifier": { "type": "string" }, "kind": { "type": "string" }, "name": { "type": "string" }, "version": { "type": "string" } }, "required": [ "id", "name", "kind", "version", "identifier" ], "type": "object" }, "ResourceVariable": { "properties": { "key": { "type": "string" }, "resourceId": { "type": "string" }, "value": { "$ref": "#/components/schemas/Value" } }, "required": [ "resourceId", "key", "value" ], "type": "object" }, "ResourceVariablesBulkUpdateEvent": { "properties": { "resourceId": { "type": "string" }, "variables": { "additionalProperties": true, "type": "object" } }, "required": [ "resourceId", "variables" ], "type": "object" }, "RetryRule": { "properties": { "backoffSeconds": { "description": "Minimum seconds to wait between retry attempts. If null, retries are allowed immediately after job completion.", "format": "int32", "minimum": 0, "type": "integer" }, "backoffStrategy": { "default": "linear", "description": "Backoff strategy: \"linear\" uses constant backoffSeconds delay, \"exponential\" doubles the delay with each retry (backoffSeconds * 2^(attempt-1)).", "enum": [ "linear", "exponential" ], "type": "string" }, "maxBackoffSeconds": { "description": "Maximum backoff time in seconds (cap for exponential backoff). If null, no maximum is enforced.", "format": "int32", "minimum": 0, "type": "integer" }, "maxRetries": { "description": "Maximum number of retries allowed. 0 means no retries (1 attempt total), 3 means up to 4 attempts (1 initial + 3 retries).", "format": "int32", "minimum": 0, "type": "integer" }, "retryOnStatuses": { "description": "Job statuses that count toward the retry limit. If null or empty, defaults to [\"failure\", \"invalidIntegration\", \"invalidJobAgent\"] for maxRetries > 0, or [\"failure\", \"invalidIntegration\", \"invalidJobAgent\", \"successful\"] for maxRetries = 0. Cancelled and skipped jobs never count by default (allows redeployment after cancellation). Example: [\"failure\", \"cancelled\"] will only count failed/cancelled jobs.", "items": { "$ref": "#/components/schemas/JobStatus" }, "type": "array" } }, "required": [ "maxRetries" ], "type": "object" }, "RollbackRule": { "properties": { "onJobStatuses": { "description": "Job statuses that will trigger a rollback", "items": { "$ref": "#/components/schemas/JobStatus" }, "type": "array" }, "onVerificationFailure": { "default": false, "description": "If true, a release target will be rolled back if the verification fails", "type": "boolean" } }, "type": "object" }, "RuleEvaluation": { "properties": { "actionRequired": { "description": "Whether the rule requires an action (e.g., approval, wait)", "type": "boolean" }, "actionType": { "description": "Type of action required", "enum": [ "approval", "wait" ], "type": "string" }, "allowed": { "description": "Whether the rule allows the deployment", "type": "boolean" }, "details": { "additionalProperties": true, "description": "Additional details about the rule evaluation", "type": "object" }, "message": { "description": "Human-readable explanation of the rule result", "type": "string" }, "nextEvaluationTime": { "description": "The time when this rule should be re-evaluated (e.g., when soak time will be complete, when gradual rollout schedule is due)", "format": "date-time", "type": "string" }, "ruleId": { "description": "The ID of the rule that was evaluated", "type": "string" }, "satisfiedAt": { "description": "The time when the rule requirement was satisfied (e.g., when approvals were met, soak time completed)", "format": "date-time", "type": "string" } }, "required": [ "ruleId", "allowed", "actionRequired", "message", "details" ], "type": "object" }, "SensitiveValue": { "properties": { "valueHash": { "type": "string" } }, "required": [ "valueHash" ], "type": "object" }, "SleepMetricProvider": { "properties": { "durationSeconds": { "example": 30, "format": "int32", "maximum": 3600, "minimum": 1, "type": "integer" }, "type": { "description": "Provider type", "enum": [ "sleep" ], "type": "string" } }, "required": [ "type", "durationSeconds" ], "type": "object" }, "StringValue": { "type": "string" }, "System": { "properties": { "description": { "type": "string" }, "id": { "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "type": "string" }, "workspaceId": { "type": "string" } }, "required": [ "id", "workspaceId", "name" ], "type": "object" }, "SystemDeploymentLink": { "properties": { "deploymentId": { "type": "string" }, "systemId": { "type": "string" } }, "required": [ "systemId", "deploymentId" ], "type": "object" }, "SystemEnvironmentLink": { "properties": { "environmentId": { "type": "string" }, "systemId": { "type": "string" } }, "required": [ "systemId", "environmentId" ], "type": "object" }, "TerraformCloudJobAgentConfig": { "properties": { "address": { "description": "Terraform Cloud address (e.g. https://app.terraform.io).", "type": "string" }, "organization": { "description": "Terraform Cloud organization name.", "type": "string" }, "template": { "description": "Terraform Cloud workspace template.", "type": "string" }, "token": { "description": "Terraform Cloud API token.", "type": "string" }, "triggerRunOnChange": { "default": true, "description": "Whether to create a TFC run on dispatch. When false, only the workspace and variables are synced.", "type": "boolean" }, "webhookUrl": { "description": "The ctrlplane API endpoint for TFC webhook notifications (e.g. https://ctrlplane.example.com/api/tfe/webhook).", "type": "string" } }, "required": [ "address", "organization", "token", "template", "webhookUrl" ], "type": "object" }, "TerraformCloudRunMetricProvider": { "properties": { "address": { "description": "Terraform Cloud address", "example": "https://app.terraform.io", "type": "string" }, "runId": { "description": "Terraform Cloud run ID", "example": "run-1234567890", "type": "string" }, "token": { "description": "Terraform Cloud token", "example": "{{.variables.terraform_cloud_token}}", "type": "string" }, "type": { "description": "Provider type", "enum": [ "terraformCloudRun" ], "type": "string" } }, "required": [ "type", "address", "token", "runId" ], "type": "object" }, "TestRunnerJobAgentConfig": { "properties": { "delaySeconds": { "description": "Delay in seconds before resolving the job.", "format": "int", "type": "integer" }, "message": { "description": "Optional message to include in the job output.", "type": "string" }, "status": { "description": "Final status to set (e.g. \"successful\", \"failure\").", "type": "string" } }, "type": "object" }, "UserApprovalRecord": { "properties": { "createdAt": { "type": "string" }, "environmentId": { "type": "string" }, "reason": { "type": "string" }, "status": { "$ref": "#/components/schemas/ApprovalStatus" }, "userId": { "type": "string" }, "versionId": { "type": "string" } }, "required": [ "userId", "versionId", "environmentId", "status", "createdAt" ], "type": "object" }, "Value": { "oneOf": [ { "$ref": "#/components/schemas/LiteralValue" }, { "$ref": "#/components/schemas/ReferenceValue" }, { "$ref": "#/components/schemas/SensitiveValue" } ] }, "VerificationMeasurement": { "properties": { "data": { "additionalProperties": true, "description": "Raw measurement data", "type": "object" }, "measuredAt": { "description": "When measurement was taken", "format": "date-time", "type": "string" }, "message": { "description": "Measurement result message", "type": "string" }, "status": { "$ref": "#/components/schemas/VerificationMeasurementStatus" } }, "required": [ "status", "measuredAt", "data" ], "type": "object" }, "VerificationMeasurementStatus": { "description": "Status of a verification measurement", "enum": [ "passed", "failed", "inconclusive" ], "type": "string" }, "VerificationMetricSpec": { "properties": { "count": { "description": "Number of measurements to take", "minimum": 1, "type": "integer" }, "failureCondition": { "description": "CEL expression to evaluate measurement failure (e.g., \"result.statusCode == 500\"), if not provided, a failure is just the opposite of the success condition", "example": "result.statusCode == 500", "type": "string" }, "failureThreshold": { "default": 0, "description": "Stop after this many consecutive failures (0 = no limit)", "type": "integer" }, "intervalSeconds": { "description": "Interval between measurements in seconds", "example": 30, "format": "int32", "minimum": 1, "type": "integer" }, "name": { "description": "Name of the verification metric", "type": "string" }, "provider": { "$ref": "#/components/schemas/MetricProvider" }, "successCondition": { "description": "CEL expression to evaluate measurement success (e.g., \"result.statusCode == 200\")", "example": "result.statusCode == 200", "type": "string" }, "successThreshold": { "description": "Minimum number of consecutive successful measurements required to consider the metric successful", "example": 0, "type": "integer" } }, "required": [ "name", "intervalSeconds", "count", "provider", "successCondition" ], "type": "object" }, "VerificationMetricStatus": { "allOf": [ { "$ref": "#/components/schemas/VerificationMetricSpec" }, { "properties": { "id": { "type": "string" }, "measurements": { "description": "Individual verification measurements taken for this metric", "items": { "$ref": "#/components/schemas/VerificationMeasurement" }, "type": "array" } }, "required": [ "id", "measurements" ], "type": "object" } ] }, "VerificationRule": { "properties": { "metrics": { "description": "Metrics to verify", "items": { "$ref": "#/components/schemas/VerificationMetricSpec" }, "minItems": 1, "type": "array" }, "triggerOn": { "default": "jobSuccess", "description": "When to trigger verification", "enum": [ "jobCreated", "jobStarted", "jobSuccess", "jobFailure" ], "type": "string" } }, "required": [ "metrics" ], "type": "object" }, "VersionCooldownRule": { "properties": { "intervalSeconds": { "description": "Minimum time in seconds that must pass since the currently deployed (or in-progress) version was created before allowing another deployment. This enables batching of frequent upstream releases into periodic deployments.", "format": "int32", "minimum": 0, "type": "integer" } }, "required": [ "intervalSeconds" ], "type": "object" }, "VersionSelectorRule": { "properties": { "description": { "description": "Human-readable description of what this version selector does. Example: \"Only deploy v2.x versions to staging environments\"", "type": "string" }, "selector": { "description": "CEL expression to determine if the version selector should be used", "type": "string" } }, "required": [ "selector" ], "type": "object" }, "VersionSummary": { "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "tag": { "type": "string" } }, "required": [ "id", "tag", "name" ], "type": "object" }, "Workflow": { "properties": { "id": { "type": "string" }, "inputs": { "items": { "$ref": "#/components/schemas/WorkflowInput" }, "type": "array" }, "jobs": { "items": { "$ref": "#/components/schemas/WorkflowJobAgent" }, "type": "array" }, "name": { "type": "string" } }, "required": [ "id", "name", "inputs", "jobs" ], "type": "object" }, "WorkflowArrayInput": { "oneOf": [ { "$ref": "#/components/schemas/WorkflowManualArrayInput" } ] }, "WorkflowBooleanInput": { "properties": { "default": { "type": "boolean" }, "key": { "type": "string" }, "type": { "enum": [ "boolean" ], "type": "string" } }, "required": [ "key", "type" ], "type": "object" }, "WorkflowInput": { "oneOf": [ { "$ref": "#/components/schemas/WorkflowStringInput" }, { "$ref": "#/components/schemas/WorkflowNumberInput" }, { "$ref": "#/components/schemas/WorkflowBooleanInput" }, { "$ref": "#/components/schemas/WorkflowArrayInput" }, { "$ref": "#/components/schemas/WorkflowObjectInput" } ] }, "WorkflowJob": { "properties": { "config": { "additionalProperties": true, "description": "Configuration for the job agent", "type": "object" }, "id": { "type": "string" }, "index": { "type": "integer" }, "ref": { "description": "Reference to the job agent", "type": "string" }, "workflowRunId": { "type": "string" } }, "required": [ "id", "workflowRunId", "index", "ref", "config" ], "type": "object" }, "WorkflowJobAgent": { "properties": { "config": { "additionalProperties": true, "description": "Configuration for the job agent", "type": "object" }, "id": { "type": "string" }, "name": { "type": "string" }, "ref": { "description": "Reference to the job agent", "type": "string" }, "selector": { "description": "CEL expression to determine if the job agent should dispatch a job", "type": "string" } }, "required": [ "id", "name", "ref", "config", "selector" ], "type": "object" }, "WorkflowManualArrayInput": { "properties": { "default": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "key": { "type": "string" }, "type": { "enum": [ "array" ], "type": "string" } }, "required": [ "key", "type" ], "type": "object" }, "WorkflowNumberInput": { "properties": { "default": { "type": "number" }, "key": { "type": "string" }, "type": { "enum": [ "number" ], "type": "string" } }, "required": [ "key", "type" ], "type": "object" }, "WorkflowObjectInput": { "properties": { "default": { "additionalProperties": true, "type": "object" }, "key": { "type": "string" }, "type": { "enum": [ "object" ], "type": "string" } }, "required": [ "key", "type" ], "type": "object" }, "WorkflowRun": { "properties": { "id": { "type": "string" }, "inputs": { "additionalProperties": true, "type": "object" }, "workflowId": { "type": "string" } }, "required": [ "id", "workflowId", "inputs" ], "type": "object" }, "WorkflowStringInput": { "properties": { "default": { "type": "string" }, "key": { "type": "string" }, "type": { "enum": [ "string" ], "type": "string" } }, "required": [ "key", "type" ], "type": "object" } } }, "info": { "description": "OpenAPI schemas for workspace engine protobuf messages", "title": "Workspace Engine API", "version": "1.0.0" }, "openapi": "3.0.0", "paths": { "/v1/deployments/{deploymentId}/release-targets": { "get": { "operationId": "listReleaseTargets", "parameters": [ { "description": "ID of the deployment", "in": "path", "name": "deploymentId", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "properties": { "items": { "items": { "$ref": "#/components/schemas/ReleaseTargetItem" }, "type": "array" } }, "required": [ "items" ], "type": "object" } } }, "description": "List of release targets for the deployment" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Invalid request" } }, "summary": "List release targets for a deployment" } }, "/v1/validate/resource-selector": { "post": { "operationId": "validateResourceSelector", "requestBody": { "content": { "application/json": { "schema": { "properties": { "resourceSelector": { "description": "CEL expression to validate.", "type": "string" } }, "required": [ "resourceSelector" ], "type": "object" } } } }, "responses": { "200": { "content": { "application/json": { "schema": { "properties": { "errors": { "items": { "type": "string" }, "type": "array" }, "valid": { "type": "boolean" } }, "required": [ "valid", "errors" ], "type": "object" } } }, "description": "The validated resource selector" } }, "summary": "Validate a resource selector" } }, "/v1/workspaces/{workspaceId}/resources/aggregates": { "post": { "description": "Filters resources by a CEL expression and groups them by specified properties, returning counts per group.", "operationId": "computeAggergate", "parameters": [ { "description": "ID of the workspace", "in": "path", "name": "workspaceId", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "properties": { "filter": { "description": "CEL expression to filter resources. Defaults to \"true\" (all resources).", "type": "string" }, "groupBy": { "items": { "properties": { "name": { "description": "Label for this grouping", "type": "string" }, "property": { "description": "Dot-path property to group by (e.g. kind, metadata.region)", "type": "string" } }, "required": [ "name", "property" ], "type": "object" }, "type": "array" } }, "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "properties": { "groups": { "items": { "properties": { "count": { "description": "Number of resources in this group", "type": "integer" }, "key": { "additionalProperties": { "type": "string" }, "description": "Map of grouping name to its value for this bucket", "type": "object" } }, "required": [ "key", "count" ], "type": "object" }, "type": "array" }, "total": { "description": "Total number of matching resources", "type": "integer" } }, "required": [ "total", "groups" ], "type": "object" } } }, "description": "OK response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Invalid request" } }, "summary": "Compute resource aggregate" } }, "/v1/workspaces/{workspaceId}/resources/query": { "post": { "description": "Returns paginated resources that match the provided CEL expression. Use the \"resource\" variable in your expression to access resource properties.", "operationId": "queryResources", "parameters": [ { "description": "ID of the workspace", "in": "path", "name": "workspaceId", "required": true, "schema": { "type": "string" } }, { "description": "Maximum number of items to return", "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 1000, "minimum": 1, "type": "integer" } }, { "description": "Number of items to skip", "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "minimum": 0, "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "properties": { "filter": { "description": "CEL expression to filter resources. Defaults to \"true\" (all resources).", "type": "string" } }, "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "properties": { "items": { "items": { "$ref": "#/components/schemas/Resource" }, "type": "array" }, "limit": { "description": "Maximum number of items returned", "type": "integer" }, "offset": { "description": "Number of items skipped", "type": "integer" }, "total": { "description": "Total number of items available", "type": "integer" } }, "required": [ "items", "total", "limit", "offset" ], "type": "object" } } }, "description": "Paginated list of items" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Invalid request" } }, "summary": "Query resources with CEL expression" } }, "/v1/workspaces/{workspaceId}/workflows/{workflowId}/runs": { "post": { "description": "Creates a new run for the specified workflow with the provided inputs.", "operationId": "createWorkflowRun", "parameters": [ { "description": "ID of the workspace", "in": "path", "name": "workspaceId", "required": true, "schema": { "type": "string" } }, { "description": "ID of the workflow", "in": "path", "name": "workflowId", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "properties": { "inputs": { "additionalProperties": true, "description": "Input values for the workflow run.", "type": "object" } }, "required": [ "inputs" ], "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowRun" } } }, "description": "OK response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Invalid request" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }, "description": "Resource not found" } }, "summary": "Create a workflow run" } } } }