1893 lines
66 KiB
JSON
1893 lines
66 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "PaperJet",
|
|
"description": "Self-hosted PDF editor API",
|
|
"version": "0.1.0"
|
|
},
|
|
"paths": {
|
|
"/api/v1/auth/status": {
|
|
"get": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Get Auth Status",
|
|
"description": "Check if app requires setup and if user is logged in.",
|
|
"operationId": "get_auth_status_api_v1_auth_status_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthStatusResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/setup": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Setup Password",
|
|
"description": "First-run setup.",
|
|
"operationId": "setup_password_api_v1_auth_setup_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SetupRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object",
|
|
"title": "Response Setup Password Api V1 Auth Setup Post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/login": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Login",
|
|
"description": "Validate password and issue session cookie.",
|
|
"operationId": "login_api_v1_auth_login_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object",
|
|
"title": "Response Login Api V1 Auth Login Post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/logout": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Logout",
|
|
"description": "Clear session cookie.",
|
|
"operationId": "logout_api_v1_auth_logout_post",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object",
|
|
"title": "Response Logout Api V1 Auth Logout Post"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/password": {
|
|
"put": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Change Password",
|
|
"description": "Change an existing password.",
|
|
"operationId": "change_password_api_v1_auth_password_put",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangePasswordRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object",
|
|
"title": "Response Change Password Api V1 Auth Password Put"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents": {
|
|
"get": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "List Documents",
|
|
"description": "List non-trashed documents.",
|
|
"operationId": "list_documents_api_v1_documents_get",
|
|
"parameters": [
|
|
{
|
|
"name": "query",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "",
|
|
"title": "Query"
|
|
}
|
|
},
|
|
{
|
|
"name": "skip",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"default": 0,
|
|
"title": "Skip"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DocumentListResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Upload Document",
|
|
"description": "Upload a new PDF document.",
|
|
"operationId": "upload_document_api_v1_documents_post",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_upload_document_api_v1_documents_post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DocumentMeta"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents/trash": {
|
|
"get": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "List Trash",
|
|
"description": "List trashed documents.",
|
|
"operationId": "list_trash_api_v1_documents_trash_get",
|
|
"parameters": [
|
|
{
|
|
"name": "skip",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"default": 0,
|
|
"title": "Skip"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DocumentListResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents/{id}": {
|
|
"get": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Get Document",
|
|
"operationId": "get_document_api_v1_documents__id__get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DocumentMeta"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Update Document",
|
|
"operationId": "update_document_api_v1_documents__id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DocumentUpdateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DocumentMeta"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Delete Document",
|
|
"description": "Soft delete by default. Hard delete if permanent=True AND already in trash.",
|
|
"operationId": "delete_document_api_v1_documents__id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "permanent",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Permanent"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents/{id}/restore": {
|
|
"post": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Restore Document",
|
|
"operationId": "restore_document_api_v1_documents__id__restore_post",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DocumentMeta"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents/bulk-delete": {
|
|
"post": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Bulk Delete",
|
|
"operationId": "bulk_delete_api_v1_documents_bulk_delete_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkDeleteRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents/bulk-restore": {
|
|
"post": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Bulk Restore",
|
|
"operationId": "bulk_restore_api_v1_documents_bulk_restore_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkRestoreRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents/trash/empty": {
|
|
"post": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Empty Trash",
|
|
"operationId": "empty_trash_api_v1_documents_trash_empty_post",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents/{id}/file": {
|
|
"get": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Get Document File",
|
|
"operationId": "get_document_file_api_v1_documents__id__file_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents/{id}/thumbnail": {
|
|
"get": {
|
|
"tags": [
|
|
"documents"
|
|
],
|
|
"summary": "Get Document Thumbnail",
|
|
"operationId": "get_document_thumbnail_api_v1_documents__id__thumbnail_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/documents/{document_id}/annotations": {
|
|
"get": {
|
|
"tags": [
|
|
"Annotations"
|
|
],
|
|
"summary": "Get Annotations",
|
|
"operationId": "get_annotations_api_v1_documents__document_id__annotations_get",
|
|
"parameters": [
|
|
{
|
|
"name": "document_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Document Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationStateResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Annotations"
|
|
],
|
|
"summary": "Update Annotations",
|
|
"operationId": "update_annotations_api_v1_documents__document_id__annotations_put",
|
|
"parameters": [
|
|
{
|
|
"name": "document_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Document Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationStateUpdateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AnnotationStateUpdateResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/health": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Health Check",
|
|
"description": "Return service health status and version.",
|
|
"operationId": "health_check_api_v1_health_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object",
|
|
"title": "Response Health Check Api V1 Health Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/debug/verify-coords": {
|
|
"post": {
|
|
"tags": [
|
|
"Debug"
|
|
],
|
|
"summary": "Verify Coords",
|
|
"description": "Test endpoint for cross-engine coordinate verification.\nTakes a canonical rect, draws it on the PDF using PyMuPDF,\nand returns the flattened PDF.",
|
|
"operationId": "verify_coords_api_v1_debug_verify_coords_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VerifyCoordsRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"AnnotationStateResponse": {
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TextAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/DrawAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/SignatureAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ImageAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/HighlightAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ShapeAnnotation"
|
|
}
|
|
]
|
|
},
|
|
"type": "array",
|
|
"title": "Data"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Updatedat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"data",
|
|
"updatedAt"
|
|
],
|
|
"title": "AnnotationStateResponse"
|
|
},
|
|
"AnnotationStateUpdateRequest": {
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TextAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/DrawAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/SignatureAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ImageAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/HighlightAnnotation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ShapeAnnotation"
|
|
}
|
|
]
|
|
},
|
|
"type": "array",
|
|
"title": "Data"
|
|
},
|
|
"baseUpdatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Baseupdatedat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"data"
|
|
],
|
|
"title": "AnnotationStateUpdateRequest"
|
|
},
|
|
"AnnotationStateUpdateResponse": {
|
|
"properties": {
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Updatedat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"updatedAt"
|
|
],
|
|
"title": "AnnotationStateUpdateResponse"
|
|
},
|
|
"AuthStatusResponse": {
|
|
"properties": {
|
|
"setupRequired": {
|
|
"type": "boolean",
|
|
"title": "Setuprequired"
|
|
},
|
|
"loggedIn": {
|
|
"type": "boolean",
|
|
"title": "Loggedin"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"setupRequired",
|
|
"loggedIn"
|
|
],
|
|
"title": "AuthStatusResponse"
|
|
},
|
|
"Body_upload_document_api_v1_documents_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_upload_document_api_v1_documents_post"
|
|
},
|
|
"BulkDeleteRequest": {
|
|
"properties": {
|
|
"ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Ids"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"ids"
|
|
],
|
|
"title": "BulkDeleteRequest"
|
|
},
|
|
"BulkRestoreRequest": {
|
|
"properties": {
|
|
"ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Ids"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"ids"
|
|
],
|
|
"title": "BulkRestoreRequest"
|
|
},
|
|
"ChangePasswordRequest": {
|
|
"properties": {
|
|
"current_password": {
|
|
"type": "string",
|
|
"title": "Current Password"
|
|
},
|
|
"new_password": {
|
|
"type": "string",
|
|
"minLength": 8,
|
|
"title": "New Password"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"current_password",
|
|
"new_password"
|
|
],
|
|
"title": "ChangePasswordRequest"
|
|
},
|
|
"DocumentListResponse": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DocumentMeta"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total"
|
|
],
|
|
"title": "DocumentListResponse"
|
|
},
|
|
"DocumentMeta": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"filename": {
|
|
"type": "string",
|
|
"title": "Filename"
|
|
},
|
|
"mime_type": {
|
|
"type": "string",
|
|
"title": "Mime Type"
|
|
},
|
|
"size_bytes": {
|
|
"type": "integer",
|
|
"title": "Size Bytes"
|
|
},
|
|
"in_trash": {
|
|
"type": "boolean",
|
|
"title": "In Trash"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"title": "Created At"
|
|
},
|
|
"updated_at": {
|
|
"type": "string",
|
|
"title": "Updated At"
|
|
},
|
|
"deleted_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Deleted At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"filename",
|
|
"mime_type",
|
|
"size_bytes",
|
|
"in_trash",
|
|
"created_at",
|
|
"updated_at",
|
|
"deleted_at"
|
|
],
|
|
"title": "DocumentMeta"
|
|
},
|
|
"DocumentUpdateRequest": {
|
|
"properties": {
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"in_trash": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "In Trash"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "DocumentUpdateRequest"
|
|
},
|
|
"DrawAnnotation": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Page"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "draw",
|
|
"title": "Type"
|
|
},
|
|
"rect": {
|
|
"$ref": "#/components/schemas/Rect"
|
|
},
|
|
"rotation": {
|
|
"type": "number",
|
|
"title": "Rotation",
|
|
"default": 0.0
|
|
},
|
|
"z": {
|
|
"type": "integer",
|
|
"title": "Z",
|
|
"default": 0
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Createdat"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Updatedat"
|
|
},
|
|
"props": {
|
|
"$ref": "#/components/schemas/DrawProps"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"page",
|
|
"type",
|
|
"rect",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"props"
|
|
],
|
|
"title": "DrawAnnotation"
|
|
},
|
|
"DrawProps": {
|
|
"properties": {
|
|
"paths": {
|
|
"items": {
|
|
"prefixItems": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "number"
|
|
}
|
|
],
|
|
"type": "array",
|
|
"maxItems": 2,
|
|
"minItems": 2
|
|
},
|
|
"type": "array",
|
|
"title": "Paths"
|
|
},
|
|
"strokeColor": {
|
|
"type": "string",
|
|
"title": "Strokecolor",
|
|
"default": "#000000"
|
|
},
|
|
"strokeWidth": {
|
|
"type": "number",
|
|
"title": "Strokewidth",
|
|
"default": 2
|
|
},
|
|
"opacity": {
|
|
"type": "number",
|
|
"title": "Opacity",
|
|
"default": 1.0
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"paths"
|
|
],
|
|
"title": "DrawProps"
|
|
},
|
|
"HTTPValidationError": {
|
|
"properties": {
|
|
"detail": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ValidationError"
|
|
},
|
|
"type": "array",
|
|
"title": "Detail"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "HTTPValidationError"
|
|
},
|
|
"HighlightAnnotation": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Page"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "highlight",
|
|
"title": "Type"
|
|
},
|
|
"rect": {
|
|
"$ref": "#/components/schemas/Rect"
|
|
},
|
|
"rotation": {
|
|
"type": "number",
|
|
"title": "Rotation",
|
|
"default": 0.0
|
|
},
|
|
"z": {
|
|
"type": "integer",
|
|
"title": "Z",
|
|
"default": 0
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Createdat"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Updatedat"
|
|
},
|
|
"props": {
|
|
"$ref": "#/components/schemas/HighlightProps"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"page",
|
|
"type",
|
|
"rect",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"props"
|
|
],
|
|
"title": "HighlightAnnotation"
|
|
},
|
|
"HighlightProps": {
|
|
"properties": {
|
|
"color": {
|
|
"type": "string",
|
|
"title": "Color",
|
|
"default": "#FFEB3B"
|
|
},
|
|
"opacity": {
|
|
"type": "number",
|
|
"title": "Opacity",
|
|
"default": 0.3
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "HighlightProps"
|
|
},
|
|
"ImageAnnotation": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Page"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "image",
|
|
"title": "Type"
|
|
},
|
|
"rect": {
|
|
"$ref": "#/components/schemas/Rect"
|
|
},
|
|
"rotation": {
|
|
"type": "number",
|
|
"title": "Rotation",
|
|
"default": 0.0
|
|
},
|
|
"z": {
|
|
"type": "integer",
|
|
"title": "Z",
|
|
"default": 0
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Createdat"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Updatedat"
|
|
},
|
|
"props": {
|
|
"$ref": "#/components/schemas/ImageProps"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"page",
|
|
"type",
|
|
"rect",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"props"
|
|
],
|
|
"title": "ImageAnnotation"
|
|
},
|
|
"ImageProps": {
|
|
"properties": {
|
|
"ref": {
|
|
"type": "string",
|
|
"title": "Ref"
|
|
},
|
|
"naturalWidth": {
|
|
"type": "number",
|
|
"title": "Naturalwidth"
|
|
},
|
|
"naturalHeight": {
|
|
"type": "number",
|
|
"title": "Naturalheight"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"ref",
|
|
"naturalWidth",
|
|
"naturalHeight"
|
|
],
|
|
"title": "ImageProps"
|
|
},
|
|
"LoginRequest": {
|
|
"properties": {
|
|
"password": {
|
|
"type": "string",
|
|
"title": "Password"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"password"
|
|
],
|
|
"title": "LoginRequest"
|
|
},
|
|
"Rect": {
|
|
"properties": {
|
|
"x": {
|
|
"type": "number",
|
|
"title": "X"
|
|
},
|
|
"y": {
|
|
"type": "number",
|
|
"title": "Y"
|
|
},
|
|
"width": {
|
|
"type": "number",
|
|
"title": "Width"
|
|
},
|
|
"height": {
|
|
"type": "number",
|
|
"title": "Height"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"x",
|
|
"y",
|
|
"width",
|
|
"height"
|
|
],
|
|
"title": "Rect"
|
|
},
|
|
"SetupRequest": {
|
|
"properties": {
|
|
"password": {
|
|
"type": "string",
|
|
"minLength": 8,
|
|
"title": "Password"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"password"
|
|
],
|
|
"title": "SetupRequest"
|
|
},
|
|
"ShapeAnnotation": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Page"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "shape",
|
|
"title": "Type"
|
|
},
|
|
"rect": {
|
|
"$ref": "#/components/schemas/Rect"
|
|
},
|
|
"rotation": {
|
|
"type": "number",
|
|
"title": "Rotation",
|
|
"default": 0.0
|
|
},
|
|
"z": {
|
|
"type": "integer",
|
|
"title": "Z",
|
|
"default": 0
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Createdat"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Updatedat"
|
|
},
|
|
"props": {
|
|
"$ref": "#/components/schemas/ShapeProps"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"page",
|
|
"type",
|
|
"rect",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"props"
|
|
],
|
|
"title": "ShapeAnnotation"
|
|
},
|
|
"ShapeProps": {
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"rect",
|
|
"ellipse",
|
|
"line",
|
|
"arrow"
|
|
],
|
|
"title": "Kind"
|
|
},
|
|
"strokeColor": {
|
|
"type": "string",
|
|
"title": "Strokecolor",
|
|
"default": "#000000"
|
|
},
|
|
"fillColor": {
|
|
"type": "string",
|
|
"title": "Fillcolor",
|
|
"default": "transparent"
|
|
},
|
|
"strokeWidth": {
|
|
"type": "number",
|
|
"title": "Strokewidth",
|
|
"default": 2
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"title": "ShapeProps"
|
|
},
|
|
"SignatureAnnotation": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Page"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "signature",
|
|
"title": "Type"
|
|
},
|
|
"rect": {
|
|
"$ref": "#/components/schemas/Rect"
|
|
},
|
|
"rotation": {
|
|
"type": "number",
|
|
"title": "Rotation",
|
|
"default": 0.0
|
|
},
|
|
"z": {
|
|
"type": "integer",
|
|
"title": "Z",
|
|
"default": 0
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Createdat"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Updatedat"
|
|
},
|
|
"props": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SignatureDrawProps"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/SignatureTypeProps"
|
|
}
|
|
],
|
|
"title": "Props",
|
|
"discriminator": {
|
|
"propertyName": "mode",
|
|
"mapping": {
|
|
"draw": "#/components/schemas/SignatureDrawProps",
|
|
"type": "#/components/schemas/SignatureTypeProps"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"page",
|
|
"type",
|
|
"rect",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"props"
|
|
],
|
|
"title": "SignatureAnnotation"
|
|
},
|
|
"SignatureDrawProps": {
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string",
|
|
"const": "draw",
|
|
"title": "Mode"
|
|
},
|
|
"ref": {
|
|
"type": "string",
|
|
"title": "Ref"
|
|
},
|
|
"strokeColor": {
|
|
"type": "string",
|
|
"title": "Strokecolor",
|
|
"default": "#000000"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"mode",
|
|
"ref"
|
|
],
|
|
"title": "SignatureDrawProps"
|
|
},
|
|
"SignatureTypeProps": {
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string",
|
|
"const": "type",
|
|
"title": "Mode"
|
|
},
|
|
"text": {
|
|
"type": "string",
|
|
"title": "Text"
|
|
},
|
|
"fontFamily": {
|
|
"type": "string",
|
|
"title": "Fontfamily"
|
|
},
|
|
"color": {
|
|
"type": "string",
|
|
"title": "Color",
|
|
"default": "#000000"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"mode",
|
|
"text",
|
|
"fontFamily"
|
|
],
|
|
"title": "SignatureTypeProps"
|
|
},
|
|
"TextAnnotation": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Page"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "text",
|
|
"title": "Type"
|
|
},
|
|
"rect": {
|
|
"$ref": "#/components/schemas/Rect"
|
|
},
|
|
"rotation": {
|
|
"type": "number",
|
|
"title": "Rotation",
|
|
"default": 0.0
|
|
},
|
|
"z": {
|
|
"type": "integer",
|
|
"title": "Z",
|
|
"default": 0
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Createdat"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Updatedat"
|
|
},
|
|
"props": {
|
|
"$ref": "#/components/schemas/TextProps"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"page",
|
|
"type",
|
|
"rect",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"props"
|
|
],
|
|
"title": "TextAnnotation"
|
|
},
|
|
"TextProps": {
|
|
"properties": {
|
|
"text": {
|
|
"type": "string",
|
|
"title": "Text"
|
|
},
|
|
"fontFamily": {
|
|
"type": "string",
|
|
"title": "Fontfamily",
|
|
"default": "Liberation Sans"
|
|
},
|
|
"fontSize": {
|
|
"type": "number",
|
|
"title": "Fontsize",
|
|
"default": 14
|
|
},
|
|
"color": {
|
|
"type": "string",
|
|
"title": "Color",
|
|
"default": "#000000"
|
|
},
|
|
"align": {
|
|
"type": "string",
|
|
"enum": [
|
|
"left",
|
|
"center",
|
|
"right"
|
|
],
|
|
"title": "Align",
|
|
"default": "left"
|
|
},
|
|
"bold": {
|
|
"type": "boolean",
|
|
"title": "Bold",
|
|
"default": false
|
|
},
|
|
"italic": {
|
|
"type": "boolean",
|
|
"title": "Italic",
|
|
"default": false
|
|
},
|
|
"lineHeight": {
|
|
"type": "number",
|
|
"title": "Lineheight",
|
|
"default": 1.2
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"text"
|
|
],
|
|
"title": "TextProps"
|
|
},
|
|
"ValidationError": {
|
|
"properties": {
|
|
"loc": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"type": "array",
|
|
"title": "Location"
|
|
},
|
|
"msg": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Error Type"
|
|
},
|
|
"input": {
|
|
"title": "Input"
|
|
},
|
|
"ctx": {
|
|
"type": "object",
|
|
"title": "Context"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"loc",
|
|
"msg",
|
|
"type"
|
|
],
|
|
"title": "ValidationError"
|
|
},
|
|
"VerifyCoordsRequest": {
|
|
"properties": {
|
|
"document_id": {
|
|
"type": "string",
|
|
"title": "Document Id"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"x": {
|
|
"type": "number",
|
|
"title": "X"
|
|
},
|
|
"y": {
|
|
"type": "number",
|
|
"title": "Y"
|
|
},
|
|
"width": {
|
|
"type": "number",
|
|
"title": "Width"
|
|
},
|
|
"height": {
|
|
"type": "number",
|
|
"title": "Height"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"document_id",
|
|
"page",
|
|
"x",
|
|
"y",
|
|
"width",
|
|
"height"
|
|
],
|
|
"title": "VerifyCoordsRequest"
|
|
}
|
|
}
|
|
}
|
|
}
|