/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export interface paths { "/healthcheck": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["healthcheck"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/login": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["login"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/logout": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["logout"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/project/{projectid}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["project"]; put?: never; post: operations["project_update"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/project/{projectid}/new": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["project_new"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/project/{projectid}/reviews": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["reviews"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/project/{projectid}/translations": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["translation_reviews"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/project/{projectid}/user/{userid}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["project_user_update"]; delete: operations["project_user_del"]; options?: never; head?: never; patch?: never; trace?: never; }; "/project/{projectid}/user/{userid}/new": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["project_user_add"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/projects": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["projects"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/review/{projectid}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["review_id"]; put?: never; post?: never; delete: operations["review_id_del"]; options?: never; head?: never; patch?: never; trace?: never; }; "/review/{projectid}/{branch}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["review"]; put?: never; post?: never; delete: operations["review_del"]; options?: never; head?: never; patch?: never; trace?: never; }; "/status": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["status"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/translation/{projectid}/new": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["translation_review_new"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/translation/{translation_reviewid}/strings": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["translation_review_strings"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/user/keys": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["user_keys"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/user/keys/add": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["user_key_add"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/user/keys/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["user_key_get"]; put?: never; post?: never; delete: operations["user_key_del"]; options?: never; head?: never; patch?: never; trace?: never; }; "/users": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["users"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; } export type webhooks = Record; export interface components { schemas: { LocalizationPlaceholder: { /** @example %1$d */ content: string; /** @example 42 */ example: string; /** @example NAME */ id: string; }; LocalizationString: { /** @example Generic greating */ description: string; /** @example strings/strings.grd */ file: string; /** @example IDS_GENERIC_WELCOME */ id: string; /** @example This should be a positive greating */ meaning: string; placeholder_offset: number[]; placeholders: components["schemas"]["LocalizationPlaceholder"][]; /** @example Hello! */ source: string; translations: components["schemas"]["TranslationString"][]; }; LocalizationStrings: { /** * Format: int32 * @example 10 */ limit: number; /** @example true */ more: boolean; /** * Format: int32 * @example 0 */ offset: number; strings: components["schemas"]["LocalizationString"][]; /** * Format: int32 * @example 42 */ total_count: number; }; Login: { password: string; username: string; }; Project: { /** @example Example project */ description: string; /** @example fake */ id: string; /** @example main */ main_branch: string; /** @example ssh://git.example.org/srv/git/ */ remote: string; /** @example b3BlbNNz...AQIDBA== */ remote_key_abbrev: string; /** @example FAKE: Features All Kids Erase */ title: string; users: components["schemas"]["ProjectUserEntry"][]; }; ProjectData: { /** @example Example project */ description?: string | null; /** @example main */ main_branch?: string | null; /** @example ssh://git.example.org/srv/git/ */ remote?: string | null; /** @example b3BlbNNz...AQIDBA== */ remote_key?: string | null; /** @example FAKE: Features All Kids Erase */ title?: string | null; }; ProjectEntry: { /** @example fake */ id: string; /** @example FAKE: Features All Kids Erase */ title: string; }; ProjectUserEntry: { default_role: components["schemas"]["UserReviewRole"]; /** @example false */ maintainer: boolean; user: components["schemas"]["User"]; }; ProjectUserEntryData: { default_role?: null | components["schemas"]["UserReviewRole"]; /** @example false */ maintainer?: boolean | null; }; Projects: { /** * Format: int32 * @example 10 */ limit: number; /** @example false */ more: boolean; /** * Format: int32 * @example 0 */ offset: number; projects: components["schemas"]["ProjectEntry"][]; /** * Format: int32 * @example 1 */ total_count: number; }; Review: { /** @example false */ archived: boolean; /** @example r/user/TASK-123456 */ branch: string; /** @example We're adding more features because features are what we want. */ description: string; /** * Format: int64 * @example 1000 */ id: number; owner: components["schemas"]["User"]; /** * Format: float * @example 37.5 */ progress: number; state: components["schemas"]["ReviewState"]; /** @example FAKE-512: Add more features */ title: string; users: components["schemas"]["ReviewUserEntry"][]; }; ReviewEntry: { /** @example r/user/TASK-123456 */ branch: string; /** * Format: int64 * @example 1000 */ id: number; owner: components["schemas"]["User"]; /** * Format: float * @example 37.5 */ progress: number; state: components["schemas"]["ReviewState"]; /** @example FAKE-512: Add more features */ title: string; }; /** @enum {string} */ ReviewState: "Draft" | "Open" | "Dropped" | "Closed"; ReviewUserEntry: { role: components["schemas"]["UserReviewRole"]; user: components["schemas"]["User"]; }; Reviews: { /** * Format: int32 * @example 10 */ limit: number; /** @example true */ more: boolean; /** * Format: int32 * @example 0 */ offset: number; reviews: components["schemas"]["ReviewEntry"][]; /** * Format: int32 * @example 42 */ total_count: number; }; StatusResponse: { ok: boolean; }; TranslationReview: { /** @example false */ archived: boolean; /** @example d7c502b9c6b833060576a0c4da0287933d603011 */ base: string; /** @example New translations */ description: string; /** @example 2cecdec660a30bf3964cee645d9cee03640ef8dc */ head: string; /** * Format: int64 * @example 1 */ id: number; owner: components["schemas"]["User"]; /** * Format: float * @example 37.5 */ progress: number; state: components["schemas"]["ReviewState"]; /** @example FAKE-512: Update translations */ title: string; users: components["schemas"]["ReviewUserEntry"][]; }; TranslationReviewData: { /** @example d7c502b9c6b833060576a0c4da0287933d603011 */ base?: string | null; /** @example New translations */ description: string; /** @example FAKE-512: Update translations */ title: string; }; TranslationReviewEntry: { /** @example d7c502b9c6b833060576a0c4da0287933d603011 */ base: string; /** @example 2cecdec660a30bf3964cee645d9cee03640ef8dc */ head: string; /** * Format: int64 * @example 1 */ id: number; owner: components["schemas"]["User"]; /** * Format: float * @example 37.5 */ progress: number; state: components["schemas"]["ReviewState"]; /** @example FAKE-512: Update translations */ title: string; }; TranslationReviews: { /** * Format: int32 * @example 10 */ limit: number; /** @example true */ more: boolean; /** * Format: int32 * @example 0 */ offset: number; reviews: components["schemas"]["TranslationReviewEntry"][]; /** * Format: int32 * @example 42 */ total_count: number; }; /** @enum {string} */ TranslationState: "Unreviewed" | "Unchanged" | "Approved" | "Revert" | "Fix"; TranslationString: { comment: string; /** @example sv */ language: string; placeholder_offset: number[]; reviewer?: null | components["schemas"]["User"]; state: components["schemas"]["TranslationState"]; /** @example Hej! */ translation: string; }; User: { /** @example true */ active: boolean; /** @example jsmith */ id: string; /** @example John Smith */ name: string; }; UserKey: { /** @example user@host 1970-01-01 */ comment: string; /** @example AAAAfoobar== */ data: string; /** * Format: int64 * @example 1 */ id: number; /** @example ssh-rsa */ kind: string; }; UserKeyData: { /** @example user@host 1970-01-01 */ comment?: string | null; /** @example AAAAfoobar== */ data: string; /** @example ssh-rsa */ kind: string; }; UserKeys: { keys: components["schemas"]["UserKey"][]; /** * Format: int32 * @example 10 */ limit: number; /** @example false */ more: boolean; /** * Format: int32 * @example 0 */ offset: number; /** * Format: int32 * @example 2 */ total_count: number; }; /** @enum {string} */ UserReviewRole: "Reviewer" | "Watcher" | "None"; Users: { /** * Format: int32 * @example 10 */ limit: number; /** @example true */ more: boolean; /** * Format: int32 * @example 0 */ offset: number; /** * Format: int32 * @example 42 */ total_count: number; users: components["schemas"]["User"][]; }; }; responses: never; parameters: never; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record; export interface operations { healthcheck: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description All good */ 200: { headers: { [name: string]: unknown; }; content?: never; }; }; }; login: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody: { content: { "application/x-www-form-urlencoded": components["schemas"]["Login"]; }; }; responses: { /** @description Login successful */ 200: { headers: { [name: string]: unknown; }; content: { /** @example { * "ok": true * } */ "application/json": components["schemas"]["StatusResponse"]; }; }; /** @description Login failed */ 401: { headers: { [name: string]: unknown; }; content: { /** @example { * "error": "Unauthorized", * "ok": false * } */ "application/json": components["schemas"]["StatusResponse"]; }; }; }; }; logout: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Logout successful */ 200: { headers: { [name: string]: unknown; }; content: { /** @example { * "ok": true * } */ "application/json": components["schemas"]["StatusResponse"]; }; }; }; }; project: { parameters: { query?: never; header?: never; path: { projectid: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description Get project */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Project"]; }; }; /** @description No such project */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; project_update: { parameters: { query?: never; header?: never; path: { projectid: string; }; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["ProjectData"]; }; }; responses: { /** @description Project updated */ 200: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Not maintainer of project */ 401: { headers: { [name: string]: unknown; }; content?: never; }; /** @description No such project */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; project_new: { parameters: { query?: never; header?: never; path: { projectid: string; }; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["ProjectData"]; }; }; responses: { /** @description Project created */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Project"]; }; }; /** @description Project with id already exists */ 409: { headers: { [name: string]: unknown; }; content?: never; }; }; }; reviews: { parameters: { query?: { limit?: number; offset?: number; }; header?: never; path: { projectid: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description Get all reviews for project */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Reviews"]; }; }; /** @description No such project */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; translation_reviews: { parameters: { query?: { limit?: number; offset?: number; }; header?: never; path: { projectid: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description Get all translation reviews for project */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["TranslationReviews"]; }; }; /** @description No such project */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; project_user_update: { parameters: { query?: never; header?: never; path: { projectid: string; userid: string; }; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["ProjectUserEntryData"]; }; }; responses: { /** @description User updated in project */ 200: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Not maintainer of project */ 401: { headers: { [name: string]: unknown; }; content?: never; }; /** @description No such project, no such user or user not in project */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; project_user_del: { parameters: { query?: never; header?: never; path: { projectid: string; userid: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description User removed from project */ 200: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Not maintainer of project */ 401: { headers: { [name: string]: unknown; }; content?: never; }; /** @description No such project, no such user or user not in project */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; project_user_add: { parameters: { query?: never; header?: never; path: { projectid: string; userid: string; }; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["ProjectUserEntryData"]; }; }; responses: { /** @description User added to project */ 200: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Not maintainer of project */ 401: { headers: { [name: string]: unknown; }; content?: never; }; /** @description No such project */ 404: { headers: { [name: string]: unknown; }; content?: never; }; /** @description User already in project */ 409: { headers: { [name: string]: unknown; }; content?: never; }; }; }; projects: { parameters: { query?: { limit?: number; offset?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Get all projects */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Projects"]; }; }; }; }; review_id: { parameters: { query: { reviewid: number; }; header?: never; path: { projectid: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description Get review */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Review"]; }; }; /** @description No such review */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; review_id_del: { parameters: { query: { reviewid: number; }; header?: never; path: { projectid: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description Remove deleted */ 200: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Review is open or closed */ 400: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Not owner of review or maintainer of project */ 401: { headers: { [name: string]: unknown; }; content?: never; }; /** @description No such review */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; review: { parameters: { query?: never; header?: never; path: { branch: string; projectid: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description Get review */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Review"]; }; }; /** @description No such review */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; review_del: { parameters: { query?: never; header?: never; path: { branch: string; projectid: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description Review deleted */ 200: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Review is open or closed */ 400: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Not owner of review or maintainer of project */ 401: { headers: { [name: string]: unknown; }; content?: never; }; /** @description No such review */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; status: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Current status */ 200: { headers: { [name: string]: unknown; }; content: { /** @example { * "ok": true * } */ "application/json": components["schemas"]["StatusResponse"]; }; }; /** @description Not authorized */ 401: { headers: { [name: string]: unknown; }; content: { /** @example { * "error": "Unauthorized", * "ok": false * } */ "application/json": components["schemas"]["StatusResponse"]; }; }; }; }; translation_review_new: { parameters: { query?: never; header?: never; path: { projectid: string; }; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["TranslationReviewData"]; }; }; responses: { /** @description Translation review created */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["TranslationReview"]; }; }; }; }; translation_review_strings: { parameters: { query?: { limit?: number; offset?: number; }; header?: never; path: { translation_reviewid: number; }; cookie?: never; }; requestBody?: never; responses: { /** @description Get all strings for a translation review */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["LocalizationStrings"]; }; }; /** @description No such translation review */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; user_keys: { parameters: { query?: { limit?: number; offset?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Get all keys for user */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["UserKeys"]; }; }; }; }; user_key_add: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["UserKeyData"]; }; }; responses: { /** @description Key added to current user */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["UserKey"]; }; }; /** @description Key too large or invalid */ 400: { headers: { [name: string]: unknown; }; content?: never; }; }; }; user_key_get: { parameters: { query?: never; header?: never; path: { id: number; }; cookie?: never; }; requestBody?: never; responses: { /** @description User key */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["UserKey"]; }; }; /** @description No such key */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; user_key_del: { parameters: { query?: never; header?: never; path: { id: number; }; cookie?: never; }; requestBody?: never; responses: { /** @description Key removed from current user */ 200: { headers: { [name: string]: unknown; }; content?: never; }; /** @description No such key for current user */ 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }; users: { parameters: { query?: { limit?: number; offset?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Get all users */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Users"]; }; }; }; }; }