diff --git a/api-reference/openapi.json b/api-reference/openapi.json index be827d4..07437cd 100644 --- a/api-reference/openapi.json +++ b/api-reference/openapi.json @@ -2013,6 +2013,105 @@ } } }, + "/projects": { + "get": { + "summary": "List Projects", + "operationId": "listProjects", + "tags": ["Projects"], + "description": "Retrieve a list of projects for the authenticated user's company", + "parameters": [ + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Filter projects by name (case-insensitive partial match)" + }, + { + "name": "tags", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "description": "Filter by tags (comma-separated)", + "example": "production,backend" + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 1 + }, + "description": "The page number for pagination" + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 20, + "maximum": 50 + }, + "description": "The number of results per page" + }, + { + "name": "sort_by", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created_at", + "-created_at", + "name", + "-name" + ] + }, + "description": "Sort results by field (prefix with '-' for descending order)", + "example": "-created_at" + } + ], + "responses": { + "200": { + "description": "Projects retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "ok" + }, + "page": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "total_projects": { + "type": "integer" + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Project" + } + } + } + } + } + } + } + } + } + }, "/blocking-rules": { "get": { "summary": "List Blocking Rules", @@ -2388,6 +2487,31 @@ "format": "date-time" } } + }, + "Project": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of tags associated with the project" + }, + "created_at": { + "type": "string", + "format": "date-time" + } + } } } }