1512 lines
34 KiB
JSON
1512 lines
34 KiB
JSON
{
|
|
"components": {
|
|
"schemas": {
|
|
"DeleteOut": {
|
|
"properties": {
|
|
"ok": {
|
|
"const": true,
|
|
"default": true,
|
|
"title": "Ok",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"title": "DeleteOut",
|
|
"type": "object"
|
|
},
|
|
"EpicCreate": {
|
|
"properties": {
|
|
"description": {
|
|
"default": "",
|
|
"maxLength": 10000,
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"due_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Due At"
|
|
},
|
|
"labels": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Labels",
|
|
"type": "array"
|
|
},
|
|
"priority": {
|
|
"default": 0,
|
|
"maximum": 100.0,
|
|
"minimum": -100.0,
|
|
"title": "Priority",
|
|
"type": "integer"
|
|
},
|
|
"status": {
|
|
"default": "todo",
|
|
"enum": [
|
|
"todo",
|
|
"in_progress",
|
|
"done",
|
|
"canceled"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"maxLength": 240,
|
|
"minLength": 1,
|
|
"title": "Title",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"title"
|
|
],
|
|
"title": "EpicCreate",
|
|
"type": "object"
|
|
},
|
|
"EpicListOut": {
|
|
"properties": {
|
|
"epics": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/EpicOut"
|
|
},
|
|
"title": "Epics",
|
|
"type": "array"
|
|
},
|
|
"limit": {
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
},
|
|
"offset": {
|
|
"title": "Offset",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"epics",
|
|
"total",
|
|
"limit",
|
|
"offset"
|
|
],
|
|
"title": "EpicListOut",
|
|
"type": "object"
|
|
},
|
|
"EpicOut": {
|
|
"properties": {
|
|
"completed_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Completed At"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"due_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Due At"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"labels": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Labels",
|
|
"type": "array"
|
|
},
|
|
"priority": {
|
|
"title": "Priority",
|
|
"type": "integer"
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"todo",
|
|
"in_progress",
|
|
"done",
|
|
"canceled"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"title": "Title",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"description",
|
|
"status",
|
|
"priority",
|
|
"labels",
|
|
"due_at",
|
|
"completed_at",
|
|
"created_at",
|
|
"updated_at"
|
|
],
|
|
"title": "EpicOut",
|
|
"type": "object"
|
|
},
|
|
"EpicUpdate": {
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 10000,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"due_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Due At"
|
|
},
|
|
"labels": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Labels"
|
|
},
|
|
"priority": {
|
|
"anyOf": [
|
|
{
|
|
"maximum": 100.0,
|
|
"minimum": -100.0,
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Priority"
|
|
},
|
|
"status": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"todo",
|
|
"in_progress",
|
|
"done",
|
|
"canceled"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 240,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
}
|
|
},
|
|
"title": "EpicUpdate",
|
|
"type": "object"
|
|
},
|
|
"HTTPValidationError": {
|
|
"properties": {
|
|
"detail": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ValidationError"
|
|
},
|
|
"title": "Detail",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"title": "HTTPValidationError",
|
|
"type": "object"
|
|
},
|
|
"HealthError": {
|
|
"properties": {
|
|
"error": {
|
|
"title": "Error",
|
|
"type": "string"
|
|
},
|
|
"ok": {
|
|
"const": false,
|
|
"default": false,
|
|
"title": "Ok",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"error"
|
|
],
|
|
"title": "HealthError",
|
|
"type": "object"
|
|
},
|
|
"HealthOk": {
|
|
"properties": {
|
|
"ok": {
|
|
"const": true,
|
|
"default": true,
|
|
"title": "Ok",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"title": "HealthOk",
|
|
"type": "object"
|
|
},
|
|
"TaskCreate": {
|
|
"properties": {
|
|
"description": {
|
|
"default": "",
|
|
"maxLength": 10000,
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"due_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Due At"
|
|
},
|
|
"epic_id": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 36,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Epic Id"
|
|
},
|
|
"labels": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"title": "Labels",
|
|
"type": "array"
|
|
},
|
|
"priority": {
|
|
"default": 0,
|
|
"maximum": 100.0,
|
|
"minimum": -100.0,
|
|
"title": "Priority",
|
|
"type": "integer"
|
|
},
|
|
"status": {
|
|
"default": "todo",
|
|
"enum": [
|
|
"todo",
|
|
"in_progress",
|
|
"done",
|
|
"canceled"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"maxLength": 240,
|
|
"minLength": 1,
|
|
"title": "Title",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"title"
|
|
],
|
|
"title": "TaskCreate",
|
|
"type": "object"
|
|
},
|
|
"TaskListOut": {
|
|
"properties": {
|
|
"limit": {
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
},
|
|
"offset": {
|
|
"title": "Offset",
|
|
"type": "integer"
|
|
},
|
|
"tasks": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TaskOut"
|
|
},
|
|
"title": "Tasks",
|
|
"type": "array"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"tasks",
|
|
"total",
|
|
"limit",
|
|
"offset"
|
|
],
|
|
"title": "TaskListOut",
|
|
"type": "object"
|
|
},
|
|
"TaskOut": {
|
|
"properties": {
|
|
"completed_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Completed At"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"due_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Due At"
|
|
},
|
|
"epic_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Epic Id"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"labels": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Labels",
|
|
"type": "array"
|
|
},
|
|
"priority": {
|
|
"title": "Priority",
|
|
"type": "integer"
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"todo",
|
|
"in_progress",
|
|
"done",
|
|
"canceled"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"title": "Title",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"description",
|
|
"status",
|
|
"priority",
|
|
"labels",
|
|
"due_at",
|
|
"epic_id",
|
|
"completed_at",
|
|
"created_at",
|
|
"updated_at"
|
|
],
|
|
"title": "TaskOut",
|
|
"type": "object"
|
|
},
|
|
"TaskUpdate": {
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 10000,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"due_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Due At"
|
|
},
|
|
"epic_id": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 36,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Epic Id"
|
|
},
|
|
"labels": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 20,
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Labels"
|
|
},
|
|
"priority": {
|
|
"anyOf": [
|
|
{
|
|
"maximum": 100.0,
|
|
"minimum": -100.0,
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Priority"
|
|
},
|
|
"status": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"todo",
|
|
"in_progress",
|
|
"done",
|
|
"canceled"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 240,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
}
|
|
},
|
|
"title": "TaskUpdate",
|
|
"type": "object"
|
|
},
|
|
"ValidationError": {
|
|
"properties": {
|
|
"ctx": {
|
|
"title": "Context",
|
|
"type": "object"
|
|
},
|
|
"input": {
|
|
"title": "Input"
|
|
},
|
|
"loc": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"title": "Location",
|
|
"type": "array"
|
|
},
|
|
"msg": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"title": "Error Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"loc",
|
|
"msg",
|
|
"type"
|
|
],
|
|
"title": "ValidationError",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"apiKeyAuth": {
|
|
"description": "Use the configured `TASKS_API_KEY` value.",
|
|
"in": "header",
|
|
"name": "x-api-key",
|
|
"type": "apiKey"
|
|
},
|
|
"bearerAuth": {
|
|
"description": "Use `Authorization: Bearer $TASKS_API_KEY`.",
|
|
"scheme": "bearer",
|
|
"type": "http"
|
|
}
|
|
}
|
|
},
|
|
"info": {
|
|
"description": "API-only service for tracking tasks in Postgres.",
|
|
"title": "Tasks API",
|
|
"version": "0.1.0"
|
|
},
|
|
"openapi": "3.1.0",
|
|
"paths": {
|
|
"/api/epics": {
|
|
"get": {
|
|
"operationId": "listEpics",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "status",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"todo",
|
|
"in_progress",
|
|
"done",
|
|
"canceled"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "q",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Q"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "due_before",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Due Before"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 0,
|
|
"minimum": 0,
|
|
"title": "Offset",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EpicListOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "List Epics",
|
|
"tags": [
|
|
"Epics"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "createEpic",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EpicCreate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EpicOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "Create Epic",
|
|
"tags": [
|
|
"Epics"
|
|
]
|
|
}
|
|
},
|
|
"/api/epics/{epic_id}": {
|
|
"delete": {
|
|
"operationId": "deleteEpic",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "epic_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Epic Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "Delete Epic",
|
|
"tags": [
|
|
"Epics"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "getEpic",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "epic_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Epic Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EpicOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "Get Epic",
|
|
"tags": [
|
|
"Epics"
|
|
]
|
|
},
|
|
"patch": {
|
|
"operationId": "updateEpic",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "epic_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Epic Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EpicUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EpicOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "Update Epic",
|
|
"tags": [
|
|
"Epics"
|
|
]
|
|
}
|
|
},
|
|
"/api/epics/{epic_id}/tasks": {
|
|
"get": {
|
|
"operationId": "listEpicTasks",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "epic_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Epic Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "status",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"todo",
|
|
"in_progress",
|
|
"done",
|
|
"canceled"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "q",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Q"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "due_before",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Due Before"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 0,
|
|
"minimum": 0,
|
|
"title": "Offset",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskListOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "List Epic Tasks",
|
|
"tags": [
|
|
"Epics"
|
|
]
|
|
}
|
|
},
|
|
"/api/tasks": {
|
|
"get": {
|
|
"operationId": "listTasks",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "status",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"todo",
|
|
"in_progress",
|
|
"done",
|
|
"canceled"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "q",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Q"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "due_before",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Due Before"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "epic_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"maxLength": 36,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Epic Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 0,
|
|
"minimum": 0,
|
|
"title": "Offset",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskListOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "List Tasks",
|
|
"tags": [
|
|
"Tasks"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "createTask",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskCreate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "Create Task",
|
|
"tags": [
|
|
"Tasks"
|
|
]
|
|
}
|
|
},
|
|
"/api/tasks/{task_id}": {
|
|
"delete": {
|
|
"operationId": "deleteTask",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "task_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Task Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "Delete Task",
|
|
"tags": [
|
|
"Tasks"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "getTask",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "task_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Task Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "Get Task",
|
|
"tags": [
|
|
"Tasks"
|
|
]
|
|
},
|
|
"patch": {
|
|
"operationId": "updateTask",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "task_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Task Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskOut"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
},
|
|
{
|
|
"apiKeyAuth": []
|
|
}
|
|
],
|
|
"summary": "Update Task",
|
|
"tags": [
|
|
"Tasks"
|
|
]
|
|
}
|
|
},
|
|
"/healthz": {
|
|
"get": {
|
|
"operationId": "getTasksHealth",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HealthOk"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"503": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HealthError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Service Unavailable"
|
|
}
|
|
},
|
|
"summary": "Healthz",
|
|
"tags": [
|
|
"Health"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|