openapi: 3.0.3 info: title: Modular School API version: 2.0.0-phase8 paths: /api/v2/students: get: operationId: api.v2.students.index tags: [Students] security: [{ bearerAuth: [] }] responses: '200': { description: Student list response } post: operationId: api.v2.students.store tags: [Students] security: [{ bearerAuth: [] }] responses: '201': { description: Student created } '422': { description: Validation failed } /api/v2/finance/payments/{payment}/file: get: operationId: api.v2.finance.payments.file tags: [Finance] security: [{ bearerAuth: [] }] parameters: - name: payment in: path required: true schema: { type: integer } responses: '200': { description: Authorized payment file download } '403': { description: Forbidden } '404': { description: Payment or file not found } /api/v2/communication/recipient-previews: post: operationId: api.v2.communication.recipient-previews.store tags: [Communication] security: [{ bearerAuth: [] }] responses: '201': { description: Recipient preview created } /api/v2/communication/bulk-sends: post: operationId: api.v2.communication.bulk-sends.store tags: [Communication] security: [{ bearerAuth: [] }] responses: '200': { description: Bulk send accepted from confirmed preview } '409': { description: Idempotency conflict } /api/v2/reporting/reports/run: post: operationId: api.v2.reporting.reports.run tags: [Reporting] security: [{ bearerAuth: [] }] responses: '200': { description: Report result } components: securitySchemes: bearerAuth: type: http scheme: bearer