{"openapi":"3.1.0","info":{"title":"Cantora Management API","version":"v1","description":"Create and manage Cantora Organizations, Agent Configuration, Environment resources, provider connections, and Tenant identities through one authenticated HTTP contract."},"paths":{"/v1/identity":{"get":{"tags":["system"],"operationId":"system.identity","parameters":[],"security":[{"bearer":[]}],"responses":{"200":{"description":"Identity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityJsonEncoding"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}}},"description":"Return the authenticated Principal and the Control Plane deployment serving the request.","summary":"Describe the authenticated caller","x-cantora-audience":"customer"}},"/v1/system/conformance":{"post":{"tags":["system"],"operationId":"system.conformance","parameters":[],"security":[{"bearer":[]}],"responses":{"200":{"description":"ConformanceResult","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConformanceResultJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}}},"description":"Exercise authenticated request handling, optional cancellation delay, request identifiers, and server time without changing Product State.","summary":"Echo a nonce back through the full request path, optionally holding the request open","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"nonce":{"type":"string","allOf":[{"minLength":1},{"maxLength":64}],"description":"A caller-chosen value returned unchanged in the response."},"delayMillis":{"anyOf":[{"type":"integer","allOf":[{"minimum":0,"maximum":5000}]},{"type":"null"}],"description":"How long the server should hold the request before responding; omitted means no delay."}},"required":["nonce"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/bootstrap":{"post":{"tags":["bootstrap"],"operationId":"bootstrap.bootstrapPlatform","parameters":[],"security":[{"bearer":[]}],"responses":{"201":{"description":"PlatformBootstrapped","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformBootstrappedJsonEncoding"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}}},"description":"Perform the one-time platform bootstrap and return the provisioning API key exactly once. This operation is for Cantora operators, not customer credentials.","summary":"Create Cantora's Organization, its provisioning ServicePrincipal, and its credential","x-cantora-audience":"cantora-operator"}},"/v1/organizations/{organizationId}/first-identity":{"post":{"tags":["organizationProvisioning"],"operationId":"organizationProvisioning.provisionFirstIdentity","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"OrganizationIdentityProvisioned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationIdentityProvisionedJsonEncoding"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Create the first Organization-scoped ServicePrincipal, Admin Grant, and API key, returning the key exactly once. This operation is for Cantora operators.","summary":"Provision an Organization's first authenticated caller","x-cantora-audience":"cantora-operator"}},"/v1/organizations":{"post":{"tags":["organizations"],"operationId":"organizations.createOrganization","parameters":[],"security":[{"bearer":[]}],"responses":{"201":{"description":"OrganizationCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationCreatedJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}}},"description":"Create an empty customer Organization during Cantora-operated provisioning.","summary":"Create an Organization","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The customer-facing Organization name.","minLength":1,"maxLength":200}},"required":["name"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"cantora-operator"}},"/v1/organizations/{organizationId}":{"get":{"tags":["organizations"],"operationId":"organizations.readOrganization","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationJsonEncoding"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return the Organization identified by the path when it is within the caller's authorized scope.","summary":"Read one Organization","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects":{"post":{"tags":["projects"],"operationId":"projects.createProject","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"ProjectCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreatedJsonEncoding"},"examples":{"gettingStarted":{"summary":"Project created","value":{"projectId":"proj_00000000000000000000000000000001","organizationId":"org_00000000000000000000000000000002","name":"Customer support","createdAt":"2026-01-15T18:30:00.000Z"}}}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Create a Project and optionally create its test, live, or both Environments in the same transaction.","summary":"Create a Project in an Organization","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The Project name shown to its operators.","minLength":1,"maxLength":200},"environments":{"type":"array","items":{"type":"string","enum":["test","live"]},"allOf":[{"maxItems":2},{"uniqueItems":true}],"description":"The unique test, live, or both Environments to create with the Project."}},"required":["name"],"additionalProperties":false},"examples":{"gettingStarted":{"summary":"Create a Project with its Test Environment","value":{"name":"Customer support","environments":["test"]}}}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}":{"get":{"tags":["projects"],"operationId":"projects.readProject","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"Project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectJsonEncoding"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return one Project from the Organization scope named in the path.","summary":"Read one Project","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/agent-definitions":{"post":{"tags":["agentDefinitions"],"operationId":"agentDefinitions.createAgentDefinition","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"AgentDefinitionCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDefinitionCreatedJsonEncoding"},"examples":{"gettingStarted":{"summary":"Agent Definition created","value":{"agentDefinitionId":"agentdef_00000000000000000000000000000001","organizationId":"org_00000000000000000000000000000002","projectId":"proj_00000000000000000000000000000001","key":"support-agent","displayName":"Support Agent","status":"active","configurationAuthority":"ApiManaged","createdAt":"2026-01-15T18:30:00.000Z"}}}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Create a stable Project-scoped Agent Definition whose immutable Versions can be used across Environments.","summary":"Create an API-managed Agent Definition","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","description":"The stable key used across Environments and Versions.","minLength":1,"maxLength":100},"displayName":{"type":"string","description":"The human-readable Agent Definition name.","minLength":1,"maxLength":200}},"required":["key","displayName"],"additionalProperties":false},"examples":{"gettingStarted":{"summary":"Create an API-managed Agent Definition","value":{"key":"support-agent","displayName":"Support Agent"}}}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/agent-definitions/{agentDefinitionId}":{"get":{"tags":["agentDefinitions"],"operationId":"agentDefinitions.readAgentDefinition","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"agentDefinitionId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}]},"required":true,"description":"The Agent Definition to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"AgentDefinition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDefinitionJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return one Agent Definition and its configuration authority from the Project scope named in the path.","summary":"Read one Agent Definition","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/agent-definitions/{agentDefinitionId}/versions":{"post":{"tags":["agentVersions"],"operationId":"agentVersions.publishAgentVersion","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"agentDefinitionId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}]},"required":true,"description":"The Agent Definition to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"PublishedAgentVersion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishedAgentVersionJsonEncoding"},"examples":{"gettingStarted":{"summary":"Agent Version published","value":{"outcome":"created","version":{"agentVersionId":"agent_version_00000000000000000000000000000001","organizationId":"org_00000000000000000000000000000002","projectId":"proj_00000000000000000000000000000001","agentDefinitionId":"agentdef_00000000000000000000000000000001","revision":1,"manifest":{"schemaVersion":"config.cantora.ai/agent-version/v1alpha2","instructions":"Answer support questions using the approved knowledge sources and cite the evidence used.","model":{"provider":"googleVertex","model":"gemini-3.6-flash","settings":{"thinkingLevel":"low"}},"tools":[],"requiredBindings":[],"budgets":{"maxModelSteps":12,"maxToolCalls":0,"totalWallTimeMs":240000,"modelStepTimeMs":90000,"streamStallTimeMs":15000,"maxInputTokens":100000,"maxOutputTokens":16000,"maxReasoningTokens":32000,"maxTotalTokens":140000,"maxToolResultBytes":1000000,"maxEstimatedCostMicros":5000000}},"manifestDigest":"d1211243559d67e3078ef4de78bbbedf0f64dfd6a7d8b39688459a961e67d687","createdByPrincipalId":"principal_00000000000000000000000000000002","source":{"repository":"example.invalid/acme/support-agent","commit":"0000000000000000000000000000000000000000","path":"cantora/support-agent.json","workflow":"publish-support-agent","run":"example-1"},"createdAt":"2026-01-15T18:30:00.000Z"}}}}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Publish a content-addressed Agent Version, or return the existing Version when the normalized manifest is identical.","summary":"Publish or reuse an immutable Agent Version","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"manifest":{"$ref":"#/components/schemas/AgentVersionManifest","description":"The complete immutable Agent behavior and execution-budget declaration."},"source":{"$ref":"#/components/schemas/AgentVersionSource","description":"The source revision and automation run that published this Version."}},"required":["manifest","source"],"additionalProperties":false},"examples":{"gettingStarted":{"summary":"Publish the first immutable Agent Version","value":{"manifest":{"schemaVersion":"config.cantora.ai/agent-version/v1alpha2","instructions":"Answer support questions using the approved knowledge sources and cite the evidence used.","model":{"provider":"googleVertex","model":"gemini-3.6-flash","settings":{"thinkingLevel":"low"}},"tools":[],"requiredBindings":[],"budgets":{"maxModelSteps":12,"maxToolCalls":0,"totalWallTimeMs":240000,"modelStepTimeMs":90000,"streamStallTimeMs":15000,"maxInputTokens":100000,"maxOutputTokens":16000,"maxReasoningTokens":32000,"maxTotalTokens":140000,"maxToolResultBytes":1000000,"maxEstimatedCostMicros":5000000}},"source":{"repository":"example.invalid/acme/support-agent","commit":"0000000000000000000000000000000000000000","path":"cantora/support-agent.json","workflow":"publish-support-agent","run":"example-1"}}}}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/agent-definitions/{agentDefinitionId}/versions/{agentVersionId}":{"get":{"tags":["agentVersions"],"operationId":"agentVersions.readAgentVersion","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"agentDefinitionId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}]},"required":true,"description":"The Agent Definition to address."},{"name":"agentVersionId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_version_[\\s\\S]+$","description":"A Cantora Agent Version identifier, prefixed with `agent_version_`."}]},"required":true,"description":"The immutable Agent Version to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"AgentVersion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVersionJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return one immutable Agent Version, including its manifest, digest, revision, and source provenance.","summary":"Read one immutable Agent Version","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments":{"post":{"tags":["environments"],"operationId":"environments.createEnvironment","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"EnvironmentCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentCreatedJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Create one of the two named Environment boundaries in a Project; the same name cannot be created twice.","summary":"Create the `test` or `live` Environment of a Project","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","enum":["test","live"],"description":"The test or live Environment to create."}},"required":["name"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"},"get":{"tags":["environments"],"operationId":"environments.listEnvironments","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentJsonEncoding"}},"examples":{"gettingStarted":{"summary":"The Project's Test Environment","value":[{"environmentId":"env_00000000000000000000000000000001","organizationId":"org_00000000000000000000000000000002","projectId":"proj_00000000000000000000000000000001","name":"test","createdAt":"2026-01-15T18:30:00.000Z"}]}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}}},"description":"Return the Project's bounded set of test and live Environments, or an empty array when none match the authorized scope.","summary":"List a Project's Environments","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}":{"get":{"tags":["environments"],"operationId":"environments.readEnvironment","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"Environment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentJsonEncoding"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return one Environment from the complete Organization and Project scope named in the path.","summary":"Read one Environment","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/agents":{"post":{"tags":["agents"],"operationId":"agents.createAgent","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"AgentCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreatedJsonEncoding"},"examples":{"gettingStarted":{"summary":"Test Agent provisioned","value":{"principalId":"principal_00000000000000000000000000000003","status":"active","organizationId":"org_00000000000000000000000000000002","projectId":"proj_00000000000000000000000000000001","environmentId":"env_00000000000000000000000000000001","agentDefinitionId":"agentdef_00000000000000000000000000000001","definitionKey":"support-agent","displayName":"Support Agent","currentAgentReleaseId":null,"releaseGeneration":0,"releaseEtag":"\"0\"","createdAt":"2026-01-15T18:30:00.000Z"}}}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Create the Environment-scoped Agent Principal for an Agent Definition; each definition can be provisioned once per Environment.","summary":"Provision an Agent Definition into an Environment","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"agentDefinitionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}],"description":"The Project Agent Definition to provision into this Environment."}},"required":["agentDefinitionId"],"additionalProperties":false},"examples":{"gettingStarted":{"summary":"Provision the Agent Definition in Test","value":{"agentDefinitionId":"agentdef_00000000000000000000000000000001"}}}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/agents/{principalId}":{"get":{"tags":["agents"],"operationId":"agents.readAgent","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"principalId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}]},"required":true,"description":"The Principal to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"Agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return an Environment Agent and its current append-only release state.","summary":"Read one Environment Agent","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/agents/{agentPrincipalId}/releases":{"post":{"tags":["agentReleases"],"operationId":"agentReleases.activateAgentRelease","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"agentPrincipalId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}]},"required":true,"description":"The Environment Agent Principal to address."},{"name":"if-match","in":"header","schema":{"type":"string","allOf":[{"maxLength":12},{"pattern":"^\"(?:0|[1-9][0-9]{0,9})\"$","description":"The current strong Agent Release ETag, including its double quotes."}]},"required":true,"description":"The current strong resource ETag, including its double quotes."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"ActivatedAgentRelease","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivatedAgentReleaseJsonEncoding"},"examples":{"gettingStarted":{"summary":"Agent Release activated","value":{"outcome":"created","release":{"agentReleaseId":"agent_release_00000000000000000000000000000001","organizationId":"org_00000000000000000000000000000002","projectId":"proj_00000000000000000000000000000001","environmentId":"env_00000000000000000000000000000001","agentPrincipalId":"principal_00000000000000000000000000000003","agentDefinitionId":"agentdef_00000000000000000000000000000001","agentVersionId":"agent_version_00000000000000000000000000000001","precedingAgentReleaseId":null,"generation":1,"releaseEtag":"\"1\"","reason":"Activate the first tested support Agent Version.","createdByPrincipalId":"principal_00000000000000000000000000000002","source":{"repository":"example.invalid/acme/support-agent","commit":"0000000000000000000000000000000000000000","path":"cantora/support-agent.json","workflow":"publish-support-agent","run":"example-1"},"createdAt":"2026-01-15T18:30:00.000Z"}}}}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}},"412":{"description":"PreconditionFailed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreconditionFailedJsonEncoding"}}}}},"description":"Conditionally append or reuse an Agent Release using the current release ETag, making the selected Version active for new Test work.","summary":"Activate an immutable Agent Version for new Test work","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"agentVersionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_version_[\\s\\S]+$","description":"A Cantora Agent Version identifier, prefixed with `agent_version_`."}],"description":"The immutable Agent Version to activate."},"reason":{"type":"string","description":"Why this Agent Version is being activated or restored.","minLength":1,"maxLength":500},"source":{"$ref":"#/components/schemas/AgentVersionSource","description":"The source revision and automation run that requested this activation."}},"required":["agentVersionId","reason","source"],"additionalProperties":false},"examples":{"gettingStarted":{"summary":"Activate the Agent Version in Test","value":{"agentVersionId":"agent_version_00000000000000000000000000000001","reason":"Activate the first tested support Agent Version.","source":{"repository":"example.invalid/acme/support-agent","commit":"0000000000000000000000000000000000000000","path":"cantora/support-agent.json","workflow":"publish-support-agent","run":"example-1"}}}}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/agents/{agentPrincipalId}/releases/{agentReleaseId}":{"get":{"tags":["agentReleases"],"operationId":"agentReleases.readAgentRelease","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"agentPrincipalId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}]},"required":true,"description":"The Environment Agent Principal to address."},{"name":"agentReleaseId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_release_[\\s\\S]+$","description":"A Cantora Agent Release identifier, prefixed with `agent_release_`."}]},"required":true,"description":"The immutable Agent Release to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"AgentRelease","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentReleaseJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return one immutable entry from an Environment Agent's release history.","summary":"Read one append-only Agent Release","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/agent-configuration-previews":{"post":{"tags":["agentConfigurations"],"operationId":"agentConfigurations.previewAgentConfiguration","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"AgentConfigurationPreview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConfigurationPreviewJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Return the canonical actions, manifest digest, warnings, and state preconditions for one complete desired Test Agent Configuration without changing Product State.","summary":"Preview one complete Agent Configuration without changing Product State","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"desired":{"$ref":"#/components/schemas/DesiredAgentConfiguration","description":"The complete desired Test Agent Configuration to evaluate without writing."}},"required":["desired"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/agent-configuration-applies":{"post":{"tags":["agentConfigurations"],"operationId":"agentConfigurations.applyAgentConfiguration","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"ApplyAgentConfigurationResult","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyAgentConfigurationResult"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}},"412":{"description":"PreconditionFailed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreconditionFailedJsonEncoding"}}}}},"description":"Apply the exact previewed Agent Configuration under optimistic preconditions, or resume the same idempotent request from its durable Configuration Revision.","summary":"Apply or recover one complete Agent Configuration","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"type":"string","allOf":[{"minLength":1},{"maxLength":200}],"description":"The idempotency key for this exact apply attempt."},"desired":{"$ref":"#/components/schemas/DesiredAgentConfiguration","description":"The complete desired Test Agent Configuration accepted during preview."},"manifestDigest":{"type":"string","description":"The lowercase SHA-256 manifest digest returned by preview."},"preconditions":{"$ref":"#/components/schemas/AgentConfigurationPreconditions","description":"The exact mutable Product State observed during preview."},"source":{"$ref":"#/components/schemas/AgentConfigurationSource","description":"The source revision and automation run requesting the apply."}},"required":["requestId","desired","manifestDigest","preconditions","source"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/agent-configurations/{agentDefinitionId}":{"get":{"tags":["agentConfigurations"],"operationId":"agentConfigurations.readAgentConfiguration","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"agentDefinitionId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}]},"required":true,"description":"The Agent Definition to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"AgentConfiguration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConfigurationJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Follow the stable Agent Definition through its Test Agent, current Version and Release, and latest Configuration Revision.","summary":"Read the current Agent Configuration by stable Agent Definition identity","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/configuration-revisions/{configurationRevisionId}":{"get":{"tags":["agentConfigurations"],"operationId":"agentConfigurations.readConfigurationRevision","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"configurationRevisionId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^configuration_revision_[\\s\\S]+$","description":"A Cantora Configuration Revision identifier, prefixed with `configuration_revision_`."}]},"required":true,"description":"The Configuration Revision to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"ConfigurationRevision","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationRevisionJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return the durable progress, source provenance, identifiers, and outcome for one idempotent Agent Configuration apply.","summary":"Read durable progress for one Agent Configuration apply","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/provider-applications":{"post":{"tags":["providerApplications"],"operationId":"providerApplications.createProviderApplication","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"ProviderApplicationCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderApplicationCreatedJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Register a provider application and its write-only signing secret for use by Surface registrations in the Organization.","summary":"Register an Organization-owned provider application","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["slack"],"description":"The Surface provider this application belongs to."},"providerAppId":{"type":"string","description":"The provider's stable identifier for the application.","minLength":1,"maxLength":512},"displayName":{"type":"string","description":"The human-readable provider application name.","minLength":1,"maxLength":200},"signingSecret":{"type":"string","allOf":[{"minLength":1},{"maxLength":8192}],"description":"The write-only provider secret used to verify signed webhook requests.","writeOnly":true}},"required":["provider","providerAppId","displayName","signingSecret"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/provider-applications/{providerApplicationId}/credential-rotations":{"post":{"tags":["providerApplications"],"operationId":"providerApplications.rotateProviderApplicationCredential","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"providerApplicationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^provider_app_[\\s\\S]+$","description":"A Cantora provider application identifier, prefixed with `provider_app_`."}]},"required":true,"description":"The Organization-owned provider application to address."},{"name":"if-match","in":"header","schema":{"type":"string","allOf":[{"maxLength":12},{"pattern":"^\"(?:[1-9][0-9]{0,9})\"$"}]},"required":true,"description":"The current strong resource ETag, including its double quotes."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"ProviderApplication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderApplicationJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"412":{"description":"ProviderCredentialPreconditionFailed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderCredentialPreconditionFailedJsonEncoding"}}}}},"description":"Replace the provider application's signing secret only when the supplied credential-generation ETag is current.","summary":"Rotate a provider application's write-only credential","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"signingSecret":{"type":"string","allOf":[{"minLength":1},{"maxLength":8192}],"description":"The write-only replacement provider secret used to verify signed webhook requests.","writeOnly":true}},"required":["signingSecret"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/provider-applications/{providerApplicationId}":{"get":{"tags":["providerApplications"],"operationId":"providerApplications.readProviderApplication","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"providerApplicationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^provider_app_[\\s\\S]+$","description":"A Cantora provider application identifier, prefixed with `provider_app_`."}]},"required":true,"description":"The Organization-owned provider application to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"ProviderApplication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderApplicationJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return provider-application identity, status, and credential generation without returning its signing secret.","summary":"Read safe provider-application metadata","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/surface-registrations":{"post":{"tags":["surfaceRegistrations"],"operationId":"surfaceRegistrations.createSurfaceRegistration","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"SurfaceRegistrationCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurfaceRegistrationCreatedJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Register an Organization-owned provider application as a delivery Surface in one Environment.","summary":"Register a Surface provider application in an Environment","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"providerApplicationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^provider_app_[\\s\\S]+$","description":"A Cantora provider application identifier, prefixed with `provider_app_`."}],"description":"The Organization-owned provider application to register in this Environment."},"displayName":{"type":"string","description":"The human-readable Surface registration name.","minLength":1,"maxLength":200}},"required":["providerApplicationId","displayName"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/surface-registrations/{surfaceRegistrationId}":{"get":{"tags":["surfaceRegistrations"],"operationId":"surfaceRegistrations.readSurfaceRegistration","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"surfaceRegistrationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}]},"required":true,"description":"The Environment Surface registration to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"SurfaceRegistration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurfaceRegistrationJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return one Environment Surface registration, including its capabilities, status, and recorded delivery conditions.","summary":"Read one Surface registration","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/surface-registrations/{surfaceRegistrationId}/tenants/{tenantId}/connections":{"post":{"tags":["connections"],"operationId":"connections.createConnection","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"surfaceRegistrationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}]},"required":true,"description":"The Environment Surface registration to address."},{"name":"tenantId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}]},"required":true,"description":"The Tenant to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"ConnectionCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionCreatedJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Install a Tenant-scoped provider Connection beneath an Environment Surface registration; the bot credential is write-only.","summary":"Connect one Tenant workspace to a registered Surface","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["slack"],"description":"The Surface provider this Connection authorizes."},"providerIssuer":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider account or workspace in which this Connection is installed."},"botToken":{"type":"string","allOf":[{"minLength":1},{"maxLength":8192}],"description":"The write-only provider bot credential used to deliver messages.","writeOnly":true}},"required":["provider","providerIssuer","botToken"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/surface-registrations/{surfaceRegistrationId}/tenants/{tenantId}/connections/{connectionId}":{"get":{"tags":["connections"],"operationId":"connections.readConnection","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"surfaceRegistrationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}]},"required":true,"description":"The Environment Surface registration to address."},{"name":"tenantId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}]},"required":true,"description":"The Tenant to address."},{"name":"connectionId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^connection_[\\s\\S]+$","description":"A Cantora Connection identifier, prefixed with `connection_`."}]},"required":true,"description":"The installed provider Connection to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"Connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return Connection scope, provider identity, status, and credential generation without returning its bot credential.","summary":"Read safe Connection metadata","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/surface-registrations/{surfaceRegistrationId}/tenants/{tenantId}/identity-bindings":{"post":{"tags":["surfaceIdentityBindings"],"operationId":"surfaceIdentityBindings.createSurfaceIdentityBinding","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"surfaceRegistrationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}]},"required":true,"description":"The Environment Surface registration to address."},{"name":"tenantId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}]},"required":true,"description":"The Tenant to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"SurfaceIdentityBindingCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurfaceIdentityBindingCreatedJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictJsonEncoding"}}}}},"description":"Bind one exact provider issuer and subject to a Tenant-scoped User or Agent for a registered Surface.","summary":"Bind one Surface identity to a User or Agent","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"issuer":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider-defined identity namespace."},"subject":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider-defined identity within the issuer."},"target":{"$ref":"#/components/schemas/SurfaceIdentityTarget","description":"The User or Agent Principal this provider identity resolves to."}},"required":["issuer","subject","target"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/surface-registrations/{surfaceRegistrationId}/tenants/{tenantId}/identity-bindings/{issuer}/{subject}":{"get":{"tags":["surfaceIdentityBindings"],"operationId":"surfaceIdentityBindings.readSurfaceIdentityBinding","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"surfaceRegistrationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}]},"required":true,"description":"The Environment Surface registration to address."},{"name":"tenantId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}]},"required":true,"description":"The Tenant to address."},{"name":"issuer","in":"path","schema":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}]},"required":true,"description":"The provider-defined identity namespace."},{"name":"subject","in":"path","schema":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}]},"required":true,"description":"The provider-defined identity within the issuer."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"SurfaceIdentityBinding","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurfaceIdentityBindingJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Resolve one provider issuer and subject binding within the Tenant and Surface scope named in the path.","summary":"Read one Surface identity binding","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/tenants":{"post":{"tags":["tenants"],"operationId":"tenants.createTenant","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"TenantCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantCreatedJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Create a Tenant, the runtime and data-isolation boundary for Users and their Agent work, in one Environment.","summary":"Create a Tenant in an Environment","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The human-readable Tenant name.","minLength":1,"maxLength":200}},"required":["name"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/tenants/{tenantId}":{"get":{"tags":["tenants"],"operationId":"tenants.readTenant","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"tenantId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}]},"required":true,"description":"The Tenant to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"Tenant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantJsonEncoding"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return one Tenant from the complete Organization, Project, and Environment scope named in the path.","summary":"Read one Tenant","x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/tenants/{tenantId}/users":{"post":{"tags":["users"],"operationId":"users.createUser","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"tenantId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}]},"required":true,"description":"The Tenant to address."}],"security":[{"bearer":[]}],"responses":{"201":{"description":"UserCreated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreatedJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Create a Tenant-scoped human Principal for Agent work.","summary":"Create a User in a Tenant","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"displayName":{"type":"string","description":"The human-readable name of the User.","minLength":1,"maxLength":200}},"required":["displayName"],"additionalProperties":false}}},"required":true},"x-cantora-audience":"customer"}},"/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/tenants/{tenantId}/users/{principalId}":{"get":{"tags":["users"],"operationId":"users.readUser","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}]},"required":true,"description":"The Organization to address."},{"name":"projectId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}]},"required":true,"description":"The Project to address."},{"name":"environmentId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},"required":true,"description":"The Environment to address."},{"name":"tenantId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}]},"required":true,"description":"The Tenant to address."},{"name":"principalId","in":"path","schema":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}]},"required":true,"description":"The Principal to address."}],"security":[{"bearer":[]}],"responses":{"200":{"description":"User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserJsonEncoding"}}}},"400":{"description":"The request path, headers, query, or JSON body did not satisfy the published schema"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedJsonEncoding"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenJsonEncoding"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundJsonEncoding"}}}}},"description":"Return one User from the complete Tenant scope named in the path.","summary":"Read one User","x-cantora-audience":"customer"}}},"components":{"schemas":{"IdentityJsonEncoding":{"type":"object","properties":{"principalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal identifier."},"kind":{"type":"string","enum":["organizationMember","user","servicePrincipal","agent"],"description":"The authenticated Principal kind."},"serviceVersion":{"type":"string","description":"The immutable version of the serving Control Plane revision."},"environmentName":{"type":"string","description":"The deployment this container is part of, which is not a Cantora Environment"}},"required":["principalId","kind","serviceVersion","environmentName"],"additionalProperties":false},"UnauthorizedJsonEncoding":{"type":"object","properties":{"_tag":{"type":"string","enum":["Unauthorized"],"description":"The stable machine-readable error type."},"reason":{"type":"string","description":"A safe explanation of why the credential was rejected."}},"required":["_tag","reason"],"additionalProperties":false},"ConformanceResultJsonEncoding":{"type":"object","properties":{"nonce":{"type":"string","description":"The caller-chosen value received by the conformance endpoint."},"requestId":{"type":"string","description":"The request identifier used for logs and support."},"serviceVersion":{"type":"string","description":"The immutable version of the serving Control Plane revision."},"observedAt":{"type":"string","description":"When the conformance request was observed, in UTC.","format":"date-time"}},"required":["nonce","requestId","serviceVersion","observedAt"],"additionalProperties":false},"PlatformBootstrappedJsonEncoding":{"type":"object","properties":{"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"organizationName":{"type":"string","description":"The customer-facing Organization name."},"principalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal identifier."},"grantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^grant_[\\s\\S]+$","description":"A Cantora Grant identifier, prefixed with `grant_`."}],"description":"The identifier of the Grant issued with the identity."},"apiKeyId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^apikey_[\\s\\S]+$","description":"A Cantora API key identifier, prefixed with `apikey_`."}],"description":"The identifier of the issued API key."},"apiKey":{"type":"string","description":"The provisioning credential, returned exactly once and never recoverable from Cantora"},"expiresAt":{"type":"string","description":"When the issued API key expires, in UTC.","format":"date-time"}},"required":["organizationId","organizationName","principalId","grantId","apiKeyId","apiKey","expiresAt"],"additionalProperties":false},"ForbiddenJsonEncoding":{"type":"object","properties":{"_tag":{"type":"string","enum":["Forbidden"],"description":"The stable machine-readable error type."},"permission":{"type":"string","description":"The permission required by the refused operation."}},"required":["_tag","permission"],"additionalProperties":false},"OrganizationIdentityProvisionedJsonEncoding":{"type":"object","properties":{"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"principalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal identifier."},"grantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^grant_[\\s\\S]+$","description":"A Cantora Grant identifier, prefixed with `grant_`."}],"description":"The identifier of the Grant issued with the identity."},"role":{"type":"string","enum":["admin"],"description":"The Organization role granted to the provisioned identity."},"apiKeyId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^apikey_[\\s\\S]+$","description":"A Cantora API key identifier, prefixed with `apikey_`."}],"description":"The identifier of the issued API key."},"apiKey":{"type":"string","description":"The Organization's initial provisioning credential, returned exactly once"},"expiresAt":{"type":"string","description":"When the issued API key expires, in UTC.","format":"date-time"}},"required":["organizationId","principalId","grantId","role","apiKeyId","apiKey","expiresAt"],"additionalProperties":false},"NotFoundJsonEncoding":{"type":"object","properties":{"_tag":{"type":"string","enum":["NotFound"],"description":"The stable machine-readable error type."},"resource":{"type":"string","description":"The resource type relevant to the error."},"id":{"type":"string","description":"The identifier supplied for the resource that was not found."}},"required":["_tag","resource","id"],"additionalProperties":false},"ConflictJsonEncoding":{"type":"object","properties":{"_tag":{"type":"string","enum":["Conflict"],"description":"The stable machine-readable error type."},"resource":{"type":"string","description":"The resource type relevant to the error."},"reason":{"type":"string","description":"A safe explanation of the state conflict."}},"required":["_tag","resource","reason"],"additionalProperties":false},"OrganizationCreatedJsonEncoding":{"type":"object","properties":{"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"name":{"type":"string","description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["organizationId","name","createdAt"],"additionalProperties":false},"OrganizationJsonEncoding":{"type":"object","properties":{"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"name":{"type":"string","description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["organizationId","name","createdAt"],"additionalProperties":false},"ProjectCreatedJsonEncoding":{"type":"object","properties":{"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"name":{"type":"string","description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["projectId","organizationId","name","createdAt"],"additionalProperties":false},"ProjectJsonEncoding":{"type":"object","properties":{"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"name":{"type":"string","description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["projectId","organizationId","name","createdAt"],"additionalProperties":false},"AgentDefinitionCreatedJsonEncoding":{"type":"object","properties":{"agentDefinitionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}],"description":"The Agent Definition identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"key":{"type":"string","description":"The stable, human-authored Agent Definition key."},"displayName":{"type":"string","description":"The human-readable resource name."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"configurationAuthority":{"type":"string","enum":["ApiManaged","DashboardManaged"],"description":"The one surface allowed to change this Agent Definition and publish its Versions."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["agentDefinitionId","organizationId","projectId","key","displayName","status","configurationAuthority","createdAt"],"additionalProperties":false},"AgentDefinitionJsonEncoding":{"type":"object","properties":{"agentDefinitionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}],"description":"The Agent Definition identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"key":{"type":"string","description":"The stable, human-authored Agent Definition key."},"displayName":{"type":"string","description":"The human-readable resource name."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"configurationAuthority":{"type":"string","enum":["ApiManaged","DashboardManaged"],"description":"The one surface allowed to change this Agent Definition and publish its Versions."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["agentDefinitionId","organizationId","projectId","key","displayName","status","configurationAuthority","createdAt"],"additionalProperties":false},"GoogleVertexModelSettings":{"type":"object","properties":{"thinkingLevel":{"type":"string","enum":["minimal","low","medium","high"],"description":"The Google Vertex-native thinking level."}},"required":["thinkingLevel"],"additionalProperties":false},"OpenAiModelSettings":{"type":"object","properties":{"reasoningEffort":{"type":"string","enum":["none","low","medium","high","xhigh","max"],"description":"The OpenAI-native reasoning effort."},"reasoningMode":{"type":"string","enum":["standard","pro"],"description":"The OpenAI-native reasoning mode."}},"required":["reasoningEffort","reasoningMode"],"additionalProperties":false},"AgentVersionModel":{"anyOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["googleVertex"],"description":"The model or Surface provider key."},"model":{"type":"string","allOf":[{"minLength":1},{"maxLength":256}],"description":"The exact provider model and behavior settings pinned by the Agent Version."},"settings":{"$ref":"#/components/schemas/GoogleVertexModelSettings","description":"The provider-native settings that change model behavior."}},"required":["provider","model","settings"],"additionalProperties":false},{"type":"object","properties":{"provider":{"type":"string","enum":["openai"],"description":"The model or Surface provider key."},"model":{"type":"string","allOf":[{"minLength":1},{"maxLength":256}],"description":"The exact provider model and behavior settings pinned by the Agent Version."},"settings":{"$ref":"#/components/schemas/OpenAiModelSettings","description":"The provider-native settings that change model behavior."}},"required":["provider","model","settings"],"additionalProperties":false}]},"AgentVersionDependencies":{"type":"array","items":{"type":"string","allOf":[{"minLength":1},{"maxLength":100},{"pattern":"^[a-z][a-z0-9_]*$"}]},"allOf":[{"maxItems":100},{"uniqueItems":true}]},"AgentVersionBudgets":{"type":"object","properties":{"maxModelSteps":{"type":"integer","allOf":[{"minimum":1,"maximum":100}],"description":"The maximum number of model calls in one Run."},"maxToolCalls":{"type":"integer","allOf":[{"minimum":0,"maximum":100}],"description":"The maximum number of tool calls in one Run."},"totalWallTimeMs":{"type":"integer","allOf":[{"minimum":1000,"maximum":300000}],"description":"The maximum total Run duration in milliseconds."},"modelStepTimeMs":{"type":"integer","allOf":[{"minimum":1000,"maximum":300000}],"description":"The maximum duration of one model step in milliseconds."},"streamStallTimeMs":{"type":"integer","allOf":[{"minimum":1000,"maximum":300000}],"description":"The maximum duration without stream progress in milliseconds."},"maxInputTokens":{"type":"integer","allOf":[{"minimum":1,"maximum":10000000}],"description":"The maximum number of model input tokens."},"maxOutputTokens":{"type":"integer","allOf":[{"minimum":1,"maximum":1000000}],"description":"The maximum number of model output tokens."},"maxReasoningTokens":{"type":"integer","allOf":[{"minimum":0,"maximum":1000000}],"description":"The maximum number of model reasoning tokens."},"maxTotalTokens":{"type":"integer","allOf":[{"minimum":1,"maximum":10000000}],"description":"The maximum total model tokens in one Run."},"maxToolResultBytes":{"type":"integer","allOf":[{"minimum":1,"maximum":10000000}],"description":"The maximum aggregate tool-result size in bytes."},"maxEstimatedCostMicros":{"type":"integer","allOf":[{"minimum":1,"maximum":1000000000}],"description":"The maximum estimated model cost in millionths of the billing currency."}},"required":["maxModelSteps","maxToolCalls","totalWallTimeMs","modelStepTimeMs","streamStallTimeMs","maxInputTokens","maxOutputTokens","maxReasoningTokens","maxTotalTokens","maxToolResultBytes","maxEstimatedCostMicros"],"additionalProperties":false},"AgentVersionManifest":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["config.cantora.ai/agent-version/v1alpha2"],"description":"The Agent Version manifest schema identifier."},"instructions":{"type":"string","allOf":[{"maxLength":262144}],"description":"The complete natural-language instructions for the Agent Version."},"model":{"$ref":"#/components/schemas/AgentVersionModel","description":"The exact provider model and behavior settings pinned by the Agent Version."},"tools":{"$ref":"#/components/schemas/AgentVersionDependencies","description":"The tool keys the Agent Version may call."},"requiredBindings":{"$ref":"#/components/schemas/AgentVersionDependencies","description":"The configuration bindings the Agent Version requires at runtime."},"budgets":{"$ref":"#/components/schemas/AgentVersionBudgets","description":"The finite execution limits enforced for the Agent Version."}},"required":["schemaVersion","instructions","model","tools","requiredBindings","budgets"],"additionalProperties":false},"AgentVersionSource":{"type":"object","properties":{"repository":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The source repository identifier."},"commit":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The immutable source revision."},"path":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The path within the source repository."},"workflow":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The source automation workflow identifier."},"run":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The source automation run identifier."}},"required":["repository","commit","path","workflow","run"],"additionalProperties":false},"AgentVersionJsonEncoding":{"type":"object","properties":{"agentVersionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_version_[\\s\\S]+$","description":"A Cantora Agent Version identifier, prefixed with `agent_version_`."}],"description":"The immutable Agent Version identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"agentDefinitionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}],"description":"The Agent Definition identifier."},"revision":{"type":"integer","allOf":[{"exclusiveMinimum":0}],"description":"The monotonically increasing revision within the Agent Definition."},"manifest":{"$ref":"#/components/schemas/AgentVersionManifest","description":"The complete immutable Agent behavior and execution-budget declaration."},"manifestDigest":{"type":"string","description":"The lowercase SHA-256 digest of the normalized manifest.","minLength":64,"maxLength":64,"pattern":"^[0-9a-f]{64}$"},"createdByPrincipalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal that created this immutable record."},"source":{"$ref":"#/components/schemas/AgentVersionSource","description":"The source revision and automation provenance."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["agentVersionId","organizationId","projectId","agentDefinitionId","revision","manifest","manifestDigest","createdByPrincipalId","source","createdAt"],"additionalProperties":false},"PublishedAgentVersionJsonEncoding":{"type":"object","properties":{"outcome":{"type":"string","enum":["created","reused"],"description":"Whether publication created a new Agent Version or reused identical content."},"version":{"$ref":"#/components/schemas/AgentVersionJsonEncoding","description":"The immutable Agent Version returned by the publication."}},"required":["outcome","version"],"additionalProperties":false},"EnvironmentCreatedJsonEncoding":{"type":"object","properties":{"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"name":{"type":"string","enum":["test","live"],"description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["environmentId","organizationId","projectId","name","createdAt"],"additionalProperties":false},"EnvironmentJsonEncoding":{"type":"object","properties":{"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"name":{"type":"string","enum":["test","live"],"description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["environmentId","organizationId","projectId","name","createdAt"],"additionalProperties":false},"AgentCreatedJsonEncoding":{"type":"object","properties":{"principalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal identifier."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"agentDefinitionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}],"description":"The Agent Definition identifier."},"definitionKey":{"type":"string","description":"The stable Agent Definition key."},"displayName":{"type":"string","description":"The human-readable resource name."},"currentAgentReleaseId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_release_[\\s\\S]+$","description":"A Cantora Agent Release identifier, prefixed with `agent_release_`."}]},{"type":"null"}],"description":"The current Agent Release identifier, or null before the first activation."},"releaseGeneration":{"type":"integer","allOf":[{"minimum":0}],"description":"The current Agent Release generation, starting at zero before activation."},"releaseEtag":{"type":"string","allOf":[{"maxLength":12},{"pattern":"^\"(?:0|[1-9][0-9]{0,9})\"$","description":"The current strong Agent Release ETag, including its double quotes."}],"description":"The strong ETag for the Agent's current release generation."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["principalId","status","organizationId","projectId","environmentId","agentDefinitionId","definitionKey","displayName","currentAgentReleaseId","releaseGeneration","releaseEtag","createdAt"],"additionalProperties":false},"AgentJsonEncoding":{"type":"object","properties":{"principalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal identifier."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"agentDefinitionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}],"description":"The Agent Definition identifier."},"definitionKey":{"type":"string","description":"The stable Agent Definition key."},"displayName":{"type":"string","description":"The human-readable resource name."},"currentAgentReleaseId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_release_[\\s\\S]+$","description":"A Cantora Agent Release identifier, prefixed with `agent_release_`."}]},{"type":"null"}],"description":"The current Agent Release identifier, or null before the first activation."},"releaseGeneration":{"type":"integer","allOf":[{"minimum":0}],"description":"The current Agent Release generation, starting at zero before activation."},"releaseEtag":{"type":"string","allOf":[{"maxLength":12},{"pattern":"^\"(?:0|[1-9][0-9]{0,9})\"$","description":"The current strong Agent Release ETag, including its double quotes."}],"description":"The strong ETag for the Agent's current release generation."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["principalId","status","organizationId","projectId","environmentId","agentDefinitionId","definitionKey","displayName","currentAgentReleaseId","releaseGeneration","releaseEtag","createdAt"],"additionalProperties":false},"AgentReleaseJsonEncoding":{"type":"object","properties":{"agentReleaseId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_release_[\\s\\S]+$","description":"A Cantora Agent Release identifier, prefixed with `agent_release_`."}],"description":"The immutable Agent Release identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"agentPrincipalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Environment Agent Principal identifier."},"agentDefinitionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}],"description":"The Agent Definition identifier."},"agentVersionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_version_[\\s\\S]+$","description":"A Cantora Agent Version identifier, prefixed with `agent_version_`."}],"description":"The immutable Agent Version identifier."},"precedingAgentReleaseId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_release_[\\s\\S]+$","description":"A Cantora Agent Release identifier, prefixed with `agent_release_`."}]},{"type":"null"}],"description":"The preceding Agent Release identifier, or null for the first activation."},"generation":{"type":"integer","allOf":[{"exclusiveMinimum":0}],"description":"The monotonically increasing Agent Release generation."},"releaseEtag":{"type":"string","allOf":[{"maxLength":12},{"pattern":"^\"(?:0|[1-9][0-9]{0,9})\"$","description":"The current strong Agent Release ETag, including its double quotes."}],"description":"The strong ETag for the Agent's current release generation."},"reason":{"type":"string","description":"The human-readable reason supplied for the activation or rollback."},"createdByPrincipalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal that created this immutable record."},"source":{"$ref":"#/components/schemas/AgentVersionSource","description":"The source revision and automation provenance."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["agentReleaseId","organizationId","projectId","environmentId","agentPrincipalId","agentDefinitionId","agentVersionId","precedingAgentReleaseId","generation","releaseEtag","reason","createdByPrincipalId","source","createdAt"],"additionalProperties":false},"ActivatedAgentReleaseJsonEncoding":{"type":"object","properties":{"outcome":{"type":"string","enum":["created","reused"],"description":"Whether this activation created a new Agent Release or reused the current one."},"release":{"$ref":"#/components/schemas/AgentReleaseJsonEncoding","description":"The Agent Release selected by the activation."}},"required":["outcome","release"],"additionalProperties":false},"PreconditionFailedJsonEncoding":{"type":"object","properties":{"_tag":{"type":"string","enum":["PreconditionFailed"],"description":"The stable machine-readable error type."},"resource":{"type":"string","enum":["agent","agentDefinition","agentConfiguration"],"description":"The resource type relevant to the error."},"currentAgentReleaseId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_release_[\\s\\S]+$","description":"A Cantora Agent Release identifier, prefixed with `agent_release_`."}]},{"type":"null"}],"description":"The current Agent Release identifier, or null before the first activation."},"currentEtag":{"type":"string","allOf":[{"maxLength":12},{"pattern":"^\"(?:0|[1-9][0-9]{0,9})\"$","description":"The current strong Agent Release ETag, including its double quotes."}],"description":"The current strong ETag required for the next conditional activation."}},"required":["_tag","resource","currentAgentReleaseId","currentEtag"],"additionalProperties":false},"DesiredAgentConfiguration":{"type":"object","properties":{"intent":{"type":"string","enum":["create","update"],"description":"Whether the configuration creates a new binding or updates an identified Agent Definition."},"agentDefinitionId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}]},{"type":"null"}],"description":"The Agent Definition identifier."},"key":{"type":"string","description":"The stable, human-authored Agent Definition key."},"displayName":{"type":"string","description":"The human-readable resource name."},"manifest":{"$ref":"#/components/schemas/AgentVersionManifest","description":"The complete immutable Agent behavior and execution-budget declaration."},"testRelease":{"type":"object","properties":{"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"reason":{"type":"string","description":"The human-readable reason for activating the Test Agent Version."}},"required":["environmentId","reason"],"additionalProperties":false,"description":"The desired Test Environment and activation reason."}},"required":["intent","agentDefinitionId","key","displayName","manifest","testRelease"],"additionalProperties":false},"AgentConfigurationPreconditions":{"type":"object","properties":{"agentDefinitionId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}]},{"type":"null"}],"description":"The Agent Definition identifier."},"definitionKey":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The stable Agent Definition key."},"definitionDisplayName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The Agent Definition display name observed during preview, or null when creating it."},"definitionStatus":{"anyOf":[{"type":"string","enum":["active","disabled"]},{"type":"null"}],"description":"The Agent Definition lifecycle status observed during preview, or null when creating it."},"configurationAuthority":{"anyOf":[{"type":"string","enum":["ApiManaged","DashboardManaged"]},{"type":"null"}],"description":"The one surface allowed to change this Agent Definition and publish its Versions."},"testAgentPrincipalId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}]},{"type":"null"}],"description":"The Test Agent Principal identifier, or null before it is created."},"testReleaseGeneration":{"type":"integer","allOf":[{"minimum":0}],"description":"The current Test Agent Release generation, starting at zero before activation."},"currentManifestDigest":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The current Test Agent Version manifest digest, or null before the first activation."}},"required":["agentDefinitionId","definitionKey","definitionDisplayName","definitionStatus","configurationAuthority","testAgentPrincipalId","testReleaseGeneration","currentManifestDigest"],"additionalProperties":false},"AgentConfigurationWarningJsonEncoding":{"type":"object","properties":{"code":{"type":"string","description":"The stable machine-readable condition code."},"message":{"type":"string","description":"The safe human-readable condition detail."}},"required":["code","message"],"additionalProperties":false},"AgentConfigurationPreviewJsonEncoding":{"type":"object","properties":{"manifestDigest":{"type":"string","description":"The lowercase SHA-256 digest of the normalized manifest."},"actions":{"type":"array","items":{"type":"string","enum":["createAgentDefinition","updateAgentDefinition","createTestAgent","publishAgentVersion","reuseAgentVersion","activateTestRelease","reuseTestRelease"]},"description":"The ordered configuration actions required to converge Product State."},"preconditions":{"$ref":"#/components/schemas/AgentConfigurationPreconditions","description":"The exact mutable Product State observed during preview."},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/AgentConfigurationWarningJsonEncoding"},"description":"Non-blocking conditions the caller should review before applying."}},"required":["manifestDigest","actions","preconditions","warnings"],"additionalProperties":false},"AgentConfigurationSource":{"type":"object","properties":{"repository":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The source repository identifier."},"commit":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The immutable source revision."},"path":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The path within the source repository."},"workflow":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The source automation workflow identifier."},"run":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The source automation run identifier."},"actor":{"type":"string","allOf":[{"minLength":1},{"maxLength":500}],"description":"The source-control or automation actor that requested the change."}},"required":["repository","commit","path","workflow","run","actor"],"additionalProperties":false},"ConfigurationRevisionProgress":{"type":"object","properties":{"agentDefinition":{"type":"string","enum":["Pending","Succeeded"],"description":"Whether the Agent Definition step has completed."},"testAgent":{"type":"string","enum":["Pending","Succeeded"],"description":"Whether the Test Agent step has completed."},"agentVersion":{"type":"string","enum":["Pending","Succeeded"],"description":"Whether the Agent Version step has completed."},"testRelease":{"type":"string","enum":["Pending","Succeeded"],"description":"The desired Test Environment and activation reason."}},"required":["agentDefinition","testAgent","agentVersion","testRelease"],"additionalProperties":false},"ConfigurationRevisionFailureJsonEncoding":{"type":"object","properties":{"code":{"type":"string","description":"The stable machine-readable condition code."},"message":{"type":"string","description":"The safe human-readable condition detail."}},"required":["code","message"],"additionalProperties":false},"ConfigurationRevisionJsonEncoding":{"type":"object","properties":{"configurationRevisionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^configuration_revision_[\\s\\S]+$","description":"A Cantora Configuration Revision identifier, prefixed with `configuration_revision_`."}],"description":"The durable Configuration Revision identifier."},"requestId":{"type":"string","description":"The request identifier used for logs and support."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"testEnvironmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Test Environment identifier, or null before it can be resolved."},"agentDefinitionId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}]},{"type":"null"}],"description":"The Agent Definition identifier."},"testAgentPrincipalId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}]},{"type":"null"}],"description":"The Test Agent Principal identifier, or null before it is created."},"agentVersionId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_version_[\\s\\S]+$","description":"A Cantora Agent Version identifier, prefixed with `agent_version_`."}]},{"type":"null"}],"description":"The immutable Agent Version identifier."},"testAgentReleaseId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_release_[\\s\\S]+$","description":"A Cantora Agent Release identifier, prefixed with `agent_release_`."}]},{"type":"null"}],"description":"The Test Agent Release identifier, or null before it is activated."},"manifestDigest":{"type":"string","description":"The lowercase SHA-256 digest of the normalized manifest."},"status":{"type":"string","enum":["Pending","Running","Succeeded","Failed"],"description":"The current lifecycle status."},"progress":{"$ref":"#/components/schemas/ConfigurationRevisionProgress","description":"How the Surface presents progress while work runs."},"source":{"$ref":"#/components/schemas/AgentConfigurationSource","description":"The source revision and automation provenance."},"failure":{"anyOf":[{"$ref":"#/components/schemas/ConfigurationRevisionFailureJsonEncoding"},{"type":"null"}],"description":"The safe failure detail, or null unless the Configuration Revision failed."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"},"updatedAt":{"type":"string","description":"When the resource was last updated, in UTC.","format":"date-time"}},"required":["configurationRevisionId","requestId","organizationId","projectId","testEnvironmentId","agentDefinitionId","testAgentPrincipalId","agentVersionId","testAgentReleaseId","manifestDigest","status","progress","source","failure","createdAt","updatedAt"],"additionalProperties":false},"AgentConfigurationJsonEncoding":{"type":"object","properties":{"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"agentDefinitionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agentdef_[\\s\\S]+$","description":"A Cantora Agent Definition identifier, prefixed with `agentdef_`."}],"description":"The Agent Definition identifier."},"key":{"type":"string","description":"The stable, human-authored Agent Definition key."},"displayName":{"type":"string","description":"The human-readable resource name."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"configurationAuthority":{"type":"string","enum":["ApiManaged","DashboardManaged"],"description":"The one surface allowed to change this Agent Definition and publish its Versions."},"testEnvironmentId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}]},{"type":"null"}],"description":"The Test Environment identifier, or null before it can be resolved."},"testAgentPrincipalId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}]},{"type":"null"}],"description":"The Test Agent Principal identifier, or null before it is created."},"testAgentStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The Test Agent lifecycle status, or null before it is created."},"currentAgentVersionId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_version_[\\s\\S]+$","description":"A Cantora Agent Version identifier, prefixed with `agent_version_`."}]},{"type":"null"}],"description":"The current Test Agent Version identifier, or null before the first activation."},"currentManifest":{"anyOf":[{"$ref":"#/components/schemas/AgentVersionManifest"},{"type":"null"}],"description":"The current Test Agent Version manifest, or null before the first activation."},"currentManifestDigest":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The current Test Agent Version manifest digest, or null before the first activation."},"currentTestAgentReleaseId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^agent_release_[\\s\\S]+$","description":"A Cantora Agent Release identifier, prefixed with `agent_release_`."}]},{"type":"null"}],"description":"The current Test Agent Release identifier, or null before the first activation."},"currentTestAgentReleaseReason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The current Test Agent Release reason, or null before the first activation."},"testReleaseGeneration":{"type":"integer","allOf":[{"minimum":0}],"description":"The current Test Agent Release generation, starting at zero before activation."},"testReleaseEtag":{"type":"string","description":"The strong ETag for the current Test Agent Release generation."},"latestConfigurationRevisionId":{"anyOf":[{"type":"string","allOf":[{"maxLength":64},{"pattern":"^configuration_revision_[\\s\\S]+$","description":"A Cantora Configuration Revision identifier, prefixed with `configuration_revision_`."}]},{"type":"null"}],"description":"The latest Configuration Revision for this Agent Definition, or null before an apply."}},"required":["organizationId","projectId","agentDefinitionId","key","displayName","status","configurationAuthority","testEnvironmentId","testAgentPrincipalId","testAgentStatus","currentAgentVersionId","currentManifest","currentManifestDigest","currentTestAgentReleaseId","currentTestAgentReleaseReason","testReleaseGeneration","testReleaseEtag","latestConfigurationRevisionId"],"additionalProperties":false},"ApplyAgentConfigurationResult":{"type":"object","properties":{"revision":{"$ref":"#/components/schemas/ConfigurationRevisionJsonEncoding","description":"The monotonically increasing revision within the Agent Definition."},"configuration":{"$ref":"#/components/schemas/AgentConfigurationJsonEncoding","description":"The current Agent Configuration after the apply."}},"required":["revision","configuration"],"additionalProperties":false},"ProviderApplicationCreatedJsonEncoding":{"type":"object","properties":{"providerApplicationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^provider_app_[\\s\\S]+$","description":"A Cantora provider application identifier, prefixed with `provider_app_`."}],"description":"The Organization-owned provider application identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"provider":{"type":"string","enum":["slack"],"description":"The model or Surface provider key."},"providerAppId":{"type":"string","description":"The provider's stable application identifier."},"displayName":{"type":"string","description":"The human-readable resource name."},"credentialGeneration":{"type":"integer","allOf":[{"exclusiveMinimum":0}],"description":"The current credential generation, incremented on rotation."},"credentialEtag":{"type":"string","allOf":[{"maxLength":12},{"pattern":"^\"(?:[1-9][0-9]{0,9})\"$"}],"description":"The strong ETag for the current provider-credential generation."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["providerApplicationId","organizationId","provider","providerAppId","displayName","credentialGeneration","credentialEtag","status","createdAt"],"additionalProperties":false},"ProviderApplicationJsonEncoding":{"type":"object","properties":{"providerApplicationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^provider_app_[\\s\\S]+$","description":"A Cantora provider application identifier, prefixed with `provider_app_`."}],"description":"The Organization-owned provider application identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"provider":{"type":"string","enum":["slack"],"description":"The model or Surface provider key."},"providerAppId":{"type":"string","description":"The provider's stable application identifier."},"displayName":{"type":"string","description":"The human-readable resource name."},"credentialGeneration":{"type":"integer","allOf":[{"exclusiveMinimum":0}],"description":"The current credential generation, incremented on rotation."},"credentialEtag":{"type":"string","allOf":[{"maxLength":12},{"pattern":"^\"(?:[1-9][0-9]{0,9})\"$"}],"description":"The strong ETag for the current provider-credential generation."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["providerApplicationId","organizationId","provider","providerAppId","displayName","credentialGeneration","credentialEtag","status","createdAt"],"additionalProperties":false},"ProviderCredentialPreconditionFailedJsonEncoding":{"type":"object","properties":{"_tag":{"type":"string","enum":["ProviderCredentialPreconditionFailed"],"description":"The stable machine-readable error type."},"resource":{"type":"string","enum":["providerApplication"],"description":"The resource type relevant to the error."},"currentEtag":{"type":"string","allOf":[{"maxLength":12},{"pattern":"^\"(?:[1-9][0-9]{0,9})\"$"}],"description":"The current strong ETag required for the next provider-credential rotation."}},"required":["_tag","resource","currentEtag"],"additionalProperties":false},"SurfaceCapabilities":{"type":"object","properties":{"participantModel":{"type":"string","enum":["single","multi"],"description":"Whether a conversation has one participant or a shared audience."},"addressing":{"type":"string","enum":["implicit","mention","explicit"],"description":"How a participant addresses the Agent on this Surface."},"threading":{"type":"string","enum":["none","thread"],"description":"How the Surface groups replies into threads."},"reactions":{"type":"array","items":{"type":"string","allOf":[{"minLength":1},{"maxLength":64},{"pattern":"^[!-~]+$"}]},"allOf":[{"uniqueItems":true}],"description":"The provider-native reactions the Surface adapter can deliver."},"progress":{"type":"string","enum":["none","edit-in-place","append","stream"],"description":"How the Surface presents progress while work runs."},"approvalAffordance":{"type":"string","enum":["none","signed-interaction","authenticated-view"],"description":"How the Surface presents an approval request."},"deliveryIdentity":{"type":"string","enum":["provider-key","cantora-key"],"description":"Whether delivery uses a provider-owned or Cantora-owned identity."},"transport":{"type":"string","enum":["webhook-and-call","subscription"],"description":"The provider transport used to receive and deliver messages."}},"required":["participantModel","addressing","threading","reactions","progress","approvalAffordance","deliveryIdentity","transport"],"additionalProperties":false},"SurfaceRegistrationConditionJsonEncoding":{"type":"object","properties":{"code":{"type":"string","enum":["mixedTenantConversation"],"description":"The stable machine-readable condition code."},"providerIssuer":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider account or workspace boundary."},"providerConversationKey":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider's stable conversation address within its issuer."},"existingTenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant that already owns the provider conversation."},"attemptedTenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant that attempted to claim the provider conversation."},"occurrenceCount":{"type":"integer","allOf":[{"exclusiveMinimum":0}],"description":"How many times the condition has been observed."},"firstObservedAt":{"type":"string","description":"When the condition was first observed, in UTC.","format":"date-time"},"lastObservedAt":{"type":"string","description":"When the condition was most recently observed, in UTC.","format":"date-time"}},"required":["code","providerIssuer","providerConversationKey","existingTenantId","attemptedTenantId","occurrenceCount","firstObservedAt","lastObservedAt"],"additionalProperties":false},"SurfaceRegistrationConditions":{"type":"array","items":{"$ref":"#/components/schemas/SurfaceRegistrationConditionJsonEncoding"}},"SurfaceRegistrationCreatedJsonEncoding":{"type":"object","properties":{"surfaceRegistrationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}],"description":"The Environment Surface registration identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"providerApplicationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^provider_app_[\\s\\S]+$","description":"A Cantora provider application identifier, prefixed with `provider_app_`."}],"description":"The Organization-owned provider application identifier."},"provider":{"type":"string","enum":["slack"],"description":"The model or Surface provider key."},"providerAppId":{"type":"string","description":"The provider's stable application identifier."},"displayName":{"type":"string","description":"The human-readable resource name."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"capabilities":{"$ref":"#/components/schemas/SurfaceCapabilities","description":"The delivery and interaction capabilities of the registered Surface."},"conditions":{"$ref":"#/components/schemas/SurfaceRegistrationConditions","description":"Conditions on the registration that require operator attention."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["surfaceRegistrationId","organizationId","projectId","environmentId","providerApplicationId","provider","providerAppId","displayName","status","capabilities","conditions","createdAt"],"additionalProperties":false},"SurfaceRegistrationJsonEncoding":{"type":"object","properties":{"surfaceRegistrationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}],"description":"The Environment Surface registration identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"providerApplicationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^provider_app_[\\s\\S]+$","description":"A Cantora provider application identifier, prefixed with `provider_app_`."}],"description":"The Organization-owned provider application identifier."},"provider":{"type":"string","enum":["slack"],"description":"The model or Surface provider key."},"providerAppId":{"type":"string","description":"The provider's stable application identifier."},"displayName":{"type":"string","description":"The human-readable resource name."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"capabilities":{"$ref":"#/components/schemas/SurfaceCapabilities","description":"The delivery and interaction capabilities of the registered Surface."},"conditions":{"$ref":"#/components/schemas/SurfaceRegistrationConditions","description":"Conditions on the registration that require operator attention."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["surfaceRegistrationId","organizationId","projectId","environmentId","providerApplicationId","provider","providerAppId","displayName","status","capabilities","conditions","createdAt"],"additionalProperties":false},"ConnectionCreatedJsonEncoding":{"type":"object","properties":{"connectionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^connection_[\\s\\S]+$","description":"A Cantora Connection identifier, prefixed with `connection_`."}],"description":"The installed provider Connection identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"tenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant identifier."},"surfaceRegistrationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}],"description":"The Environment Surface registration identifier."},"provider":{"type":"string","enum":["slack"],"description":"The model or Surface provider key."},"providerIssuer":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider account or workspace boundary."},"credentialGeneration":{"type":"integer","allOf":[{"exclusiveMinimum":0}],"description":"The current credential generation, incremented on rotation."},"status":{"type":"string","enum":["active","disabled","reauthorizationRequired"],"description":"The current lifecycle status."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["connectionId","organizationId","projectId","environmentId","tenantId","surfaceRegistrationId","provider","providerIssuer","credentialGeneration","status","createdAt"],"additionalProperties":false},"ConnectionJsonEncoding":{"type":"object","properties":{"connectionId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^connection_[\\s\\S]+$","description":"A Cantora Connection identifier, prefixed with `connection_`."}],"description":"The installed provider Connection identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"tenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant identifier."},"surfaceRegistrationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}],"description":"The Environment Surface registration identifier."},"provider":{"type":"string","enum":["slack"],"description":"The model or Surface provider key."},"providerIssuer":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider account or workspace boundary."},"credentialGeneration":{"type":"integer","allOf":[{"exclusiveMinimum":0}],"description":"The current credential generation, incremented on rotation."},"status":{"type":"string","enum":["active","disabled","reauthorizationRequired"],"description":"The current lifecycle status."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["connectionId","organizationId","projectId","environmentId","tenantId","surfaceRegistrationId","provider","providerIssuer","credentialGeneration","status","createdAt"],"additionalProperties":false},"SurfaceIdentityTarget":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["user"],"description":"Whether the target Principal is a User or Agent."},"principalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal identifier."}},"required":["kind","principalId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["agent"],"description":"Whether the target Principal is a User or Agent."},"principalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal identifier."}},"required":["kind","principalId"],"additionalProperties":false}]},"SurfaceIdentityBindingCreatedJsonEncoding":{"type":"object","properties":{"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"tenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant identifier."},"surfaceRegistrationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}],"description":"The Environment Surface registration identifier."},"provider":{"type":"string","enum":["slack"],"description":"The model or Surface provider key."},"issuer":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider-defined identity namespace."},"subject":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider-defined identity within the issuer."},"target":{"$ref":"#/components/schemas/SurfaceIdentityTarget","description":"The User or Agent Principal this provider identity resolves to."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["organizationId","projectId","environmentId","tenantId","surfaceRegistrationId","provider","issuer","subject","target","createdAt"],"additionalProperties":false},"SurfaceIdentityBindingJsonEncoding":{"type":"object","properties":{"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"tenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant identifier."},"surfaceRegistrationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^surface_[\\s\\S]+$","description":"A Cantora Surface registration identifier, prefixed with `surface_`."}],"description":"The Environment Surface registration identifier."},"provider":{"type":"string","enum":["slack"],"description":"The model or Surface provider key."},"issuer":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider-defined identity namespace."},"subject":{"type":"string","allOf":[{"minLength":1},{"maxLength":512},{"pattern":"^[!-~]+$"}],"description":"The provider-defined identity within the issuer."},"target":{"$ref":"#/components/schemas/SurfaceIdentityTarget","description":"The User or Agent Principal this provider identity resolves to."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["organizationId","projectId","environmentId","tenantId","surfaceRegistrationId","provider","issuer","subject","target","createdAt"],"additionalProperties":false},"TenantCreatedJsonEncoding":{"type":"object","properties":{"tenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"name":{"type":"string","description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["tenantId","organizationId","projectId","environmentId","name","createdAt"],"additionalProperties":false},"TenantJsonEncoding":{"type":"object","properties":{"tenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant identifier."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"name":{"type":"string","description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["tenantId","organizationId","projectId","environmentId","name","createdAt"],"additionalProperties":false},"UserCreatedJsonEncoding":{"type":"object","properties":{"principalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal identifier."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"tenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant identifier."},"displayName":{"type":"string","description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["principalId","status","organizationId","projectId","environmentId","tenantId","displayName","createdAt"],"additionalProperties":false},"UserJsonEncoding":{"type":"object","properties":{"principalId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^principal_[\\s\\S]+$","description":"A Cantora Principal identifier, prefixed with `principal_`."}],"description":"The Principal identifier."},"status":{"type":"string","enum":["active","disabled"],"description":"The current lifecycle status."},"organizationId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^org_[\\s\\S]+$","description":"A Cantora Organization identifier, prefixed with `org_`."}],"description":"The Organization identifier."},"projectId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^proj_[\\s\\S]+$","description":"A Cantora Project identifier, prefixed with `proj_`."}],"description":"The Project identifier."},"environmentId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^env_[\\s\\S]+$","description":"A Cantora Environment identifier, prefixed with `env_`."}],"description":"The Environment identifier."},"tenantId":{"type":"string","allOf":[{"maxLength":64},{"pattern":"^tenant_[\\s\\S]+$","description":"A Cantora Tenant identifier, prefixed with `tenant_`."}],"description":"The Tenant identifier."},"displayName":{"type":"string","description":"The human-readable resource name."},"createdAt":{"type":"string","description":"When the resource was created, in UTC.","format":"date-time"}},"required":["principalId","status","organizationId","projectId","environmentId","tenantId","displayName","createdAt"],"additionalProperties":false}},"securitySchemes":{"bearer":{"description":"A Cantora API key supplied as an Authorization: Bearer header. Keep the credential secret and replace it before revoking its predecessor.","type":"http","scheme":"Bearer"}}},"security":[],"tags":[{"name":"system","description":"Service identity and transport conformance"},{"name":"bootstrap","description":"The one-time platform bootstrap"},{"name":"organizationProvisioning","description":"The one-time first-identity handoff for a customer Organization"},{"name":"organizations","description":"Organizations, the root of the tenancy hierarchy"},{"name":"projects","description":"Projects, scoped to one Organization"},{"name":"agentDefinitions","description":"Agent Definitions and their stable Project-scoped keys"},{"name":"agentVersions","description":"Immutable, content-addressed configuration snapshots for Agent Definitions"},{"name":"environments","description":"Environments, the `test` and `live` boundaries within one Project"},{"name":"agents","description":"Agent Principals and their Environment-specific runtime identity"},{"name":"agentReleases","description":"Append-only Agent release history and conditional Test activation"},{"name":"agentConfigurations","description":"Stable desired Agent Configuration and its apply evidence"},{"name":"providerApplications","description":"Organization-owned provider application identities and credential status"},{"name":"surfaceRegistrations","description":"Surface provider applications and their delivery capabilities"},{"name":"connections","description":"Tenant-scoped installed provider authorizations"},{"name":"surfaceIdentityBindings","description":"Provider identities resolved within one Tenant and Surface"},{"name":"tenants","description":"Tenants, the runtime and data-isolation boundaries within one Environment"},{"name":"users","description":"Users, the Tenant-scoped human subjects of Agent work"}],"servers":[{"url":"https://api.cantora.ai","description":"Production"}]}