An author who opens a draft and thinks better of it had no way out — the working-copy list could create, edit, validate and publish, and that was all. The three delete operations existed in the contract with no implementation. Deleting is not a cascade, which is the part worth being careful about. A document's own rows follow it: the detail row, its tags, the relations it points outward. But five tables reference `document` without ON DELETE CASCADE — another document's relation target, a question's link, a project's membership, a topic's featured list, a decision's source case — and two do the same for `open_question`. Deleting through any of them is a foreign-key violation, which reaches the author as a 500 that explains nothing. So the delete checks first and refuses with DOCUMENT_IN_USE, the same refusal TOPIC_IN_USE already makes. Quietly editing someone else's record to make room is the worse option. A published record is refused outright. Public pages, search and other records link to it, and one that vanishes leaves all of them pointing at nothing — unpublishing is the way out, and it already exists. Case and Reference share one table split by `document_type`, so the type is part of the lookup: without it, the Case route would happily delete a Reference. Decisions have no delete at all, and that is the contract's judgment rather than an omission — accept, reject and supersede record what happened instead of erasing it.
7120 lines
190 KiB
YAML
7120 lines
190 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: Tech Log Studio Management API (Secondary)
|
|
version: 1.0.0
|
|
description: |-
|
|
⚠ 봉투 결정(ADR-006) 부분 반영 — 이 파일에는 두 모양이 공존한다.
|
|
|
|
topics 4개, projects 5개, releases 7개, 그리고 작업본 삭제 3개
|
|
(deleteCaseDraft / deleteReferenceDraft / deleteQuestion)를 studio-v1.yaml과
|
|
같은 방식으로 변환했다 (`application/json` + ErrorEnvelope / <Payload>Envelope).
|
|
그 19개가 구현된 것이자 소비자가 있는 것이기 때문이다.
|
|
|
|
나머지 60개는 아직 bare payload + `application/problem+json` + ProblemDetails
|
|
다. 구현에 착수할 때 같은 방식으로 따라온다 — 소비자가 없는 operation을 미리
|
|
변환해 두면 검증되지 않은 모양이 계약에 고정된다.
|
|
|
|
Tech Log의 유형별 specialized management 계약이다.
|
|
|
|
이 계약은 primary Studio orchestration 계약(`studio-v1.yaml`)이 아니다.
|
|
현재 Studio UI는 이 operation들을 직접 호출하지 않는다.
|
|
|
|
존재 이유는 설계 수정 가이드 14장과 23.7의 규칙이다.
|
|
|
|
> 현재 UI에서 사용하지 않는다는 이유로 Backend capability를 삭제하지 않는다.
|
|
> 다만 capability 보존과 endpoint 보존을 동일시하지 않는다.
|
|
|
|
따라서 Question start/pause/resume/reopen/archive, Project phase change,
|
|
Project Activity, Release, Topic/Tag, Profile/Site/Home Focus,
|
|
Decision supersede/reject 등의 Domain/Application capability를 여기에 보존하고,
|
|
현재 Frontend가 사용하는 통합 편집 흐름은 `studio-v1.yaml`이 소유한다.
|
|
|
|
## 이 계약을 사용하는 규칙
|
|
|
|
- primary 흐름(작업본 편집·검증·미리보기·게시)은 반드시 `studio-v1.yaml`을 사용한다.
|
|
- 여기의 publish/unpublish 계열 operation은 primary `publishStudioDocument`와
|
|
동일한 Publication Event/Snapshot 경로를 거쳐야 한다.
|
|
서로 다른 두 개의 게시 경로를 허용하지 않는다.
|
|
- 새 UI가 특정 capability를 실제로 사용하기 시작하면 해당 operation을
|
|
primary 계약으로 승격하고 여기에서 제거한다.
|
|
|
|
## 이 계약에서 제거된 것
|
|
|
|
- `GET /session` : primary `studio-v1.yaml`이 소유한다.
|
|
- `/documents` 계열 : primary 통합 Working Copy operation으로 대체되었다.
|
|
- `/assets` 계열 : primary `studio-v1.yaml`이 소유한다.
|
|
- `/previews`, `/previews/{token}` : Preview Token 계약은 폐기되었다.
|
|
인증된 Preview Artifact(`studio-v1.yaml`)로 대체되었다.
|
|
servers:
|
|
- url: /
|
|
security:
|
|
- sessionCookie: []
|
|
tags:
|
|
- name: Cases
|
|
- name: References
|
|
- name: Questions
|
|
- name: Projects
|
|
- name: Decisions
|
|
- name: Releases
|
|
- name: Taxonomy
|
|
- name: Identity
|
|
paths:
|
|
/api/v1/studio/cases:
|
|
post:
|
|
operationId: createCaseDraft
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'201':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/cases/{id}:
|
|
get:
|
|
operationId: getCaseForEdit
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CaseEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
put:
|
|
operationId: updateCaseDraft
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CaseEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CaseUpdateRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
delete:
|
|
operationId: deleteCaseDraft
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'204':
|
|
description: No Content
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/references:
|
|
post:
|
|
operationId: createReferenceDraft
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'201':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/references/{id}:
|
|
get:
|
|
operationId: getReferenceForEdit
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReferenceEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
put:
|
|
operationId: updateReferenceDraft
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReferenceEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReferenceUpdateRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
delete:
|
|
operationId: deleteReferenceDraft
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'204':
|
|
description: No Content
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/cases/{id}/validate:
|
|
post:
|
|
operationId: validateCase
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ValidationResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/cases/{id}/submit-review:
|
|
post:
|
|
operationId: submitReviewCase
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CaseEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/cases/{id}/return-to-draft:
|
|
post:
|
|
operationId: returnToDraftCase
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CaseEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/cases/{id}/unpublish:
|
|
post:
|
|
operationId: unpublishCase
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CaseEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/cases/{id}/archive:
|
|
post:
|
|
operationId: archiveCase
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CaseEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/cases/{id}/restore:
|
|
post:
|
|
operationId: restoreCase
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CaseEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/cases/{id}/publish:
|
|
post:
|
|
operationId: publishCase
|
|
tags:
|
|
- Cases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/references/{id}/validate:
|
|
post:
|
|
operationId: validateReference
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ValidationResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/references/{id}/submit-review:
|
|
post:
|
|
operationId: submitReviewReference
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReferenceEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/references/{id}/return-to-draft:
|
|
post:
|
|
operationId: returnToDraftReference
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReferenceEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/references/{id}/unpublish:
|
|
post:
|
|
operationId: unpublishReference
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReferenceEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/references/{id}/archive:
|
|
post:
|
|
operationId: archiveReference
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReferenceEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/references/{id}/restore:
|
|
post:
|
|
operationId: restoreReference
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReferenceEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/references/{id}/publish:
|
|
post:
|
|
operationId: publishReference
|
|
tags:
|
|
- References
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions:
|
|
post:
|
|
operationId: createQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'201':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
get:
|
|
operationId: listStudioQuestions
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
default: 1
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
default: 20
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionIndexPage'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}:
|
|
get:
|
|
operationId: getQuestionForEdit
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
put:
|
|
operationId: updateQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionUpdateBody'
|
|
security:
|
|
- sessionCookie: []
|
|
delete:
|
|
operationId: deleteQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'204':
|
|
description: No Content
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/updates:
|
|
post:
|
|
operationId: addQuestionUpdate
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'201':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionUpdateResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionUpdateRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/updates/{updateId}:
|
|
put:
|
|
operationId: updateQuestionUpdate
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: updateId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionUpdateResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionUpdateRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
delete:
|
|
operationId: deleteQuestionUpdate
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: updateId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'204':
|
|
description: No Content
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/resolve:
|
|
post:
|
|
operationId: resolveQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ResolveQuestionResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ResolveQuestionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/start-investigation:
|
|
post:
|
|
operationId: startQuestionInvestigation
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/pause:
|
|
post:
|
|
operationId: pauseQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/resume:
|
|
post:
|
|
operationId: resumeQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/reopen:
|
|
post:
|
|
operationId: reopenQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/archive:
|
|
post:
|
|
operationId: archiveQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/publish:
|
|
post:
|
|
operationId: publishQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/questions/{id}/unpublish:
|
|
post:
|
|
operationId: unpublishQuestion
|
|
tags:
|
|
- Questions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/QuestionEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects:
|
|
post:
|
|
operationId: createProject
|
|
tags:
|
|
- Projects
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'201':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftResponseEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
get:
|
|
operationId: listStudioProjects
|
|
tags:
|
|
- Projects
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
default: 1
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
default: 20
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProjectIndexPageEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}:
|
|
get:
|
|
operationId: getProjectForEdit
|
|
tags:
|
|
- Projects
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProjectEditResponseEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
security:
|
|
- sessionCookie: []
|
|
put:
|
|
operationId: updateProject
|
|
tags:
|
|
- Projects
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProjectEditResponseEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProjectUpdateRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
delete:
|
|
operationId: deleteProject
|
|
tags:
|
|
- Projects
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'204':
|
|
description: No Content
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}/change-phase:
|
|
post:
|
|
operationId: changeProjectPhase
|
|
tags:
|
|
- Projects
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProjectEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChangeProjectPhaseRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}/publish:
|
|
post:
|
|
operationId: publishProject
|
|
tags:
|
|
- Projects
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}/unpublish:
|
|
post:
|
|
operationId: unpublishProject
|
|
tags:
|
|
- Projects
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProjectEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}/decisions:
|
|
post:
|
|
operationId: createProjectDecision
|
|
tags:
|
|
- Decisions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'201':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DecisionResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDecisionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
get:
|
|
operationId: listStudioProjectDecisions
|
|
tags:
|
|
- Decisions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/DecisionResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}/decisions/{decisionId}:
|
|
get:
|
|
operationId: getProjectDecision
|
|
tags:
|
|
- Decisions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: decisionId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DecisionResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
put:
|
|
operationId: updateProjectDecision
|
|
tags:
|
|
- Decisions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: decisionId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DecisionResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DecisionUpdateRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}/decisions/{decisionId}/accept:
|
|
post:
|
|
operationId: acceptProjectDecision
|
|
tags:
|
|
- Decisions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: decisionId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DecisionResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}/decisions/{decisionId}/reject:
|
|
post:
|
|
operationId: rejectProjectDecision
|
|
tags:
|
|
- Decisions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: decisionId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DecisionResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}/decisions/{decisionId}/supersede:
|
|
post:
|
|
operationId: supersedeProjectDecision
|
|
tags:
|
|
- Decisions
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: decisionId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DecisionResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SupersedeDecisionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/releases:
|
|
post:
|
|
operationId: createRelease
|
|
tags:
|
|
- Releases
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'201':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftResponseEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDraftRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
get:
|
|
operationId: listStudioReleases
|
|
tags:
|
|
- Releases
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
default: 1
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
default: 20
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReleaseIndexPageEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/releases/{id}:
|
|
get:
|
|
operationId: getReleaseForEdit
|
|
tags:
|
|
- Releases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReleaseEditResponseEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
security:
|
|
- sessionCookie: []
|
|
put:
|
|
operationId: updateRelease
|
|
tags:
|
|
- Releases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReleaseEditResponseEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReleaseUpdateRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
delete:
|
|
operationId: deleteRelease
|
|
tags:
|
|
- Releases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'204':
|
|
description: No Content
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/releases/{id}/publish:
|
|
post:
|
|
operationId: publishRelease
|
|
tags:
|
|
- Releases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishResponseEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/releases/{id}/archive:
|
|
post:
|
|
operationId: archiveRelease
|
|
tags:
|
|
- Releases
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReleaseEditResponseEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/topics:
|
|
get:
|
|
operationId: listStudioTopics
|
|
tags:
|
|
- Taxonomy
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TopicEditListEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
security:
|
|
- sessionCookie: []
|
|
post:
|
|
operationId: createTopic
|
|
tags:
|
|
- Taxonomy
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'201':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TopicEditEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TopicEdit'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/topics/{id}:
|
|
put:
|
|
operationId: updateTopic
|
|
tags:
|
|
- Taxonomy
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TopicEditEnvelope'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TopicEdit'
|
|
security:
|
|
- sessionCookie: []
|
|
delete:
|
|
operationId: deleteTopic
|
|
tags:
|
|
- Taxonomy
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'204':
|
|
description: No Content
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorEnvelope'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/tags:
|
|
get:
|
|
operationId: listStudioTags
|
|
tags:
|
|
- Taxonomy
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/TagEdit'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
post:
|
|
operationId: createTag
|
|
tags:
|
|
- Taxonomy
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'201':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TagEdit'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TagEdit'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/tags/{id}:
|
|
put:
|
|
operationId: updateTag
|
|
tags:
|
|
- Taxonomy
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TagEdit'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TagEdit'
|
|
security:
|
|
- sessionCookie: []
|
|
delete:
|
|
operationId: deleteTag
|
|
tags:
|
|
- Taxonomy
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'204':
|
|
description: No Content
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/site:
|
|
get:
|
|
operationId: getStudioSite
|
|
tags:
|
|
- Identity
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SiteConfigResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
put:
|
|
operationId: updateStudioSite
|
|
tags:
|
|
- Identity
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SiteConfigResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SiteConfigRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/profile:
|
|
get:
|
|
operationId: getStudioProfile
|
|
tags:
|
|
- Identity
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProfileEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
put:
|
|
operationId: updateStudioProfile
|
|
tags:
|
|
- Identity
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProfileEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProfileEditRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/profile/publish:
|
|
post:
|
|
operationId: publishProfile
|
|
tags:
|
|
- Identity
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PublishResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/profile/unpublish:
|
|
post:
|
|
operationId: unpublishProfile
|
|
tags:
|
|
- Identity
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProfileEditResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExpectedVersionRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/home-focus:
|
|
get:
|
|
operationId: getHomeFocus
|
|
tags:
|
|
- Identity
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HomeFocusResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
security:
|
|
- sessionCookie: []
|
|
put:
|
|
operationId: updateHomeFocus
|
|
tags:
|
|
- Identity
|
|
parameters:
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HomeFocusResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: Not Found
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: Conflict
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: Unprocessable Content
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HomeFocusRequest'
|
|
security:
|
|
- sessionCookie: []
|
|
/api/v1/studio/projects/{id}/activities:
|
|
get:
|
|
operationId: listStudioProjectActivities
|
|
tags:
|
|
- Projects
|
|
security:
|
|
- sessionCookie: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ProjectActivityResponse'
|
|
'401':
|
|
description: '401'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: '403'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: '404'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: '500'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
post:
|
|
operationId: createProjectActivity
|
|
tags:
|
|
- Projects
|
|
security:
|
|
- sessionCookie: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProjectActivityRequest'
|
|
responses:
|
|
'201':
|
|
description: Created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProjectActivityResponse'
|
|
'400':
|
|
description: '400'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: '401'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: '403'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: '404'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: '409'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: '422'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: '500'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
/api/v1/studio/projects/{id}/activities/{activityId}:
|
|
put:
|
|
operationId: updateProjectActivity
|
|
tags:
|
|
- Projects
|
|
security:
|
|
- sessionCookie: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: activityId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- $ref: '#/components/parameters/CsrfToken'
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateProjectActivityRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProjectActivityResponse'
|
|
'400':
|
|
description: '400'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'401':
|
|
description: '401'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'403':
|
|
description: '403'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'404':
|
|
description: '404'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'409':
|
|
description: '409'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'422':
|
|
description: '422'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
'500':
|
|
description: '500'
|
|
content:
|
|
application/problem+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProblemDetails'
|
|
components:
|
|
securitySchemes:
|
|
sessionCookie:
|
|
type: apiKey
|
|
in: cookie
|
|
name: TECHLOG_SESSION
|
|
parameters:
|
|
CsrfToken:
|
|
name: X-CSRF-TOKEN
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
schemas:
|
|
# -------------------------------------------------------------------------
|
|
# 응답 봉투 (ADR-006)
|
|
#
|
|
# 이 파일 상단이 예고한 변환이다. 지금은 topics/projects 9개 operation 만
|
|
# 옮겼다 — 그 둘이 첫 소비자이기 때문이고, 나머지는 구현에 착수할 때 같은
|
|
# 방식으로 따라온다. 그동안 이 파일에는 두 모양이 공존한다: 변환된
|
|
# operation 은 `application/json` + Envelope, 나머지는 예전
|
|
# `application/problem+json` + ProblemDetails 다.
|
|
# -------------------------------------------------------------------------
|
|
ResponseMeta:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- requestId
|
|
- traceId
|
|
properties:
|
|
requestId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 200
|
|
traceId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 200
|
|
correlationId:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
maxLength: 200
|
|
page:
|
|
type:
|
|
- object
|
|
- 'null'
|
|
additionalProperties: true
|
|
description: 백엔드 템플릿의 ResponseMeta record 가 직렬화하는 자리다. 페이지 정보는 payload 의 `page` 가 소유하므로 이 관리 표면에서는 항상 null 이다.
|
|
ApiError:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- code
|
|
- category
|
|
- message
|
|
- retryable
|
|
properties:
|
|
code:
|
|
type: string
|
|
enum:
|
|
- AUTHENTICATION_REQUIRED
|
|
- STUDIO_ACCESS_DENIED
|
|
- REQUEST_VALIDATION_FAILED
|
|
- VERSION_CONFLICT
|
|
- TOPIC_NOT_FOUND
|
|
- TOPIC_NAME_TAKEN
|
|
- TOPIC_SLUG_TAKEN
|
|
- TOPIC_IN_USE
|
|
- PROJECT_NOT_FOUND
|
|
- PROJECT_SLUG_TAKEN
|
|
- PROJECT_IN_USE
|
|
- RELEASE_NOT_FOUND
|
|
- RELEASE_VERSION_TAKEN
|
|
- RELEASE_NOT_PUBLISHABLE
|
|
- DOCUMENT_NOT_FOUND
|
|
- DOCUMENT_PUBLISHED
|
|
- DOCUMENT_IN_USE
|
|
- QUESTION_NOT_FOUND
|
|
- QUESTION_IN_USE
|
|
- INTERNAL_ERROR
|
|
description: '`INTERNAL_ERROR` 는 이 기능이 아니라 스켈레톤의 공통 처리기가 내는 코드다. 계약이 그것까지 열거해야 500 응답이 계약을 벗어나지 않는다.'
|
|
category:
|
|
type: string
|
|
enum:
|
|
- VALIDATION
|
|
- AUTH
|
|
- AUTHZ
|
|
- NOT_FOUND
|
|
- CONFLICT
|
|
- RATE_LIMIT
|
|
- TRANSIENT_DEPENDENCY
|
|
- PERMANENT_DEPENDENCY
|
|
- DATA_INTEGRITY
|
|
- INTERNAL
|
|
message:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 5000
|
|
retryable:
|
|
type: boolean
|
|
details:
|
|
oneOf:
|
|
- $ref: '#/components/schemas/ValidationErrorDetails'
|
|
- $ref: '#/components/schemas/VersionConflictDetails'
|
|
- type: 'null'
|
|
ValidationErrorDetails:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- fieldErrors
|
|
properties:
|
|
fieldErrors:
|
|
type: array
|
|
maxItems: 200
|
|
items:
|
|
$ref: '#/components/schemas/FieldError'
|
|
VersionConflictDetails:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- currentVersion
|
|
properties:
|
|
currentVersion:
|
|
type: integer
|
|
format: int64
|
|
minimum: 0
|
|
ErrorEnvelope:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- success
|
|
- error
|
|
- meta
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
const: false
|
|
error:
|
|
$ref: '#/components/schemas/ApiError'
|
|
meta:
|
|
$ref: '#/components/schemas/ResponseMeta'
|
|
TopicEditEnvelope:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- success
|
|
- data
|
|
- meta
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
const: true
|
|
data:
|
|
$ref: '#/components/schemas/TopicEdit'
|
|
meta:
|
|
$ref: '#/components/schemas/ResponseMeta'
|
|
TopicEditListEnvelope:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- success
|
|
- data
|
|
- meta
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
const: true
|
|
data:
|
|
type: array
|
|
maxItems: 500
|
|
items:
|
|
$ref: '#/components/schemas/TopicEdit'
|
|
meta:
|
|
$ref: '#/components/schemas/ResponseMeta'
|
|
CreateDraftResponseEnvelope:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- success
|
|
- data
|
|
- meta
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
const: true
|
|
data:
|
|
$ref: '#/components/schemas/CreateDraftResponse'
|
|
meta:
|
|
$ref: '#/components/schemas/ResponseMeta'
|
|
ProjectIndexPageEnvelope:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- success
|
|
- data
|
|
- meta
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
const: true
|
|
data:
|
|
$ref: '#/components/schemas/ProjectIndexPage'
|
|
meta:
|
|
$ref: '#/components/schemas/ResponseMeta'
|
|
ReleaseIndexPageEnvelope:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- success
|
|
- data
|
|
- meta
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
const: true
|
|
data:
|
|
$ref: '#/components/schemas/ReleaseIndexPage'
|
|
meta:
|
|
$ref: '#/components/schemas/ResponseMeta'
|
|
ReleaseEditResponseEnvelope:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- success
|
|
- data
|
|
- meta
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
const: true
|
|
data:
|
|
$ref: '#/components/schemas/ReleaseEditResponse'
|
|
meta:
|
|
$ref: '#/components/schemas/ResponseMeta'
|
|
PublishResponseEnvelope:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- success
|
|
- data
|
|
- meta
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
const: true
|
|
data:
|
|
$ref: '#/components/schemas/PublishResponse'
|
|
meta:
|
|
$ref: '#/components/schemas/ResponseMeta'
|
|
ProjectEditResponseEnvelope:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- success
|
|
- data
|
|
- meta
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
const: true
|
|
data:
|
|
$ref: '#/components/schemas/ProjectEditResponse'
|
|
meta:
|
|
$ref: '#/components/schemas/ResponseMeta'
|
|
FieldError:
|
|
type: object
|
|
required:
|
|
- field
|
|
- code
|
|
- message
|
|
properties:
|
|
field:
|
|
type: string
|
|
code:
|
|
type: string
|
|
message:
|
|
type: string
|
|
ProblemDetails:
|
|
type: object
|
|
required:
|
|
- type
|
|
- title
|
|
- status
|
|
- code
|
|
- detail
|
|
- instance
|
|
- traceId
|
|
properties:
|
|
type:
|
|
type: string
|
|
title:
|
|
type: string
|
|
status:
|
|
type: integer
|
|
code:
|
|
type: string
|
|
detail:
|
|
type: string
|
|
instance:
|
|
type: string
|
|
traceId:
|
|
type: string
|
|
fieldErrors:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/FieldError'
|
|
currentVersion:
|
|
type: integer
|
|
format: int64
|
|
PageMetadata:
|
|
type: object
|
|
required:
|
|
- number
|
|
- size
|
|
- totalElements
|
|
- totalPages
|
|
- hasPrevious
|
|
- hasNext
|
|
properties:
|
|
number:
|
|
type: integer
|
|
minimum: 1
|
|
size:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
totalElements:
|
|
type: integer
|
|
format: int64
|
|
minimum: 0
|
|
totalPages:
|
|
type: integer
|
|
minimum: 0
|
|
hasPrevious:
|
|
type: boolean
|
|
hasNext:
|
|
type: boolean
|
|
TagSummary:
|
|
type: object
|
|
required:
|
|
- name
|
|
- slug
|
|
properties:
|
|
name:
|
|
type: string
|
|
slug:
|
|
type: string
|
|
ProjectSummary:
|
|
type: object
|
|
required:
|
|
- name
|
|
- slug
|
|
- path
|
|
properties:
|
|
name:
|
|
type: string
|
|
slug:
|
|
type: string
|
|
path:
|
|
type: string
|
|
AssetReference:
|
|
type: object
|
|
required:
|
|
- assetId
|
|
- url
|
|
properties:
|
|
assetId:
|
|
type: string
|
|
format: uuid
|
|
url:
|
|
type: string
|
|
altText:
|
|
type: string
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
contentType:
|
|
type: string
|
|
RelatedEntry:
|
|
type: object
|
|
required:
|
|
- type
|
|
- title
|
|
- path
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- CASE
|
|
- REFERENCE
|
|
- QUESTION
|
|
- PROJECT
|
|
- PROJECT_DECISION
|
|
- RELEASE
|
|
title:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
path:
|
|
type: string
|
|
PublicationStatus:
|
|
type: object
|
|
required:
|
|
- state
|
|
- hasUnpublishedChanges
|
|
properties:
|
|
state:
|
|
type: string
|
|
enum:
|
|
- NEVER_PUBLISHED
|
|
- ACTIVE
|
|
- WITHDRAWN
|
|
publishedSourceVersion:
|
|
type: integer
|
|
format: int64
|
|
hasUnpublishedChanges:
|
|
type: boolean
|
|
canonicalPath:
|
|
type: string
|
|
publishedAt:
|
|
type: string
|
|
format: date-time
|
|
ValidationIssue:
|
|
type: object
|
|
required:
|
|
- severity
|
|
- code
|
|
- message
|
|
properties:
|
|
severity:
|
|
type: string
|
|
enum:
|
|
- ERROR
|
|
- WARNING
|
|
code:
|
|
type: string
|
|
field:
|
|
type: string
|
|
message:
|
|
type: string
|
|
ValidationResponse:
|
|
type: object
|
|
required:
|
|
- validForSave
|
|
- validForPublish
|
|
- issues
|
|
properties:
|
|
validForSave:
|
|
type: boolean
|
|
validForPublish:
|
|
type: boolean
|
|
issues:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ValidationIssue'
|
|
CreateDraftRequest:
|
|
type: object
|
|
required:
|
|
- title
|
|
properties:
|
|
title:
|
|
type: string
|
|
maxLength: 180
|
|
CreateDraftResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- status
|
|
- version
|
|
- createdAt
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
status:
|
|
type: string
|
|
enum:
|
|
- DRAFT
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
RelationEdit:
|
|
type: object
|
|
properties:
|
|
primaryProjectId:
|
|
type: string
|
|
format: uuid
|
|
relatedProjectIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
originQuestionId:
|
|
type: string
|
|
format: uuid
|
|
relatedDocumentIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
derivedReferenceIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
CaseUpdateRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- title
|
|
- problemSummary
|
|
- conclusionSummary
|
|
- content
|
|
- contentFormatVersion
|
|
- tagIds
|
|
- relations
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
title:
|
|
type: string
|
|
maxLength: 180
|
|
slug:
|
|
type: string
|
|
maxLength: 180
|
|
problemSummary:
|
|
type: string
|
|
maxLength: 600
|
|
conclusionSummary:
|
|
type: string
|
|
maxLength: 600
|
|
environmentSummary:
|
|
type: array
|
|
items:
|
|
type: string
|
|
content:
|
|
type: string
|
|
maxLength: 2000000
|
|
contentFormatVersion:
|
|
type: integer
|
|
minimum: 1
|
|
primaryTopicId:
|
|
type: string
|
|
format: uuid
|
|
tagIds:
|
|
type: array
|
|
maxItems: 12
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
relations:
|
|
$ref: '#/components/schemas/RelationEdit'
|
|
coverAssetId:
|
|
type: string
|
|
format: uuid
|
|
lastVerifiedAt:
|
|
type: string
|
|
format: date-time
|
|
targetVisibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- UNLISTED
|
|
- PUBLIC
|
|
CaseEditResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- version
|
|
- title
|
|
- problemSummary
|
|
- conclusionSummary
|
|
- content
|
|
- contentFormatVersion
|
|
- tagIds
|
|
- relations
|
|
- workflowStatus
|
|
- targetVisibility
|
|
- publication
|
|
- updatedAt
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
title:
|
|
type: string
|
|
slug:
|
|
type: string
|
|
problemSummary:
|
|
type: string
|
|
conclusionSummary:
|
|
type: string
|
|
environmentSummary:
|
|
type: array
|
|
items:
|
|
type: string
|
|
content:
|
|
type: string
|
|
contentFormatVersion:
|
|
type: integer
|
|
primaryTopicId:
|
|
type: string
|
|
format: uuid
|
|
tagIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
relations:
|
|
$ref: '#/components/schemas/RelationEdit'
|
|
coverAssetId:
|
|
type: string
|
|
format: uuid
|
|
lastVerifiedAt:
|
|
type: string
|
|
format: date-time
|
|
workflowStatus:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
publication:
|
|
$ref: '#/components/schemas/PublicationStatus'
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
ReferenceUpdateRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- title
|
|
- scopeSummary
|
|
- appliesTo
|
|
- excludedScope
|
|
- freshnessStatus
|
|
- content
|
|
- contentFormatVersion
|
|
- tagIds
|
|
- relations
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
title:
|
|
type: string
|
|
maxLength: 180
|
|
slug:
|
|
type: string
|
|
maxLength: 180
|
|
scopeSummary:
|
|
type: string
|
|
maxLength: 600
|
|
appliesTo:
|
|
type: array
|
|
items:
|
|
type: string
|
|
excludedScope:
|
|
type: array
|
|
items:
|
|
type: string
|
|
freshnessStatus:
|
|
type: string
|
|
enum:
|
|
- CURRENT
|
|
- REVIEW_DUE
|
|
- HISTORICAL
|
|
content:
|
|
type: string
|
|
maxLength: 2000000
|
|
contentFormatVersion:
|
|
type: integer
|
|
minimum: 1
|
|
primaryTopicId:
|
|
type: string
|
|
format: uuid
|
|
tagIds:
|
|
type: array
|
|
maxItems: 12
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
relations:
|
|
$ref: '#/components/schemas/RelationEdit'
|
|
coverAssetId:
|
|
type: string
|
|
format: uuid
|
|
lastVerifiedAt:
|
|
type: string
|
|
format: date-time
|
|
targetVisibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- UNLISTED
|
|
- PUBLIC
|
|
ReferenceEditResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- version
|
|
- title
|
|
- scopeSummary
|
|
- appliesTo
|
|
- excludedScope
|
|
- freshnessStatus
|
|
- content
|
|
- contentFormatVersion
|
|
- tagIds
|
|
- relations
|
|
- workflowStatus
|
|
- targetVisibility
|
|
- publication
|
|
- updatedAt
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
title:
|
|
type: string
|
|
slug:
|
|
type: string
|
|
scopeSummary:
|
|
type: string
|
|
appliesTo:
|
|
type: array
|
|
items:
|
|
type: string
|
|
excludedScope:
|
|
type: array
|
|
items:
|
|
type: string
|
|
freshnessStatus:
|
|
type: string
|
|
content:
|
|
type: string
|
|
contentFormatVersion:
|
|
type: integer
|
|
primaryTopicId:
|
|
type: string
|
|
format: uuid
|
|
tagIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
relations:
|
|
$ref: '#/components/schemas/RelationEdit'
|
|
coverAssetId:
|
|
type: string
|
|
format: uuid
|
|
lastVerifiedAt:
|
|
type: string
|
|
format: date-time
|
|
workflowStatus:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
publication:
|
|
$ref: '#/components/schemas/PublicationStatus'
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
ExpectedVersionRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
PublishRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- visibility
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
visibility:
|
|
type: string
|
|
enum:
|
|
- PUBLIC
|
|
- UNLISTED
|
|
PublishResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- status
|
|
- visibility
|
|
- canonicalPath
|
|
- publishedAt
|
|
- version
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
status:
|
|
type: string
|
|
enum:
|
|
- PUBLISHED
|
|
visibility:
|
|
type: string
|
|
enum:
|
|
- PUBLIC
|
|
- UNLISTED
|
|
canonicalPath:
|
|
type: string
|
|
publishedAt:
|
|
type: string
|
|
format: date-time
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
QuestionPointEdit:
|
|
type: object
|
|
required:
|
|
- kind
|
|
- content
|
|
- displayOrder
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- FACT
|
|
- ASSUMPTION
|
|
- UNKNOWN
|
|
- CONSTRAINT
|
|
content:
|
|
type: string
|
|
displayOrder:
|
|
type: integer
|
|
minimum: 0
|
|
QuestionUpdateRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- type
|
|
- title
|
|
- bodyMarkdown
|
|
- visibility
|
|
- occurredAt
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- OBSERVATION
|
|
- EVIDENCE
|
|
- SCOPE_CHANGE
|
|
- BLOCKER
|
|
- NEXT_STEP
|
|
- RESOLUTION
|
|
- RESOLUTION_REOPENED
|
|
title:
|
|
type: string
|
|
maxLength: 180
|
|
bodyMarkdown:
|
|
type: string
|
|
visibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- PUBLIC
|
|
occurredAt:
|
|
type: string
|
|
format: date-time
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
QuestionUpdateResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- questionVersion
|
|
- type
|
|
- title
|
|
- bodyMarkdown
|
|
- visibility
|
|
- occurredAt
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
questionVersion:
|
|
type: integer
|
|
format: int64
|
|
type:
|
|
type: string
|
|
title:
|
|
type: string
|
|
bodyMarkdown:
|
|
type: string
|
|
visibility:
|
|
type: string
|
|
occurredAt:
|
|
type: string
|
|
format: date-time
|
|
QuestionUpdateBody:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- question
|
|
- summary
|
|
- context
|
|
- importance
|
|
- points
|
|
- tagIds
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
question:
|
|
type: string
|
|
maxLength: 300
|
|
slug:
|
|
type: string
|
|
maxLength: 180
|
|
summary:
|
|
type: string
|
|
maxLength: 600
|
|
context:
|
|
type: string
|
|
importance:
|
|
type: string
|
|
nextVerification:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- UNLISTED
|
|
- PUBLIC
|
|
primaryProjectId:
|
|
type: string
|
|
format: uuid
|
|
topicId:
|
|
type: string
|
|
format: uuid
|
|
tagIds:
|
|
type: array
|
|
maxItems: 12
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
points:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/QuestionPointEdit'
|
|
QuestionEditResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- version
|
|
- question
|
|
- status
|
|
- targetVisibility
|
|
- points
|
|
- updates
|
|
- publication
|
|
- updatedAt
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
question:
|
|
type: string
|
|
slug:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
context:
|
|
type: string
|
|
importance:
|
|
type: string
|
|
nextVerification:
|
|
type: string
|
|
status:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
primaryProjectId:
|
|
type: string
|
|
format: uuid
|
|
topicId:
|
|
type: string
|
|
format: uuid
|
|
tagIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
points:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/QuestionPointEdit'
|
|
updates:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/QuestionUpdateResponse'
|
|
resolution:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
resolvedAt:
|
|
type: string
|
|
format: date-time
|
|
publication:
|
|
$ref: '#/components/schemas/PublicationStatus'
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
ResolveQuestionRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- resolutionType
|
|
- resolutionSummary
|
|
- resolvedAt
|
|
- createCaseDraft
|
|
- createProjectDecision
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
resolutionType:
|
|
type: string
|
|
enum:
|
|
- DECISION_MADE
|
|
- ASSUMPTION_REJECTED
|
|
- QUESTION_REFRAMED
|
|
- NO_LONGER_RELEVANT
|
|
resolutionSummary:
|
|
type: string
|
|
resolvedAt:
|
|
type: string
|
|
format: date-time
|
|
createCaseDraft:
|
|
type: boolean
|
|
createProjectDecision:
|
|
type: boolean
|
|
ResolveQuestionResponse:
|
|
type: object
|
|
required:
|
|
- questionId
|
|
- status
|
|
- version
|
|
properties:
|
|
questionId:
|
|
type: string
|
|
format: uuid
|
|
status:
|
|
type: string
|
|
enum:
|
|
- RESOLVED
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
createdCaseDraftId:
|
|
type: string
|
|
format: uuid
|
|
createdProjectDecisionId:
|
|
type: string
|
|
format: uuid
|
|
ProjectUpdateRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- name
|
|
- oneLinePurpose
|
|
- purposeMarkdown
|
|
- boundaryMarkdown
|
|
- phase
|
|
- technologyLabels
|
|
- targetVisibility
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
type: string
|
|
maxLength: 180
|
|
slug:
|
|
type: string
|
|
maxLength: 180
|
|
oneLinePurpose:
|
|
type: string
|
|
maxLength: 600
|
|
purposeMarkdown:
|
|
type: string
|
|
boundaryMarkdown:
|
|
type: string
|
|
systemOverviewMarkdown:
|
|
type: string
|
|
phase:
|
|
type: string
|
|
currentObjective:
|
|
type: string
|
|
nextStep:
|
|
type: string
|
|
technologyLabels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- UNLISTED
|
|
- PUBLIC
|
|
featuredOrder:
|
|
type: integer
|
|
topicIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
documentLinks:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ProjectResourceLinkEdit'
|
|
questionLinks:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ProjectResourceLinkEdit'
|
|
ProjectEditResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- version
|
|
- name
|
|
- phase
|
|
- workflowStatus
|
|
- targetVisibility
|
|
- publication
|
|
- updatedAt
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
type: string
|
|
slug:
|
|
type: string
|
|
oneLinePurpose:
|
|
type: string
|
|
purposeMarkdown:
|
|
type: string
|
|
boundaryMarkdown:
|
|
type: string
|
|
systemOverviewMarkdown:
|
|
type: string
|
|
phase:
|
|
type: string
|
|
currentObjective:
|
|
type: string
|
|
nextStep:
|
|
type: string
|
|
technologyLabels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
workflowStatus:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
featuredOrder:
|
|
type: integer
|
|
publication:
|
|
$ref: '#/components/schemas/PublicationStatus'
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
topicIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
documentLinks:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ProjectResourceLinkEdit'
|
|
questionLinks:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ProjectResourceLinkEdit'
|
|
ChangeProjectPhaseRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- phase
|
|
- reason
|
|
- publishActivity
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
phase:
|
|
type: string
|
|
reason:
|
|
type: string
|
|
publishActivity:
|
|
type: boolean
|
|
DecisionUpdateRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- statement
|
|
- rationaleMarkdown
|
|
- consequences
|
|
- alternativesMarkdown
|
|
- targetVisibility
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
statement:
|
|
type: string
|
|
maxLength: 1000
|
|
rationaleMarkdown:
|
|
type: string
|
|
consequences:
|
|
type: array
|
|
items:
|
|
type: string
|
|
alternativesMarkdown:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- PUBLIC
|
|
sourceQuestionId:
|
|
type: string
|
|
format: uuid
|
|
sourceCaseId:
|
|
type: string
|
|
format: uuid
|
|
isFeatured:
|
|
type: boolean
|
|
decidedAt:
|
|
type: string
|
|
format: date-time
|
|
DecisionResponse:
|
|
allOf:
|
|
- $ref: '#/components/schemas/DecisionUpdateRequest'
|
|
- type: object
|
|
required:
|
|
- id
|
|
- projectId
|
|
- status
|
|
- version
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
projectId:
|
|
type: string
|
|
format: uuid
|
|
status:
|
|
type: string
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
supersededById:
|
|
type: string
|
|
format: uuid
|
|
ReleaseUpdateRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- versionLabel
|
|
- title
|
|
- summary
|
|
- changeTypes
|
|
- changesMarkdown
|
|
- verificationMarkdown
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
versionLabel:
|
|
type: string
|
|
maxLength: 32
|
|
title:
|
|
type: string
|
|
maxLength: 180
|
|
summary:
|
|
type: string
|
|
maxLength: 600
|
|
releasedOn:
|
|
type: string
|
|
format: date
|
|
changeTypes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
reasonMarkdown:
|
|
type: string
|
|
changesMarkdown:
|
|
type: string
|
|
userImpactMarkdown:
|
|
type: string
|
|
implementationImpactMarkdown:
|
|
type: string
|
|
verificationMarkdown:
|
|
type: string
|
|
knownLimitationsMarkdown:
|
|
type: string
|
|
relatedResources:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- resourceType
|
|
- resourceId
|
|
properties:
|
|
resourceType:
|
|
type: string
|
|
resourceId:
|
|
type: string
|
|
format: uuid
|
|
ReleaseEditResponse:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ReleaseUpdateRequest'
|
|
- type: object
|
|
required:
|
|
- id
|
|
- workflowStatus
|
|
- version
|
|
- publication
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
workflowStatus:
|
|
type: string
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
publication:
|
|
$ref: '#/components/schemas/PublicationStatus'
|
|
TopicEdit:
|
|
type: object
|
|
required:
|
|
- name
|
|
- slug
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
description: |-
|
|
응답에만 실린다. 경로가 `/topics/{id}`이므로 이 값이 없으면 목록에서 어떤 주제도
|
|
주소지정할 수 없다 — ProjectEditResponse / CaseEditResponse는 같은 이유로 이미
|
|
id를 싣고 있었고, TopicEdit만 빠져 있었다. 쓰기 요청에 와도 서버는 무시한다;
|
|
수정 대상은 경로가 소유한다.
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
description: |-
|
|
응답에만 실린다. 다음 수정에서 보낼 `expectedVersion`의 출처다. 이것이 없으면
|
|
클라이언트가 낙관적 잠금에 쓸 값을 얻을 방법이 없다.
|
|
name:
|
|
type: string
|
|
maxLength: 80
|
|
slug:
|
|
type: string
|
|
maxLength: 100
|
|
description:
|
|
type: string
|
|
maxLength: 600
|
|
scope:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum:
|
|
- ACTIVE
|
|
- ARCHIVED
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
featuredReferenceId:
|
|
type: string
|
|
format: uuid
|
|
featuredCaseIds:
|
|
type: array
|
|
maxItems: 3
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
TagEdit:
|
|
type: object
|
|
required:
|
|
- name
|
|
- slug
|
|
properties:
|
|
name:
|
|
type: string
|
|
maxLength: 40
|
|
slug:
|
|
type: string
|
|
maxLength: 60
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
SiteConfigRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- brandTitle
|
|
- identityStatement
|
|
- operatorDisplayName
|
|
- contacts
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
brandTitle:
|
|
type: string
|
|
identityStatement:
|
|
type: string
|
|
operatorDisplayName:
|
|
type: string
|
|
shortIdentity:
|
|
type: string
|
|
avatarAssetId:
|
|
type: string
|
|
format: uuid
|
|
contacts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
ProfileEditRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- headline
|
|
- workingModel
|
|
- territories
|
|
- selectedEvidence
|
|
- trajectory
|
|
- contacts
|
|
- targetVisibility
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
headline:
|
|
type: string
|
|
introductionMarkdown:
|
|
type: string
|
|
workingModel:
|
|
type: array
|
|
items:
|
|
type: object
|
|
territories:
|
|
type: array
|
|
items:
|
|
type: object
|
|
selectedEvidence:
|
|
type: array
|
|
items:
|
|
type: object
|
|
trajectory:
|
|
type: array
|
|
items:
|
|
type: object
|
|
contacts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
targetVisibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- PUBLIC
|
|
HomeFocusRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
defaultType:
|
|
type: string
|
|
enum:
|
|
- CURRENT_WORK
|
|
- OPEN_QUESTION
|
|
- RECENT_DECISION
|
|
currentProjectId:
|
|
type: string
|
|
format: uuid
|
|
openQuestionId:
|
|
type: string
|
|
format: uuid
|
|
recentDecisionId:
|
|
type: string
|
|
format: uuid
|
|
QuestionIndexItem:
|
|
type: object
|
|
required:
|
|
- id
|
|
- question
|
|
- status
|
|
- targetVisibility
|
|
- updatedAt
|
|
- version
|
|
- publication
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
question:
|
|
type: string
|
|
status:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
primaryProject:
|
|
$ref: '#/components/schemas/ProjectSummary'
|
|
nextVerification:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
publication:
|
|
$ref: '#/components/schemas/PublicationStatus'
|
|
QuestionIndexPage:
|
|
type: object
|
|
required:
|
|
- items
|
|
- page
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/QuestionIndexItem'
|
|
page:
|
|
$ref: '#/components/schemas/PageMetadata'
|
|
ProjectIndexItem:
|
|
type: object
|
|
required:
|
|
- id
|
|
- name
|
|
- phase
|
|
- workflowStatus
|
|
- targetVisibility
|
|
- updatedAt
|
|
- version
|
|
- publication
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
name:
|
|
type: string
|
|
phase:
|
|
type: string
|
|
workflowStatus:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
currentObjective:
|
|
type: string
|
|
nextStep:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
publication:
|
|
$ref: '#/components/schemas/PublicationStatus'
|
|
ProjectIndexPage:
|
|
type: object
|
|
required:
|
|
- items
|
|
- page
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ProjectIndexItem'
|
|
page:
|
|
$ref: '#/components/schemas/PageMetadata'
|
|
ReleaseIndexItem:
|
|
type: object
|
|
required:
|
|
- id
|
|
- versionLabel
|
|
- title
|
|
- workflowStatus
|
|
- updatedAt
|
|
- version
|
|
- publication
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
versionLabel:
|
|
type: string
|
|
title:
|
|
type: string
|
|
releasedOn:
|
|
type: string
|
|
format: date
|
|
workflowStatus:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
publication:
|
|
$ref: '#/components/schemas/PublicationStatus'
|
|
ReleaseIndexPage:
|
|
type: object
|
|
required:
|
|
- items
|
|
- page
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ReleaseIndexItem'
|
|
page:
|
|
$ref: '#/components/schemas/PageMetadata'
|
|
SiteConfigResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- version
|
|
- brandTitle
|
|
- identityStatement
|
|
- operatorDisplayName
|
|
- contacts
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
brandTitle:
|
|
type: string
|
|
identityStatement:
|
|
type: string
|
|
operatorDisplayName:
|
|
type: string
|
|
shortIdentity:
|
|
type: string
|
|
avatarAssetId:
|
|
type: string
|
|
format: uuid
|
|
contacts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
ProfileEditResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- version
|
|
- headline
|
|
- workingModel
|
|
- territories
|
|
- selectedEvidence
|
|
- trajectory
|
|
- contacts
|
|
- targetVisibility
|
|
- publication
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
headline:
|
|
type: string
|
|
introductionMarkdown:
|
|
type: string
|
|
workingModel:
|
|
type: array
|
|
items:
|
|
type: object
|
|
territories:
|
|
type: array
|
|
items:
|
|
type: object
|
|
selectedEvidence:
|
|
type: array
|
|
items:
|
|
type: object
|
|
trajectory:
|
|
type: array
|
|
items:
|
|
type: object
|
|
contacts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
targetVisibility:
|
|
type: string
|
|
publication:
|
|
$ref: '#/components/schemas/PublicationStatus'
|
|
HomeFocusResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- version
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
defaultType:
|
|
type: string
|
|
currentProjectId:
|
|
type: string
|
|
format: uuid
|
|
openQuestionId:
|
|
type: string
|
|
format: uuid
|
|
recentDecisionId:
|
|
type: string
|
|
format: uuid
|
|
ProjectResourceLinkEdit:
|
|
type: object
|
|
required:
|
|
- resourceId
|
|
- relationType
|
|
properties:
|
|
resourceId:
|
|
type: string
|
|
format: uuid
|
|
relationType:
|
|
type: string
|
|
enum:
|
|
- PRIMARY
|
|
- RELATED
|
|
featuredOrder:
|
|
type: integer
|
|
minimum: 0
|
|
CreateDecisionRequest:
|
|
type: object
|
|
required:
|
|
- expectedProjectVersion
|
|
- statement
|
|
- rationaleMarkdown
|
|
- consequences
|
|
- alternativesMarkdown
|
|
- targetVisibility
|
|
properties:
|
|
expectedProjectVersion:
|
|
type: integer
|
|
format: int64
|
|
statement:
|
|
type: string
|
|
maxLength: 1000
|
|
rationaleMarkdown:
|
|
type: string
|
|
consequences:
|
|
type: array
|
|
items:
|
|
type: string
|
|
alternativesMarkdown:
|
|
type: string
|
|
targetVisibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- PUBLIC
|
|
sourceQuestionId:
|
|
type: string
|
|
format: uuid
|
|
sourceCaseId:
|
|
type: string
|
|
format: uuid
|
|
isFeatured:
|
|
type: boolean
|
|
decidedAt:
|
|
type: string
|
|
format: date-time
|
|
SupersedeDecisionRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- supersededById
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
supersededById:
|
|
type: string
|
|
format: uuid
|
|
ProjectActivityRequest:
|
|
type: object
|
|
required:
|
|
- expectedProjectVersion
|
|
- activityType
|
|
- title
|
|
- visibility
|
|
- occurredAt
|
|
properties:
|
|
expectedProjectVersion:
|
|
type: integer
|
|
format: int64
|
|
activityType:
|
|
type: string
|
|
title:
|
|
type: string
|
|
maxLength: 180
|
|
summary:
|
|
type: string
|
|
maxLength: 600
|
|
visibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- PUBLIC
|
|
relatedResourceType:
|
|
type: string
|
|
relatedResourceId:
|
|
type: string
|
|
format: uuid
|
|
occurredAt:
|
|
type: string
|
|
format: date-time
|
|
ProjectActivityResponse:
|
|
type: object
|
|
required:
|
|
- id
|
|
- projectId
|
|
- activityType
|
|
- title
|
|
- visibility
|
|
- origin
|
|
- occurredAt
|
|
- version
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
projectId:
|
|
type: string
|
|
format: uuid
|
|
activityType:
|
|
type: string
|
|
title:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
visibility:
|
|
type: string
|
|
origin:
|
|
type: string
|
|
relatedResourceType:
|
|
type: string
|
|
relatedResourceId:
|
|
type: string
|
|
format: uuid
|
|
occurredAt:
|
|
type: string
|
|
format: date-time
|
|
version:
|
|
type: integer
|
|
format: int64
|
|
UpdateProjectActivityRequest:
|
|
type: object
|
|
required:
|
|
- expectedVersion
|
|
- title
|
|
- visibility
|
|
- occurredAt
|
|
properties:
|
|
expectedVersion:
|
|
type: integer
|
|
format: int64
|
|
title:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
visibility:
|
|
type: string
|
|
enum:
|
|
- PRIVATE
|
|
- PUBLIC
|
|
occurredAt:
|
|
type: string
|
|
format: date-time
|