openapi: 3.2.0 info: title: RCAC Pages API version: 0.0.1 servers: - url: https://www.rcac.purdue.edu/api description: Production server tags: - name: Pages paths: /pages: get: description: Display a listing of entries parameters: - in: query name: limit description: Number of result per page. required: false schema: type: integer default: 20 - in: query name: page description: Number of where to start returning results. required: false schema: type: integer default: 0 - in: query name: state description: Article state. required: false schema: type: integer default: published enum: - published - unpublished - trashed - all - in: query name: access description: Article access value. schema: type: integer default: 1 required: false - in: query name: search description: A word or phrase to search for. schema: type: string default: null required: false - in: query name: order description: Field to sort results by. required: false schema: type: string default: title enum: - id - title - alias - created_at - updated_at - in: query name: order_dir description: Direction to sort results by. required: false schema: type: string default: asc enum: - asc - desc tags: - Pages summary: Get pages x-summary-source: derived operationId: getPages x-operation-id-source: derived post: description: Create an entry parameters: [] responses: '201': description: Successful entry creation '401': description: Unauthorized '422': description: Invalid data requestBody: content: '*/*': schema: type: object properties: title: description: Title type: string default: null slug: description: URL slug type: string default: null content: description: Content type: string default: null state: description: Published state type: integer default: 1 access: description: Access level type: integer default: 1 publish_up: description: Start publishing (defaults to created time) type: string default: null publish_down: description: Stop publishing type: string default: null parent_id: description: Parent page ID type: integer default: null required: - title - content tags: - Pages summary: Create pages x-summary-source: derived operationId: postPages x-operation-id-source: derived /pages/{id}: get: description: Retrieve an entry parameters: - in: query name: id description: Entry identifier required: true schema: type: integer responses: '200': description: Successful entry read '404': description: Record not found tags: - Pages summary: Get pages by id x-summary-source: derived operationId: getPagesById x-operation-id-source: derived put: description: Update an entry parameters: - in: query name: id description: Entry identifier required: true schema: type: integer responses: '202': description: Successful entry modification '404': description: Record not found '409': description: Invalid data requestBody: content: '*/*': schema: type: object properties: title: description: Title type: string default: null slug: description: URL slug type: string default: null content: description: Content type: string default: null state: description: Published state type: integer default: 1 access: description: Access level type: integer default: 1 publish_up: description: Start publishing (defaults to created time) type: string default: null publish_down: description: Stop publishing type: string default: null parent_id: description: Parent page ID type: integer default: null required: [] tags: - Pages summary: Replace pages by id x-summary-source: derived operationId: putPagesById x-operation-id-source: derived delete: description: Delete an entry parameters: - in: query name: id description: Entry identifier required: true schema: type: integer responses: '204': description: Successful entry deletion '404': description: Record not found tags: - Pages summary: Delete pages by id x-summary-source: derived operationId: deletePagesById x-operation-id-source: derived components: securitySchemes: api_token: type: apiKey name: api_token in: header