Files
task-stream/apps/mcp/src/app/api/taskstream.schema.ts
Josep Piguillem efa06a0723 feat: notifications in the app and, optionally, by e-mail
Derived from events and kept per person: whoever a ticket is assigned to,
whoever reports or works on it when it moves, fails QA or gets a comment,
and whoever joins a project. Never about what you did yourself, once per
event. They arrive live through a subscription to a bell in the header,
and are copied by e-mail to whoever turns it on when SMTP_URL is set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:19:59 +02:00

4910 lines
154 KiB
TypeScript

/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
export interface paths {
"/api/health": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** API and databases status */
get: operations["HealthController_check"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/auth/config": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** How to sign in with Pireon (null when not configured) */
get: operations["AuthController_config"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/auth/token": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Exchange a grant for Pireon tokens (proxy of Pireon /oauth/token)
* @description For browsers (Pireon has no CORS) and Swagger UI: adds the client secret server-side. Apps with their own Pireon OAuth client can get tokens from Pireon directly; any valid Pireon access token is accepted by this API.
*/
post: operations["AuthController_token"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/users/me": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** The user behind the access token */
get: operations["UsersController_me"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/users": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Search Pireon users (to assign tickets or add members)
* @description Needs the `users:read` scope in the access token.
*/
get: operations["UsersController_search"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/users/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** A Pireon user */
get: operations["UsersController_findOne"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/webhooks/pireon": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Pireon events (called by Pireon, not by apps)
* @description `user.deactivated` closes the user's sessions; `token.revoked` forgets the token. Disabled unless PIREON_WEBHOOK_SECRET is set.
*/
post: operations["PireonWebhookController_receive"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Projects where I am a member */
get: operations["ProjectsController_mine"];
put?: never;
/** Create a project (you become its owner) */
post: operations["ProjectsController_create"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{project}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** A project with its members and settings */
get: operations["ProjectsController_findOne"];
put?: never;
post?: never;
/**
* Delete a project (owner only)
* @description Deletes the project and, right after (asynchronously, through a saga), its tickets, comments and releases; links from tickets of other projects are removed and the key becomes free. Cannot be undone from the API. `confirm` must be the project key.
*/
delete: operations["ProjectsController_remove"];
options?: never;
head?: never;
/** Rename, describe or make public/private a project (owner/admin) */
patch: operations["ProjectsController_update"];
trace?: never;
};
"/api/projects/{project}/settings": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/**
* Statuses, transitions, ticket types and areas (owner/admin)
* @description Replaces the whole configuration (send what GET /projects/{project} returns, changed). Values can be added, renamed, reordered or archived, never removed: tickets and statistics keep referring to them.
*/
put: operations["ProjectsController_updateSettings"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{project}/board": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Kanban board: one column per status */
get: operations["ProjectsController_board"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{project}/stats": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Tracking dashboard: counts by status, type, person… */
get: operations["ProjectsController_stats"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{project}/analytics": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Statistics of the last `days` days
* @description Created vs resolved per week, cumulative flow per day, cycle and lead time, throughput per person and QA pass/fail.
*/
get: operations["ProjectsController_analytics"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{project}/activity": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Activity feed (newest first) */
get: operations["ProjectsController_activity"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{project}/members": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Add a Pireon user to the project (owner/admin)
* @description The user must exist and be active in Pireon.
*/
post: operations["ProjectsController_addMember"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{project}/members/{userId}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Remove a member (owner/admin, or yourself to leave) */
delete: operations["ProjectsController_removeMember"];
options?: never;
head?: never;
/** Change a member's role (owner/admin) */
patch: operations["ProjectsController_changeMemberRole"];
trace?: never;
};
"/api/me/issues": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* My work: tickets across all my projects
* @description Assigned to me by default; with assignedToMe=false, any ticket of my projects (e.g. waiting for QA).
*/
get: operations["IssuesController_mine"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{project}/issues": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Search the tickets of a project */
get: operations["IssuesController_search"];
put?: never;
/**
* Create a ticket
* @description Starts in the project's first active TODO-category status (BACKLOG by default). The response carries its key (e.g. WEB-13).
*/
post: operations["IssuesController_create"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/issues/{issue}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** A ticket */
get: operations["IssuesController_findOne"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Edit title, description, type, priority, area, labels… */
patch: operations["IssuesController_update"];
trace?: never;
};
"/api/issues/{issue}/status": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/**
* Move the ticket through the workflow (incl. QA)
* @description Only the transitions in `allowedTransitions` are accepted (422 otherwise). QA_FAILED and CANCELLED need a reason.
*/
put: operations["IssuesController_changeStatus"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/issues/{issue}/assignee": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/** Assign to a project member (null to unassign) */
put: operations["IssuesController_assign"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/issues/{issue}/release": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/** Put the ticket in a planned release (null takes it out) */
put: operations["IssuesController_setRelease"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/issues/{issue}/links": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Relate tickets (FE ↔ BE ↔ QA)
* @description e.g. WEB-3 DEPENDS_ON API-7, WEB-9 TESTS WEB-3. May cross projects.
*/
post: operations["IssuesController_link"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/issues/{issue}/links/{type}/{target}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Remove a relation */
delete: operations["IssuesController_unlink"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/issues/{issue}/comments": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Comments of the ticket (oldest first) */
get: operations["IssuesController_listComments"];
put?: never;
/** Comment on the ticket */
post: operations["IssuesController_addComment"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/issues/{issue}/history": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** History of the ticket (newest first) */
get: operations["IssuesController_history"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/issues/{issue}/attachments": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Attach a file to a ticket (members)
* @description Multipart with the file as `file` and, optionally, `commentId` to place it under a comment. Up to ATTACHMENTS_MAX_MB megabytes (25 by default) and 50 files per ticket.
*/
post: operations["AttachmentsController_attach"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/issues/{issue}/attachments/{attachmentId}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Download one of a ticket's files */
get: operations["AttachmentsController_download"];
put?: never;
post?: never;
/** Remove a file (whoever uploaded it, or an owner/admin) */
delete: operations["AttachmentsController_remove"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/comments/{commentId}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Delete a comment (author or project admin) */
delete: operations["CommentsController_delete"];
options?: never;
head?: never;
/** Edit a comment (author only) */
patch: operations["CommentsController_edit"];
trace?: never;
};
"/api/me/releases": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Planned releases of all my projects, soonest target date first */
get: operations["ReleasesController_upcoming"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/projects/{project}/releases": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Releases of a project */
get: operations["ReleasesController_list"];
put?: never;
/** Plan a release (owner/admin) */
post: operations["ReleasesController_create"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/releases/{releaseId}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** A release */
get: operations["ReleasesController_findOne"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Rename, describe or move the target date */
patch: operations["ReleasesController_update"];
trace?: never;
};
"/api/releases/{releaseId}/progress": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Finished tickets out of the total */
get: operations["ReleasesController_progress"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/releases/{releaseId}/burnup": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Burnup: tickets in the release and finished ones, day by day */
get: operations["ReleasesController_burnup"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/releases/{releaseId}/issues": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Tickets included in the release */
get: operations["ReleasesController_issuesOf"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/releases/{releaseId}/publish": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Ship the release
* @description Fails (422) while it has unfinished tickets unless `force` is true.
*/
post: operations["ReleasesController_publish"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/releases/{releaseId}/archive": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Archive a planned release (its tickets leave it) */
post: operations["ReleasesController_archive"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/explore/projects": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Public projects (no token needed)
* @description Their board, tickets, comments, releases, activity and statistics can be read without a token too.
*/
get: operations["ExploreController_publicProjects"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/me/notifications": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** My notifications, newest first */
get: operations["NotificationsController_mine"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/me/notifications/read": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Mark notifications as read (all of them without `ids`) */
post: operations["NotificationsController_markRead"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/me/notification-settings": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Whether I get copies by e-mail */
get: operations["NotificationsController_settings"];
/** Turn e-mail copies on or off */
put: operations["NotificationsController_updateSettings"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
}
export type webhooks = Record<string, never>;
export interface components {
schemas: {
AuthorizationConfigDto: {
/** @example https://oauth.pireon.dev/oauth/authorize */
authorizeUrl: string;
/** @description Public id of the authorization_code client ("Sign in with Pireon"); null when only email + password is configured */
clientId: string | null;
/**
* @example [
* "users:read"
* ]
*/
scopes: string[];
/** @description Whether email + password sign-in is allowed */
passwordGrant: boolean;
};
IssueTokenDto: {
/** @enum {string} */
grant_type: "authorization_code" | "password" | "refresh_token";
/** @description authorization_code: code returned by Pireon */
code?: string;
/** @description authorization_code: PKCE verifier */
code_verifier?: string;
/** @description authorization_code: redirect URI used to authorize */
redirect_uri?: string;
/** @description password: Pireon email */
username?: string;
/** @description password: Pireon password */
password?: string;
/** @description refresh_token */
refresh_token?: string;
};
TokenResponseDto: {
access_token: string;
refresh_token: string | null;
/** @description Seconds */
expires_in: number;
/** @example Bearer */
token_type: string;
};
MeDto: {
/** @description Pireon user id */
id: string;
name: string;
email: string;
isActive: boolean;
/** @description Global roles in Pireon */
roles: string[];
/** @description Roles inside the task-stream OAuth client */
appRoles: string[];
};
ApiErrorDto: {
/** @example 404 */
statusCode: number;
/**
* @description Domain error code
* @enum {string}
*/
code?: "NOT_FOUND" | "FORBIDDEN" | "VALIDATION" | "CONFLICT" | "BUSINESS_RULE";
/**
* @description Human message (a list of messages for invalid input)
* @example Issue not found
*/
message: string | string[];
};
UserDto: {
/** @description Pireon user id */
id: string;
name: string;
email: string;
isActive: boolean;
};
UserRefDto: {
/** @description Pireon user id */
id: string;
name: string;
};
/** @enum {string} */
ProjectRole: "OWNER" | "ADMIN" | "MEMBER" | "VIEWER";
ProjectMemberDto: {
user: components["schemas"]["UserRefDto"];
role: components["schemas"]["ProjectRole"];
};
/** @enum {string} */
StatusCategory: "TODO" | "IN_PROGRESS" | "QA" | "DONE" | "CANCELLED";
/** @enum {string} */
SettingColor: "slate" | "stone" | "violet" | "blue" | "sky" | "teal" | "green" | "amber" | "orange" | "red" | "pink";
WorkflowStatusDto: {
/**
* @description Stable id on tickets
* @example IN_REVIEW
*/
id: string;
/** @example En revisión */
name: string;
category: components["schemas"]["StatusCategory"];
color: components["schemas"]["SettingColor"];
/** @description Entering it needs a reason */
requiresReason: boolean;
/** @description No new tickets or transitions into it */
archived: boolean;
};
StatusTransitionsDto: {
/** @example IN_QA */
from: string;
/**
* @example [
* "DONE",
* "QA_FAILED"
* ]
*/
to: string[];
};
/** @enum {string} */
TypeIcon: "bug" | "feature" | "palette" | "task" | "qa" | "flag" | "star-fill" | "rocket" | "document" | "light-bulb" | "key" | "support";
IssueTypeOptionDto: {
/** @example BUG */
id: string;
/** @example Bug */
name: string;
icon: components["schemas"]["TypeIcon"];
color: components["schemas"]["SettingColor"];
archived: boolean;
};
AreaOptionDto: {
/** @example FRONTEND */
id: string;
/** @example Frontend */
name: string;
archived: boolean;
};
ProjectSettingsDto: {
/** @description In board order */
statuses: components["schemas"]["WorkflowStatusDto"][];
transitions: components["schemas"]["StatusTransitionsDto"][];
issueTypes: components["schemas"]["IssueTypeOptionDto"][];
areas: components["schemas"]["AreaOptionDto"][];
};
ProjectDto: {
/** Format: uuid */
id: string;
/**
* @description Prefix of the ticket keys
* @example WEB
*/
key: string;
/** @example Checkout revamp */
name: string;
description: string | null;
/** @description Readable by anyone, also without a token */
isPublic: boolean;
owner: components["schemas"]["UserRefDto"];
members: components["schemas"]["ProjectMemberDto"][];
settings: components["schemas"]["ProjectSettingsDto"];
/** Format: date-time */
createdAt: string;
/** Format: date-time */
updatedAt: string;
/** @description Version of the aggregate (event count) */
version: number;
};
CreateProjectDto: {
/**
* @description 2-10 letters/digits starting with a letter → tickets WEB-1, WEB-2…
* @example WEB
*/
key: string;
/** @example Checkout revamp */
name: string;
description?: string | null;
/**
* @description Anyone can read it without signing in (board, tickets, comments, releases, activity, statistics)
* @default false
*/
isPublic: boolean;
};
CommandResultDto: {
/** @description Id of the aggregate written */
id: string;
/**
* @description Human key when one was assigned (project or issue)
* @example WEB-13
*/
key?: string;
/** @description Version after the write. Writes are acknowledged at once and the read model catches up asynchronously: a GET may briefly return the previous version (or 404 right after a create). */
version: number;
};
UpdateProjectDto: {
/** @example Checkout revamp */
name?: string;
description?: string | null;
/**
* @description Anyone can read it without signing in (board, tickets, comments, releases, activity, statistics)
* @default false
*/
isPublic: boolean;
};
WorkflowStatusBodyDto: {
/**
* @description Never change an existing id
* @example IN_REVIEW
*/
id: string;
/** @example En revisión */
name: string;
category: components["schemas"]["StatusCategory"];
color: components["schemas"]["SettingColor"];
/** @default false */
requiresReason: boolean;
/** @default false */
archived: boolean;
};
StatusTransitionsBodyDto: {
/** @example IN_QA */
from: string;
/**
* @example [
* "DONE",
* "QA_FAILED"
* ]
*/
to: string[];
};
IssueTypeOptionBodyDto: {
/** @example SPIKE */
id: string;
/** @example Spike */
name: string;
icon: components["schemas"]["TypeIcon"];
color: components["schemas"]["SettingColor"];
/** @default false */
archived: boolean;
};
AreaOptionBodyDto: {
/** @example DATA */
id: string;
/** @example Datos */
name: string;
/** @default false */
archived: boolean;
};
ProjectSettingsBodyDto: {
/** @description In board order. Values cannot be removed: archive them instead. */
statuses: components["schemas"]["WorkflowStatusBodyDto"][];
transitions: components["schemas"]["StatusTransitionsBodyDto"][];
issueTypes: components["schemas"]["IssueTypeOptionBodyDto"][];
areas: components["schemas"]["AreaOptionBodyDto"][];
};
/** @enum {string} */
IssuePriority: "LOWEST" | "LOW" | "MEDIUM" | "HIGH" | "CRITICAL";
ReleaseRefDto: {
/** Format: uuid */
id: string;
/** @example v1.4.0 */
name: string;
};
/** @enum {string} */
IssueLinkType: "BLOCKS" | "DEPENDS_ON" | "TESTS" | "DUPLICATES" | "RELATES_TO";
/**
* @description OUTWARD: this issue → other. INWARD: other → this issue.
* @enum {string}
*/
LinkDirection: "OUTWARD" | "INWARD";
IssueLinkDto: {
type: components["schemas"]["IssueLinkType"];
/** @description OUTWARD: this issue → other. INWARD: other → this issue. */
direction: components["schemas"]["LinkDirection"];
/** Format: uuid */
issueId: string;
/** @example WEB-3 */
issueKey: string;
};
AttachmentDto: {
/** Format: uuid */
id: string;
/** @example captura-login.png */
fileName: string;
/** @example image/png */
mimeType: string;
/**
* @description Bytes
* @example 48213
*/
size: number;
uploadedBy: components["schemas"]["UserRefDto"];
/** Format: date-time */
uploadedAt: string;
/**
* Format: uuid
* @description The comment it was attached to, if any
*/
commentId: string | null;
};
IssueDto: {
/** Format: uuid */
id: string;
/** Format: uuid */
projectId: string;
/** @example WEB */
projectKey: string;
/** @example 12 */
number: number;
/**
* @description Human key
* @example WEB-12
*/
key: string;
/**
* @description A ticket type id
* @example BUG
*/
type: string;
/** @example FRONTEND */
area: string | null;
title: string;
description: string | null;
/**
* @description A status id
* @example IN_PROGRESS
*/
status: string;
statusCategory: components["schemas"]["StatusCategory"];
/** @description Statuses this ticket can move to next (project's workflow) */
allowedTransitions: string[];
priority: components["schemas"]["IssuePriority"];
reporter: components["schemas"]["UserRefDto"];
assignee: components["schemas"]["UserRefDto"] | null;
release: components["schemas"]["ReleaseRefDto"] | null;
labels: string[];
/** @description Figma frame */
figmaUrl: string | null;
storyPoints: number | null;
/** Format: date */
dueDate: string | null;
links: components["schemas"]["IssueLinkDto"][];
attachments: components["schemas"]["AttachmentDto"][];
commentCount: number;
/** Format: date-time */
createdAt: string;
/** Format: date-time */
updatedAt: string;
version: number;
};
BoardColumnDto: {
/** @example IN_PROGRESS */
status: string;
issues: components["schemas"]["IssueDto"][];
/** @description Tickets in the column (may exceed `issues`) */
total: number;
};
CountByStatusDto: {
/**
* @description Status id
* @example IN_PROGRESS
*/
key: string;
count: number;
};
CountByKeyDto: {
/** @description Type, priority or area ("NONE" = unset) */
key: string;
count: number;
};
CountByAssigneeDto: {
/** @description Null = unassigned */
user: components["schemas"]["UserRefDto"] | null;
count: number;
};
ProjectStatsDto: {
total: number;
/** @description Not done nor cancelled */
open: number;
byStatus: components["schemas"]["CountByStatusDto"][];
byType: components["schemas"]["CountByKeyDto"][];
byPriority: components["schemas"]["CountByKeyDto"][];
byArea: components["schemas"]["CountByKeyDto"][];
/** @description Open tickets per person */
byAssignee: components["schemas"]["CountByAssigneeDto"][];
};
CreatedResolvedDto: {
/**
* Format: date
* @description Monday of the week
*/
week: string;
created: number;
resolved: number;
};
FlowSeriesDto: {
/** @example IN_PROGRESS */
status: string;
/** @description One value per date */
counts: number[];
};
CumulativeFlowDto: {
dates: string[];
series: components["schemas"]["FlowSeriesDto"][];
};
DurationStatsDto: {
count: number;
averageDays: number | null;
/** @description 85% of tickets take at most this long */
p85Days: number | null;
};
ThroughputDto: {
/** Format: date */
week: string;
user: components["schemas"]["UserRefDto"] | null;
count: number;
};
QaStatsDto: {
/** @description Left QA to a done status */
passed: number;
/** @description Left QA back to work */
failed: number;
failureRate: number | null;
};
ProjectAnalyticsDto: {
/** Format: date-time */
from: string;
/** Format: date-time */
to: string;
createdVsResolved: components["schemas"]["CreatedResolvedDto"][];
/** @description Tickets in each status at the end of every day */
cumulativeFlow: components["schemas"]["CumulativeFlowDto"];
/** @description Start of work → done */
cycleTime: components["schemas"]["DurationStatsDto"];
/** @description Creation → done */
leadTime: components["schemas"]["DurationStatsDto"];
throughput: components["schemas"]["ThroughputDto"][];
qa: components["schemas"]["QaStatsDto"];
};
ActivityDto: {
id: string;
/** @example IssueStatusChanged */
type: string;
/** Format: uuid */
projectId: string;
issueId: string | null;
/** @example WEB-12 */
issueKey: string | null;
actor: components["schemas"]["UserRefDto"];
/** @example Ana movió WEB-12 de En curso a En revisión */
summary: string;
/** Format: date-time */
occurredAt: string;
};
AddMemberDto: {
/** @description Pireon user id (see GET /users) */
userId: string;
/** @default MEMBER */
role: components["schemas"]["ProjectRole"];
};
ChangeMemberRoleDto: {
role: components["schemas"]["ProjectRole"];
};
IssuePageDto: {
items: components["schemas"]["IssueDto"][];
/** @description Total matches (for pagination) */
total: number;
};
CreateIssueDto: {
description?: string | null;
/**
* @description An area id of the project's settings
* @example FRONTEND
*/
area?: string | null;
priority?: components["schemas"]["IssuePriority"];
labels?: string[];
/** @description Figma frame (https) for UI changes */
figmaUrl?: string | null;
storyPoints?: number | null;
/** Format: date */
dueDate?: string | null;
/**
* @description A ticket type id of the project's settings
* @example BUG
*/
type: string;
/** @example El botón de pagar no responde en Safari */
title: string;
/** @description Pireon user id */
assigneeId?: string | null;
/** Format: uuid */
releaseId?: string | null;
};
UpdateIssueDto: {
description?: string | null;
/**
* @description An area id of the project's settings
* @example FRONTEND
*/
area?: string | null;
priority?: components["schemas"]["IssuePriority"];
labels?: string[];
/** @description Figma frame (https) for UI changes */
figmaUrl?: string | null;
storyPoints?: number | null;
/** Format: date */
dueDate?: string | null;
/**
* @description A ticket type id
* @example FEATURE
*/
type?: string;
title?: string;
};
ChangeStatusDto: {
/**
* @description A status id of the project's settings, among the ticket's allowedTransitions
* @example IN_REVIEW
*/
status: string;
/** @description Required by statuses with requiresReason (e.g. QA_FAILED) */
reason?: string | null;
};
AssignIssueDto: {
/** @description Pireon user id of a project member, or null to unassign */
assigneeId: string | null;
};
SetIssueReleaseDto: {
/**
* Format: uuid
* @description Planned release, or null to take the ticket out
*/
releaseId: string | null;
};
LinkIssueDto: {
type: components["schemas"]["IssueLinkType"];
/**
* @description Other ticket: id or key
* @example API-3
*/
targetIssue: string;
};
CommentDto: {
/** Format: uuid */
id: string;
/** Format: uuid */
issueId: string;
author: components["schemas"]["UserRefDto"];
body: string;
/** Format: date-time */
createdAt: string;
/** Format: date-time */
editedAt: string | null;
version: number;
};
CommentPageDto: {
items: components["schemas"]["CommentDto"][];
total: number;
};
CommentBodyDto: {
/** @example Reproducido en Safari 17. */
body: string;
};
AttachFileDto: {
/**
* Format: binary
* @description The file
*/
file: string;
/**
* Format: uuid
* @description One of the ticket's comments, to show the file under it
*/
commentId?: string;
};
/** @enum {string} */
ReleaseStatus: "PLANNED" | "RELEASED" | "ARCHIVED";
ReleaseDto: {
/** Format: uuid */
id: string;
/** Format: uuid */
projectId: string;
/** @example v1.4.0 */
name: string;
description: string | null;
/** Format: date */
targetDate: string | null;
status: components["schemas"]["ReleaseStatus"];
/** Format: date-time */
releasedAt: string | null;
/** Format: date-time */
createdAt: string;
version: number;
};
CreateReleaseDto: {
/** @example v1.4.0 */
name: string;
description?: string | null;
/**
* Format: date
* @example 2026-11-14
*/
targetDate?: string | null;
};
UpdateReleaseDto: {
/** @example v1.4.0 */
name?: string;
description?: string | null;
/**
* Format: date
* @example 2026-11-14
*/
targetDate?: string | null;
};
ReleaseProgressDto: {
total: number;
finished: number;
percent: number;
byStatus: components["schemas"]["CountByStatusDto"][];
};
ReleaseBurnupDto: {
/** Format: uuid */
releaseId: string;
/** Format: date */
targetDate: string | null;
dates: string[];
/** @description Tickets in the release (not cancelled) */
scope: number[];
done: number[];
};
PublishReleaseDto: {
/**
* @description Publish even with unfinished tickets
* @default false
*/
force: boolean;
};
Object: Record<string, never>;
/** @enum {string} */
NotificationKind: "ASSIGNED" | "STATUS_CHANGED" | "QA_FAILED" | "COMMENTED" | "MENTIONED" | "WATCHED" | "ADDED_TO_PROJECT" | "REMINDER";
NotificationDto: {
id: string;
kind: components["schemas"]["NotificationKind"];
/** Format: uuid */
projectId: string;
/** @example WEB */
projectKey: string;
/** Format: uuid */
issueId: string | null;
/** @example WEB-12 */
issueKey: string | null;
actor: components["schemas"]["UserRefDto"];
/** @example Ana te asignó WEB-12: Login roto en Safari */
summary: string;
/**
* Format: date-time
* @description Null: unread
*/
readAt: string | null;
/** Format: date-time */
createdAt: string;
};
MyNotificationsDto: {
items: components["schemas"]["NotificationDto"][];
/** @description All my unread ones, not just these */
unread: number;
};
MarkNotificationsReadDto: {
/** @description Omit to mark all of them */
ids?: string[];
};
NotificationSettingsResponseDto: {
/** @description Copies by e-mail */
email: boolean;
/** @description Whether this installation can send e-mail */
emailAvailable: boolean;
};
NotificationSettingsDto: {
/** @description Copies by e-mail */
email: boolean;
};
};
responses: never;
parameters: never;
requestBodies: never;
headers: never;
pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
HealthController_check: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": unknown;
};
};
/** @description A database is down */
503: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
AuthController_config: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AuthorizationConfigDto"];
};
};
};
};
AuthController_token: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["IssueTokenDto"];
"application/x-www-form-urlencoded": components["schemas"]["IssueTokenDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["TokenResponseDto"];
};
};
/** @description Pireon rejected the grant */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
UsersController_me: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MeDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
UsersController_search: {
parameters: {
query?: {
/** @description Name or email */
search?: string;
limit?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserDto"][];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
UsersController_findOne: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
PireonWebhookController_receive: {
parameters: {
query?: never;
header: {
"x-webhook-signature": string;
/** @description HMAC-SHA256 of the raw body with PIREON_WEBHOOK_SECRET (hex) */
"X-Webhook-Signature": string;
};
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Processed */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Missing or invalid signature */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
ProjectsController_mine: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProjectDto"][];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_create: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CreateProjectDto"];
};
};
responses: {
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_findOne: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProjectDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_remove: {
parameters: {
query: {
/** @description The project key, to confirm the deletion */
confirm: string;
};
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_update: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["UpdateProjectDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_updateSettings: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ProjectSettingsBodyDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_board: {
parameters: {
query?: {
/** @description Only this release */
releaseId?: string;
/** @description Only this person (Pireon user id) */
assigneeId?: string;
/** @description An area id */
area?: string;
perColumn?: number;
};
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["BoardColumnDto"][];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_stats: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProjectStatsDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_analytics: {
parameters: {
query?: {
days?: number;
};
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProjectAnalyticsDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_activity: {
parameters: {
query?: {
/** @description Only this ticket */
issueId?: string;
limit?: number;
/** @description Cursor: entries older than this date */
before?: string;
};
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ActivityDto"][];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_addMember: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["AddMemberDto"];
};
};
responses: {
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_removeMember: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
userId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ProjectsController_changeMemberRole: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
userId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ChangeMemberRoleDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_mine: {
parameters: {
query?: {
limit?: number;
offset?: number;
/** @description true: tickets assigned to me. false: any ticket of my projects (e.g. ?assignedToMe=false&category=QA) */
assignedToMe?: boolean;
/** @description Status ids. Repeat the parameter or separate with commas */
status?: string[];
/** @description Whatever each project calls its statuses */
category?: components["schemas"]["StatusCategory"][];
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["IssuePageDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_search: {
parameters: {
query?: {
limit?: number;
offset?: number;
/** @description Status ids. Repeat the parameter or separate with commas */
status?: string[];
category?: components["schemas"]["StatusCategory"][];
/** @description Ticket type ids */
type?: string[];
/** @description Area ids */
area?: string[];
priority?: components["schemas"]["IssuePriority"][];
/** @description Pireon user id */
assigneeId?: string;
/** @description Only tickets without assignee */
unassigned?: boolean;
releaseId?: string;
label?: string[];
/** @description Matches key, title or description */
search?: string;
};
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["IssuePageDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_create: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CreateIssueDto"];
};
};
responses: {
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_findOne: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["IssueDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_update: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["UpdateIssueDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_changeStatus: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ChangeStatusDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_assign: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["AssignIssueDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_setRelease: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["SetIssueReleaseDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_link: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["LinkIssueDto"];
};
};
responses: {
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_unlink: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
type: components["schemas"]["IssueLinkType"];
/** @description Other ticket: id or key */
target: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_listComments: {
parameters: {
query?: {
limit?: number;
offset?: number;
};
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommentPageDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_addComment: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CommentBodyDto"];
};
};
responses: {
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
IssuesController_history: {
parameters: {
query?: {
limit?: number;
offset?: number;
};
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ActivityDto"][];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
AttachmentsController_attach: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
};
cookie?: never;
};
requestBody: {
content: {
"multipart/form-data": components["schemas"]["AttachFileDto"];
};
};
responses: {
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
AttachmentsController_download: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
attachmentId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The file */
200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/octet-stream": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/octet-stream": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/octet-stream": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/octet-stream": components["schemas"]["ApiErrorDto"];
};
};
};
};
AttachmentsController_remove: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Ticket id or key */
issue: string;
attachmentId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
CommentsController_delete: {
parameters: {
query?: never;
header?: never;
path: {
commentId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
CommentsController_edit: {
parameters: {
query?: never;
header?: never;
path: {
commentId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CommentBodyDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_upcoming: {
parameters: {
query?: {
limit?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ReleaseDto"][];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_list: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ReleaseDto"][];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_create: {
parameters: {
query?: never;
header?: never;
path: {
/** @description Project id or key */
project: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CreateReleaseDto"];
};
};
responses: {
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_findOne: {
parameters: {
query?: never;
header?: never;
path: {
releaseId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ReleaseDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_update: {
parameters: {
query?: never;
header?: never;
path: {
releaseId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["UpdateReleaseDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_progress: {
parameters: {
query?: never;
header?: never;
path: {
releaseId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ReleaseProgressDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_burnup: {
parameters: {
query?: never;
header?: never;
path: {
releaseId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ReleaseBurnupDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_issuesOf: {
parameters: {
query?: {
limit?: number;
offset?: number;
};
header?: never;
path: {
releaseId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["IssuePageDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_publish: {
parameters: {
query?: never;
header?: never;
path: {
releaseId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PublishReleaseDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ReleasesController_archive: {
parameters: {
query?: never;
header?: never;
path: {
releaseId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CommandResultDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
ExploreController_publicProjects: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProjectDto"][];
};
};
};
};
NotificationsController_mine: {
parameters: {
query?: {
/** @description Only unread ones */
unreadOnly?: components["schemas"]["Object"];
limit?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MyNotificationsDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
NotificationsController_markRead: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["MarkNotificationsReadDto"];
};
};
responses: {
/** @description Done */
200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
NotificationsController_settings: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["NotificationSettingsResponseDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
NotificationsController_updateSettings: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["NotificationSettingsDto"];
};
};
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["NotificationSettingsResponseDto"];
};
};
/** @description Invalid input */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Missing or rejected Pireon token */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not a member of the project (or not allowed) */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Someone changed it at the same time: retry */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
/** @description Business rule (e.g. a transition the workflow forbids) */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ApiErrorDto"];
};
};
};
};
}