post: summary: Report update status x-auth-scopes: [report_status] parameters: - name: project_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '../schemas/status-report.yaml' examples: success: value: project_id: demo version: 1.2.3 status: success timestamp: 2025-12-28T10:15:30Z client_id: device-42 duration_ms: 2450 failure: value: project_id: demo version: 1.2.3 status: failed timestamp: 2025-12-28T10:15:30Z client_id: device-42 reason: checksum_mismatch error_code: checksum_mismatch responses: '202': description: Accepted '400': description: Bad Request x-error-codes: [invalid_payload] content: application/json: schema: $ref: '../schemas/error.yaml' examples: invalid_payload: value: code: invalid_payload message: Missing required fields '401': description: Unauthorized x-error-codes: [unauthorized] content: application/json: schema: $ref: '../schemas/error.yaml' examples: unauthorized: value: code: unauthorized message: Missing or invalid token '422': description: Unprocessable Entity (invalid version or status) x-error-codes: [version_invalid, status_invalid] content: application/json: schema: $ref: '../schemas/error.yaml' examples: version_invalid: value: code: version_invalid message: Version does not match SemVer '429': description: Too Many Requests x-error-codes: [rate_limited] content: application/json: schema: $ref: '../schemas/error.yaml' examples: rate_limited: value: code: rate_limited message: Too many requests