/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export interface paths { "/site": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getPublicSite"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/home": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getPublicHome"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/explore/knowledge": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** @description Frontend의 `/explore`, `/explore/cases`, `/explore/references` 화면이 * 호출한다. 화면 route별로 별도 endpoint를 만들지 않고 `type` 필터로 구분한다. * * ```text * /explore/cases → type=CASE * /explore/references → type=REFERENCE * /explore → type 생략 * ``` * */ get: operations["exploreKnowledge"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/explore/questions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** @description Frontend의 `/explore/questions` 화면이 호출한다. * * 여기의 공개 상태는 `OPEN`/`RESOLVED` 축약 표현이다. Backend Inquiry의 * `INVESTIGATING`/`PAUSED`는 `OPEN`으로 표현되며 `ARCHIVED`는 공개되지 않는다. * Domain lifecycle 자체는 축소되지 않는다. * */ get: operations["exploreQuestions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/topics": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["listPublicTopics"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/topics/{topicSlug}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getPublicTopic"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/cases/{slug}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getPublicCase"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/references/{slug}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getPublicReference"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/questions/{slug}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getPublicQuestion"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/projects": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["listPublicProjects"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/projects/{slug}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getPublicProject"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/projects/{slug}/decisions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["listPublicProjectDecisions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/projects/{slug}/records": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["listPublicProjectRecords"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/projects/{slug}/activities": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["listPublicProjectActivities"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/releases": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["listPublicReleases"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/releases/{version}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getPublicRelease"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/profile": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getPublicProfile"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/search": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["searchPublicResources"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/media/{assetId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** @description 업로드한 Asset 의 바이트를 그대로 돌려준다. 이 경로가 없어서 Asset 은 저장은 되지만 * 어디에서도 보이지 않았다 — 문서와 공개 화면이 모두 이 주소를 가리키는데 서빙하는 곳이 * 없었다. * * `READY` 인 Asset 만 나간다. "발행된 기록이 참조하는 것만" 으로 더 좁히지 않는 이유는 * 그러면 Studio 미리보기가 깨지기 때문이다 — 미리보기는 아직 발행되지 않은 기록을 보는 * 화면이다. 대신 주소가 추측 불가능한 UUID 다. * * 봉투를 쓰지 않는다. 바이트를 반환하므로 감쌀 것이 없고, `` 는 JSON 을 읽지 * 않는다. */ get: operations["getPublicMedia"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; } export type webhooks = Record; export interface components { schemas: { FieldError: { field: string; code: string; message: string; }; PageMetadata: { number: number; size: number; /** Format: int64 */ totalElements: number; totalPages: number; hasPrevious: boolean; hasNext: boolean; }; TopicSummary: { name: string; slug: string; }; TagSummary: { name: string; slug: string; }; ProjectSummary: { name: string; slug: string; path: string; }; AssetReference: { /** Format: uuid */ assetId: string; url: string; altText?: string; width?: number; height?: number; contentType?: string; }; /** @description 본문이 `:::evidence key="..."` 로 가리키는 Asset 이다. * * 본문은 Markdown 원문으로 나가고 그 안에는 key 만 있는데, `/media/{assetId}` 는 UUID * 로만 서빙한다 — 주소가 추측 불가능한 것이 의도된 성질이므로 key 에서 주소를 만들 수 * 없다. 그래서 공개 화면이 key 를 해석할 수 있도록, 게시된 기록이 실제로 참조하는 Asset 을 * 함께 준다. * * 목록은 게시 시점에 고정된 `PUBLISHED` scope 의 참조에서 온다. 게시 이후 작업본이 Asset * 을 바꿔도 이미 공개된 본문이 가리키는 대상은 달라지지 않는다. * */ BodyAsset: { assetKey: string; /** Format: uuid */ assetId: string; url: string; contentType: string; altText?: string; width?: number; height?: number; /** @description 장식용이면 대체 텍스트가 비어 있어도 된다. 게시 검증이 이 값으로 판정하므로 공개 * 화면도 같은 값을 보고 `alt` 를 정해야 판정과 표시가 어긋나지 않는다. * */ decorative: boolean; }; RelatedEntry: { /** @enum {string} */ type: "CASE" | "REFERENCE" | "QUESTION" | "PROJECT" | "PROJECT_DECISION" | "RELEASE"; title: string; summary?: string; path: string; }; ContactLink: { type: string; label: string; /** Format: uri */ url: string; }; SiteResponse: { brand: { title: string; identityStatement: string; }; operator: { displayName: string; shortIdentity?: string; avatar?: components["schemas"]["AssetReference"]; profilePath: string; }; contacts: components["schemas"]["ContactLink"][]; }; CurrentWorkFocus: { projectName: string; projectPath: string; purpose: string; /** @enum {string} */ phase: "RESEARCH" | "DESIGN" | "IMPLEMENTATION" | "VERIFICATION" | "MAINTENANCE" | "PAUSED" | "COMPLETED"; currentObjective: string; nextStep?: string; /** Format: date-time */ updatedAt: string; }; OpenQuestionFocus: { question: string; questionPath: string; summary: string; knownFacts: string[]; unresolvedPoints: string[]; nextVerification: string; /** Format: date-time */ updatedAt: string; }; RecentDecisionFocus: { statement: string; decisionPath: string; rationale: string; consequences: string[]; /** Format: date-time */ decidedAt: string; }; LatestEntry: { /** @enum {string} */ entryType: "CASE" | "REFERENCE" | "QUESTION" | "PROJECT_ACTIVITY" | "RELEASE"; title: string; summary: string; path: string; primaryTopic?: components["schemas"]["TopicSummary"]; primaryProject?: components["schemas"]["ProjectSummary"]; /** Format: date-time */ publishedAt: string; }; HomeResponse: { focus: { /** @enum {string} */ defaultType: "CURRENT_WORK" | "OPEN_QUESTION" | "RECENT_DECISION"; currentWork?: components["schemas"]["CurrentWorkFocus"]; openQuestion?: components["schemas"]["OpenQuestionFocus"]; recentDecision?: components["schemas"]["RecentDecisionFocus"]; }; latestEntries: components["schemas"]["LatestEntry"][]; }; KnowledgeListItem: { /** @enum {string} */ type: "CASE" | "REFERENCE"; title: string; path: string; primarySummary: string; secondarySummary?: string; primaryTopic?: components["schemas"]["TopicSummary"]; primaryProject?: components["schemas"]["ProjectSummary"]; /** Format: date-time */ publishedAt: string; /** Format: date-time */ lastVerifiedAt?: string; freshnessStatus?: string; }; KnowledgePage: { items: components["schemas"]["KnowledgeListItem"][]; page: components["schemas"]["PageMetadata"]; }; QuestionListItem: { question: string; path: string; /** @enum {string} */ status: "OPEN" | "INVESTIGATING" | "PAUSED" | "RESOLVED"; summary: string; currentUnderstanding?: string; nextVerification?: string; primaryProject?: components["schemas"]["ProjectSummary"]; /** Format: date-time */ updatedAt: string; }; QuestionPage: { items: components["schemas"]["QuestionListItem"][]; page: components["schemas"]["PageMetadata"]; }; TopicListItem: { name: string; slug: string; description: string; recordCount?: number; }; TopicListResponse: { items: components["schemas"]["TopicListItem"][]; }; TopicDetailResponse: { topic: { name: string; slug: string; description: string; scope?: string; }; featuredReference?: components["schemas"]["RelatedEntry"]; featuredCases: components["schemas"]["RelatedEntry"][]; activeQuestions: components["schemas"]["RelatedEntry"][]; relatedProjects: components["schemas"]["RelatedEntry"][]; latestRecords: components["schemas"]["LatestEntry"][]; }; CaseDetailResponse: { canonicalPath: string; /** @default true */ indexable: boolean; case: { title: string; summary?: string; problemSummary: string; conclusionSummary: string; environmentSummary?: string[]; content: string; /** @enum {string} */ contentFormat: "MARKDOWN"; contentFormatVersion: number; primaryTopic?: components["schemas"]["TopicSummary"]; tags: components["schemas"]["TagSummary"][]; primaryProject?: components["schemas"]["ProjectSummary"]; coverAsset?: components["schemas"]["AssetReference"]; /** @description 본문이 참조하는 Asset. 비어 있을 수 있다 — 본문에 evidence 가 없거나, 참조한 * Asset 이 더 이상 서빙되지 않는 경우다. * */ bodyAssets?: components["schemas"]["BodyAsset"][]; /** Format: date-time */ publishedAt: string; /** Format: date-time */ updatedAt: string; /** Format: date-time */ lastVerifiedAt?: string; }; relations: { originQuestion?: components["schemas"]["RelatedEntry"]; projectDecisions: components["schemas"]["RelatedEntry"][]; derivedReferences: components["schemas"]["RelatedEntry"][]; relatedCases: components["schemas"]["RelatedEntry"][]; }; }; ReferenceDetailResponse: { canonicalPath: string; /** @default true */ indexable: boolean; reference: { title: string; summary?: string; scopeSummary: string; appliesTo: string[]; excludedScope: string[]; rules?: { title: string; body: string; }[]; examples?: string[]; /** @enum {string} */ freshnessStatus: "CURRENT" | "REVIEW_DUE" | "HISTORICAL"; content: string; /** @enum {string} */ contentFormat: "MARKDOWN"; contentFormatVersion: number; primaryTopic?: components["schemas"]["TopicSummary"]; tags: components["schemas"]["TagSummary"][]; primaryProject?: components["schemas"]["ProjectSummary"]; coverAsset?: components["schemas"]["AssetReference"]; /** Format: date-time */ publishedAt: string; /** Format: date-time */ updatedAt: string; /** Format: date-time */ lastVerifiedAt?: string; }; relations: { supportingCases: components["schemas"]["RelatedEntry"][]; relatedDecisions: components["schemas"]["RelatedEntry"][]; relatedReferences: components["schemas"]["RelatedEntry"][]; }; }; QuestionPointGroup: { facts: string[]; assumptions: string[]; unknowns: string[]; constraints: string[]; }; QuestionUpdatePublic: { type: string; title: string; bodyMarkdown: string; /** Format: date-time */ occurredAt: string; }; QuestionDetailResponse: { canonicalPath: string; indexable: boolean; question: { question: string; summary: string; context: string; importance: string; /** @enum {string} */ status: "OPEN" | "INVESTIGATING" | "PAUSED" | "RESOLVED"; nextVerification?: string; points: components["schemas"]["QuestionPointGroup"]; updates: components["schemas"]["QuestionUpdatePublic"][]; resolution?: { type?: string; summary?: string; /** Format: date-time */ resolvedAt?: string; }; /** Format: date-time */ openedAt: string; /** Format: date-time */ updatedAt: string; }; relations: { primaryProject?: components["schemas"]["RelatedEntry"]; resultCase?: components["schemas"]["RelatedEntry"]; producedDecision?: components["schemas"]["RelatedEntry"]; derivedReferences: components["schemas"]["RelatedEntry"][]; }; }; ProjectListItem: { name: string; slug: string; path: string; oneLinePurpose: string; phase: string; currentObjective?: string; nextStep?: string; /** Format: date-time */ updatedAt: string; }; ProjectListResponse: { items: components["schemas"]["ProjectListItem"][]; }; ProjectDetailResponse: { canonicalPath: string; /** @default true */ indexable: boolean; project: { name: string; slug: string; oneLinePurpose: string; purpose: string; boundary: string; phase: string; currentObjective?: string; nextStep?: string; systemOverviewMarkdown?: string; technologies?: string[]; /** @description 이 프로젝트가 다루는 주제. 프로젝트 화면의 "주요 주제" 가 이 목록을 그린다. * 화면은 처음부터 이 값을 읽고 있었지만 계약에 자리가 없어 늘 비어 있었다. */ topics?: components["schemas"]["TopicSummary"][]; /** Format: date-time */ updatedAt: string; }; featuredDecision?: components["schemas"]["RelatedEntry"]; activeQuestion?: components["schemas"]["RelatedEntry"]; selectedRecords: components["schemas"]["RelatedEntry"][]; }; ProjectDecisionItem: { /** Format: uuid */ id: string; statement: string; status: string; rationaleSummary?: string; /** Format: date-time */ decidedAt: string; sourceQuestion?: components["schemas"]["RelatedEntry"]; sourceCase?: components["schemas"]["RelatedEntry"]; }; ProjectDecisionPage: { items: components["schemas"]["ProjectDecisionItem"][]; page: components["schemas"]["PageMetadata"]; }; ProjectRecordPage: { items: components["schemas"]["RelatedEntry"][]; page: components["schemas"]["PageMetadata"]; }; ProjectActivityItem: { type: string; title: string; summary?: string; /** Format: date-time */ occurredAt: string; relatedPath?: string; }; ProjectActivityPage: { items: components["schemas"]["ProjectActivityItem"][]; page: components["schemas"]["PageMetadata"]; }; ReleaseListItem: { version: string; title: string; summary: string; /** Format: date */ releasedOn: string; changeTypes: string[]; path: string; }; ReleaseListResponse: { items: components["schemas"]["ReleaseListItem"][]; }; ReleaseDetailResponse: { version: string; title: string; summary: string; /** Format: date */ releasedOn: string; changeTypes: string[]; reasonMarkdown?: string; changesMarkdown: string; userImpactMarkdown?: string; implementationImpactMarkdown?: string; verificationMarkdown: string; knownLimitationsMarkdown?: string; relatedRecords: components["schemas"]["RelatedEntry"][]; }; ProfileResponse: { position: { headline: string; description: string; }; workingModel: { name: string; description: string; }[]; territories: { name: string; currentQuestion?: string; topicPath?: string; }[]; selectedEvidence: components["schemas"]["RelatedEntry"][]; trajectory: { title: string; description: string; }[]; contacts: components["schemas"]["ContactLink"][]; }; SearchResultItem: { contentType: string; title: string; path: string; snippet: string; matchedFields: string[]; primaryTopic?: components["schemas"]["TopicSummary"]; primaryProject?: components["schemas"]["ProjectSummary"]; /** Format: date-time */ publishedAt?: string; /** Format: date-time */ updatedAt?: string; }; SearchResultPage: { query: string; items: components["schemas"]["SearchResultItem"][]; page: components["schemas"]["PageMetadata"]; }; ResponseMeta: { requestId: string; traceId: string; correlationId?: string | null; /** @description offset 페이지네이션 정보는 각 페이지 payload 의 `page` 필드가 소유한다. 이 필드는 백엔드 템플릿의 ResponseMeta record 가 직렬화하는 자리이며 공개 조회에서는 항상 null 이다. */ page?: { [key: string]: unknown; } | null; }; ValidationErrorDetails: { fieldErrors: components["schemas"]["FieldError"][]; }; ApiError: { /** * @description `INTERNAL_ERROR` 는 이 기능이 아니라 스켈레톤의 공통 처리기가 내는 코드다. 계약이 그것까지 열거해야 500 응답이 계약을 벗어나지 않는다. * @enum {string} */ code: "PUBLIC_REQUEST_INVALID" | "PUBLIC_RESOURCE_NOT_FOUND" | "INTERNAL_ERROR"; /** @enum {string} */ category: "VALIDATION" | "AUTH" | "AUTHZ" | "NOT_FOUND" | "CONFLICT" | "RATE_LIMIT" | "TRANSIENT_DEPENDENCY" | "PERMANENT_DEPENDENCY" | "DATA_INTEGRITY" | "INTERNAL"; message: string; retryable: boolean; details?: components["schemas"]["ValidationErrorDetails"] | null; }; ErrorEnvelope: { /** @constant */ success: false; error: components["schemas"]["ApiError"]; meta: components["schemas"]["ResponseMeta"]; }; SiteResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["SiteResponse"]; meta: components["schemas"]["ResponseMeta"]; }; HomeResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["HomeResponse"]; meta: components["schemas"]["ResponseMeta"]; }; KnowledgePageEnvelope: { /** @constant */ success: true; data: components["schemas"]["KnowledgePage"]; meta: components["schemas"]["ResponseMeta"]; }; QuestionPageEnvelope: { /** @constant */ success: true; data: components["schemas"]["QuestionPage"]; meta: components["schemas"]["ResponseMeta"]; }; TopicListResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["TopicListResponse"]; meta: components["schemas"]["ResponseMeta"]; }; TopicDetailResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["TopicDetailResponse"]; meta: components["schemas"]["ResponseMeta"]; }; CaseDetailResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["CaseDetailResponse"]; meta: components["schemas"]["ResponseMeta"]; }; ReferenceDetailResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["ReferenceDetailResponse"]; meta: components["schemas"]["ResponseMeta"]; }; QuestionDetailResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["QuestionDetailResponse"]; meta: components["schemas"]["ResponseMeta"]; }; ProjectListResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["ProjectListResponse"]; meta: components["schemas"]["ResponseMeta"]; }; ProjectDetailResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["ProjectDetailResponse"]; meta: components["schemas"]["ResponseMeta"]; }; ProjectDecisionPageEnvelope: { /** @constant */ success: true; data: components["schemas"]["ProjectDecisionPage"]; meta: components["schemas"]["ResponseMeta"]; }; ProjectRecordPageEnvelope: { /** @constant */ success: true; data: components["schemas"]["ProjectRecordPage"]; meta: components["schemas"]["ResponseMeta"]; }; ProjectActivityPageEnvelope: { /** @constant */ success: true; data: components["schemas"]["ProjectActivityPage"]; meta: components["schemas"]["ResponseMeta"]; }; ReleaseListResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["ReleaseListResponse"]; meta: components["schemas"]["ResponseMeta"]; }; ReleaseDetailResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["ReleaseDetailResponse"]; meta: components["schemas"]["ResponseMeta"]; }; ProfileResponseEnvelope: { /** @constant */ success: true; data: components["schemas"]["ProfileResponse"]; meta: components["schemas"]["ResponseMeta"]; }; SearchResultPageEnvelope: { /** @constant */ success: true; data: components["schemas"]["SearchResultPage"]; meta: components["schemas"]["ResponseMeta"]; }; }; responses: never; parameters: never; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record; export interface operations { getPublicSite: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["SiteResponseEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; getPublicHome: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HomeResponseEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; exploreKnowledge: { parameters: { query?: { type?: "CASE" | "REFERENCE"; topic?: string; project?: string; tag?: string; year?: number; sort?: "PUBLISHED_DESC" | "UPDATED_DESC" | "VERIFIED_DESC"; page?: number; size?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["KnowledgePageEnvelope"]; }; }; /** @description Bad Request */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; exploreQuestions: { parameters: { query?: { status?: "OPEN" | "INVESTIGATING" | "PAUSED" | "RESOLVED"; topic?: string; project?: string; tag?: string; sort?: "UPDATED_DESC" | "OPENED_DESC" | "RESOLVED_DESC"; page?: number; size?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["QuestionPageEnvelope"]; }; }; /** @description Bad Request */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; listPublicTopics: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["TopicListResponseEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; getPublicTopic: { parameters: { query?: never; header?: never; path: { topicSlug: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["TopicDetailResponseEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; getPublicCase: { parameters: { query?: never; header?: never; path: { slug: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["CaseDetailResponseEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; getPublicReference: { parameters: { query?: never; header?: never; path: { slug: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ReferenceDetailResponseEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; getPublicQuestion: { parameters: { query?: never; header?: never; path: { slug: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["QuestionDetailResponseEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; listPublicProjects: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ProjectListResponseEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; getPublicProject: { parameters: { query?: never; header?: never; path: { slug: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ProjectDetailResponseEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; listPublicProjectDecisions: { parameters: { query?: { status?: string; page?: number; size?: number; }; header?: never; path: { slug: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ProjectDecisionPageEnvelope"]; }; }; /** @description Bad Request */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; listPublicProjectRecords: { parameters: { query?: { type?: "CASE" | "REFERENCE" | "QUESTION"; relation?: "PRIMARY" | "RELATED"; page?: number; size?: number; }; header?: never; path: { slug: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ProjectRecordPageEnvelope"]; }; }; /** @description Bad Request */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; listPublicProjectActivities: { parameters: { query?: { page?: number; size?: number; }; header?: never; path: { slug: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ProjectActivityPageEnvelope"]; }; }; /** @description Bad Request */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; listPublicReleases: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ReleaseListResponseEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; getPublicRelease: { parameters: { query?: never; header?: never; path: { version: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ReleaseDetailResponseEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; getPublicProfile: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ProfileResponseEnvelope"]; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; searchPublicResources: { parameters: { query: { q: string; type?: "CASE" | "REFERENCE" | "QUESTION" | "PROJECT" | "RELEASE"; topic?: string; page?: number; size?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["SearchResultPageEnvelope"]; }; }; /** @description Bad Request */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; getPublicMedia: { parameters: { query?: never; header?: never; path: { assetId: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/octet-stream": string; }; }; /** @description Not Found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; /** @description Internal Server Error */ 500: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ErrorEnvelope"]; }; }; }; }; }