avm/ptn/azd/apim-api/modules/openapi.yaml (308 lines of code) (raw):

openapi: 3.0.0 info: description: Simple Todo API version: 3.0.0 title: Simple Todo API contact: email: azdevteam@microsoft.com components: schemas: TodoItem: type: object required: - listId - name - description description: A task that needs to be completed properties: id: type: string listId: type: string name: type: string description: type: string state: $ref: "#/components/schemas/TodoState" dueDate: type: string format: date-time completedDate: type: string format: date-time TodoList: type: object required: - name properties: id: type: string name: type: string description: type: string description: " A list of related Todo items" TodoState: type: string enum: - todo - inprogress - done parameters: listId: in: path required: true name: listId description: The Todo list unique identifier schema: type: string itemId: in: path required: true name: itemId description: The Todo item unique identifier schema: type: string state: in: path required: true name: state description: The Todo item state schema: $ref: "#/components/schemas/TodoState" top: in: query required: false name: top description: The max number of items to returns in a result schema: type: number default: 20 skip: in: query required: false name: skip description: The number of items to skip within the results schema: type: number default: 0 requestBodies: TodoList: description: The Todo List content: application/json: schema: $ref: "#/components/schemas/TodoList" TodoItem: description: The Todo Item content: application/json: schema: $ref: "#/components/schemas/TodoItem" responses: TodoList: description: A Todo list result content: application/json: schema: $ref: "#/components/schemas/TodoList" TodoListArray: description: An array of Todo lists content: application/json: schema: type: array items: $ref: "#/components/schemas/TodoList" TodoItem: description: A Todo item result content: application/json: schema: $ref: "#/components/schemas/TodoItem" TodoItemArray: description: An array of Todo items content: application/json: schema: type: array items: $ref: "#/components/schemas/TodoItem" paths: /lists: get: operationId: GetLists summary: Gets an array of Todo lists tags: - Lists parameters: - $ref: "#/components/parameters/top" - $ref: "#/components/parameters/skip" responses: 200: $ref: "#/components/responses/TodoListArray" post: operationId: CreateList summary: Creates a new Todo list tags: - Lists requestBody: $ref: "#/components/requestBodies/TodoList" responses: 201: $ref: "#/components/responses/TodoList" 400: description: Invalid request schema /lists/{listId}: get: operationId: GetListById summary: Gets a Todo list by unique identifier tags: - Lists parameters: - $ref: "#/components/parameters/listId" responses: 200: $ref: "#/components/responses/TodoList" 404: description: Todo list not found put: operationId: UpdateListById summary: Updates a Todo list by unique identifier tags: - Lists requestBody: $ref: "#/components/requestBodies/TodoList" parameters: - $ref: "#/components/parameters/listId" responses: 200: $ref: "#/components/responses/TodoList" 404: description: Todo list not found 400: description: Todo list is invalid delete: operationId: DeleteListById summary: Deletes a Todo list by unique identifier tags: - Lists parameters: - $ref: "#/components/parameters/listId" responses: 204: description: Todo list deleted successfully 404: description: Todo list not found /lists/{listId}/items: post: operationId: CreateItem summary: Creates a new Todo item within a list tags: - Items requestBody: $ref: "#/components/requestBodies/TodoItem" parameters: - $ref: "#/components/parameters/listId" responses: 201: $ref: "#/components/responses/TodoItem" 404: description: Todo list not found get: operationId: GetItemsByListId summary: Gets Todo items within the specified list tags: - Items parameters: - $ref: "#/components/parameters/listId" - $ref: "#/components/parameters/top" - $ref: "#/components/parameters/skip" responses: 200: $ref: "#/components/responses/TodoItemArray" 404: description: Todo list not found /lists/{listId}/items/{itemId}: get: operationId: GetItemById summary: Gets a Todo item by unique identifier tags: - Items parameters: - $ref: "#/components/parameters/listId" - $ref: "#/components/parameters/itemId" responses: 200: $ref: "#/components/responses/TodoItem" 404: description: Todo list or item not found put: operationId: UpdateItemById summary: Updates a Todo item by unique identifier tags: - Items requestBody: $ref: "#/components/requestBodies/TodoItem" parameters: - $ref: "#/components/parameters/listId" - $ref: "#/components/parameters/itemId" responses: 200: $ref: "#/components/responses/TodoItem" 400: description: Todo item is invalid 404: description: Todo list or item not found delete: operationId: DeleteItemById summary: Deletes a Todo item by unique identifier tags: - Items parameters: - $ref: "#/components/parameters/listId" - $ref: "#/components/parameters/itemId" responses: 204: description: Todo item deleted successfully 404: description: Todo list or item not found /lists/{listId}/items/state/{state}: get: operationId: GetItemsByListIdAndState summary: Gets a list of Todo items of a specific state tags: - Items parameters: - $ref: "#/components/parameters/listId" - $ref: "#/components/parameters/state" - $ref: "#/components/parameters/top" - $ref: "#/components/parameters/skip" responses: 200: $ref: "#/components/responses/TodoItemArray" 404: description: Todo list or item not found put: operationId: UpdateItemsStateByListId summary: Changes the state of the specified list items tags: - Items requestBody: description: unique identifiers of the Todo items to update content: application/json: schema: type: array items: description: The Todo item unique identifier type: string parameters: - $ref: "#/components/parameters/listId" - $ref: "#/components/parameters/state" responses: 204: description: Todo items updated 400: description: Update request is invalid