{ "openapi": "3.0.0", "paths": { "/code-management/repositories/org": { "get": { "description": "Returns repositories available to the team within the selected organization.", "operationId": "CodeManagementController_getRepositories", "parameters": [ { "name": "perPage", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "page", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "isSelected", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "organizationSelected", "required": false, "in": "query", "description": "Organization selection filter (provider-specific).", "schema": {} }, { "name": "teamId", "required": true, "in": "query", "schema": {} } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeManagementRepositoriesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List repositories by organization/team", "tags": [ "Code Management" ] } }, "/code-management/repositories/selected": { "get": { "description": "Returns repositories explicitly selected for the team.", "operationId": "CodeManagementController_getSelectedRepositories", "parameters": [ { "name": "perPage", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "page", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "teamId", "required": true, "in": "query", "schema": {} } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeManagementRepositoriesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List selected repositories", "tags": [ "Code Management" ] } }, "/code-management/auth-integration": { "post": { "description": "Creates or updates a code management integration. For GitHub this is driven by the OAuth flow or a token-based integration.", "operationId": "CodeManagementController_authIntegrationToken", "parameters": [], "responses": { "201": { "description": "" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Authorize integration", "tags": [ "Code Management" ] } }, "/code-management/repositories": { "post": { "description": "Creates or updates repositories for a team (replace or append).", "operationId": "CodeManagementController_createRepositories", "parameters": [], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeManagementRepositoriesCreateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Create repositories", "tags": [ "Code Management" ] } }, "/code-management/organization-members": { "get": { "description": "Returns members from the connected code platform.", "operationId": "CodeManagementController_getOrganizationMembers", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List organization members", "tags": [ "Code Management" ] } }, "/code-management/get-prs": { "get": { "description": "Returns pull requests for the team with optional filters.", "operationId": "CodeManagementController_getPRs", "parameters": [ { "name": "repository", "required": false, "in": "query", "schema": {} }, { "name": "repositoryName", "required": false, "in": "query", "schema": {} }, { "name": "repositoryId", "required": false, "in": "query", "schema": {} }, { "name": "url", "required": false, "in": "query", "schema": {} }, { "name": "title", "required": false, "in": "query", "schema": {} }, { "name": "number", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "teamId", "required": true, "in": "query", "schema": {} } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeManagementPullRequestsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List pull requests", "tags": [ "Code Management" ] } }, "/code-management/get-prs-repo": { "get": { "description": "Returns pull requests for a repository with filter options.", "operationId": "CodeManagementController_getPRsByRepo", "parameters": [ { "name": "state", "required": false, "in": "query", "schema": {} }, { "name": "title", "required": false, "in": "query", "schema": {} }, { "name": "branch", "required": false, "in": "query", "schema": {} }, { "name": "author", "required": false, "in": "query", "schema": {} }, { "name": "endDate", "required": false, "in": "query", "schema": {} }, { "name": "startDate", "required": false, "in": "query", "schema": {} }, { "name": "number", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "repositoryId", "required": true, "in": "query", "schema": {} }, { "name": "teamId", "required": true, "in": "query", "schema": {} } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeManagementPullRequestsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List pull requests by repository", "tags": [ "Code Management" ] } }, "/code-management/finish-onboarding": { "post": { "description": "Completes onboarding by running a review setup flow.", "operationId": "CodeManagementController_onboardingReviewPR", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FinishOnboardingDTO" } } } }, "responses": { "204": { "description": "Onboarding completed" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Finish onboarding", "tags": [ "Code Management" ] } }, "/code-management/delete-integration": { "delete": { "description": "Removes a code management integration for the team.", "operationId": "CodeManagementController_deleteIntegration", "parameters": [], "responses": { "204": { "description": "Integration deleted" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Delete integration", "tags": [ "Code Management" ] } }, "/code-management/delete-integration-and-repositories": { "delete": { "description": "Removes integration and associated repositories for the team.", "operationId": "CodeManagementController_deleteIntegrationAndRepositories", "parameters": [], "responses": { "204": { "description": "Integration and repositories deleted" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Delete integration and repositories", "tags": [ "Code Management" ] } }, "/code-management/get-repository-tree-by-directory": { "get": { "description": "Returns the directory tree for a repository starting from a path.", "operationId": "CodeManagementController_getRepositoryTreeByDirectory", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "directoryPath", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "useCache", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeManagementRepositoryTreeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get repository tree", "tags": [ "Code Management" ] } }, "/code-management/search-users": { "get": { "description": "Searches users in the code management platform by query.", "operationId": "CodeManagementController_searchUsers", "parameters": [ { "name": "limit", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "userId", "required": false, "in": "query", "schema": {} }, { "name": "q", "required": false, "in": "query", "description": "Search query.", "schema": {} }, { "name": "teamId", "required": false, "in": "query", "schema": {} }, { "name": "organizationId", "required": true, "in": "query", "schema": {} } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeManagementSearchUsersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Search users", "tags": [ "Code Management" ] } }, "/code-management/current-user": { "get": { "description": "Returns the current authenticated user in the code management platform.", "operationId": "CodeManagementController_getCurrentUser", "parameters": [ { "name": "teamId", "required": false, "in": "query", "schema": {} }, { "name": "organizationId", "required": true, "in": "query", "schema": {} } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeManagementCurrentUserResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get current user", "tags": [ "Code Management" ] } }, "/code-management/webhook-status": { "get": { "description": "Checks if the repository webhook is active.", "operationId": "CodeManagementController_getWebhookStatus", "parameters": [ { "name": "organizationId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeManagementWebhookStatusResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get webhook status", "tags": [ "Code Management" ] } }, "/dry-run/execute": { "post": { "description": "Start a dry-run execution and return its correlation id.", "operationId": "DryRunController_execute", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExecuteDryRunDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiStringResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Execute dry run", "tags": [ "Dry Run" ] } }, "/dry-run/status/{correlationId}": { "get": { "description": "Return current status for a dry-run execution.", "operationId": "DryRunController_status", "parameters": [ { "name": "correlationId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiStringResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get dry run status", "tags": [ "Dry Run" ] } }, "/dry-run/events/{correlationId}": { "get": { "description": "Server-sent events with dry-run pipeline updates.", "operationId": "DryRunController_events", "parameters": [ { "name": "correlationId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Stream dry run events", "tags": [ "Dry Run" ] } }, "/dry-run": { "get": { "description": "Lists dry run executions for the given filters and team.", "operationId": "DryRunController_listDryRuns", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "directoryId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "startDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "endDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "status", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List dry runs", "tags": [ "Dry Run" ] } }, "/dry-run/{correlationId}": { "get": { "description": "Return dry-run details by correlation id.", "operationId": "DryRunController_getDryRun", "parameters": [ { "name": "correlationId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiObjectResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get dry run details", "tags": [ "Dry Run" ] } }, "/user-log/status-change": { "post": { "description": "Registers a user status change log entry.", "operationId": "CodeReviewSettingLogController_registerStatusChange", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserStatusDto" } } } }, "responses": { "204": { "description": "Status change registered" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Register user status change", "tags": [ "Code Review Logs" ] } }, "/user-log/code-review-settings": { "get": { "description": "Return audit logs for code review settings changes.", "operationId": "CodeReviewSettingLogController_findCodeReviewSettingsLogs", "parameters": [ { "name": "page", "required": false, "in": "query", "schema": { "minimum": 1, "default": 1, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "schema": { "minimum": 1, "maximum": 1000, "default": 100, "type": "number" } }, { "name": "skip", "required": false, "in": "query", "schema": { "minimum": 0, "type": "number" } }, { "name": "teamId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "action", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/ActionType" } }, { "name": "configLevel", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/ConfigLevel" } }, { "name": "userId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "userEmail", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "startDate", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "endDate", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeReviewSettingsLogResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List code review settings logs", "tags": [ "Code Review Logs" ] } }, "/pull-request-messages": { "post": { "description": "Creates or updates the review message configuration for a repository or directory.", "operationId": "PullRequestMessagesController_createOrUpdatePullRequestMessages", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestMessagesUpsertDto" } } } }, "responses": { "204": { "description": "Configuration updated" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Create or update PR messages", "tags": [ "Pull Request Messages" ] } }, "/pull-request-messages/find-by-repository-or-directory": { "get": { "description": "Returns the resolved message configuration for the specified repository or directory.", "operationId": "PullRequestMessagesController_findByRepoOrDirectoryId", "parameters": [ { "name": "repositoryId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "directoryId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestMessagesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get PR messages by repository or directory", "tags": [ "Pull Request Messages" ] } }, "/issues": { "get": { "description": "Return issues filtered by query parameters.", "operationId": "IssuesController_getIssues", "parameters": [ { "name": "title", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "severity", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/SeverityLevel" } }, { "name": "category", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/LabelType" } }, { "name": "status", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/IssueStatus" } }, { "name": "organizationId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryName", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "filePath", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prAuthor", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "beforeAt", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "afterAt", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List issues", "tags": [ "Issues" ] } }, "/issues/count": { "get": { "description": "Return the number of issues matching the filters.", "operationId": "IssuesController_countIssues", "parameters": [ { "name": "title", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "severity", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/SeverityLevel" } }, { "name": "category", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/LabelType" } }, { "name": "status", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/IssueStatus" } }, { "name": "organizationId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryName", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "filePath", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prAuthor", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "beforeAt", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "afterAt", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssuesCountResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Count issues", "tags": [ "Issues" ] } }, "/issues/{id}": { "get": { "description": "Return a single issue by UUID.", "operationId": "IssuesController_getIssueById", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get issue by id", "tags": [ "Issues" ] }, "patch": { "description": "Update issue status, label, or severity.", "operationId": "IssuesController_updateIssueProperty", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Update issue property", "tags": [ "Issues" ] } }, "/kody-rules/create-or-update": { "post": { "description": "Create a new rule or update an existing one.", "operationId": "KodyRulesController_create", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateKodyRuleDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRuleResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Create or update rule", "tags": [ "Kody Rules" ] } }, "/kody-rules/find-by-organization-id": { "get": { "description": "Return all rules for the current organization.", "operationId": "KodyRulesController_findByOrganizationId", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesFindByOrgResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List rules by organization", "tags": [ "Kody Rules" ] } }, "/kody-rules/limits": { "get": { "description": "Return the current kody rules limit usage.", "operationId": "KodyRulesController_getRulesLimitStatus", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesLimitResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get rules limit status", "tags": [ "Kody Rules" ] } }, "/kody-rules/suggestions": { "get": { "description": "Return suggestions for a specific rule.", "operationId": "KodyRulesController_findSuggestionsByRule", "parameters": [ { "name": "ruleId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get suggestions by rule", "tags": [ "Kody Rules" ] } }, "/kody-rules/find-rules-in-organization-by-filter": { "get": { "description": "Return rules matching a key/value filter.", "operationId": "KodyRulesController_findRulesInOrganizationByFilter", "parameters": [ { "name": "key", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "value", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "directoryId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Find rules by filter", "tags": [ "Kody Rules" ] } }, "/kody-rules/delete-rule-in-organization-by-id": { "delete": { "description": "Delete a rule in the organization by rule id.", "operationId": "KodyRulesController_deleteRuleInOrganizationById", "parameters": [ { "name": "ruleId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiBooleanResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Delete rule by id", "tags": [ "Kody Rules" ] } }, "/kody-rules/find-library-kody-rules": { "get": { "description": "Return library rules with pagination.", "operationId": "KodyRulesController_findLibraryKodyRules", "parameters": [ { "name": "page", "required": false, "in": "query", "schema": { "minimum": 1, "default": 1, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "schema": { "minimum": 1, "maximum": 1000, "default": 100, "type": "number" } }, { "name": "skip", "required": false, "in": "query", "schema": { "minimum": 0, "type": "number" } }, { "name": "title", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "severity", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "tags", "required": false, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "plug_and_play", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "language", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/ProgrammingLanguage" } }, { "name": "buckets", "required": false, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesLibraryResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "List library rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/find-library-kody-rules-with-feedback": { "get": { "description": "Return library rules with user feedback and pagination.", "operationId": "KodyRulesController_findLibraryKodyRulesWithFeedback", "parameters": [ { "name": "page", "required": false, "in": "query", "schema": { "minimum": 1, "default": 1, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "schema": { "minimum": 1, "maximum": 1000, "default": 100, "type": "number" } }, { "name": "skip", "required": false, "in": "query", "schema": { "minimum": 0, "type": "number" } }, { "name": "title", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "severity", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "tags", "required": false, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "plug_and_play", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "language", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/ProgrammingLanguage" } }, { "name": "buckets", "required": false, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesLibraryResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List library rules with feedback", "tags": [ "Kody Rules" ] } }, "/kody-rules/find-library-kody-rules-buckets": { "get": { "description": "Return available kody rules buckets.", "operationId": "KodyRulesController_findLibraryKodyRulesBuckets", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesBucketsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "List library buckets", "tags": [ "Kody Rules" ] } }, "/kody-rules/find-recommended-kody-rules": { "get": { "description": "Return recommended rules for the organization.", "operationId": "KodyRulesController_findRecommendedKodyRules", "parameters": [ { "name": "limit", "required": false, "in": "query", "schema": { "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Find recommended rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/add-library-kody-rules": { "post": { "description": "Add library rules to the organization repositories.", "operationId": "KodyRulesController_addLibraryKodyRules", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddLibraryKodyRulesDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Add library rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/generate-kody-rules": { "post": { "description": "Generate rules based on repository history.", "operationId": "KodyRulesController_generateKodyRules", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateKodyRulesDTO" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Generate rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/change-status-kody-rules": { "post": { "description": "Update status for one or more rules.", "operationId": "KodyRulesController_changeStatusKodyRules", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChangeStatusKodyRulesDTO" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Change rule status", "tags": [ "Kody Rules" ] } }, "/kody-rules/check-sync-status": { "get": { "description": "Return sync status flags for IDE and generator.", "operationId": "KodyRulesController_checkSyncStatus", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesSyncStatusResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Check sync status", "tags": [ "Kody Rules" ] } }, "/kody-rules/sync-ide-rules": { "post": { "description": "Sync IDE rules for a repository.", "operationId": "KodyRulesController_syncIdeRules", "parameters": [], "responses": { "204": { "description": "Sync started" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Sync IDE rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/fast-sync-ide-rules": { "post": { "description": "Fast sync IDE rules with optional limits.", "operationId": "KodyRulesController_fastSyncIdeRules", "parameters": [], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesFastSyncResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Fast sync IDE rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/pending-ide-rules": { "get": { "description": "Return pending IDE rules for a repository.", "operationId": "KodyRulesController_listPendingIdeRules", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List pending IDE rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/import-fast-ide-rules": { "post": { "description": "Import rules from fast sync results.", "operationId": "KodyRulesController_importFastIdeRules", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportFastKodyRulesDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Import fast IDE rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/review-fast-ide-rules": { "post": { "description": "Activate or delete fast imported rules.", "operationId": "KodyRulesController_reviewFastIdeRules", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReviewFastKodyRulesDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiObjectResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Review fast IDE rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/inherited-rules": { "get": { "description": "Return global and repository inherited rules.", "operationId": "KodyRulesController_getInheritedRules", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "directoryId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KodyRulesInheritedResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get inherited rules", "tags": [ "Kody Rules" ] } }, "/kody-rules/resync-ide-rules": { "post": { "description": "Resync IDE rules (internal).", "operationId": "KodyRulesController_resyncIdeRules", "parameters": [], "responses": { "204": { "description": "Resync started" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Resync IDE rules", "tags": [ "Kody Rules" ] } }, "/rule-like/{ruleId}/feedback": { "post": { "description": "Creates or updates user feedback (positive/negative) for the specified rule.", "operationId": "RuleLikeController_setFeedback", "parameters": [ { "name": "ruleId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetRuleFeedbackDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RuleLikeFeedbackResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Submit rule feedback", "tags": [ "Rule Likes" ] }, "delete": { "description": "Removes user feedback for the specified rule.", "operationId": "RuleLikeController_removeFeedback", "parameters": [ { "name": "ruleId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiBooleanResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Remove rule feedback", "tags": [ "Rule Likes" ] } }, "/organization/name": { "get": { "description": "Return the name of the authenticated user organization.", "operationId": "OrganizationController_getOrganizationName", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiStringResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get organization name", "tags": [ "Organization" ] } }, "/organization/update-infos": { "patch": { "description": "Update organization details and phone information.", "operationId": "OrganizationController_updateInfoOrganizationAndPhone", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInfoOrganizationAndPhoneDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiBooleanResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Update organization info", "tags": [ "Organization" ] } }, "/organization/domain": { "get": { "description": "Return organizations that match a given email domain.", "operationId": "OrganizationController_getOrganizationsByDomain", "parameters": [ { "name": "domain", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Find organizations by domain", "tags": [ "Organization" ] } }, "/organization/language": { "get": { "description": "Infer primary language based on repository or team data.", "operationId": "OrganizationController_getOrganizationLanguage", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "sampleSize", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationLanguageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Detect organization language", "tags": [ "Organization" ] } }, "/parameters/create-or-update": { "post": { "description": "Create or update a parameter configuration by key.", "operationId": "ParametersController_createOrUpdate", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "key", "configValue", "organizationAndTeamData" ], "properties": { "key": { "type": "string", "enum": [ "code_review_config", "platform_configs", "language_config", "issue_creation_config", "team_artifacts_config", "organization_artifacts_config", "communication_style", "checkin_config", "board_priority_type", "deployment_type" ] }, "configValue": { "type": "object" }, "organizationAndTeamData": { "type": "object", "required": [ "teamId" ], "properties": { "teamId": { "type": "string" } } } } } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParametersStoredResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Create or update parameter", "tags": [ "Parameters" ] } }, "/parameters/find-by-key": { "get": { "description": "Return a parameter configuration by key for a team.", "operationId": "ParametersController_findByKey", "parameters": [ { "name": "key", "required": true, "in": "query", "schema": { "enum": [ "code_review_config", "platform_configs", "language_config", "issue_creation_config", "team_artifacts_config", "organization_artifacts_config", "communication_style", "checkin_config", "board_priority_type", "deployment_type" ], "type": "string" } }, { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParametersStoredResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Find parameter by key", "tags": [ "Parameters" ] } }, "/parameters/list-code-review-automation-labels": { "get": { "description": "Return automation labels for code review.", "operationId": "ParametersController_listCodeReviewAutomationLabels", "parameters": [ { "name": "codeReviewVersion", "required": false, "in": "query", "schema": { "enum": [ "legacy", "v2" ], "type": "string" } }, { "name": "teamId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeReviewAutomationLabelsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List automation labels", "tags": [ "Parameters" ] } }, "/parameters/create-or-update-code-review": { "post": { "description": "Create or update code review parameters for a team.", "operationId": "ParametersController_updateOrCreateCodeReviewParameter", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrUpdateCodeReviewParameterDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParametersStoredResponseDto" } } } }, "400": { "description": "Validation error (e.g., configValue contains unsupported fields)." }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Create or update code review config", "tags": [ "Parameters" ] } }, "/parameters/apply-code-review-preset": { "post": { "description": "Apply a preset configuration for a team.", "operationId": "ParametersController_applyCodeReviewPreset", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplyCodeReviewPresetDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeReviewPresetResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Apply code review preset", "tags": [ "Parameters" ] } }, "/parameters/update-code-review-parameter-repositories": { "post": { "description": "Recalculate repositories for code review configuration.", "operationId": "ParametersController_UpdateCodeReviewParameterRepositories", "parameters": [], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParametersStoredResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Update code review repositories", "tags": [ "Parameters" ] } }, "/parameters/code-review-parameter": { "get": { "description": "Return code review configuration for the team.", "operationId": "ParametersController_getCodeReviewParameter", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeReviewParameterResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get code review parameter", "tags": [ "Parameters" ] } }, "/parameters/default-code-review-parameter": { "get": { "description": "Return the default code review configuration.", "operationId": "ParametersController_getDefaultConfig", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CodeReviewConfigResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get default code review config", "tags": [ "Parameters" ] } }, "/parameters/generate-kodus-config-file": { "get": { "description": "Return a YAML config file for the repository/team.", "operationId": "ParametersController_GenerateKodusConfigFile", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "directoryId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiYamlStringResponseDto" } } }, "description": "" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Generate Kodus config file", "tags": [ "Parameters" ] } }, "/parameters/delete-repository-code-review-parameter": { "post": { "description": "Remove repository-level overrides from code review config.", "operationId": "ParametersController_deleteRepositoryCodeReviewParameter", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteRepositoryCodeReviewParameterDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParametersStoredResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Delete repository code review parameter", "tags": [ "Parameters" ] } }, "/parameters/preview-pr-summary": { "post": { "description": "Generate a preview summary for a pull request.", "operationId": "ParametersController_previewPrSummary", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreviewPrSummaryDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiStringResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Preview PR summary", "tags": [ "Parameters" ] } }, "/organization-parameters/create-or-update": { "post": { "description": "Create or update an organization parameter key/value.", "operationId": "OrganizationParametersController_createOrUpdate", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "key", "configValue" ], "properties": { "key": { "type": "string", "enum": [ "category_workitems_type", "timezone_config", "review_mode_config", "kody_fine_tuning_config", "auto_join_config", "byok_config", "cockpit_metrics_visibility", "dry_run_limit", "auto_license_assignment", "code_review_preset" ] }, "configValue": { "type": "object" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationParameterStoredResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Create or update organization parameter", "tags": [ "Organization Parameters" ] } }, "/organization-parameters/find-by-key": { "get": { "description": "Return an organization parameter configuration by key.", "operationId": "OrganizationParametersController_findByKey", "parameters": [ { "name": "key", "required": true, "in": "query", "schema": { "enum": [ "category_workitems_type", "timezone_config", "review_mode_config", "kody_fine_tuning_config", "auto_join_config", "byok_config", "cockpit_metrics_visibility", "dry_run_limit", "auto_license_assignment", "code_review_preset" ], "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationParameterStoredResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Find org parameter by key", "tags": [ "Organization Parameters" ] } }, "/organization-parameters/list-providers": { "get": { "description": "Return supported model providers.", "operationId": "OrganizationParametersController_listProviders", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationProvidersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List providers", "tags": [ "Organization Parameters" ] } }, "/organization-parameters/list-models": { "get": { "description": "Return supported models for a provider.", "operationId": "OrganizationParametersController_listModels", "parameters": [ { "name": "provider", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationProviderModelsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List models", "tags": [ "Organization Parameters" ] } }, "/organization-parameters/delete-byok-config": { "delete": { "description": "Delete main or fallback BYOK configuration.", "operationId": "OrganizationParametersController_deleteByokConfig", "parameters": [ { "name": "configType", "required": true, "in": "query", "schema": { "type": "string", "enum": [ "main", "fallback" ] } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiBooleanResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Delete BYOK config", "tags": [ "Organization Parameters" ] } }, "/organization-parameters/cockpit-metrics-visibility": { "get": { "description": "Return cockpit metrics visibility configuration.", "operationId": "OrganizationParametersController_getCockpitMetricsVisibility", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationMetricsVisibilityResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get cockpit metrics visibility", "tags": [ "Organization Parameters" ] }, "post": { "description": "Persist cockpit metrics visibility configuration.", "operationId": "OrganizationParametersController_updateCockpitMetricsVisibility", "parameters": [], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationParameterStoredResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Update cockpit metrics visibility", "tags": [ "Organization Parameters" ] } }, "/organization-parameters/ignore-bots": { "post": { "description": "Mark bot users to be ignored in auto-licensing.", "operationId": "OrganizationParametersController_ignoreBots", "parameters": [], "responses": { "204": { "description": "Bots ignored successfully" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Ignore bot users", "tags": [ "Organization Parameters" ] } }, "/organization-parameters/auto-license/allowed-users": { "post": { "description": "Ensure allowed users include the current user when requested.", "operationId": "OrganizationParametersController_updateAutoLicenseAllowedUsers", "parameters": [], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiBooleanResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Update auto-license allowed users", "tags": [ "Organization Parameters" ] } }, "/team": { "get": { "description": "Return teams for the authenticated organization.", "operationId": "TeamController_list", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamListResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List teams", "tags": [ "Team" ] } }, "/team/list-with-integrations": { "get": { "description": "Return teams and their integration status.", "operationId": "TeamController_listWithIntegrations", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List teams with integrations", "tags": [ "Team" ] } }, "/teams/{teamId}/cli-keys": { "post": { "description": "Generate a new CLI key for the specified team.", "operationId": "TeamCliKeyController_generateKey", "parameters": [ { "name": "teamId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamCliKeyCreatedResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Create team CLI key", "tags": [ "Team CLI Key" ] }, "get": { "description": "Return all CLI keys for the specified team.", "operationId": "TeamCliKeyController_listKeys", "parameters": [ { "name": "teamId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamCliKeyListResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List team CLI keys", "tags": [ "Team CLI Key" ] } }, "/teams/{teamId}/cli-keys/{keyId}": { "delete": { "description": "Revoke a CLI key by id for the specified team.", "operationId": "TeamCliKeyController_revokeKey", "parameters": [ { "name": "teamId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "keyId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamCliKeyDeleteResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Revoke team CLI key", "tags": [ "Team CLI Key" ] } }, "/team-members": { "get": { "description": "Return members for a given team.", "operationId": "TeamMembersController_getTeamMembers", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamMembersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List team members", "tags": [ "Team Members" ] }, "post": { "description": "Create or update members for a team.", "operationId": "TeamMembersController_createOrUpdateTeamMembers", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "members": { "type": "array", "items": { "type": "object" } }, "teamId": { "type": "string" } }, "required": [ "members", "teamId" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamMembersUpsertResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Create or update team members", "tags": [ "Team Members" ] } }, "/team-members/{uuid}": { "delete": { "description": "Remove a team member by UUID.", "operationId": "TeamMembersController_deleteTeamMember", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "removeAll", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiStringArrayResponseDto" } } } }, "204": { "description": "Member removed" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Delete team member", "tags": [ "Team Members" ] } }, "/agent/conversation": { "post": { "description": "Send a prompt to the agent and return its response.", "operationId": "AgentController_conversation", "parameters": [], "responses": { "200": { "description": "Agent response (plain text or JSON string)", "content": { "application/json": { "schema": { "type": "string" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Start agent conversation", "tags": [ "Agent" ] } }, "/auth/login": { "post": { "description": "Authenticate a user and return access/refresh tokens.", "operationId": "AuthController_login", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokensResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Login", "tags": [ "Auth" ] } }, "/auth/logout": { "post": { "description": "Invalidate a refresh token for the authenticated user.", "operationId": "AuthController_logout", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LogoutRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthLogoutResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Logout", "tags": [ "Auth" ] } }, "/auth/refresh": { "post": { "description": "Exchange a refresh token for a new access token.", "operationId": "AuthController_refresh", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshTokenRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokensResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Refresh token", "tags": [ "Auth" ] } }, "/auth/signUp": { "post": { "description": "Create a user (and organization when applicable).", "operationId": "AuthController_signUp", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SignUpDTO" } } } }, "responses": { "201": { "description": "" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Sign up", "tags": [ "Auth" ] } }, "/auth/forgot-password": { "post": { "description": "Send password reset instructions to the user email.", "operationId": "AuthController_forgotPassword", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ForgotPasswordRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthMessageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Request password reset", "tags": [ "Auth" ] } }, "/auth/reset-password": { "post": { "description": "Reset a user password using a valid reset token.", "operationId": "AuthController_resetPassword", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetPasswordRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthResetPasswordResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Reset password", "tags": [ "Auth" ] } }, "/auth/confirm-email": { "post": { "description": "Confirm a user email using a verification token.", "operationId": "AuthController_confirmEmail", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfirmEmailRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthMessageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Confirm email", "tags": [ "Auth" ] } }, "/auth/resend-email": { "post": { "description": "Resend the email confirmation link.", "operationId": "AuthController_resendEmail", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResendEmailRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthMessageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Resend email confirmation", "tags": [ "Auth" ] } }, "/auth/oauth": { "post": { "description": "Login via OAuth provider and return access/refresh tokens.", "operationId": "AuthController_oAuth", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserOrganizationOAuthDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokensResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "OAuth login", "tags": [ "Auth" ] } }, "/auth/sso/check": { "get": { "description": "Check if SSO is enabled for a given email domain.", "operationId": "AuthController_checkSSO", "parameters": [ { "name": "domain", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthSsoCheckResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Check SSO", "tags": [ "Auth" ] } }, "/auth/sso/login/{organizationId}": { "get": { "description": "Initiate SAML SSO login for the organization.", "operationId": "AuthController_ssoLogin", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "schema": {} } ], "responses": { "200": { "description": "" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "SSO login", "tags": [ "Auth" ] } }, "/auth/sso/saml/callback/{organizationId}": { "post": { "description": "SAML callback endpoint that finalizes SSO login.", "operationId": "AuthController_ssoCallback", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "SSO callback", "tags": [ "Auth" ] } }, "/segment/track": { "post": { "description": "Registers a tracking event in Segment for the specified user.", "operationId": "SegmentController_track", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SegmentTrackDto" } } } }, "responses": { "204": { "description": "Event recorded" }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Send event to Segment", "tags": [ "Segment" ] } }, "/usage/tokens/summary": { "get": { "description": "Return aggregated token usage for the selected period.", "operationId": "TokenUsageController_getSummary", "parameters": [ { "name": "startDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "endDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "models", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "timezone", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "developer", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "byok", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageSummaryResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get token usage summary", "tags": [ "Token Usage" ] } }, "/usage/tokens/daily": { "get": { "description": "Return daily token usage for the selected period.", "operationId": "TokenUsageController_getDaily", "parameters": [ { "name": "startDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "endDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "models", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "timezone", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "developer", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "byok", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DailyUsageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get daily token usage", "tags": [ "Token Usage" ] } }, "/usage/tokens/by-pr": { "get": { "description": "Return token usage aggregated by pull request.", "operationId": "TokenUsageController_getUsageByPr", "parameters": [ { "name": "startDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "endDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "models", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "timezone", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "developer", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "byok", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageByPrResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get token usage by PR", "tags": [ "Token Usage" ] } }, "/usage/tokens/daily-by-pr": { "get": { "description": "Return daily token usage aggregated by pull request.", "operationId": "TokenUsageController_getDailyUsageByPr", "parameters": [ { "name": "startDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "endDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "models", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "timezone", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "developer", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "byok", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DailyUsageByPrResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get daily token usage by PR", "tags": [ "Token Usage" ] } }, "/usage/tokens/by-developer": { "get": { "description": "Return token usage aggregated by developer.", "operationId": "TokenUsageController_getUsageByDeveloper", "parameters": [ { "name": "startDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "endDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "models", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "timezone", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "developer", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "byok", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageByDeveloperResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get token usage by developer", "tags": [ "Token Usage" ] } }, "/usage/tokens/daily-by-developer": { "get": { "description": "Return daily token usage aggregated by developer.", "operationId": "TokenUsageController_getDailyByDeveloper", "parameters": [ { "name": "startDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "endDate", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "models", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "timezone", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "developer", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "byok", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DailyUsageByDeveloperResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get daily token usage by developer", "tags": [ "Token Usage" ] } }, "/usage/tokens/pricing": { "get": { "description": "Return token pricing for model/provider.", "operationId": "TokenUsageController_getPricing", "parameters": [ { "name": "model", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "provider", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiObjectResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get token pricing", "tags": [ "Token Usage" ] } }, "/usage/cost-estimate": { "get": { "description": "Return estimated token costs for the organization.", "operationId": "TokenUsageController_getCostEstimate", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CostEstimateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get cost estimate", "tags": [ "Token Usage" ] } }, "/permissions": { "get": { "description": "Return permissions grouped by resource and action.", "operationId": "PermissionsController_getPermissions", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PermissionsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List permissions", "tags": [ "Permissions" ] } }, "/permissions/can-access": { "get": { "description": "Return whether the authenticated user can perform an action on a resource.", "operationId": "PermissionsController_can", "parameters": [ { "name": "action", "required": true, "in": "query", "schema": { "enum": [ "manage", "create", "read", "update", "delete" ], "type": "string" } }, { "name": "resource", "required": true, "in": "query", "schema": { "enum": [ "all", "pull_requests", "issues", "cockpit", "billing", "code_review_settings", "issues_settings", "git_settings", "user_settings", "organization_settings", "plugin_settings", "logs", "kody_rules" ], "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiBooleanResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Check permission", "tags": [ "Permissions" ] } }, "/permissions/assigned-repos": { "get": { "description": "Return repository IDs assigned to a user.", "operationId": "PermissionsController_getAssignedRepos", "parameters": [ { "name": "userId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiStringArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List assigned repositories", "tags": [ "Permissions" ] } }, "/permissions/assign-repos": { "post": { "description": "Assign repository IDs to a user within a team.", "operationId": "PermissionsController_assignRepos", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "repositoryIds": { "type": "array", "items": { "type": "string" } }, "userId": { "type": "string" }, "teamId": { "type": "string" } }, "required": [ "repositoryIds", "userId", "teamId" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiStringArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Assign repositories", "tags": [ "Permissions" ] } }, "/integration/clone-integration": { "post": { "description": "Clone integration settings from another team.", "operationId": "IntegrationController_cloneIntegration", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "teamId": { "type": "string" }, "teamIdClone": { "type": "string" }, "integrationData": { "type": "object", "properties": { "platform": { "type": "string" }, "category": { "type": "string" } }, "required": [ "platform", "category" ] } }, "required": [ "teamId", "teamIdClone", "integrationData" ] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IntegrationCloneResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Clone integration", "tags": [ "Integration" ] } }, "/integration/check-connection-platform": { "get": { "description": "Return whether the integration is connected.", "operationId": "IntegrationController_checkHasConnectionByPlatform", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiBooleanResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Check connection by platform", "tags": [ "Integration" ] } }, "/integration/organization-id": { "get": { "description": "Return the organization id for the current integration context.", "operationId": "IntegrationController_getOrganizationId", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiStringResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get organization id", "tags": [ "Integration" ] } }, "/integration/connections": { "get": { "description": "Return connections for a team.", "operationId": "IntegrationController_getConnections", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List connections", "tags": [ "Integration" ] } }, "/integration-config/get-integration-configs-by-integration-category": { "get": { "description": "Return integration configurations for a category and team.", "operationId": "IntegrationConfigController_getIntegrationConfigsByIntegrationCategory", "parameters": [ { "name": "integrationCategory", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiArrayResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List integration configs by category", "tags": [ "Integration Config" ] } }, "/pull-requests/executions": { "get": { "description": "Return pull request execution history with pagination.", "operationId": "PullRequestController_getPullRequestExecutions", "parameters": [ { "name": "repositoryId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryName", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "limit", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "page", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "hasSentSuggestions", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "pullRequestTitle", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "pullRequestNumber", "required": false, "in": "query", "schema": { "type": "number" } }, { "name": "teamId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestExecutionsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "List PR executions", "tags": [ "Pull Requests" ] } }, "/pull-requests/suggestions": { "get": { "description": "Returns suggestions for a PR. Requires `x-team-key` when not authenticated. `format=markdown` returns `{ markdown }`.", "operationId": "PullRequestController_getSuggestionsByPullRequest", "parameters": [ { "name": "prUrl", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "format", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "severity", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "category", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "x-team-key", "required": true, "in": "header", "schema": { "type": "string" } }, { "name": "authorization", "required": true, "in": "header", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestSuggestionsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Get PR suggestions", "tags": [ "Pull Requests" ] } }, "/pull-requests/cli/suggestions": { "post": { "description": "Returns suggestions for a PR via CLI key. `format=markdown` returns `{ markdown }`.", "operationId": "PullRequestController_getSuggestionsByPullRequestWithKey", "parameters": [ { "name": "x-team-key", "required": true, "in": "header", "schema": { "type": "string" } }, { "name": "authorization", "required": true, "in": "header", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestSuggestionsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Get PR suggestions (CLI)", "tags": [ "Pull Requests" ] }, "get": { "description": "Returns suggestions for a PR via CLI key. `format=markdown` returns `{ markdown }`.", "operationId": "PullRequestController_getSuggestionsByPullRequestWithKeyGet", "parameters": [ { "name": "prUrl", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "prNumber", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "format", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "severity", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "category", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "x-team-key", "required": true, "in": "header", "schema": { "type": "string" } }, { "name": "authorization", "required": true, "in": "header", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestSuggestionsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Get PR suggestions (CLI) via GET", "tags": [ "Pull Requests" ] } }, "/pull-requests/onboarding-signals": { "get": { "description": "Return metrics and recommendation for review mode.", "operationId": "PullRequestController_getOnboardingSignals", "parameters": [ { "name": "teamId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "repositoryIds", "required": true, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "limit", "required": false, "in": "query", "schema": { "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestOnboardingSignalsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get onboarding review signals", "tags": [ "Pull Requests" ] } }, "/pull-requests/backfill": { "post": { "description": "Trigger historical pull request backfill in background.", "operationId": "PullRequestController_backfillHistoricalPRs", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BackfillPRsDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestBackfillResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Backfill PRs", "tags": [ "Pull Requests" ] } }, "/user/email": { "get": { "description": "Return whether a user exists for the given email.", "operationId": "UsersController_getEmail", "parameters": [ { "name": "email", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiBooleanResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Check user email", "tags": [ "User" ] } }, "/user/invite": { "get": { "description": "Return invitation data for a user id.", "operationId": "UsersController_getInviteDate", "parameters": [ { "name": "userId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiObjectResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Get invite data", "tags": [ "User" ] } }, "/user/invite/complete-invitation": { "post": { "description": "Activate a user invitation by setting password and profile.", "operationId": "UsersController_completeInvitation", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AcceptUserInvitationDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiObjectResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Complete invitation", "tags": [ "User" ] } }, "/user/join-organization": { "post": { "description": "Attach a user to an organization.", "operationId": "UsersController_joinOrganization", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JoinOrganizationDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiObjectResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Join organization", "tags": [ "User" ] } }, "/user/{targetUserId}": { "patch": { "description": "Updates a user within the same organization.", "operationId": "UsersController_updateAnother", "parameters": [ { "name": "targetUserId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAnotherUserDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserUpdateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Update another user", "tags": [ "User" ] } }, "/user/info": { "get": { "description": "Return the authenticated user profile.", "operationId": "UsersController_show", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get current user info", "tags": [ "User" ] } }, "/cli/validate-key": { "get": { "description": "Validates a Team CLI key sent via `x-team-key` or `Authorization: Bearer `.", "operationId": "CliReviewController_validateKey", "parameters": [ { "name": "x-team-key", "required": false, "in": "header", "description": "Team CLI key (alternative to Authorization: Bearer)", "schema": { "type": "string" } }, { "name": "authorization", "required": true, "in": "header", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliValidateKeyResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Invalid or missing team CLI key", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliValidateKeyResponseDto" } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Validate team CLI key", "tags": [ "CLI Review" ] }, "post": { "description": "POST alias for validate-key. Accepts `x-team-key` or `Authorization: Bearer `.", "operationId": "CliReviewController_validateKeyPost", "parameters": [ { "name": "x-team-key", "required": false, "in": "header", "description": "Team CLI key (alternative to Authorization: Bearer)", "schema": { "type": "string" } }, { "name": "authorization", "required": true, "in": "header", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliValidateKeyResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Invalid or missing team CLI key", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliValidateKeyResponseDto" } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Validate team CLI key (POST)", "tags": [ "CLI Review" ] } }, "/cli/review": { "post": { "description": "Runs a code review using a Team CLI key passed via `x-team-key` or `Authorization: Bearer `.", "operationId": "CliReviewController_review", "parameters": [ { "name": "x-team-key", "required": false, "in": "header", "description": "Team CLI key (alternative to Authorization: Bearer)", "schema": { "type": "string" } }, { "name": "authorization", "required": true, "in": "header", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliReviewRequestDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliReviewResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "429": { "description": "Rate limit exceeded", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliReviewRateLimitErrorDto" } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Run CLI code review", "tags": [ "CLI Review" ] } }, "/cli/trial/review": { "post": { "description": "Runs a trial code review (no auth). Requires `fingerprint` and is rate-limited by device.", "operationId": "CliReviewController_trialReview", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialCliReviewRequestDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialCliReviewResponseDto" } } } }, "400": { "description": "Missing device fingerprint", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "429": { "description": "Rate limit exceeded", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliReviewRateLimitErrorDto" } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "summary": "Run trial CLI code review", "tags": [ "CLI Review" ] } }, "/sso-config": { "post": { "description": "Create or update SSO configuration for the organization.", "operationId": "SSOConfigController_createOrUpdate", "parameters": [], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiObjectResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Create or update SSO config", "tags": [ "SSO Config" ] }, "get": { "description": "Return SSO configuration for the organization.", "operationId": "SSOConfigController_getSSOConfigs", "parameters": [ { "name": "protocol", "required": false, "in": "query", "schema": { "enum": [ "saml", "oidc" ], "type": "string" } }, { "name": "active", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiObjectResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "validationError": { "value": { "statusCode": 400, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Bad Request", "message": "Validation failed", "error_key": "validation.failed" } } } } } }, "401": { "description": "Not authenticated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "notAuthenticated": { "value": { "statusCode": 401, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Unauthorized", "message": "Not authenticated", "error_key": "auth.unauthorized" } } } } } }, "403": { "description": "Insufficient permissions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "forbidden": { "value": { "statusCode": 403, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Forbidden", "message": "Insufficient permissions", "error_key": "auth.forbidden" } } } } } }, "404": { "description": "SSO config not found" }, "500": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorDto" }, "examples": { "internalError": { "value": { "statusCode": 500, "timestamp": "2026-02-05T12:00:00.000Z", "path": "/v1/resource", "error": "Internal Server Error", "message": "Unexpected error", "error_key": "internal.error" } } } } } } }, "security": [ { "jwt": [] } ], "summary": "Get SSO config", "tags": [ "SSO Config" ] } }, "/internal/metrics/error-rates": { "get": { "description": "Internal endpoint (requires JWT). Returns aggregated error rates by component for the requested window. Do not expose publicly.", "operationId": "MetricsController_getErrorRates", "parameters": [ { "name": "window", "required": false, "in": "query", "description": "Window in minutes (1 to 1440). Default: 15", "schema": { "example": 15, "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetricsErrorRateResponseDto" } } } } }, "security": [ { "jwt": [] } ], "summary": "Error rate by component", "tags": [ "Internal Metrics" ] } }, "/internal/metrics/review-response-times": { "get": { "description": "Internal endpoint (requires JWT). Response time statistics for reviews in hours. Do not expose publicly.", "operationId": "MetricsController_getReviewResponseTimes", "parameters": [ { "name": "hours", "required": false, "in": "query", "description": "Window in hours (1 to 168). Default: 24", "schema": { "example": 24, "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetricsResponseTimeResponseDto" } } } } }, "security": [ { "jwt": [] } ], "summary": "Review response times", "tags": [ "Internal Metrics" ] } }, "/internal/metrics/pipeline-performance": { "get": { "description": "Internal endpoint (requires JWT). Aggregates average duration by pipeline and stage. Do not expose publicly.", "operationId": "MetricsController_getPipelinePerformance", "parameters": [ { "name": "hours", "required": false, "in": "query", "description": "Window in hours (1 to 168). Default: 24", "schema": { "example": 24, "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetricsPipelinePerformanceResponseDto" } } } } }, "security": [ { "jwt": [] } ], "summary": "Pipeline performance", "tags": [ "Internal Metrics" ] } }, "/internal/metrics/summary": { "get": { "description": "Internal endpoint (requires JWT). Consolidated metrics snapshot. Do not expose publicly.", "operationId": "MetricsController_getSummary", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetricsSummaryResponseDto" } } } } }, "security": [ { "jwt": [] } ], "summary": "Metrics summary", "tags": [ "Internal Metrics" ] } }, "/mcp": { "post": { "description": "Handles JSON-RPC MCP client requests. For initialization, send `Accept: application/json, text/event-stream` and the server responds over SSE with `mcp-session-id` header. Use `mcp-session-id` to continue an existing session.", "operationId": "McpController_handleClientRequest", "parameters": [ { "name": "mcp-session-id", "in": "header", "description": "Session identifier returned after MCP initialization. Required for subsequent requests.", "required": false, "schema": { "type": "string" } }, { "name": "accept", "in": "header", "description": "For initialization use `application/json, text/event-stream` to allow SSE responses.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "description": "JSON-RPC request payload (MCP protocol).", "additionalProperties": true, "example": { "jsonrpc": "2.0", "id": 1, "method": "initialize", "params": { "protocolVersion": "2025-11-25", "capabilities": {}, "clientInfo": { "name": "local", "version": "1.0.0" } } } } } } }, "responses": { "201": { "description": "" } }, "summary": "Handle MCP client request", "tags": [ "MCP" ] }, "get": { "description": "Streams MCP server notifications over SSE. Requires `Accept: text/event-stream` and a valid `mcp-session-id`.", "operationId": "McpController_handleServerNotifications", "parameters": [ { "name": "mcp-session-id", "in": "header", "description": "Active MCP session identifier.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "Handle MCP server notifications", "tags": [ "MCP" ] }, "delete": { "description": "Terminates an MCP session by session id provided in `mcp-session-id` header.", "operationId": "McpController_handleSessionTermination", "parameters": [ { "name": "mcp-session-id", "in": "header", "description": "Active MCP session identifier.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "Terminate MCP session", "tags": [ "MCP" ] } }, "/health": { "get": { "description": "Public endpoint. Checks application and database health and returns overall status details for monitoring.", "operationId": "HealthController_check", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckResponseDto" } } } } }, "summary": "Full health check", "tags": [ "Health" ] } }, "/health/ready": { "get": { "description": "Public endpoint. Alias for the full health check used by readiness probes.", "operationId": "HealthController_readyCheck", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckResponseDto" } } } } }, "summary": "Readiness check", "tags": [ "Health" ] } }, "/health/simple": { "get": { "description": "Public endpoint. Lightweight response for quick liveness checks (no sensitive data).", "operationId": "HealthController_simpleCheck", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthSimpleResponseDto" } } } } }, "summary": "Simple health check", "tags": [ "Health" ] } }, "/health/live": { "get": { "description": "Public endpoint. Alias for the simple health check used by liveness probes.", "operationId": "HealthController_liveCheck", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthSimpleResponseDto" } } } } }, "summary": "Liveness check", "tags": [ "Health" ] } } }, "info": { "title": "Kodus API", "description": "Public API for the Kodus platform.", "version": "1.0", "contact": {} }, "tags": [ { "name": "Agent", "description": "" }, { "name": "Auth", "description": "" }, { "name": "CLI Review", "description": "" }, { "name": "Code Base", "description": "" }, { "name": "Code Management", "description": "" }, { "name": "Code Review Logs", "description": "" }, { "name": "Dry Run", "description": "" }, { "name": "Health", "description": "" }, { "name": "Integration", "description": "" }, { "name": "Integration Config", "description": "" }, { "name": "Internal Metrics", "description": "" }, { "name": "Issues", "description": "" }, { "name": "Kody Rules", "description": "" }, { "name": "MCP", "description": "" }, { "name": "Organization", "description": "" }, { "name": "Organization Parameters", "description": "" }, { "name": "Parameters", "description": "" }, { "name": "Permissions", "description": "" }, { "name": "Pull Request Messages", "description": "" }, { "name": "Pull Requests", "description": "" }, { "name": "Rule Likes", "description": "" }, { "name": "Segment", "description": "" }, { "name": "SSO Config", "description": "" }, { "name": "Team", "description": "" }, { "name": "Team CLI Key", "description": "" }, { "name": "Team Members", "description": "" }, { "name": "Token Usage", "description": "" }, { "name": "User", "description": "" }, { "name": "Webhook Health", "description": "" }, { "name": "Workflow Queue", "description": "" } ], "servers": [ { "url": "http://localhost:3001", "description": "Local" } ], "components": { "securitySchemes": { "jwt": { "scheme": "bearer", "bearerFormat": "JWT", "type": "http" } }, "schemas": { "CodeManagementRepositoryDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "full_name": { "type": "string" }, "http_url": { "type": "string" }, "avatar_url": { "type": "string" }, "organizationName": { "type": "string" }, "default_branch": { "type": "string" }, "language": { "type": "string" }, "visibility": { "type": "string" }, "selected": { "type": "boolean" }, "lastActivityAt": { "type": "string" } }, "required": [ "id", "name", "full_name", "http_url", "avatar_url", "organizationName", "default_branch", "language", "visibility", "selected" ] }, "CodeManagementRepositoriesResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/CodeManagementRepositoryDto" } } }, "required": [ "statusCode", "type", "data" ] }, "CodeManagementRepositoriesCreateDataDto": { "type": "object", "properties": { "status": { "type": "boolean" } }, "required": [ "status" ] }, "CodeManagementRepositoriesCreateResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeManagementRepositoriesCreateDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "ApiArrayResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "description": "Array of objects with endpoint-specific schema (see endpoint documentation).", "type": "array", "items": { "type": "object" } } }, "required": [ "statusCode", "type", "data" ] }, "CodeManagementRepositoryRefDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "name" ] }, "CodeManagementPullRequestDto": { "type": "object", "properties": { "id": { "type": "string" }, "repository": { "$ref": "#/components/schemas/CodeManagementRepositoryRefDto" }, "pull_number": { "type": "number" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "repository", "pull_number", "title", "url" ] }, "CodeManagementPullRequestsResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/CodeManagementPullRequestDto" } } }, "required": [ "statusCode", "type", "data" ] }, "FinishOnboardingDTO": { "type": "object", "properties": { "teamId": { "type": "string" }, "reviewPR": { "type": "boolean" }, "repositoryId": { "type": "string" }, "repositoryName": { "type": "string" }, "pullNumber": { "type": "number" } }, "required": [ "teamId", "reviewPR" ] }, "CodeManagementRepositoryTreeDto": { "type": "object", "properties": { "repository": { "type": "object", "nullable": true }, "parentPath": { "type": "object", "nullable": true }, "currentPath": { "type": "string" }, "directories": { "type": "array", "items": { "type": "string" } } }, "required": [ "repository", "parentPath", "currentPath", "directories" ] }, "CodeManagementRepositoryTreeResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeManagementRepositoryTreeDto" } }, "required": [ "statusCode", "type", "data" ] }, "CodeManagementSearchUserDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "username": { "type": "string" }, "email": { "type": "string" }, "avatarUrl": { "type": "string" }, "source": { "type": "string" } }, "required": [ "id", "name", "username", "email", "avatarUrl", "source" ] }, "CodeManagementSearchUsersDataDto": { "type": "object", "properties": { "users": { "type": "array", "items": { "$ref": "#/components/schemas/CodeManagementSearchUserDto" } } }, "required": [ "users" ] }, "CodeManagementSearchUsersResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeManagementSearchUsersDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "CodeManagementCurrentUserDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "username": { "type": "string" }, "email": { "type": "string" }, "avatarUrl": { "type": "string" }, "raw": { "type": "object", "description": "Raw provider payload for the current user (shape varies by integration).", "additionalProperties": true } }, "required": [ "id", "name", "username", "email", "avatarUrl", "raw" ] }, "CodeManagementCurrentUserDataDto": { "type": "object", "properties": { "user": { "$ref": "#/components/schemas/CodeManagementCurrentUserDto" } }, "required": [ "user" ] }, "CodeManagementCurrentUserResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeManagementCurrentUserDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "CodeManagementWebhookStatusDto": { "type": "object", "properties": { "active": { "type": "boolean" } }, "required": [ "active" ] }, "CodeManagementWebhookStatusResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeManagementWebhookStatusDto" } }, "required": [ "statusCode", "type", "data" ] }, "ExecuteDryRunDto": { "type": "object", "properties": { "teamId": { "type": "string" }, "repositoryId": { "type": "string" }, "prNumber": { "type": "number" } }, "required": [ "teamId", "repositoryId", "prNumber" ] }, "ApiStringResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "string" } }, "required": [ "statusCode", "type", "data" ] }, "ApiObjectResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "object", "description": "Object with endpoint-specific schema (see endpoint documentation).", "additionalProperties": true } }, "required": [ "statusCode", "type", "data" ] }, "EditedByDto": { "type": "object", "properties": { "userId": { "type": "string" }, "email": { "type": "string" } }, "required": [ "userId", "email" ] }, "UserStatusDto": { "type": "object", "properties": { "gitId": { "type": "string" }, "gitTool": { "type": "string" }, "licenseStatus": { "type": "string" }, "teamId": { "type": "string" }, "organizationId": { "type": "string" }, "editedBy": { "$ref": "#/components/schemas/EditedByDto" }, "userName": { "type": "string" } }, "required": [ "gitId", "gitTool", "licenseStatus", "teamId", "organizationId", "editedBy", "userName" ] }, "ActionType": { "type": "string", "enum": [ "add", "create", "edit", "delete", "clone" ] }, "ConfigLevel": { "type": "string", "enum": [ "main", "global", "repository", "directory" ] }, "CodeReviewSettingsLogUserInfoDto": { "type": "object", "properties": { "userId": { "type": "string" }, "userEmail": { "type": "string" } }, "required": [ "userId", "userEmail" ] }, "CodeReviewSettingsLogRepositoryDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id" ] }, "CodeReviewSettingsLogDirectoryDto": { "type": "object", "properties": { "id": { "type": "object" }, "path": { "type": "object" } } }, "CodeReviewSettingsLogChangeDto": { "type": "object", "properties": { "actionDescription": { "type": "string" }, "previousValue": { "type": "object", "description": "Previous parameter value (schema varies by key).", "additionalProperties": true }, "currentValue": { "type": "object", "description": "Current parameter value (schema varies by key).", "additionalProperties": true }, "description": { "type": "string" } }, "required": [ "actionDescription" ] }, "CodeReviewSettingsLogEntryDto": { "type": "object", "properties": { "_uuid": { "type": "string" }, "_organizationId": { "type": "string" }, "_teamId": { "type": "string" }, "_action": { "type": "string" }, "_configLevel": { "type": "string" }, "_userInfo": { "$ref": "#/components/schemas/CodeReviewSettingsLogUserInfoDto" }, "_repository": { "$ref": "#/components/schemas/CodeReviewSettingsLogRepositoryDto" }, "_directory": { "$ref": "#/components/schemas/CodeReviewSettingsLogDirectoryDto" }, "_changedData": { "type": "array", "items": { "$ref": "#/components/schemas/CodeReviewSettingsLogChangeDto" } }, "_createdAt": { "type": "string" }, "_updatedAt": { "type": "string" } }, "required": [ "_uuid", "_organizationId", "_action", "_configLevel", "_userInfo", "_changedData", "_createdAt", "_updatedAt" ] }, "CodeReviewSettingsLogDataDto": { "type": "object", "properties": { "logs": { "type": "array", "items": { "$ref": "#/components/schemas/CodeReviewSettingsLogEntryDto" } }, "total": { "type": "number" }, "page": { "type": "number" }, "limit": { "type": "number" }, "totalPages": { "type": "number" } }, "required": [ "logs", "total", "page", "limit", "totalPages" ] }, "CodeReviewSettingsLogResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeReviewSettingsLogDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "PullRequestMessageStatus": { "type": "string", "enum": [ "every_push", "only_when_opened", "off", "active", "inactive" ] }, "PullRequestMessageContentUpsertDto": { "type": "object", "properties": { "content": { "type": "string" }, "status": { "allOf": [ { "$ref": "#/components/schemas/PullRequestMessageStatus" } ] } }, "required": [ "content", "status" ] }, "PullRequestMessagesGlobalSettingsUpsertDto": { "type": "object", "properties": { "hideComments": { "type": "boolean" }, "suggestionCopyPrompt": { "type": "boolean" } } }, "PullRequestMessagesUpsertDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Optional. It will be replaced by the authenticated user organization." }, "configLevel": { "allOf": [ { "$ref": "#/components/schemas/ConfigLevel" } ] }, "repositoryId": { "type": "string" }, "directoryId": { "type": "string" }, "startReviewMessage": { "$ref": "#/components/schemas/PullRequestMessageContentUpsertDto" }, "endReviewMessage": { "$ref": "#/components/schemas/PullRequestMessageContentUpsertDto" }, "globalSettings": { "$ref": "#/components/schemas/PullRequestMessagesGlobalSettingsUpsertDto" } }, "required": [ "configLevel" ] }, "PullRequestMessageBooleanSettingDto": { "type": "object", "properties": { "value": { "type": "boolean" }, "level": { "type": "string" } }, "required": [ "value", "level" ] }, "PullRequestMessagesGlobalSettingsDto": { "type": "object", "properties": { "hideComments": { "$ref": "#/components/schemas/PullRequestMessageBooleanSettingDto" }, "suggestionCopyPrompt": { "$ref": "#/components/schemas/PullRequestMessageBooleanSettingDto" } }, "required": [ "hideComments", "suggestionCopyPrompt" ] }, "PullRequestMessageValueDto": { "type": "object", "properties": { "value": { "type": "string" }, "level": { "type": "string" } }, "required": [ "value", "level" ] }, "PullRequestMessagesEntryDto": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/PullRequestMessageValueDto" }, "content": { "$ref": "#/components/schemas/PullRequestMessageValueDto" } }, "required": [ "status", "content" ] }, "PullRequestMessagesConfigDto": { "type": "object", "properties": { "organizationId": { "type": "string" }, "repositoryId": { "type": "string" }, "directoryId": { "type": "string" }, "globalSettings": { "$ref": "#/components/schemas/PullRequestMessagesGlobalSettingsDto" }, "startReviewMessage": { "$ref": "#/components/schemas/PullRequestMessagesEntryDto" }, "endReviewMessage": { "$ref": "#/components/schemas/PullRequestMessagesEntryDto" } }, "required": [ "organizationId", "repositoryId", "globalSettings", "startReviewMessage", "endReviewMessage" ] }, "PullRequestMessagesResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/PullRequestMessagesConfigDto" } }, "required": [ "statusCode", "type", "data" ] }, "SeverityLevel": { "type": "string", "enum": [ "critical", "high", "medium", "low" ] }, "LabelType": { "type": "string", "enum": [ "performance_and_optimization", "security", "error_handling", "refactoring", "maintainability", "potential_issues", "code_style", "documentation_and_comments", "kody_rules", "breaking_changes", "bug", "performance", "cross_file" ] }, "IssueStatus": { "type": "string", "enum": [ "open", "resolved", "dismissed" ] }, "IssuesCountResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "number" } }, "required": [ "statusCode", "type", "data" ] }, "IssueRepositoryDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "full_name": { "type": "string" }, "platform": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "name", "full_name", "platform" ] }, "IssueUserRefDto": { "type": "object", "properties": { "gitId": { "type": "string" }, "username": { "type": "string" } }, "required": [ "gitId", "username" ] }, "IssueDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "title": { "type": "string" }, "description": { "type": "string" }, "filePath": { "type": "string" }, "language": { "type": "string" }, "label": { "type": "string" }, "severity": { "type": "string" }, "contributingSuggestions": { "description": "List of contributing suggestions (shape varies by provider).", "type": "array", "items": { "type": "object" } }, "status": { "type": "string" }, "repository": { "$ref": "#/components/schemas/IssueRepositoryDto" }, "organizationId": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "owner": { "$ref": "#/components/schemas/IssueUserRefDto" }, "reporter": { "$ref": "#/components/schemas/IssueUserRefDto" } }, "required": [ "uuid", "title", "description", "filePath", "language", "label", "severity", "contributingSuggestions", "status", "repository", "organizationId", "createdAt", "updatedAt" ] }, "IssueResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/IssueDto" } }, "required": [ "statusCode", "type", "data" ] }, "KodyRuleSeverity": { "type": "string", "enum": [ "low", "medium", "high", "critical" ] }, "KodyRulesOrigin": { "type": "string", "enum": [ "user", "library", "generated" ] }, "KodyRulesStatus": { "type": "string", "enum": [ "active", "rejected", "pending", "deleted" ] }, "KodyRuleProcessingStatus": { "type": "string", "enum": [ "pending", "processing", "completed", "failed" ] }, "CreateKodyRuleDto": { "type": "object", "properties": { "severity": { "allOf": [ { "$ref": "#/components/schemas/KodyRuleSeverity" } ] }, "origin": { "allOf": [ { "$ref": "#/components/schemas/KodyRulesOrigin" } ] }, "status": { "allOf": [ { "$ref": "#/components/schemas/KodyRulesStatus" } ] }, "referenceProcessingStatus": { "allOf": [ { "$ref": "#/components/schemas/KodyRuleProcessingStatus" } ] } }, "required": [ "severity", "origin" ] }, "KodyRulesExampleDto": { "type": "object", "properties": { "snippet": { "type": "string" }, "isCorrect": { "type": "boolean" } }, "required": [ "snippet", "isCorrect" ] }, "KodyRuleInheritanceDto": { "type": "object", "properties": { "inheritable": { "type": "boolean" }, "exclude": { "type": "array", "items": { "type": "string" } }, "include": { "type": "array", "items": { "type": "string" } } }, "required": [ "inheritable", "exclude", "include" ] }, "KodyRuleExternalReferenceDto": { "type": "object", "properties": { "filePath": { "type": "string" }, "description": { "type": "string", "nullable": true }, "repositoryName": { "type": "string", "nullable": true } }, "required": [ "filePath", "description", "repositoryName" ] }, "KodyRuleSyncErrorDto": { "type": "object", "properties": { "type": { "type": "string" }, "message": { "type": "string", "nullable": true }, "details": { "type": "object", "description": "Provider-specific error details.", "additionalProperties": true } }, "required": [ "type", "message", "details" ] }, "KodyRuleDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "title": { "type": "string" }, "rule": { "type": "string" }, "path": { "type": "object", "nullable": true }, "sourcePath": { "type": "object", "nullable": true }, "sourceAnchor": { "type": "object", "nullable": true }, "severity": { "type": "string" }, "status": { "type": "string" }, "repositoryId": { "type": "object", "nullable": true }, "directoryId": { "type": "object", "nullable": true }, "examples": { "nullable": true, "type": "array", "items": { "$ref": "#/components/schemas/KodyRulesExampleDto" } }, "origin": { "type": "string" }, "scope": { "type": "string" }, "inheritance": { "$ref": "#/components/schemas/KodyRuleInheritanceDto" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "referenceProcessingStatus": { "type": "object" }, "externalReferences": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRuleExternalReferenceDto" } }, "syncErrors": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRuleSyncErrorDto" } } }, "required": [ "uuid", "title", "rule", "path", "sourcePath", "sourceAnchor", "severity", "status", "repositoryId", "directoryId", "examples", "origin", "scope", "inheritance", "createdAt", "updatedAt", "externalReferences", "syncErrors" ] }, "KodyRuleResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/KodyRuleDto" } }, "required": [ "statusCode", "type", "data" ] }, "KodyRulesFindByOrgDataDto": { "type": "object", "properties": { "_uuid": { "type": "string" }, "_organizationId": { "type": "string" }, "_rules": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRuleDto" } }, "_createdAt": { "type": "string" }, "_updatedAt": { "type": "string" } }, "required": [ "_uuid", "_organizationId", "_rules", "_createdAt", "_updatedAt" ] }, "KodyRulesFindByOrgResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/KodyRulesFindByOrgDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "KodyRulesLimitDto": { "type": "object", "properties": { "total": { "type": "number" } }, "required": [ "total" ] }, "KodyRulesLimitResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/KodyRulesLimitDto" } }, "required": [ "statusCode", "type", "data" ] }, "ApiBooleanResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "boolean" } }, "required": [ "statusCode", "type", "data" ] }, "ProgrammingLanguage": { "type": "string", "enum": [ "JSTS", "PYTHON", "JAVA", "CSHARP", "DART", "RUBY" ] }, "KodyRulesLibraryRuleDto": { "type": "object", "properties": { "title": { "type": "string" }, "rule": { "type": "string" }, "why_is_this_important": { "type": "string" }, "severity": { "type": "string" }, "bad_example": { "type": "string" }, "good_example": { "type": "string" }, "examples": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRulesExampleDto" } }, "language": { "type": "string" }, "uuid": { "type": "string", "format": "uuid" }, "buckets": { "type": "array", "items": { "type": "string" } }, "scope": { "type": "string" }, "plug_and_play": { "type": "boolean" }, "positiveCount": { "type": "number" }, "negativeCount": { "type": "number" }, "userFeedback": { "type": "object", "nullable": true, "description": "Optional user feedback metadata (provider-specific).", "additionalProperties": true } }, "required": [ "title", "rule", "why_is_this_important", "severity", "bad_example", "good_example", "examples", "language", "uuid", "buckets", "scope", "plug_and_play", "positiveCount", "negativeCount", "userFeedback" ] }, "KodyRulesPaginationDto": { "type": "object", "properties": { "currentPage": { "type": "number" }, "totalPages": { "type": "number" }, "totalItems": { "type": "number" }, "itemsPerPage": { "type": "number" }, "hasNextPage": { "type": "boolean" }, "hasPreviousPage": { "type": "boolean" } }, "required": [ "currentPage", "totalPages", "totalItems", "itemsPerPage", "hasNextPage", "hasPreviousPage" ] }, "KodyRulesLibraryDataDto": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRulesLibraryRuleDto" } }, "pagination": { "$ref": "#/components/schemas/KodyRulesPaginationDto" } }, "required": [ "data", "pagination" ] }, "KodyRulesLibraryResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/KodyRulesLibraryDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "KodyRulesBucketDto": { "type": "object", "properties": { "slug": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "rulesCount": { "type": "number" } }, "required": [ "slug", "title", "description", "rulesCount" ] }, "KodyRulesBucketsResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRulesBucketDto" } } }, "required": [ "statusCode", "type", "data" ] }, "AddLibraryKodyRulesDto": { "type": "object", "properties": { "severity": { "allOf": [ { "$ref": "#/components/schemas/KodyRuleSeverity" } ] }, "origin": { "allOf": [ { "$ref": "#/components/schemas/KodyRulesOrigin" } ] }, "status": { "allOf": [ { "$ref": "#/components/schemas/KodyRulesStatus" } ] } }, "required": [ "severity" ] }, "KodyRulesArrayResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRuleDto" } } }, "required": [ "statusCode", "type", "data" ] }, "GenerateKodyRulesDTO": { "type": "object", "properties": { "teamId": { "type": "string" }, "months": { "type": "number" }, "weeks": { "type": "number" }, "days": { "type": "number" }, "repositoriesIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "teamId" ] }, "ChangeStatusKodyRulesDTO": { "type": "object", "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/KodyRulesStatus" } ] } }, "required": [ "status" ] }, "KodyRulesSyncStatusDto": { "type": "object", "properties": { "ideRulesSyncEnabledFirstTime": { "type": "boolean" }, "kodyRulesGeneratorEnabledFirstTime": { "type": "boolean" } }, "required": [ "ideRulesSyncEnabledFirstTime", "kodyRulesGeneratorEnabledFirstTime" ] }, "KodyRulesSyncStatusResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/KodyRulesSyncStatusDto" } }, "required": [ "statusCode", "type", "data" ] }, "KodyRulesFastSyncDataDto": { "type": "object", "properties": { "rules": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRuleDto" } }, "skippedFiles": { "type": "array", "items": { "type": "string" } }, "errors": { "description": "Sync errors (provider-specific shape).", "type": "array", "items": { "type": "object" } } }, "required": [ "rules", "skippedFiles", "errors" ] }, "KodyRulesFastSyncResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/KodyRulesFastSyncDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "KodyRulesScope": { "type": "string", "enum": [ "pull-request", "file" ] }, "ImportFastKodyRuleExampleDto": { "type": "object", "properties": { "snippet": { "type": "string", "example": "if (value == null) return;" }, "isCorrect": { "type": "boolean", "example": true } }, "required": [ "snippet", "isCorrect" ] }, "ImportFastKodyRuleItemDto": { "type": "object", "properties": { "title": { "type": "string", "example": "Avoid null comparisons" }, "rule": { "type": "string", "example": "Avoid comparing to null; prefer strict checks or type guards." }, "path": { "type": "string", "example": "src/services/user.service.ts" }, "sourcePath": { "type": "string", "example": "src/services/user.service.ts" }, "repositoryId": { "type": "string", "example": "1135722979" }, "severity": { "allOf": [ { "$ref": "#/components/schemas/KodyRuleSeverity" } ] }, "scope": { "allOf": [ { "$ref": "#/components/schemas/KodyRulesScope" } ] }, "examples": { "description": "Example snippets for the rule.", "type": "array", "items": { "$ref": "#/components/schemas/ImportFastKodyRuleExampleDto" } } }, "required": [ "title", "rule", "path", "sourcePath", "repositoryId" ] }, "ImportFastKodyRulesDto": { "type": "object", "properties": { "teamId": { "type": "string", "format": "uuid", "example": "c33ef663-70e7-4f43-9605-0bbef979b8e0" }, "rules": { "type": "array", "items": { "$ref": "#/components/schemas/ImportFastKodyRuleItemDto" } } }, "required": [ "teamId", "rules" ] }, "ReviewFastKodyRulesDto": { "type": "object", "properties": { "teamId": { "type": "string" }, "activateRuleIds": { "type": "array", "items": { "type": "string" } }, "deleteRuleIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "teamId" ] }, "KodyRulesInheritedDataDto": { "type": "object", "properties": { "globalRules": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRuleDto" } }, "repoRules": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRuleDto" } }, "directoryRules": { "type": "array", "items": { "$ref": "#/components/schemas/KodyRuleDto" } } }, "required": [ "globalRules", "repoRules", "directoryRules" ] }, "KodyRulesInheritedResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/KodyRulesInheritedDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "RuleFeedbackType": { "type": "string", "enum": [ "positive", "negative" ] }, "SetRuleFeedbackDto": { "type": "object", "properties": { "feedback": { "allOf": [ { "$ref": "#/components/schemas/RuleFeedbackType" } ] } }, "required": [ "feedback" ] }, "RuleLikeFeedbackDto": { "type": "object", "properties": { "ruleId": { "type": "string" }, "userId": { "type": "string" }, "feedback": { "type": "string", "example": "negative" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" } }, "required": [ "ruleId", "userId", "feedback", "createdAt", "updatedAt" ] }, "RuleLikeFeedbackResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/RuleLikeFeedbackDto" } }, "required": [ "statusCode", "type", "data" ] }, "UpdateInfoOrganizationAndPhoneDto": { "type": "object", "properties": { "name": { "type": "string", "example": "Kodus" }, "phone": { "type": "string", "example": "+55 11 99999-0000" } }, "required": [ "name" ] }, "OrganizationLanguageDto": { "type": "object", "properties": { "language": { "type": "object", "nullable": true } }, "required": [ "language" ] }, "OrganizationLanguageResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/OrganizationLanguageDto" } }, "required": [ "statusCode", "type", "data" ] }, "ParametersStoredDto": { "type": "object", "properties": { "_uuid": { "type": "string", "format": "uuid" }, "_active": { "type": "boolean" }, "_configKey": { "type": "string" }, "_configValue": { "type": "object", "description": "Parameter value (schema varies by config key).", "additionalProperties": true }, "_createdAt": { "type": "string" }, "_updatedAt": { "type": "string" }, "_version": { "type": "number" } }, "required": [ "_uuid", "_active", "_configKey", "_configValue", "_createdAt", "_updatedAt", "_version" ] }, "ParametersStoredResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/ParametersStoredDto" } }, "required": [ "statusCode", "type", "data" ] }, "CodeReviewAutomationLabelDto": { "type": "object", "properties": { "type": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } }, "required": [ "type", "name", "description" ] }, "CodeReviewAutomationLabelsDataDto": { "type": "object", "properties": { "labels": { "type": "array", "items": { "$ref": "#/components/schemas/CodeReviewAutomationLabelDto" } } }, "required": [ "labels" ] }, "CodeReviewAutomationLabelsResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeReviewAutomationLabelsDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "CreateOrUpdateCodeReviewParameterDto": { "type": "object", "properties": {} }, "ReviewPreset": { "type": "string", "enum": [ "speed", "safety", "coach" ] }, "OrganizationAndTeamDataDto": { "type": "object", "properties": {} }, "ApplyCodeReviewPresetDto": { "type": "object", "properties": { "preset": { "allOf": [ { "$ref": "#/components/schemas/ReviewPreset" } ] }, "teamId": { "type": "string" }, "organizationAndTeamData": { "$ref": "#/components/schemas/OrganizationAndTeamDataDto" } }, "required": [ "preset", "teamId" ] }, "CodeReviewPresetDataDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "configs": { "type": "object", "description": "Preset configuration map (schema varies by key).", "additionalProperties": true }, "isSelected": { "type": "boolean" }, "repositories": { "description": "Repository bindings for this preset.", "type": "array", "items": { "type": "object" } } }, "required": [ "id", "name", "configs", "isSelected", "repositories" ] }, "CodeReviewPresetResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeReviewPresetDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "CodeReviewParameterDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "configKey": { "type": "string" }, "configValue": { "type": "object", "description": "Parameter value (schema varies by config key).", "additionalProperties": true }, "isSelected": { "type": "boolean" }, "repositories": { "description": "Repository bindings for this parameter.", "type": "array", "items": { "type": "object" } } }, "required": [ "uuid", "configKey", "configValue", "isSelected", "repositories" ] }, "CodeReviewParameterResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeReviewParameterDto" } }, "required": [ "statusCode", "type", "data" ] }, "CodeReviewCadenceDto": { "type": "object", "properties": { "type": { "type": "string" }, "timeWindow": { "type": "number" }, "pushesToTrigger": { "type": "number" } }, "required": [ "type", "timeWindow", "pushesToTrigger" ] }, "CodeReviewOptionsDto": { "type": "object", "properties": { "bug": { "type": "boolean" }, "performance": { "type": "boolean" }, "security": { "type": "boolean" }, "cross_file": { "type": "boolean" } }, "required": [ "bug", "performance", "security", "cross_file" ] }, "SeverityLimitsDto": { "type": "object", "properties": { "low": { "type": "number" }, "medium": { "type": "number" }, "high": { "type": "number" }, "critical": { "type": "number" } }, "required": [ "low", "medium", "high", "critical" ] }, "SuggestionControlDto": { "type": "object", "properties": { "groupingMode": { "type": "string" }, "applyFiltersToKodyRules": { "type": "boolean" }, "limitationType": { "type": "string" }, "maxSuggestions": { "type": "number" }, "severityLevelFilter": { "type": "string" }, "severityLimits": { "$ref": "#/components/schemas/SeverityLimitsDto" } }, "required": [ "groupingMode", "applyFiltersToKodyRules", "limitationType", "maxSuggestions", "severityLevelFilter", "severityLimits" ] }, "ReviewSummaryDto": { "type": "object", "properties": { "generatePRSummary": { "type": "boolean" }, "behaviourForNewCommits": { "type": "string" }, "behaviourForExistingDescription": { "type": "string" }, "customInstructions": { "type": "string" } }, "required": [ "generatePRSummary", "behaviourForNewCommits", "behaviourForExistingDescription", "customInstructions" ] }, "CustomMessageConfigDto": { "type": "object", "properties": { "hideComments": { "type": "boolean" }, "suggestionCopyPrompt": { "type": "boolean" } }, "required": [ "hideComments", "suggestionCopyPrompt" ] }, "CustomMessageTemplateDto": { "type": "object", "properties": { "status": { "type": "string" }, "content": { "type": "string" } }, "required": [ "status", "content" ] }, "CustomMessagesDto": { "type": "object", "properties": { "globalSettings": { "$ref": "#/components/schemas/CustomMessageConfigDto" }, "startReviewMessage": { "$ref": "#/components/schemas/CustomMessageTemplateDto" }, "endReviewMessage": { "$ref": "#/components/schemas/CustomMessageTemplateDto" } }, "required": [ "globalSettings", "startReviewMessage", "endReviewMessage" ] }, "CodeReviewConfigDataDto": { "type": "object", "properties": { "automatedReviewActive": { "type": "boolean" }, "kodusConfigFileOverridesWebPreferences": { "type": "boolean" }, "reviewCadence": { "$ref": "#/components/schemas/CodeReviewCadenceDto" }, "pullRequestApprovalActive": { "type": "boolean" }, "isRequestChangesActive": { "type": "boolean" }, "runOnDraft": { "type": "boolean" }, "ignorePaths": { "type": "array", "items": { "type": "string" } }, "ignoredTitleKeywords": { "type": "array", "items": { "type": "string" } }, "baseBranches": { "type": "array", "items": { "type": "string" } }, "enableCommittableSuggestions": { "type": "boolean" }, "codeReviewVersion": { "type": "string" }, "reviewOptions": { "$ref": "#/components/schemas/CodeReviewOptionsDto" }, "suggestionControl": { "$ref": "#/components/schemas/SuggestionControlDto" }, "summary": { "$ref": "#/components/schemas/ReviewSummaryDto" }, "ideRulesSyncEnabled": { "type": "boolean" }, "kodyRulesGeneratorEnabled": { "type": "boolean" }, "customMessages": { "$ref": "#/components/schemas/CustomMessagesDto" }, "v2PromptOverrides": { "type": "object", "description": "Prompt override map (key/value by prompt identifier).", "additionalProperties": true } }, "required": [ "automatedReviewActive", "kodusConfigFileOverridesWebPreferences", "reviewCadence", "pullRequestApprovalActive", "isRequestChangesActive", "runOnDraft", "ignorePaths", "ignoredTitleKeywords", "baseBranches", "enableCommittableSuggestions", "codeReviewVersion", "reviewOptions", "suggestionControl", "summary", "ideRulesSyncEnabled", "kodyRulesGeneratorEnabled", "customMessages", "v2PromptOverrides" ] }, "CodeReviewConfigResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CodeReviewConfigDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "ApiYamlStringResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "string" } }, "required": [ "statusCode", "type", "data" ] }, "DeleteRepositoryCodeReviewParameterDto": { "type": "object", "properties": {} }, "BehaviourForExistingDescription": { "type": "string", "enum": [ "replace", "concatenate", "complement" ] }, "PreviewPrSummaryDto": { "type": "object", "properties": { "behaviourForExistingDescription": { "allOf": [ { "$ref": "#/components/schemas/BehaviourForExistingDescription" } ] } }, "required": [ "behaviourForExistingDescription" ] }, "OrganizationParameterStoredDto": { "type": "object", "properties": { "_uuid": { "type": "string", "format": "uuid" }, "_configKey": { "type": "string" }, "_configValue": { "type": "object", "description": "Organization parameter value (schema varies by key).", "additionalProperties": true } }, "required": [ "_uuid", "_configKey", "_configValue" ] }, "OrganizationParameterStoredResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/OrganizationParameterStoredDto" } }, "required": [ "statusCode", "type", "data" ] }, "OrganizationProviderDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "requiresApiKey": { "type": "boolean" }, "requiresBaseUrl": { "type": "boolean" } }, "required": [ "id", "name", "description", "requiresApiKey", "requiresBaseUrl" ] }, "OrganizationProvidersDataDto": { "type": "object", "properties": { "providers": { "type": "array", "items": { "$ref": "#/components/schemas/OrganizationProviderDto" } } }, "required": [ "providers" ] }, "OrganizationProvidersResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/OrganizationProvidersDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "OrganizationProviderModelReasoningDto": { "type": "object", "properties": { "type": { "type": "string" }, "options": { "type": "array", "items": { "type": "string" } } }, "required": [ "type", "options" ] }, "OrganizationProviderModelDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "supportsReasoning": { "type": "boolean" }, "reasoningConfig": { "$ref": "#/components/schemas/OrganizationProviderModelReasoningDto" } }, "required": [ "id", "name" ] }, "OrganizationProviderModelsDataDto": { "type": "object", "properties": { "provider": { "type": "string" }, "models": { "type": "array", "items": { "$ref": "#/components/schemas/OrganizationProviderModelDto" } } }, "required": [ "provider", "models" ] }, "OrganizationProviderModelsResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/OrganizationProviderModelsDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "OrganizationMetricsVisibilityResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "object", "description": "Metrics visibility settings (schema varies by tenant).", "additionalProperties": true } }, "required": [ "statusCode", "type", "data" ] }, "TeamSummaryDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "status": { "type": "string" }, "cliConfig": { "type": "object", "nullable": true, "description": "CLI configuration for the team (schema varies).", "additionalProperties": true } }, "required": [ "uuid", "name", "status", "cliConfig" ] }, "TeamListResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/TeamSummaryDto" } } }, "required": [ "statusCode", "type", "data" ] }, "TeamCliKeyCreatedDataDto": { "type": "object", "properties": { "key": { "type": "string" }, "message": { "type": "string" } }, "required": [ "key", "message" ] }, "TeamCliKeyCreatedResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/TeamCliKeyCreatedDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "TeamCliKeyCreatedByDto": { "type": "object", "properties": { "uuid": { "type": "string" } }, "required": [ "uuid" ] }, "TeamCliKeyMetadataDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "active": { "type": "boolean" }, "lastUsedAt": { "type": "object", "nullable": true }, "createdAt": { "type": "string" }, "createdBy": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/TeamCliKeyCreatedByDto" } ] } }, "required": [ "uuid", "name", "active", "createdAt" ] }, "TeamCliKeyListResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/TeamCliKeyMetadataDto" } } }, "required": [ "statusCode", "type", "data" ] }, "TeamCliKeyDeleteDataDto": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] }, "TeamCliKeyDeleteResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/TeamCliKeyDeleteDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "TeamMembersListDto": { "type": "object", "properties": { "members": { "description": "Team members list (schema varies by provider).", "type": "array", "items": { "type": "object" } } }, "required": [ "members" ] }, "TeamMembersResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/TeamMembersListDto" } }, "required": [ "statusCode", "type", "data" ] }, "TeamMemberInviteResultDto": { "type": "object", "properties": { "email": { "type": "string" }, "status": { "type": "string" }, "message": { "type": "string" }, "uuid": { "type": "string", "nullable": true } }, "required": [ "email", "status", "message", "uuid" ] }, "TeamMembersUpsertDataDto": { "type": "object", "properties": { "success": { "type": "boolean" }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/TeamMemberInviteResultDto" } } }, "required": [ "success", "results" ] }, "TeamMembersUpsertResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/TeamMembersUpsertDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "ApiStringArrayResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "type": "string" } } }, "required": [ "statusCode", "type", "data" ] }, "LoginRequestDto": { "type": "object", "properties": { "email": { "type": "string", "format": "email", "example": "user@example.com" }, "password": { "type": "string", "format": "password", "example": "{{password}}" } }, "required": [ "email", "password" ] }, "AuthTokensDto": { "type": "object", "properties": { "accessToken": { "type": "string" }, "refreshToken": { "type": "string" } }, "required": [ "accessToken", "refreshToken" ] }, "AuthTokensResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/AuthTokensDto" } }, "required": [ "statusCode", "type", "data" ] }, "LogoutRequestDto": { "type": "object", "properties": { "refreshToken": { "type": "string", "example": "{{refreshToken}}" } }, "required": [ "refreshToken" ] }, "AuthLogoutDetailsDto": { "type": "object", "properties": { "expiresAt": { "type": "string", "format": "date-time" }, "refreshToken": { "type": "string" } }, "required": [ "expiresAt", "refreshToken" ] }, "AuthLogoutResponseDataDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "refreshToken": { "type": "string" }, "expiryDate": { "type": "string", "format": "date-time" }, "used": { "type": "boolean" }, "authDetails": { "$ref": "#/components/schemas/AuthLogoutDetailsDto" }, "authProvider": { "type": "string" } }, "required": [ "uuid", "createdAt", "updatedAt", "refreshToken", "expiryDate", "used", "authDetails", "authProvider" ] }, "AuthLogoutResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/AuthLogoutResponseDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "RefreshTokenRequestDto": { "type": "object", "properties": { "refreshToken": { "type": "string", "example": "{{refreshToken}}" } }, "required": [ "refreshToken" ] }, "SignUpDTO": { "type": "object", "properties": { "name": { "type": "string", "example": "Jane Doe" }, "email": { "type": "string", "format": "email", "example": "jane.doe@example.com" }, "password": { "type": "string", "format": "password", "example": "Str0ngP@ssw0rd!" }, "organizationId": { "type": "string", "format": "uuid", "description": "Existing organization ID. Optional when creating a new organization." } }, "required": [ "name", "email", "password" ] }, "ForgotPasswordRequestDto": { "type": "object", "properties": { "email": { "type": "string", "format": "email", "example": "user@example.com" } }, "required": [ "email" ] }, "AuthMessageDto": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] }, "AuthMessageResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/AuthMessageDto" } }, "required": [ "statusCode", "type", "data" ] }, "ResetPasswordRequestDto": { "type": "object", "properties": { "token": { "type": "string", "example": "{{resetToken}}" }, "newPassword": { "type": "string", "format": "password", "example": "{{newPassword}}" } }, "required": [ "token", "newPassword" ] }, "AuthResetPasswordErrorDetailsDto": { "type": "object", "properties": { "message": { "type": "string" }, "error": { "type": "string" }, "statusCode": { "type": "number" } }, "required": [ "message", "error", "statusCode" ] }, "AuthResetPasswordErrorDataDto": { "type": "object", "properties": { "response": { "$ref": "#/components/schemas/AuthResetPasswordErrorDetailsDto" }, "status": { "type": "number" }, "options": { "type": "object", "description": "Provider-specific error options.", "additionalProperties": true }, "message": { "type": "string" }, "name": { "type": "string" } }, "required": [ "response", "status", "options", "message", "name" ] }, "AuthResetPasswordResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/AuthResetPasswordErrorDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "ConfirmEmailRequestDto": { "type": "object", "properties": { "token": { "type": "string", "example": "{{confirmationToken}}" } }, "required": [ "token" ] }, "ResendEmailRequestDto": { "type": "object", "properties": { "email": { "type": "string", "format": "email", "example": "user@example.com" } }, "required": [ "email" ] }, "AuthProvider": { "type": "string", "enum": [ "credentials", "google", "github", "gitlab", "sso" ] }, "CreateUserOrganizationOAuthDto": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string", "format": "email" }, "refreshToken": { "type": "string" }, "authProvider": { "allOf": [ { "$ref": "#/components/schemas/AuthProvider" } ] } }, "required": [ "name", "email", "refreshToken", "authProvider" ] }, "AuthSsoCheckDataDto": { "type": "object", "properties": { "active": { "type": "boolean" }, "organizationId": { "type": "object", "nullable": true } }, "required": [ "active", "organizationId" ] }, "AuthSsoCheckResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/AuthSsoCheckDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "SegmentTrackDto": { "type": "object", "properties": { "userId": { "type": "string" }, "event": { "type": "string" }, "properties": { "type": "object", "description": "Event properties payload forwarded to Segment.", "additionalProperties": true } }, "required": [ "userId", "event" ] }, "TokenUsageBaseDto": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "total": { "type": "number" }, "outputReasoning": { "type": "number" }, "model": { "type": "string" } }, "required": [ "input", "output", "total", "outputReasoning", "model" ] }, "UsageSummaryResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/TokenUsageBaseDto" } }, "required": [ "statusCode", "type", "data" ] }, "DailyUsageDto": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "total": { "type": "number" }, "outputReasoning": { "type": "number" }, "model": { "type": "string" }, "date": { "type": "string" } }, "required": [ "input", "output", "total", "outputReasoning", "model", "date" ] }, "DailyUsageResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/DailyUsageDto" } } }, "required": [ "statusCode", "type", "data" ] }, "UsageByPrDto": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "total": { "type": "number" }, "outputReasoning": { "type": "number" }, "model": { "type": "string" }, "prNumber": { "type": "number" } }, "required": [ "input", "output", "total", "outputReasoning", "model", "prNumber" ] }, "UsageByPrResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/UsageByPrDto" } } }, "required": [ "statusCode", "type", "data" ] }, "DailyUsageByPrDto": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "total": { "type": "number" }, "outputReasoning": { "type": "number" }, "model": { "type": "string" }, "prNumber": { "type": "number" }, "date": { "type": "string" } }, "required": [ "input", "output", "total", "outputReasoning", "model", "prNumber", "date" ] }, "DailyUsageByPrResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/DailyUsageByPrDto" } } }, "required": [ "statusCode", "type", "data" ] }, "UsageByDeveloperDto": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "total": { "type": "number" }, "outputReasoning": { "type": "number" }, "model": { "type": "string" }, "developer": { "type": "string" } }, "required": [ "input", "output", "total", "outputReasoning", "model", "developer" ] }, "UsageByDeveloperResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/UsageByDeveloperDto" } } }, "required": [ "statusCode", "type", "data" ] }, "DailyUsageByDeveloperDto": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "total": { "type": "number" }, "outputReasoning": { "type": "number" }, "model": { "type": "string" }, "developer": { "type": "string" }, "date": { "type": "string" } }, "required": [ "input", "output", "total", "outputReasoning", "model", "developer", "date" ] }, "DailyUsageByDeveloperResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/DailyUsageByDeveloperDto" } } }, "required": [ "statusCode", "type", "data" ] }, "TokenUsageTotalsDto": { "type": "object", "properties": { "inputTokens": { "type": "number" }, "outputTokens": { "type": "number" }, "reasoningTokens": { "type": "number" }, "totalTokens": { "type": "number" } }, "required": [ "inputTokens", "outputTokens", "reasoningTokens", "totalTokens" ] }, "CostEstimateDataDto": { "type": "object", "properties": { "estimatedMonthlyCost": { "type": "number" }, "costPerDeveloper": { "type": "number" }, "developerCount": { "type": "number" }, "tokenUsage": { "$ref": "#/components/schemas/TokenUsageTotalsDto" }, "periodDays": { "type": "number" }, "projectionDays": { "type": "number" } }, "required": [ "estimatedMonthlyCost", "costPerDeveloper", "developerCount", "tokenUsage", "periodDays", "projectionDays" ] }, "CostEstimateResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/CostEstimateDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "PermissionActionScopeDto": { "type": "object", "properties": { "organizationId": { "type": "string", "format": "uuid" } }, "required": [ "organizationId" ] }, "PermissionResourceDto": { "type": "object", "properties": { "manage": { "$ref": "#/components/schemas/PermissionActionScopeDto" }, "create": { "$ref": "#/components/schemas/PermissionActionScopeDto" }, "read": { "$ref": "#/components/schemas/PermissionActionScopeDto" }, "update": { "$ref": "#/components/schemas/PermissionActionScopeDto" }, "delete": { "$ref": "#/components/schemas/PermissionActionScopeDto" } }, "required": [ "manage", "create", "read", "update", "delete" ] }, "PermissionsResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/PermissionResourceDto" } } }, "required": [ "statusCode", "type", "data" ] }, "IntegrationCloneStatusDto": { "type": "object", "properties": { "status": { "type": "boolean" } }, "required": [ "status" ] }, "IntegrationCloneResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/IntegrationCloneStatusDto" } }, "required": [ "statusCode", "type", "data" ] }, "PullRequestExecutionAuthorDto": { "type": "object", "properties": { "id": { "type": "object" }, "username": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "username", "name" ] }, "PullRequestAutomationExecutionDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "status": { "type": "string" }, "errorMessage": { "type": "object", "nullable": true }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "origin": { "type": "string" } }, "required": [ "uuid", "status", "errorMessage", "createdAt", "updatedAt", "origin" ] }, "PullRequestExecutionDto": { "type": "object", "properties": { "prId": { "type": "string" }, "prNumber": { "type": "number" }, "title": { "type": "string" }, "status": { "type": "string" }, "merged": { "type": "boolean" }, "url": { "type": "string" }, "baseBranchRef": { "type": "string" }, "headBranchRef": { "type": "string" }, "repositoryName": { "type": "string" }, "repositoryId": { "type": "string" }, "openedAt": { "type": "string" }, "closedAt": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "provider": { "type": "string" }, "author": { "$ref": "#/components/schemas/PullRequestExecutionAuthorDto" }, "isDraft": { "type": "boolean" }, "compareUrl": { "type": "string" }, "executionId": { "type": "string", "format": "uuid" }, "automationExecution": { "$ref": "#/components/schemas/PullRequestAutomationExecutionDto" }, "codeReviewTimeline": { "description": "Timeline entries for code review automation (provider-specific).", "type": "array", "items": { "type": "object" } }, "enrichedData": { "type": "object", "description": "Enriched metadata from providers (shape varies).", "additionalProperties": true }, "suggestionsCount": { "type": "object", "description": "Suggestion counters by category/severity (shape varies by config).", "additionalProperties": true } }, "required": [ "prId", "prNumber", "title", "status", "merged", "url", "baseBranchRef", "headBranchRef", "repositoryName", "repositoryId", "openedAt", "closedAt", "createdAt", "updatedAt", "provider", "author", "isDraft", "compareUrl", "executionId", "automationExecution", "codeReviewTimeline", "enrichedData", "suggestionsCount" ] }, "PullRequestExecutionsPaginationDto": { "type": "object", "properties": { "currentPage": { "type": "number" }, "totalPages": { "type": "number" }, "totalItems": { "type": "number" }, "itemsPerPage": { "type": "number" }, "hasNextPage": { "type": "boolean" }, "hasPreviousPage": { "type": "boolean" } }, "required": [ "currentPage", "totalPages", "totalItems", "itemsPerPage", "hasNextPage", "hasPreviousPage" ] }, "PullRequestExecutionsDataDto": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/PullRequestExecutionDto" } }, "pagination": { "$ref": "#/components/schemas/PullRequestExecutionsPaginationDto" } }, "required": [ "data", "pagination" ] }, "PullRequestExecutionsResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/PullRequestExecutionsDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "PullRequestSuggestionCommentDto": { "type": "object", "properties": { "id": { "type": "object" }, "pullRequestReviewId": { "type": "object" } }, "required": [ "id", "pullRequestReviewId" ] }, "PullRequestSuggestionDto": { "type": "object", "properties": { "id": { "type": "string" }, "suggestionContent": { "type": "string" }, "oneSentenceSummary": { "type": "string" }, "label": { "type": "string" }, "severity": { "type": "string" }, "deliveryStatus": { "type": "string" }, "relevantLinesStart": { "type": "number" }, "relevantLinesEnd": { "type": "number" }, "existingCode": { "type": "string" }, "improvedCode": { "type": "string" }, "filePath": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "comment": { "$ref": "#/components/schemas/PullRequestSuggestionCommentDto" } } }, "PullRequestSuggestionsGroupDto": { "type": "object", "properties": { "files": { "type": "array", "items": { "$ref": "#/components/schemas/PullRequestSuggestionDto" } }, "prLevel": { "type": "array", "items": { "$ref": "#/components/schemas/PullRequestSuggestionDto" } } }, "required": [ "files", "prLevel" ] }, "PullRequestSuggestionsPayloadDto": { "type": "object", "properties": { "prNumber": { "type": "number" }, "repositoryId": { "type": "string" }, "repositoryFullName": { "type": "string" }, "suggestions": { "description": "Suggestions grouped by file and PR level.", "allOf": [ { "$ref": "#/components/schemas/PullRequestSuggestionsGroupDto" } ] } }, "required": [ "prNumber", "repositoryId", "suggestions" ] }, "PullRequestSuggestionsResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/PullRequestSuggestionsPayloadDto" } }, "required": [ "statusCode", "type", "data" ] }, "PullRequestOnboardingMetricsDto": { "type": "object", "properties": { "hotfixPct": { "type": "number" }, "bugfixPct": { "type": "number" }, "securityPct": { "type": "number" }, "perfPct": { "type": "number" }, "sensitiveTouchPct": { "type": "number" }, "medianLines": { "type": "number" }, "p90Lines": { "type": "number" }, "mergesPerWeek": { "type": "number" }, "commentsPerPR": { "type": "number" }, "qualityPct": { "type": "number" }, "nitPct": { "type": "number" } }, "required": [ "hotfixPct", "bugfixPct", "securityPct", "perfPct", "sensitiveTouchPct", "medianLines", "p90Lines", "mergesPerWeek", "commentsPerPR", "qualityPct", "nitPct" ] }, "PullRequestOnboardingRecommendationDto": { "type": "object", "properties": { "mode": { "type": "string" }, "reasons": { "type": "array", "items": { "type": "string" } } }, "required": [ "mode", "reasons" ] }, "PullRequestOnboardingSignalDto": { "type": "object", "properties": { "repositoryId": { "type": "string" }, "sampleSize": { "type": "number" }, "metrics": { "$ref": "#/components/schemas/PullRequestOnboardingMetricsDto" }, "recommendation": { "$ref": "#/components/schemas/PullRequestOnboardingRecommendationDto" } }, "required": [ "repositoryId", "sampleSize", "metrics", "recommendation" ] }, "PullRequestOnboardingSignalsResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/PullRequestOnboardingSignalDto" } } }, "required": [ "statusCode", "type", "data" ] }, "BackfillPRsDto": { "type": "object", "properties": { "teamId": { "type": "string" }, "repositoryIds": { "type": "array", "items": { "type": "string" } }, "startDate": { "type": "string", "format": "date-time" }, "endDate": { "type": "string", "format": "date-time" } }, "required": [ "teamId" ] }, "PullRequestBackfillDataDto": { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string" }, "repositoriesCount": { "type": "number" } }, "required": [ "success", "message", "repositoriesCount" ] }, "PullRequestBackfillResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/PullRequestBackfillDataDto" } }, "required": [ "statusCode", "type", "data" ] }, "AcceptUserInvitationDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "description": "Invitation UUID." }, "name": { "type": "string", "example": "Jane Doe" }, "password": { "type": "string", "format": "password", "example": "Str0ngP@ssw0rd!" }, "phone": { "type": "string", "example": "+1-555-0100" } }, "required": [ "uuid", "name", "password" ] }, "JoinOrganizationDto": { "type": "object", "properties": { "userId": { "type": "string", "format": "uuid", "description": "User ID to join." }, "organizationId": { "type": "string", "format": "uuid", "description": "Organization ID to join." } }, "required": [ "userId", "organizationId" ] }, "STATUS": { "type": "string", "enum": [ "active", "inactive", "pending", "awaiting_approval", "removed", "pending_email" ] }, "Role": { "type": "string", "enum": [ "owner", "billing_manager", "repo_admin", "contributor" ] }, "UpdateAnotherUserDto": { "type": "object", "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/STATUS" } ] }, "role": { "allOf": [ { "$ref": "#/components/schemas/Role" } ] } } }, "UserUpdateDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "email": { "type": "string" }, "role": { "type": "string" }, "status": { "type": "string" } }, "required": [ "uuid", "email", "role", "status" ] }, "UserUpdateResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/UserUpdateDto" } }, "required": [ "statusCode", "type", "data" ] }, "UserOrganizationDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "name": { "type": "string" }, "tenantName": { "type": "string" }, "status": { "type": "boolean" } }, "required": [ "uuid", "createdAt", "updatedAt", "name", "tenantName", "status" ] }, "UserTeamDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "name": { "type": "string" }, "status": { "type": "string" }, "cliConfig": { "type": "object", "nullable": true, "description": "CLI configuration for the team (schema varies).", "additionalProperties": true } }, "required": [ "uuid", "createdAt", "updatedAt", "name", "status", "cliConfig" ] }, "TeamMemberDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "name": { "type": "string" }, "status": { "type": "boolean" }, "avatar": { "type": "object", "nullable": true, "description": "Avatar metadata (provider-specific).", "additionalProperties": true }, "communication": { "type": "object", "nullable": true, "description": "Communication integration metadata.", "additionalProperties": true }, "codeManagement": { "type": "object", "nullable": true, "description": "Code management integration metadata.", "additionalProperties": true }, "projectManagement": { "type": "object", "nullable": true, "description": "Project management integration metadata.", "additionalProperties": true }, "communicationId": { "type": "object", "nullable": true, "description": "Communication integration identifier details.", "additionalProperties": true }, "teamRole": { "type": "string" }, "organization": { "$ref": "#/components/schemas/UserOrganizationDto" }, "team": { "$ref": "#/components/schemas/UserTeamDto" } }, "required": [ "uuid", "createdAt", "updatedAt", "name", "status", "avatar", "communication", "codeManagement", "projectManagement", "communicationId", "teamRole", "organization", "team" ] }, "UserInfoDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "email": { "type": "string" }, "role": { "type": "string" }, "organization": { "$ref": "#/components/schemas/UserOrganizationDto" }, "status": { "type": "string" }, "teamMember": { "type": "array", "items": { "$ref": "#/components/schemas/TeamMemberDto" } }, "permissions": { "type": "object", "nullable": true, "description": "Permission map for the current user.", "additionalProperties": true } }, "required": [ "uuid", "email", "role", "organization", "status", "teamMember", "permissions" ] }, "UserInfoResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/UserInfoDto" } }, "required": [ "statusCode", "type", "data" ] }, "CliValidateKeyEntityDto": { "type": "object", "properties": { "id": { "type": "object", "nullable": true }, "name": { "type": "string" } }, "required": [ "id", "name" ] }, "CliValidateKeyUserDto": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" } }, "required": [ "email", "name" ] }, "CliValidateKeyPayloadDto": { "type": "object", "properties": { "valid": { "type": "boolean" }, "teamId": { "type": "object", "nullable": true }, "organizationId": { "type": "object", "nullable": true }, "teamName": { "type": "string" }, "organizationName": { "type": "string" }, "team": { "$ref": "#/components/schemas/CliValidateKeyEntityDto" }, "organization": { "$ref": "#/components/schemas/CliValidateKeyEntityDto" }, "user": { "$ref": "#/components/schemas/CliValidateKeyUserDto" }, "email": { "type": "string" }, "userEmail": { "type": "string" }, "error": { "type": "string" } }, "required": [ "valid", "teamId", "organizationId", "teamName", "organizationName", "team", "organization", "user", "email", "userEmail" ] }, "CliValidateKeyResponseDto": { "type": "object", "properties": { "valid": { "type": "boolean" }, "teamId": { "type": "object", "nullable": true }, "organizationId": { "type": "object", "nullable": true }, "teamName": { "type": "string" }, "organizationName": { "type": "string" }, "team": { "$ref": "#/components/schemas/CliValidateKeyEntityDto" }, "organization": { "$ref": "#/components/schemas/CliValidateKeyEntityDto" }, "user": { "$ref": "#/components/schemas/CliValidateKeyUserDto" }, "email": { "type": "string" }, "userEmail": { "type": "string" }, "error": { "type": "string" }, "data": { "$ref": "#/components/schemas/CliValidateKeyPayloadDto" } }, "required": [ "valid", "teamId", "organizationId", "teamName", "organizationName", "team", "organization", "user", "email", "userEmail", "data" ] }, "CliReviewRulesDto": { "type": "object", "properties": { "security": { "type": "boolean" }, "performance": { "type": "boolean" }, "style": { "type": "boolean" }, "bestPractices": { "type": "boolean" } } }, "CliFileInputDto": { "type": "object", "properties": { "path": { "type": "string" }, "content": { "type": "string" }, "status": { "type": "string", "enum": [ "added", "modified", "deleted", "renamed" ] }, "diff": { "type": "string" } }, "required": [ "path", "content", "status", "diff" ] }, "CliConfigDto": { "type": "object", "properties": { "severity": { "type": "string" }, "rules": { "$ref": "#/components/schemas/CliReviewRulesDto" }, "rulesOnly": { "type": "boolean" }, "fast": { "type": "boolean" }, "files": { "type": "array", "items": { "$ref": "#/components/schemas/CliFileInputDto" } } } }, "PlatformType": { "type": "string", "enum": [ "INTERNAL", "GITHUB", "GITLAB", "JIRA", "SLACK", "NOTION", "MSTEAMS", "DISCORD", "AZURE_BOARDS", "AZURE_REPOS", "KODUS_WEB", "BITBUCKET" ] }, "CliReviewRequestDto": { "type": "object", "properties": { "diff": { "type": "string" }, "config": { "$ref": "#/components/schemas/CliConfigDto" }, "userEmail": { "type": "string" }, "gitRemote": { "type": "string" }, "branch": { "type": "string" }, "commitSha": { "type": "string" }, "inferredPlatform": { "allOf": [ { "$ref": "#/components/schemas/PlatformType" } ] }, "cliVersion": { "type": "string" } }, "required": [ "diff" ] }, "CliReviewIssueFixRangeDto": { "type": "object", "properties": { "start": { "type": "number" }, "end": { "type": "number" } }, "required": [ "start", "end" ] }, "CliReviewIssueFixDto": { "type": "object", "properties": { "range": { "$ref": "#/components/schemas/CliReviewIssueFixRangeDto" }, "replacement": { "type": "string" } }, "required": [ "range", "replacement" ] }, "CliReviewIssueDto": { "type": "object", "properties": { "file": { "type": "string" }, "line": { "type": "number" }, "endLine": { "type": "number" }, "severity": { "type": "string" }, "category": { "type": "string" }, "message": { "type": "string" }, "suggestion": { "type": "string" }, "recommendation": { "type": "string" }, "ruleId": { "type": "string" }, "fixable": { "type": "boolean" }, "fix": { "$ref": "#/components/schemas/CliReviewIssueFixDto" } }, "required": [ "file", "line", "severity", "message" ] }, "CliReviewResponseDto": { "type": "object", "properties": { "summary": { "type": "string" }, "issues": { "type": "array", "items": { "$ref": "#/components/schemas/CliReviewIssueDto" } }, "filesAnalyzed": { "type": "number" }, "duration": { "type": "number" } }, "required": [ "summary", "issues", "filesAnalyzed", "duration" ] }, "CliReviewRateLimitErrorDto": { "type": "object", "properties": { "message": { "type": "string" }, "remaining": { "type": "number" }, "resetAt": { "type": "string" }, "limit": { "type": "number" } }, "required": [ "message", "remaining", "limit" ] }, "TrialCliReviewRequestDto": { "type": "object", "properties": { "diff": { "type": "string" }, "config": { "$ref": "#/components/schemas/CliConfigDto" }, "userEmail": { "type": "string" }, "gitRemote": { "type": "string" }, "branch": { "type": "string" }, "commitSha": { "type": "string" }, "inferredPlatform": { "allOf": [ { "$ref": "#/components/schemas/PlatformType" } ] }, "cliVersion": { "type": "string" }, "fingerprint": { "type": "string" } }, "required": [ "diff", "fingerprint" ] }, "CliReviewRateLimitDto": { "type": "object", "properties": { "remaining": { "type": "number" }, "limit": { "type": "number" }, "resetAt": { "type": "string" } }, "required": [ "remaining", "limit" ] }, "TrialCliReviewResponseDto": { "type": "object", "properties": { "summary": { "type": "string" }, "issues": { "type": "array", "items": { "$ref": "#/components/schemas/CliReviewIssueDto" } }, "filesAnalyzed": { "type": "number" }, "duration": { "type": "number" }, "rateLimit": { "$ref": "#/components/schemas/CliReviewRateLimitDto" } }, "required": [ "summary", "issues", "filesAnalyzed", "duration" ] }, "ApiErrorDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 400 }, "timestamp": { "type": "string", "example": "2026-02-05T12:00:00.000Z", "description": "ISO timestamp when the error occurred" }, "path": { "type": "string", "example": "/v1/resource" }, "error": { "type": "string", "example": "Bad Request" }, "message": { "type": "string", "example": "Validation failed" }, "error_key": { "type": "string", "example": "validation.failed" } }, "required": [ "statusCode", "timestamp", "path", "error", "message" ] }, "MetricsErrorRateDto": { "type": "object", "properties": { "component": { "type": "string" }, "totalRequests": { "type": "number" }, "totalErrors": { "type": "number" }, "errorRate": { "type": "number" }, "windowMinutes": { "type": "number" } }, "required": [ "component", "totalRequests", "totalErrors", "errorRate", "windowMinutes" ] }, "MetricsErrorRateResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/MetricsErrorRateDto" } } }, "required": [ "statusCode", "type", "data" ] }, "MetricsResponseTimeDto": { "type": "object", "properties": { "p50": { "type": "number" }, "p95": { "type": "number" }, "avg": { "type": "number" }, "max": { "type": "number" }, "count": { "type": "number" }, "windowHours": { "type": "number" } }, "required": [ "p50", "p95", "avg", "max", "count", "windowHours" ] }, "MetricsResponseTimeResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/MetricsResponseTimeDto" } }, "required": [ "statusCode", "type", "data" ] }, "MetricsPipelinePerformanceDto": { "type": "object", "properties": { "pipeline": { "type": "string" }, "stage": { "type": "string" }, "avgDurationMs": { "type": "number" }, "count": { "type": "number" } }, "required": [ "pipeline", "stage", "avgDurationMs", "count" ] }, "MetricsPipelinePerformanceResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/MetricsPipelinePerformanceDto" } } }, "required": [ "statusCode", "type", "data" ] }, "MetricsSummaryDto": { "type": "object", "properties": { "errorRate": { "type": "array", "items": { "$ref": "#/components/schemas/MetricsErrorRateDto" } }, "reviewsProcessed": { "type": "number" }, "reviewsFailed": { "type": "number" }, "avgReviewDurationMs": { "type": "number" }, "timestamp": { "type": "string" } }, "required": [ "errorRate", "reviewsProcessed", "reviewsFailed", "avgReviewDurationMs", "timestamp" ] }, "MetricsSummaryResponseDto": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 200 }, "type": { "type": "string", "example": "Object" }, "data": { "$ref": "#/components/schemas/MetricsSummaryDto" } }, "required": [ "statusCode", "type", "data" ] }, "HealthMemoryDto": { "type": "object", "properties": { "status": { "type": "string" } }, "required": [ "status" ] }, "HealthApplicationDto": { "type": "object", "properties": { "status": { "type": "string" }, "uptime": { "type": "string" }, "timestamp": { "type": "string" }, "environment": { "type": "string" }, "memory": { "$ref": "#/components/schemas/HealthMemoryDto" } }, "required": [ "status", "uptime", "timestamp", "environment", "memory" ] }, "HealthDatabaseServiceDto": { "type": "object", "properties": { "status": { "type": "string" } }, "required": [ "status" ] }, "HealthDatabaseDto": { "type": "object", "properties": { "status": { "type": "string" }, "postgres": { "$ref": "#/components/schemas/HealthDatabaseServiceDto" }, "mongodb": { "$ref": "#/components/schemas/HealthDatabaseServiceDto" } }, "required": [ "status", "postgres", "mongodb" ] }, "HealthDetailsDto": { "type": "object", "properties": { "application": { "$ref": "#/components/schemas/HealthApplicationDto" }, "database": { "$ref": "#/components/schemas/HealthDatabaseDto" } }, "required": [ "application", "database" ] }, "HealthCheckResponseDto": { "type": "object", "properties": { "status": { "type": "string" }, "timestamp": { "type": "string" }, "details": { "$ref": "#/components/schemas/HealthDetailsDto" } }, "required": [ "status", "timestamp", "details" ] }, "HealthSimpleResponseDto": { "type": "object", "properties": { "status": { "type": "string" }, "timestamp": { "type": "string" }, "message": { "type": "string" }, "uptime": { "type": "number" } }, "required": [ "status", "timestamp", "message", "uptime" ] } } } }