{"openapi":"3.1.0","info":{"title":"REMEDiS workspace API","version":"2028.11.588","description":"Read-only access to one REMEDiS workspace for external systems (ticketing sync, chat ops, reporting). Authenticate with a workspace API token issued by an owner or PSIRT lead. Tokens carry a read-only capability subset and expire; the workspace enforces the capability on every call. Requests are POST with a JSON body; lists are bounded by `limit`, and the audit feed pages by `afterSequence`."},"servers":[{"url":"https://sandbox.remedissecurity.com"}],"security":[{"apiToken":[]}],"paths":{"/v1/api/workspaces/audit/list":{"post":{"summary":"Audit feed, paged by sequence cursor","description":"Requires a token carrying `audit.read`. The workspace enforces the capability on every call.","operationId":"audit_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"default":100,"type":"integer","minimum":1,"maximum":500},"afterSequence":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["limit","afterSequence"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"events":[{"sequence":1,"eventId":"event_…","eventType":"workspace.bootstrapped","actorId":"account_…","resourceId":"workspace","reason":"…","occurredAt":"2026-09-22T00:00:00Z","priorHash":"…","eventHash":"…"}],"nextAfterSequence":1,"hasMore":false}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/audit/verify":{"post":{"summary":"Verify the whole audit hash chain in Rust: every stored hash, link, and sequence","description":"Requires a token carrying `audit.read`. The workspace enforces the capability on every call.","operationId":"audit_verify","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"valid":true,"events":128}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/cases/list":{"post":{"summary":"Open and closed cases","description":"Requires a token carrying `case.read`. The workspace enforces the capability on every call.","operationId":"cases_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"cases":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/case-work/list":{"post":{"summary":"Tasks across cases","description":"Requires a token carrying `case.work.read`. The workspace enforces the capability on every call.","operationId":"case-work_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"status":{"type":"string","enum":["open","blocked","completed","cancelled"]},"limit":{"default":200,"type":"integer","minimum":1,"maximum":500}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"workItems":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/intake/reports/list":{"post":{"summary":"Researcher reports received","description":"Requires a token carrying `intake.report.read`. The workspace enforces the capability on every call.","operationId":"intake_reports_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["awaiting_review","accepted","rejected"]},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"reports":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/advisories/list":{"post":{"summary":"Published and withdrawn advisories","description":"Requires a token carrying `advisory.read`. The workspace enforces the capability on every call.","operationId":"advisories_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"state":{"type":"string","enum":["published","withdrawn"]},"limit":{"default":100,"type":"integer","minimum":1,"maximum":200}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"advisories":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/deadlines/list":{"post":{"summary":"Running response deadlines","description":"Requires a token carrying `deadline.policy.read`. The workspace enforces the capability on every call.","operationId":"deadlines_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reportId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"caseId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"state":{"type":"string","enum":["active","warning","breached","satisfied"]},"limit":{"default":100,"type":"integer","minimum":1,"maximum":200}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"deadlines":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/products/list":{"post":{"summary":"Products and releases","description":"Requires a token carrying `product.catalog.read`. The workspace enforces the capability on every call.","operationId":"products_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"default":50,"type":"integer","minimum":1,"maximum":100},"releaseLimit":{"default":500,"type":"integer","minimum":1,"maximum":1000}},"required":["limit","releaseLimit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"products":[],"truncated":false}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/itsm/links/list":{"post":{"summary":"Linked tickets and their last observed status","description":"Requires a token carrying `integration.read`. The workspace enforces the capability on every call.","operationId":"itsm_links_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"limit":{"default":100,"type":"integer","minimum":1,"maximum":500}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"links":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/advisories/get":{"post":{"summary":"One advisory by identifier","description":"Requires a token carrying `advisory.read`. The workspace enforces the capability on every call.","operationId":"advisories_get","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"advisoryId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"required":["advisoryId"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"advisory":{}}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/assertions/list":{"post":{"summary":"Confirmed assertions with their evidence links","description":"Requires a token carrying `assertion.read`. The workspace enforces the capability on every call.","operationId":"assertions_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["proposed","confirmed","rejected","superseded"]},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"assertions":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/knowledge/graph":{"post":{"summary":"Knowledge graph slice around a case, product, or report","description":"Requires a token carrying `knowledge.read`. The workspace enforces the capability on every call.","operationId":"knowledge_graph","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"default":"confirmed","type":"string","enum":["proposed","confirmed","rejected","superseded"]},"rootEntityId":{"type":"string","minLength":3,"maxLength":512},"limit":{"default":100,"type":"integer","minimum":1,"maximum":200}},"required":["status","limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"nodes":[],"edges":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/summary":{"post":{"summary":"Workspace summary counts and state","description":"Requires a token carrying `assertion.read`. The workspace enforces the capability on every call.","operationId":"summary","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"workspaceId":"workspace_…"}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/evidence/list":{"post":{"summary":"Evidence records and their lifecycle state","description":"Requires a token carrying `evidence.read`. The workspace enforces the capability on every call.","operationId":"evidence_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"minItems":1,"maxItems":64,"type":"array","items":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"evidence":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/intake/program/get":{"post":{"summary":"Intake program status and verified form","description":"Requires a token carrying `intake.program.read`. The workspace enforces the capability on every call.","operationId":"intake_program_get","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"program":{}}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/psirtling/actions/list":{"post":{"summary":"PSIRTling action proposals awaiting or past human confirmation","description":"Requires a token carrying `intake.report.read`. The workspace enforces the capability on every call.","operationId":"psirtling_actions_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reportId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"state":{"type":"string","enum":["pending","consumed","expired","revoked"]},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"proposals":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/psirtling/response-records":{"post":{"summary":"PSIRTling response records, newest first","description":"Requires a token carrying `attention.read`. The workspace enforces the capability on every call.","operationId":"psirtling_response-records","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"default":10,"type":"integer","minimum":1,"maximum":20}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"records":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/psirtling/response-record/get":{"post":{"summary":"One PSIRTling response record by record or request identifier","description":"Requires a token carrying `attention.read`. The workspace enforces the capability on every call.","operationId":"psirtling_response-record_get","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"recordId":{"type":"string","pattern":"^psirtling_record_[a-f0-9]{32}$"},"requestId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"recordId":"psirtling_record_…"}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/researcher/threads/list":{"post":{"summary":"Researcher correspondence threads","description":"Requires a token carrying `researcher.thread.read`. The workspace enforces the capability on every call.","operationId":"researcher_threads_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reportId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"threads":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/artifacts/list":{"post":{"summary":"Report artifacts and their retention state","description":"Requires a token carrying `artifact.read`. The workspace enforces the capability on every call.","operationId":"artifacts_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reportId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"artifacts":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/case-relationships/list":{"post":{"summary":"Recorded relationships between cases (also needs case.read)","description":"Requires a token carrying `case.relationship.read`. The workspace enforces the capability on every call.","operationId":"case-relationships_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"state":{"type":"string","enum":["active","withdrawn"]},"limit":{"default":100,"type":"integer","minimum":1,"maximum":200}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"relationships":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/rvos/list":{"post":{"summary":"Root Vulnerability Objects (also needs case.work.read, deadline.policy.read, approval.read, researcher.thread.read)","description":"Requires a token carrying `case.read`. The workspace enforces the capability on every call.","operationId":"rvos_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"rvos":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/cases/retained-lessons/list":{"post":{"summary":"Lessons retained from closed cases","description":"Requires a token carrying `case.lesson.read`. The workspace enforces the capability on every call.","operationId":"cases_retained-lessons_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"limit":{"default":100,"type":"integer","minimum":1,"maximum":200}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"lessons":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/attention/brief":{"post":{"summary":"What needs a decision now, ranked","description":"Requires a token carrying `attention.read`. The workspace enforces the capability on every call.","operationId":"attention_brief","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"now":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"items":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/deadlines/policy/get":{"post":{"summary":"Configured response deadline policy","description":"Requires a token carrying `deadline.policy.read`. The workspace enforces the capability on every call.","operationId":"deadlines_policy_get","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"policy":{}}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/selected-sources/policies/list":{"post":{"summary":"Selected source policies","description":"Requires a token carrying `source.policy.read`. The workspace enforces the capability on every call.","operationId":"selected-sources_policies_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"state":{"type":"string","enum":["active","revoked"]},"limit":{"type":"integer","minimum":1,"maximum":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"policies":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/disclosure-checkpoints/list":{"post":{"summary":"Disclosure checkpoints and their decisions","description":"Requires a token carrying `approval.read`. The workspace enforces the capability on every call.","operationId":"disclosure-checkpoints_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"state":{"type":"string","enum":["pending","approved","rejected","expired","superseded"]},"limit":{"default":100,"type":"integer","minimum":1,"maximum":200}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"checkpoints":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/disclosure-deliveries/list":{"post":{"summary":"Authorised disclosure deliveries (also needs case.read and approval.read)","description":"Requires a token carrying `disclosure.delivery.read`. The workspace enforces the capability on every call.","operationId":"disclosure-deliveries_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string","minLength":3,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"state":{"type":"string","enum":["authorized","revoked","expired"]},"limit":{"default":100,"type":"integer","minimum":1,"maximum":200}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"deliveries":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/integrations/readiness/list":{"post":{"summary":"Provider readiness ledger bindings","description":"Requires a token carrying `integration.read`. The workspace enforces the capability on every call.","operationId":"integrations_readiness_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"integrationId":{"type":"string","minLength":3,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9_.:-]*$"},"limit":{"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"bindings":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/itsm/connections/list":{"post":{"summary":"Ticketing connections without their secrets","description":"Requires a token carrying `integration.read`. The workspace enforces the capability on every call.","operationId":"itsm_connections_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"connections":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/notifications/list":{"post":{"summary":"Outbound notification subscriptions","description":"Requires a token carrying `integration.read`. The workspace enforces the capability on every call.","operationId":"notifications_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"default":100,"type":"integer","minimum":1,"maximum":200}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"subscriptions":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/notifications/deliveries/list":{"post":{"summary":"Outbound notification deliveries and their outcomes","description":"Requires a token carrying `integration.read`. The workspace enforces the capability on every call.","operationId":"notifications_deliveries_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subscriptionId":{"type":"string","pattern":"^[a-f0-9]{16}$"},"limit":{"default":100,"type":"integer","minimum":1,"maximum":500}},"required":["limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"deliveries":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/api/workspaces/team/list":{"post":{"summary":"Workspace members and roles","description":"Requires a token carrying `workspace.members.read`. The workspace enforces the capability on every call.","operationId":"team_list","security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"members":[]}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}}},"components":{"securitySchemes":{"apiToken":{"type":"http","scheme":"bearer","bearerFormat":"rmdk_<workspace>_<id>_<secret>"}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"responses":{"InvalidRequest":{"description":"The body did not match the request schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_request","message":"The body did not match the request schema."}}}}},"Unauthenticated":{"description":"A valid API token is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"unauthenticated","message":"A valid API token is required."}}}}},"Forbidden":{"description":"The token does not carry the capability this route needs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"forbidden","message":"The token does not carry the capability this route needs."}}}}},"RateLimited":{"description":"Too many requests. Please slow down.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"rate_limited","message":"Too many requests. Please slow down."}}}}}}}}