{
  "openapi": "3.0.0",
  "info": {
    "title": "ASAP API - Knowledge Base",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.amitysolutions.com/api/v1",
      "description": "ASAP API Endpoint"
    }
  ],
  "tags": [
    {
      "name": "Knowledge Base API"
    },
    {
      "name": "Knowledge File API"
    }
  ],
  "security": [
    {
      "apiKey": []
    }
  ],
  "paths": {
    "/knowledge": {
      "post": {
        "tags": [
          "Knowledge Base API"
        ],
        "summary": "Create knowledge base",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateKnowledgeParams"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "New knowledge base",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Knowledge"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      },
      "get": {
        "tags": [
          "Knowledge Base API"
        ],
        "summary": "List knowledge bases",
        "parameters": [
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/pageSize"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of knowledge bases and pagination metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Knowledge"
                      }
                    },
                    "total": {
                      "type": "number",
                      "description": "Total number of items that can be found with current filters"
                    },
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationMetadata"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      }
    },
    "/knowledge/{id}": {
      "get": {
        "tags": [
          "Knowledge Base API"
        ],
        "summary": "Get a specific knowledge base",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "Knowledge base with specified ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Knowledge"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Knowledge base not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeNotFoundError"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      },
      "put": {
        "tags": [
          "Knowledge Base API"
        ],
        "summary": "Update knowledge base",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKnowledgeParams"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated knowledge base",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Knowledge"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Knowledge base not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeNotFoundError"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      },
      "delete": {
        "tags": [
          "Knowledge Base API"
        ],
        "summary": "Delete knowledge base",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Knowledge base not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeNotFoundError"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      }
    },
    "/knowledge/{id}/files": {
      "post": {
        "tags": [
          "Knowledge File API"
        ],
        "summary": "Upload a file to specified knowledge base",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/UploadFileParams"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "New file",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeFile"
                }
              }
            }
          },
          "400": {
            "description": "Bad request error response. Could be one of `UnsupportedKnowledgeFileTypeError` or `UnsupportCsvKnowledgeFileFormatError`",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/UnsupportedKnowledgeFileTypeError"
                    },
                    {
                      "$ref": "#/components/schemas/UnsupportCsvKnowledgeFileFormatError"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Knowledge base not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeNotFoundError"
                }
              }
            }
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      },
      "get": {
        "tags": [
          "Knowledge File API"
        ],
        "summary": "List files inside knowledge base",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/pageSize"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of files and pagination metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KnowledgeFile"
                      }
                    },
                    "total": {
                      "type": "number",
                      "description": "Total number of items that can be found with current filters"
                    },
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationMetadata"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Knowledge base not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeNotFoundError"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      }
    },
    "/knowledge/{id}/files/{fileId}": {
      "get": {
        "tags": [
          "Knowledge File API"
        ],
        "summary": "Get a file inside knowledge base",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/fileId"
          }
        ],
        "responses": {
          "200": {
            "description": "File with specified ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeFile"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not found error. Could be one of `KnowledgeNotFoundError` or `KnowledgeFileNotFoundError`",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/KnowledgeNotFoundError"
                    },
                    {
                      "$ref": "#/components/schemas/KnowledgeFileNotFoundError"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      },
      "put": {
        "tags": [
          "Knowledge File API"
        ],
        "summary": "Update/replace a file inside knowledge base",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/fileId"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/UploadFileParams"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated file",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeFile"
                }
              }
            }
          },
          "400": {
            "description": "Bad request error. Could be one of `UnsupportedKnowledgeFileTypeError` or `UnsupportCsvKnowledgeFileFormatError`",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/UnsupportedKnowledgeFileTypeError"
                    },
                    {
                      "$ref": "#/components/schemas/UnsupportCsvKnowledgeFileFormatError"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not found error. Could be one of `KnowledgeNotFoundError` or `KnowledgeFileNotFoundError`",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/KnowledgeNotFoundError"
                    },
                    {
                      "$ref": "#/components/schemas/KnowledgeFileNotFoundError"
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "$ref": "#/components/responses/413"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      },
      "delete": {
        "tags": [
          "Knowledge File API"
        ],
        "summary": "Delete a file from knowledge base",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/fileId"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not found error. Could be one of `KnowledgeNotFoundError` or `KnowledgeFileNotFoundError`",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/KnowledgeNotFoundError"
                    },
                    {
                      "$ref": "#/components/schemas/KnowledgeFileNotFoundError"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      }
    },
    "/knowledge/{id}/files/{fileId}/download": {
      "get": {
        "tags": [
          "Knowledge File API"
        ],
        "summary": "Download a file from knowledge base",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/fileId"
          }
        ],
        "responses": {
          "200": {
            "description": "The file in binary format. The content type of the response will depend on the type of the file.",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "description": "Not found error. Could be one of `KnowledgeNotFoundError` or `KnowledgeFileNotFoundError`",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/KnowledgeNotFoundError"
                    },
                    {
                      "$ref": "#/components/schemas/KnowledgeFileNotFoundError"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "429": {
            "$ref": "#/components/responses/429"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "PaginationMetadata": {
        "type": "object",
        "properties": {
          "page": {
            "type": "number",
            "description": "Current page"
          },
          "pageCount": {
            "type": "number",
            "description": "Total number of pages available with current filters"
          },
          "pageSize": {
            "type": "number",
            "description": "Number of items included in each page"
          }
        }
      },
      "Knowledge": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Numeric ID of the knowledge"
          },
          "name": {
            "type": "string",
            "description": "The name of the knowledge"
          },
          "source": {
            "type": "string",
            "enum": [
              "internal",
              "external"
            ],
            "description": "Type of knowledge base. `internal` will search the content from uploaded files and `external` will send a request to `target` endpoint for search."
          },
          "supportedLanguages": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "th"
              ]
            },
            "description": "List of supported languages for the knowledge. Files uploaded to this knowledge will have a copy of the document with each supported language translated."
          },
          "target": {
            "type": "string",
            "description": "Search endpoint for external knowledge bases"
          },
          "enableSemanticSearch": {
            "type": "boolean",
            "description": "If set to true, search will use semantic search on top of full-text search."
          },
          "createdAt": {
            "type": "string",
            "format": "ISOString",
            "description": "Timestamp of creation for knowledge",
            "example": "2023-11-09T00:00:00.000Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "ISOString",
            "description": "Last updated timestamp for knowledge",
            "example": "2023-11-09T00:00:00.000Z"
          }
        }
      },
      "KnowledgeFile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Numeric ID of the file"
          },
          "name": {
            "type": "string",
            "description": "Generated unique name of the file in storage"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "deleting"
            ],
            "description": "Current status of the file, either `active` or `deleting`. When the status is `deleting`, the contents of the file will not be passed to LLM."
          },
          "path": {
            "type": "string",
            "description": "File path in storage container"
          },
          "combined": {
            "type": "string",
            "description": "File path in storage container"
          },
          "storageContainerName": {
            "type": "string",
            "description": "The storage container that the file is stored"
          },
          "meta": {
            "type": "object",
            "description": "File metadata",
            "properties": {
              "mimetype": {
                "type": "string"
              },
              "originalName": {
                "type": "string"
              },
              "size": {
                "type": "number"
              }
            }
          },
          "kmVersion": {
            "type": "string",
            "description": "The version of parent knowledge base"
          },
          "knowledge": {
            "$ref": "#/components/schemas/Knowledge"
          },
          "createdAt": {
            "type": "string",
            "format": "ISOString",
            "description": "Timestamp of creation for knowledge",
            "example": "2023-11-09T00:00:00.000Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "ISOString",
            "description": "Last updated timestamp for knowledge",
            "example": "2023-11-09T00:00:00.000Z"
          }
        }
      },
      "CreateKnowledgeParams": {
        "type": "object",
        "required": [
          "name",
          "source",
          "supportedLanguages"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the knowledge<br />Max file name length: <b>255 characters</b>"
          },
          "source": {
            "type": "string",
            "enum": [
              "internal",
              "external"
            ],
            "description": "Type of knowledge base"
          },
          "target": {
            "type": "string",
            "description": "Search endpoint for external knowledge bases. Required only for external knowledge base.",
            "default": ""
          },
          "supportedLanguages": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "th"
              ]
            },
            "description": "List of supported languages for the knowledge. Files uploaded to this knowledge will have a copy of the document with each supported language translated."
          },
          "createFulfillment": {
            "type": "boolean",
            "default": true,
            "description": "Option to create a new fulfillment. If set to true, a new fulfillment will automatically be created and attached to the new knowledge base."
          }
        }
      },
      "UpdateKnowledgeParams": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the knowledge<br />Max file name length: <b>255 characters</b>"
          }
        }
      },
      "UploadFileParams": {
        "type": "object",
        "properties": {
          "file": {
            "type": "string",
            "format": "binary",
            "description": "File/Document to upload. <br/><br/> Supports the following file types: `text/csv`, `text/xml`, `text/html`, `application/pdf`, `application/rtf`, `application/xml`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.ms-powerpoint`, `application/vnd.openxmlformats-officedocument.presentationml.presentation`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` <br/><br/> Max file size: <b>100 MB</b> <br/><br/> Max file name length: <b>255 characters</b>"
          }
        }
      },
      "KnowledgeNotFoundError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the error"
          },
          "code": {
            "type": "number",
            "description": "ASAP platform specific error code"
          },
          "status": {
            "type": "number",
            "description": "HTTP status code"
          },
          "message": {
            "type": "string",
            "description": "Error message details"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "example": {
          "name": "NotFoundException",
          "code": 404001,
          "status": 404,
          "message": "Knowledge base with specified ID not found.",
          "errors": []
        }
      },
      "KnowledgeFileNotFoundError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the error"
          },
          "code": {
            "type": "number",
            "description": "ASAP platform specific error code"
          },
          "status": {
            "type": "number",
            "description": "HTTP status code"
          },
          "message": {
            "type": "string",
            "description": "Error message details"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "example": {
          "name": "NotFoundException",
          "code": 404002,
          "status": 404,
          "message": "Knowledge File with specified ID not found.",
          "errors": []
        }
      },
      "KnowledgeFileAlreadyExistsError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the error"
          },
          "code": {
            "type": "number",
            "description": "ASAP platform specific error code"
          },
          "status": {
            "type": "number",
            "description": "HTTP status code"
          },
          "message": {
            "type": "string",
            "description": "Error message details"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "example": {
          "name": "KnowledgeFileAlreadyExistsException",
          "code": 400001,
          "status": 400,
          "message": "Knowledge File already exists.",
          "errors": []
        }
      },
      "UnsupportedKnowledgeFileTypeError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the error"
          },
          "code": {
            "type": "number",
            "description": "ASAP platform specific error code"
          },
          "status": {
            "type": "number",
            "description": "HTTP status code"
          },
          "message": {
            "type": "string",
            "description": "Error message details"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "example": {
          "name": "BadRequestException",
          "code": 400002,
          "status": 400,
          "message": "Unsupported knowledge file type.",
          "errors": []
        }
      },
      "UnsupportCsvKnowledgeFileFormatError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the error"
          },
          "code": {
            "type": "number",
            "description": "ASAP platform specific error code"
          },
          "status": {
            "type": "number",
            "description": "HTTP status code"
          },
          "message": {
            "type": "string",
            "description": "Error message details"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "example": {
          "name": "BadRequestException",
          "code": 400003,
          "status": 400,
          "message": "Unsupported csv knowledge file format.",
          "errors": []
        }
      },
      "UnauthorizedError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": "number"
          },
          "status": {
            "type": "number"
          },
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "example": {
          "name": "UnauthorizedException",
          "code": 401001,
          "status": 401,
          "message": "Unauthorized",
          "errors": []
        }
      },
      "ValidationError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the error"
          },
          "code": {
            "type": "number",
            "description": "ASAP platform specific error code"
          },
          "status": {
            "type": "number",
            "description": "HTTP status code"
          },
          "message": {
            "type": "string",
            "description": "Error message details"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "type",
                "field",
                "message"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Type of error"
                },
                "field": {
                  "type": "string",
                  "description": "Name of the field having the error"
                },
                "value": {
                  "type": "string",
                  "description": "Input value"
                },
                "message": {
                  "type": "string",
                  "description": "Error message"
                }
              }
            }
          }
        },
        "example": {
          "name": "UnprocessableEntityException",
          "code": 422001,
          "status": 422,
          "message": "request payload validation failed",
          "errors": [
            {
              "type": "isNotEmpty",
              "field": "name",
              "message": "name must not be empty"
            },
            {
              "type": "min",
              "field": "limit",
              "value": -1,
              "message": "limit must not be less than 1"
            }
          ]
        }
      },
      "RateLimitExceededError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the error"
          },
          "code": {
            "type": "number",
            "description": "ASAP platform specific error code"
          },
          "status": {
            "type": "number",
            "description": "HTTP status code"
          },
          "message": {
            "type": "string",
            "description": "Error message details"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "example": {
          "name": "RateLimitExceededException",
          "code": 429001,
          "status": 429,
          "message": "Rate limit exceeded",
          "errors": []
        }
      }
    },
    "securitySchemes": {
      "apiKey": {
        "description": "API Key Authentication",
        "type": "apiKey",
        "name": "x-api-key",
        "in": "header"
      }
    },
    "parameters": {
      "id": {
        "name": "id",
        "in": "path",
        "description": "Knowledge Base ID",
        "required": true,
        "style": "simple",
        "explode": true,
        "schema": {
          "type": "number"
        }
      },
      "fileId": {
        "name": "fileId",
        "in": "path",
        "description": "Knowledge File ID",
        "required": true,
        "style": "simple",
        "explode": true,
        "schema": {
          "type": "number"
        }
      },
      "page": {
        "name": "pagination[page]",
        "in": "query",
        "description": "Page number of the query",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "minimum": 1,
          "type": "integer",
          "default": 1
        }
      },
      "pageSize": {
        "name": "pagination[pageSize]",
        "in": "query",
        "description": "Number of items to include in each page",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "minimum": 1,
          "maximum": 100,
          "type": "integer",
          "default": 25
        }
      }
    },
    "responses": {
      "200": {
        "description": "OK"
      },
      "204": {
        "description": "Processed Successfully."
      },
      "401": {
        "description": "Unauthorized Error. ASAP will return this error when there is either no api key, invalid api key or the client`s IP address is not whitelisted.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UnauthorizedError"
            }
          }
        }
      },
      "404": {
        "description": "Not Found"
      },
      "413": {
        "description": "Request Entity Too Large"
      },
      "422": {
        "description": "Validation Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ValidationError"
            }
          }
        }
      },
      "429": {
        "description": "Too Many Requests",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RateLimitExceededError"
            }
          }
        }
      }
    }
  }
}
