openapi: 3.0.0 info: title: Backup Scheduler & Task API version: 1.0.0 paths: /tasks: get: summary: List all tasks parameters: - name: limit in: query schema: type: integer default: 50 - name: type in: query schema: type: string enum: [backup, migration] - name: status in: query schema: type: string enum: [running, success, failed, pending] responses: '200': description: List of tasks content: application/json: schema: type: array items: $ref: '#/components/schemas/Task' /tasks/backup: post: summary: Manually trigger a backup requestBody: required: true content: application/json: schema: type: object required: - environment_id properties: environment_id: type: string format: uuid responses: '202': description: Backup task started content: application/json: schema: $ref: '#/components/schemas/Task' /tasks/{id}: get: summary: Get task details parameters: - name: id in: path required: true schema: type: string format: uuid responses: '200': description: Task details content: application/json: schema: $ref: '#/components/schemas/Task' /environments/{id}/schedule: get: summary: Get backup schedule for environment parameters: - name: id in: path required: true schema: type: string format: uuid responses: '200': description: Schedule configuration content: application/json: schema: $ref: '#/components/schemas/Schedule' put: summary: Update backup schedule parameters: - name: id in: path required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Schedule' responses: '200': description: Schedule updated content: application/json: schema: $ref: '#/components/schemas/Schedule' components: schemas: Task: type: object properties: id: type: string format: uuid type: type: string enum: [backup, migration] status: type: string enum: [pending, running, success, failed] environment_id: type: string format: uuid started_at: type: string format: date-time finished_at: type: string format: date-time created_at: type: string format: date-time error: type: string logs: type: string Schedule: type: object properties: enabled: type: boolean cron_expression: type: string example: "0 0 * * *"