openapi: 3.2.0 info: title: EVEDEX - Academy Module API version: 1.0.0 servers: - url: https://academy.evedex.com tags: - name: Module paths: /api/course/{courseId}/module/{moduleId}: put: tags: - Module security: - AccessToken: [] parameters: - in: path name: courseId schema: type: string format: uuid required: true - in: path name: moduleId schema: type: string format: uuid required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ModuleUpdateBody' responses: '200': description: 200 OK content: application/json: schema: $ref: '#/components/schemas/ModuleObject' delete: tags: - Module security: - AccessToken: [] parameters: - in: path name: courseId schema: type: string format: uuid required: true - in: path name: moduleId schema: type: string format: uuid required: true responses: '200': description: 200 OK content: application/json: schema: $ref: '#/components/schemas/EmptyResponse' /api/course/{courseId}/module: post: tags: - Module security: - AccessToken: [] parameters: - in: path name: courseId schema: type: string required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ModuleCreateBody' responses: '200': description: 200 OK content: application/json: schema: $ref: '#/components/schemas/ModuleObject' components: schemas: ModuleObject: type: object properties: id: type: string course: type: string name: type: string order: type: number published: type: boolean releaseDate: type: - string - 'null' createdAt: type: string updatedAt: type: string required: - id - course - name - order - published - releaseDate - createdAt - updatedAt ModuleUpdateBody: type: object properties: name: type: string order: type: number published: type: boolean releaseDate: type: string format: date-time ModuleCreateBody: type: object properties: name: type: string required: - name EmptyResponse: type: object securitySchemes: AccessToken: type: http scheme: bearer InternalKey: type: http scheme: bearer