{
  "openapi": "3.0.0",
  "paths": {
    "/album": {
      "get": {
        "operationId": "getAllAlbums",
        "parameters": [
          {
            "name": "shared",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "assetId",
            "required": false,
            "in": "query",
            "description": "Only returns albums that contain the asset\nIgnores the shared parameter\nundefined: get all albums",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlbumResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "operationId": "createAlbum",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAlbumDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlbumResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/album/count": {
      "get": {
        "operationId": "getAlbumCount",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlbumCountResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/album/create-shared-link": {
      "post": {
        "operationId": "createAlbumSharedLink",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAlbumShareLinkDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SharedLinkResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/album/{id}": {
      "patch": {
        "operationId": "updateAlbumInfo",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAlbumDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlbumResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteAlbum",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "get": {
        "operationId": "getAlbumInfo",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlbumResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/album/{id}/assets": {
      "put": {
        "operationId": "addAssetsToAlbum",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAssetsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddAssetsResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "operationId": "removeAssetFromAlbum",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveAssetsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlbumResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/album/{id}/download": {
      "get": {
        "operationId": "downloadArchive",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/zip": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/album/{id}/user/{userId}": {
      "delete": {
        "operationId": "removeUserFromAlbum",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/album/{id}/users": {
      "put": {
        "operationId": "addUsersToAlbum",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddUsersDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlbumResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Album"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/api-key": {
      "post": {
        "operationId": "createKey",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/APIKeyCreateDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIKeyCreateResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "API Key"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "get": {
        "operationId": "getKeys",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/APIKeyResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "API Key"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/api-key/{id}": {
      "get": {
        "operationId": "getKey",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIKeyResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "API Key"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "put": {
        "operationId": "updateKey",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/APIKeyUpdateDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIKeyResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "API Key"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteKey",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "API Key"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset": {
      "get": {
        "operationId": "getAllAssets",
        "description": "Get all AssetEntity belong to the user",
        "parameters": [
          {
            "name": "userId",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "isFavorite",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "isArchived",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "withoutThumbs",
            "required": false,
            "in": "query",
            "description": "Include assets without thumbnails",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "skip",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "if-none-match",
            "in": "header",
            "description": "ETag of data already cached on the client",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteAsset",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteAssetDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeleteAssetResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/assetById/{id}": {
      "get": {
        "operationId": "getAssetById",
        "description": "Get a single asset's information",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/bulk-upload-check": {
      "post": {
        "operationId": "bulkUploadCheck",
        "description": "Checks if assets exist by checksums",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetBulkUploadCheckDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetBulkUploadCheckResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/check": {
      "post": {
        "operationId": "checkDuplicateAsset",
        "description": "Check duplicated asset before uploading - for Web upload used",
        "parameters": [
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckDuplicateAssetDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckDuplicateAssetResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/count-by-time-bucket": {
      "post": {
        "operationId": "getAssetCountByTimeBucket",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetAssetCountByTimeBucketDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetCountByTimeBucketResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/count-by-user-id": {
      "get": {
        "operationId": "getAssetCountByUserId",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetCountByUserIdResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/curated-locations": {
      "get": {
        "operationId": "getCuratedLocations",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CuratedLocationsResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/curated-objects": {
      "get": {
        "operationId": "getCuratedObjects",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CuratedObjectsResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/download-files": {
      "post": {
        "operationId": "downloadFiles",
        "parameters": [
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DownloadFilesDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "description": ""
          },
          "201": {
            "description": ""
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/download-library": {
      "get": {
        "operationId": "downloadLibrary",
        "description": "Current this is not used in any UI element",
        "parameters": [
          {
            "name": "name",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/download/{id}": {
      "get": {
        "operationId": "downloadFile",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/exist": {
      "post": {
        "operationId": "checkExistingAssets",
        "description": "Checks if multiple assets exist on the server and returns all existing - used by background backup",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckExistingAssetsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckExistingAssetsResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/file/{id}": {
      "get": {
        "operationId": "serveFile",
        "parameters": [
          {
            "name": "isThumb",
            "required": false,
            "in": "query",
            "schema": {
              "title": "Is serve thumbnail (resize) file",
              "type": "boolean"
            }
          },
          {
            "name": "isWeb",
            "required": false,
            "in": "query",
            "schema": {
              "title": "Is request made from web",
              "type": "boolean"
            }
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/map-marker": {
      "get": {
        "operationId": "getMapMarkers",
        "parameters": [
          {
            "name": "isFavorite",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fileCreatedAfter",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "name": "fileCreatedBefore",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MapMarkerResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/memory-lane": {
      "get": {
        "operationId": "getMemoryLane",
        "parameters": [
          {
            "name": "timestamp",
            "required": true,
            "in": "query",
            "description": "Get pictures for +24 hours from this time going back x years",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MemoryLaneResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/search": {
      "post": {
        "operationId": "searchAsset",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchAssetDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/search-terms": {
      "get": {
        "operationId": "getAssetSearchTerms",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/shared-link": {
      "post": {
        "operationId": "createAssetsSharedLink",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAssetsShareLinkDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SharedLinkResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/shared-link/add": {
      "patch": {
        "operationId": "addAssetsToSharedLink",
        "parameters": [
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAssetsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SharedLinkResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/shared-link/remove": {
      "patch": {
        "operationId": "removeAssetsFromSharedLink",
        "parameters": [
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveAssetsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SharedLinkResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/stat/archive": {
      "get": {
        "operationId": "getArchivedAssetCountByUserId",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetCountByUserIdResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/thumbnail/{id}": {
      "get": {
        "operationId": "getAssetThumbnail",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "format",
            "required": false,
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ThumbnailFormat"
            }
          },
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/time-bucket": {
      "post": {
        "operationId": "getAssetByTimeBucket",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetAssetByTimeBucketDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/upload": {
      "post": {
        "operationId": "uploadFile",
        "parameters": [
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "description": "Asset Upload Information",
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/CreateAssetDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetFileUploadResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/{deviceId}": {
      "get": {
        "operationId": "getUserAssetsByDeviceId",
        "description": "Get all asset of a device that are in the database, ID only.",
        "parameters": [
          {
            "name": "deviceId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/asset/{id}": {
      "put": {
        "operationId": "updateAsset",
        "description": "Update an asset",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAssetDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Asset"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/auth/admin-sign-up": {
      "post": {
        "operationId": "adminSignUp",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignUpDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSignupResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "The server already has an admin"
          }
        },
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/change-password": {
      "post": {
        "operationId": "changePassword",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePasswordDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Authentication"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/auth/devices": {
      "get": {
        "operationId": "getAuthDevices",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuthDeviceResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Authentication"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "operationId": "logoutAuthDevices",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Authentication"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/auth/devices/{id}": {
      "delete": {
        "operationId": "logoutAuthDevice",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Authentication"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/auth/login": {
      "post": {
        "operationId": "login",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginCredentialDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Authentication"
        ]
      }
    },
    "/auth/logout": {
      "post": {
        "operationId": "logout",
        "parameters": [],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogoutResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Authentication"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/auth/validateToken": {
      "post": {
        "operationId": "validateAccessToken",
        "parameters": [],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidateAccessTokenResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Authentication"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/jobs": {
      "get": {
        "operationId": "getAllJobsStatus",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllJobStatusResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Job"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/jobs/{jobId}": {
      "put": {
        "operationId": "sendJobCommand",
        "parameters": [
          {
            "name": "jobId",
            "required": true,
            "in": "path",
            "schema": {
              "$ref": "#/components/schemas/JobName"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobCommandDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobStatusDto"
                }
              }
            }
          }
        },
        "tags": [
          "Job"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/oauth/callback": {
      "post": {
        "operationId": "callback",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthCallbackDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "OAuth"
        ]
      }
    },
    "/oauth/config": {
      "post": {
        "operationId": "generateConfig",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthConfigDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthConfigResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "OAuth"
        ]
      }
    },
    "/oauth/link": {
      "post": {
        "operationId": "link",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthCallbackDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "OAuth"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/oauth/mobile-redirect": {
      "get": {
        "operationId": "mobileRedirect",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "OAuth"
        ]
      }
    },
    "/oauth/unlink": {
      "post": {
        "operationId": "unlink",
        "parameters": [],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "OAuth"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/partner": {
      "get": {
        "operationId": "getPartners",
        "parameters": [
          {
            "name": "direction",
            "required": true,
            "in": "query",
            "schema": {
              "enum": [
                "shared-by",
                "shared-with"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Partner"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/partner/{id}": {
      "post": {
        "operationId": "createPartner",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Partner"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "operationId": "removePartner",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Partner"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/person": {
      "get": {
        "operationId": "getAllPeople",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PersonResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Person"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/person/{id}": {
      "get": {
        "operationId": "getPerson",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Person"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "put": {
        "operationId": "updatePerson",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PersonUpdateDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Person"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/person/{id}/assets": {
      "get": {
        "operationId": "getPersonAssets",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Person"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/person/{id}/thumbnail": {
      "get": {
        "operationId": "getPersonThumbnail",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "Person"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/search": {
      "get": {
        "operationId": "search",
        "parameters": [
          {
            "name": "q",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "query",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clip",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "type",
            "required": false,
            "in": "query",
            "schema": {
              "enum": [
                "IMAGE",
                "VIDEO",
                "AUDIO",
                "OTHER"
              ],
              "type": "string"
            }
          },
          {
            "name": "isFavorite",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "isArchived",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "exifInfo.city",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exifInfo.state",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exifInfo.country",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exifInfo.make",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exifInfo.model",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "smartInfo.objects",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "smartInfo.tags",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "recent",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "motion",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Search"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/search/config": {
      "get": {
        "operationId": "getSearchConfig",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchConfigResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Search"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/search/explore": {
      "get": {
        "operationId": "getExploreData",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SearchExploreResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Search"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/server-info": {
      "get": {
        "operationId": "getServerInfo",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerInfoResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Server Info"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/server-info/ping": {
      "get": {
        "operationId": "pingServer",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerPingResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Server Info"
        ]
      }
    },
    "/server-info/stats": {
      "get": {
        "operationId": "getStats",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerStatsResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Server Info"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/server-info/version": {
      "get": {
        "operationId": "getServerVersion",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerVersionReponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Server Info"
        ]
      }
    },
    "/share": {
      "get": {
        "operationId": "getAllSharedLinks",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SharedLinkResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "share"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/share/me": {
      "get": {
        "operationId": "getMySharedLink",
        "parameters": [
          {
            "name": "key",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SharedLinkResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "share"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/share/{id}": {
      "get": {
        "operationId": "getSharedLinkById",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SharedLinkResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "share"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "patch": {
        "operationId": "updateSharedLink",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditSharedLinkDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SharedLinkResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "share"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "operationId": "removeSharedLink",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "share"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/system-config": {
      "get": {
        "operationId": "getConfig",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemConfigDto"
                }
              }
            }
          }
        },
        "tags": [
          "System Config"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "put": {
        "operationId": "updateConfig",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SystemConfigDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemConfigDto"
                }
              }
            }
          }
        },
        "tags": [
          "System Config"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/system-config/defaults": {
      "get": {
        "operationId": "getDefaults",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemConfigDto"
                }
              }
            }
          }
        },
        "tags": [
          "System Config"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/system-config/storage-template-options": {
      "get": {
        "operationId": "getStorageTemplateOptions",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemConfigTemplateStorageOptionDto"
                }
              }
            }
          }
        },
        "tags": [
          "System Config"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/tag": {
      "post": {
        "operationId": "createTag",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTagDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Tag"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "get": {
        "operationId": "getAllTags",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TagResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Tag"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/tag/{id}": {
      "get": {
        "operationId": "getTagById",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Tag"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "patch": {
        "operationId": "updateTag",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Tag"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteTag",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Tag"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/tag/{id}/assets": {
      "get": {
        "operationId": "getTagAssets",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Tag"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "put": {
        "operationId": "tagAssets",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetIdsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetIdsResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Tag"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "operationId": "untagAssets",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetIdsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetIdsResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Tag"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/user": {
      "get": {
        "operationId": "getAllUsers",
        "parameters": [
          {
            "name": "isAll",
            "required": true,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "operationId": "createUser",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      },
      "put": {
        "operationId": "updateUser",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/user/count": {
      "get": {
        "operationId": "getUserCount",
        "parameters": [
          {
            "name": "admin",
            "required": false,
            "in": "query",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserCountResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ]
      }
    },
    "/user/info/{userId}": {
      "get": {
        "operationId": "getUserById",
        "parameters": [
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/user/me": {
      "get": {
        "operationId": "getMyUserInfo",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/user/profile-image": {
      "post": {
        "operationId": "createProfileImage",
        "parameters": [],
        "requestBody": {
          "required": true,
          "description": "A new avatar for the user",
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/CreateProfileImageDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateProfileImageResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/user/profile-image/{userId}": {
      "get": {
        "operationId": "getProfileImage",
        "parameters": [
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/user/{userId}": {
      "delete": {
        "operationId": "deleteUser",
        "parameters": [
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/user/{userId}/restore": {
      "post": {
        "operationId": "restoreUser",
        "parameters": [
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "User"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "cookie": []
          },
          {
            "api_key": []
          }
        ]
      }
    }
  },
  "info": {
    "title": "Immich",
    "description": "Immich API",
    "version": "1.61.0",
    "contact": {}
  },
  "tags": [],
  "servers": [
    {
      "url": "/api"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearer": {
        "scheme": "Bearer",
        "bearerFormat": "JWT",
        "type": "http",
        "in": "header"
      },
      "cookie": {
        "type": "apiKey",
        "in": "cookie",
        "name": "immich_access_token"
      },
      "api_key": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    },
    "schemas": {
      "APIKeyCreateDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "APIKeyCreateResponseDto": {
        "type": "object",
        "properties": {
          "secret": {
            "type": "string"
          },
          "apiKey": {
            "$ref": "#/components/schemas/APIKeyResponseDto"
          }
        },
        "required": [
          "secret",
          "apiKey"
        ]
      },
      "APIKeyResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "createdAt",
          "updatedAt"
        ]
      },
      "APIKeyUpdateDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ]
      },
      "AddAssetsDto": {
        "type": "object",
        "properties": {
          "assetIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "assetIds"
        ]
      },
      "AddAssetsResponseDto": {
        "type": "object",
        "properties": {
          "successfullyAdded": {
            "type": "integer"
          },
          "alreadyInAlbum": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "album": {
            "$ref": "#/components/schemas/AlbumResponseDto"
          }
        },
        "required": [
          "successfullyAdded",
          "alreadyInAlbum"
        ]
      },
      "AddUsersDto": {
        "type": "object",
        "properties": {
          "sharedUserIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "sharedUserIds"
        ]
      },
      "AdminSignupResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "firstName",
          "lastName",
          "createdAt"
        ]
      },
      "AlbumCountResponseDto": {
        "type": "object",
        "properties": {
          "owned": {
            "type": "integer"
          },
          "shared": {
            "type": "integer"
          },
          "notShared": {
            "type": "integer"
          }
        },
        "required": [
          "owned",
          "shared",
          "notShared"
        ]
      },
      "AlbumResponseDto": {
        "type": "object",
        "properties": {
          "assetCount": {
            "type": "integer"
          },
          "id": {
            "type": "string"
          },
          "ownerId": {
            "type": "string"
          },
          "albumName": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "albumThumbnailAssetId": {
            "type": "string",
            "nullable": true
          },
          "shared": {
            "type": "boolean"
          },
          "sharedUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserResponseDto"
            }
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetResponseDto"
            }
          },
          "owner": {
            "$ref": "#/components/schemas/UserResponseDto"
          }
        },
        "required": [
          "assetCount",
          "id",
          "ownerId",
          "albumName",
          "createdAt",
          "updatedAt",
          "albumThumbnailAssetId",
          "shared",
          "sharedUsers",
          "assets",
          "owner"
        ]
      },
      "AllJobStatusResponseDto": {
        "type": "object",
        "properties": {
          "thumbnailGeneration": {
            "$ref": "#/components/schemas/JobStatusDto"
          },
          "metadataExtraction": {
            "$ref": "#/components/schemas/JobStatusDto"
          },
          "videoConversion": {
            "$ref": "#/components/schemas/JobStatusDto"
          },
          "objectTagging": {
            "$ref": "#/components/schemas/JobStatusDto"
          },
          "clipEncoding": {
            "$ref": "#/components/schemas/JobStatusDto"
          },
          "storageTemplateMigration": {
            "$ref": "#/components/schemas/JobStatusDto"
          },
          "backgroundTask": {
            "$ref": "#/components/schemas/JobStatusDto"
          },
          "search": {
            "$ref": "#/components/schemas/JobStatusDto"
          },
          "recognizeFaces": {
            "$ref": "#/components/schemas/JobStatusDto"
          },
          "sidecar": {
            "$ref": "#/components/schemas/JobStatusDto"
          }
        },
        "required": [
          "thumbnailGeneration",
          "metadataExtraction",
          "videoConversion",
          "objectTagging",
          "clipEncoding",
          "storageTemplateMigration",
          "backgroundTask",
          "search",
          "recognizeFaces",
          "sidecar"
        ]
      },
      "AssetBulkUploadCheckDto": {
        "type": "object",
        "properties": {
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetBulkUploadCheckItem"
            }
          }
        },
        "required": [
          "assets"
        ]
      },
      "AssetBulkUploadCheckItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "checksum": {
            "type": "string",
            "description": "base64 or hex encoded sha1 hash"
          }
        },
        "required": [
          "id",
          "checksum"
        ]
      },
      "AssetBulkUploadCheckResponseDto": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetBulkUploadCheckResult"
            }
          }
        },
        "required": [
          "results"
        ]
      },
      "AssetBulkUploadCheckResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "action": {
            "type": "string",
            "enum": [
              "accept",
              "reject"
            ]
          },
          "reason": {
            "type": "string",
            "enum": [
              "duplicate",
              "unsupported-format"
            ]
          },
          "assetId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "action"
        ]
      },
      "AssetCountByTimeBucket": {
        "type": "object",
        "properties": {
          "timeBucket": {
            "type": "string"
          },
          "count": {
            "type": "integer"
          }
        },
        "required": [
          "timeBucket",
          "count"
        ]
      },
      "AssetCountByTimeBucketResponseDto": {
        "type": "object",
        "properties": {
          "totalCount": {
            "type": "integer"
          },
          "buckets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetCountByTimeBucket"
            }
          }
        },
        "required": [
          "totalCount",
          "buckets"
        ]
      },
      "AssetCountByUserIdResponseDto": {
        "type": "object",
        "properties": {
          "audio": {
            "type": "integer",
            "default": 0
          },
          "photos": {
            "type": "integer",
            "default": 0
          },
          "videos": {
            "type": "integer",
            "default": 0
          },
          "other": {
            "type": "integer",
            "default": 0
          },
          "total": {
            "type": "integer",
            "default": 0
          }
        },
        "required": [
          "audio",
          "photos",
          "videos",
          "other",
          "total"
        ]
      },
      "AssetFileUploadResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "duplicate": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "duplicate"
        ]
      },
      "AssetIdsDto": {
        "type": "object",
        "properties": {
          "assetIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "assetIds"
        ]
      },
      "AssetIdsResponseDto": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          },
          "error": {
            "enum": [
              "duplicate",
              "no_permission",
              "not_found"
            ],
            "type": "string"
          }
        },
        "required": [
          "assetId",
          "success"
        ]
      },
      "AssetResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/AssetTypeEnum"
          },
          "id": {
            "type": "string"
          },
          "deviceAssetId": {
            "type": "string"
          },
          "ownerId": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          },
          "originalPath": {
            "type": "string"
          },
          "originalFileName": {
            "type": "string"
          },
          "resized": {
            "type": "boolean"
          },
          "fileCreatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "fileModifiedAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "isFavorite": {
            "type": "boolean"
          },
          "isArchived": {
            "type": "boolean"
          },
          "mimeType": {
            "type": "string",
            "nullable": true
          },
          "duration": {
            "type": "string"
          },
          "exifInfo": {
            "$ref": "#/components/schemas/ExifResponseDto"
          },
          "smartInfo": {
            "$ref": "#/components/schemas/SmartInfoResponseDto"
          },
          "livePhotoVideoId": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagResponseDto"
            }
          },
          "people": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonResponseDto"
            }
          },
          "checksum": {
            "type": "string",
            "description": "base64 encoded sha1 hash"
          }
        },
        "required": [
          "type",
          "id",
          "deviceAssetId",
          "ownerId",
          "deviceId",
          "originalPath",
          "originalFileName",
          "resized",
          "fileCreatedAt",
          "fileModifiedAt",
          "updatedAt",
          "isFavorite",
          "isArchived",
          "mimeType",
          "duration",
          "checksum"
        ]
      },
      "AssetTypeEnum": {
        "type": "string",
        "enum": [
          "IMAGE",
          "VIDEO",
          "AUDIO",
          "OTHER"
        ]
      },
      "AuthDeviceResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "current": {
            "type": "boolean"
          },
          "deviceType": {
            "type": "string"
          },
          "deviceOS": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "current",
          "deviceType",
          "deviceOS"
        ]
      },
      "ChangePasswordDto": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "example": "password"
          },
          "newPassword": {
            "type": "string",
            "example": "password"
          }
        },
        "required": [
          "password",
          "newPassword"
        ]
      },
      "CheckDuplicateAssetDto": {
        "type": "object",
        "properties": {
          "deviceAssetId": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          }
        },
        "required": [
          "deviceAssetId",
          "deviceId"
        ]
      },
      "CheckDuplicateAssetResponseDto": {
        "type": "object",
        "properties": {
          "isExist": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          }
        },
        "required": [
          "isExist"
        ]
      },
      "CheckExistingAssetsDto": {
        "type": "object",
        "properties": {
          "deviceAssetIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "deviceId": {
            "type": "string"
          }
        },
        "required": [
          "deviceAssetIds",
          "deviceId"
        ]
      },
      "CheckExistingAssetsResponseDto": {
        "type": "object",
        "properties": {
          "existingIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "existingIds"
        ]
      },
      "CreateAlbumDto": {
        "type": "object",
        "properties": {
          "albumName": {
            "type": "string"
          },
          "sharedWithUserIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "assetIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "albumName"
        ]
      },
      "CreateAlbumShareLinkDto": {
        "type": "object",
        "properties": {
          "albumId": {
            "type": "string",
            "format": "uuid"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string"
          },
          "allowUpload": {
            "type": "boolean"
          },
          "allowDownload": {
            "type": "boolean"
          },
          "showExif": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "albumId"
        ]
      },
      "CreateAssetDto": {
        "type": "object",
        "properties": {
          "assetType": {
            "$ref": "#/components/schemas/AssetTypeEnum"
          },
          "assetData": {
            "type": "string",
            "format": "binary"
          },
          "livePhotoData": {
            "type": "string",
            "format": "binary"
          },
          "sidecarData": {
            "type": "string",
            "format": "binary"
          },
          "deviceAssetId": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          },
          "fileCreatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "fileModifiedAt": {
            "format": "date-time",
            "type": "string"
          },
          "isFavorite": {
            "type": "boolean"
          },
          "isArchived": {
            "type": "boolean"
          },
          "isVisible": {
            "type": "boolean"
          },
          "fileExtension": {
            "type": "string"
          },
          "duration": {
            "type": "string"
          }
        },
        "required": [
          "assetType",
          "assetData",
          "deviceAssetId",
          "deviceId",
          "fileCreatedAt",
          "fileModifiedAt",
          "isFavorite",
          "fileExtension"
        ]
      },
      "CreateAssetsShareLinkDto": {
        "type": "object",
        "properties": {
          "assetIds": {
            "title": "Array asset IDs to be shared",
            "example": [
              "bf973405-3f2a-48d2-a687-2ed4167164be",
              "dd41870b-5d00-46d2-924e-1d8489a0aa0f",
              "fad77c3f-deef-4e7e-9608-14c1aa4e559a"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string"
          },
          "allowUpload": {
            "type": "boolean"
          },
          "allowDownload": {
            "type": "boolean"
          },
          "showExif": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "assetIds"
        ]
      },
      "CreateProfileImageDto": {
        "type": "object",
        "properties": {
          "file": {
            "type": "string",
            "format": "binary"
          }
        },
        "required": [
          "file"
        ]
      },
      "CreateProfileImageResponseDto": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "profileImagePath": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "profileImagePath"
        ]
      },
      "CreateTagDto": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/TagTypeEnum"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "name"
        ]
      },
      "CreateUserDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "storageLabel": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "email",
          "password",
          "firstName",
          "lastName"
        ]
      },
      "CuratedLocationsResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "resizePath": {
            "type": "string"
          },
          "deviceAssetId": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "city",
          "resizePath",
          "deviceAssetId",
          "deviceId"
        ]
      },
      "CuratedObjectsResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "object": {
            "type": "string"
          },
          "resizePath": {
            "type": "string"
          },
          "deviceAssetId": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "object",
          "resizePath",
          "deviceAssetId",
          "deviceId"
        ]
      },
      "DeleteAssetDto": {
        "type": "object",
        "properties": {
          "ids": {
            "title": "Array of asset IDs to delete",
            "example": [
              "bf973405-3f2a-48d2-a687-2ed4167164be",
              "dd41870b-5d00-46d2-924e-1d8489a0aa0f",
              "fad77c3f-deef-4e7e-9608-14c1aa4e559a"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "ids"
        ]
      },
      "DeleteAssetResponseDto": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/DeleteAssetStatus"
          },
          "id": {
            "type": "string"
          }
        },
        "required": [
          "status",
          "id"
        ]
      },
      "DeleteAssetStatus": {
        "type": "string",
        "enum": [
          "SUCCESS",
          "FAILED"
        ]
      },
      "DownloadFilesDto": {
        "type": "object",
        "properties": {
          "assetIds": {
            "title": "Array of asset ids to be downloaded",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "assetIds"
        ]
      },
      "EditSharedLinkDto": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "allowUpload": {
            "type": "boolean"
          },
          "allowDownload": {
            "type": "boolean"
          },
          "showExif": {
            "type": "boolean"
          }
        }
      },
      "ExifResponseDto": {
        "type": "object",
        "properties": {
          "fileSizeInByte": {
            "type": "integer",
            "nullable": true,
            "default": null,
            "format": "int64"
          },
          "make": {
            "type": "string",
            "nullable": true,
            "default": null
          },
          "model": {
            "type": "string",
            "nullable": true,
            "default": null
          },
          "exifImageWidth": {
            "type": "number",
            "nullable": true,
            "default": null
          },
          "exifImageHeight": {
            "type": "number",
            "nullable": true,
            "default": null
          },
          "orientation": {
            "type": "string",
            "nullable": true,
            "default": null
          },
          "dateTimeOriginal": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "default": null
          },
          "modifyDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "default": null
          },
          "timeZone": {
            "type": "string",
            "nullable": true,
            "default": null
          },
          "lensModel": {
            "type": "string",
            "nullable": true,
            "default": null
          },
          "fNumber": {
            "type": "number",
            "nullable": true,
            "default": null
          },
          "focalLength": {
            "type": "number",
            "nullable": true,
            "default": null
          },
          "iso": {
            "type": "number",
            "nullable": true,
            "default": null
          },
          "exposureTime": {
            "type": "string",
            "nullable": true,
            "default": null
          },
          "latitude": {
            "type": "number",
            "nullable": true,
            "default": null
          },
          "longitude": {
            "type": "number",
            "nullable": true,
            "default": null
          },
          "city": {
            "type": "string",
            "nullable": true,
            "default": null
          },
          "state": {
            "type": "string",
            "nullable": true,
            "default": null
          },
          "country": {
            "type": "string",
            "nullable": true,
            "default": null
          },
          "description": {
            "type": "string",
            "nullable": true,
            "default": null
          }
        }
      },
      "GetAssetByTimeBucketDto": {
        "type": "object",
        "properties": {
          "timeBucket": {
            "title": "Array of date time buckets",
            "example": [
              "2015-06-01T00:00:00.000Z",
              "2016-02-01T00:00:00.000Z",
              "2016-03-01T00:00:00.000Z"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "withoutThumbs": {
            "type": "boolean",
            "description": "Include assets without thumbnails"
          }
        },
        "required": [
          "timeBucket"
        ]
      },
      "GetAssetCountByTimeBucketDto": {
        "type": "object",
        "properties": {
          "timeGroup": {
            "$ref": "#/components/schemas/TimeGroupEnum"
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "withoutThumbs": {
            "type": "boolean",
            "description": "Include assets without thumbnails"
          }
        },
        "required": [
          "timeGroup"
        ]
      },
      "JobCommand": {
        "type": "string",
        "enum": [
          "start",
          "pause",
          "resume",
          "empty"
        ]
      },
      "JobCommandDto": {
        "type": "object",
        "properties": {
          "command": {
            "$ref": "#/components/schemas/JobCommand"
          },
          "force": {
            "type": "boolean"
          }
        },
        "required": [
          "command",
          "force"
        ]
      },
      "JobCountsDto": {
        "type": "object",
        "properties": {
          "active": {
            "type": "integer"
          },
          "completed": {
            "type": "integer"
          },
          "failed": {
            "type": "integer"
          },
          "delayed": {
            "type": "integer"
          },
          "waiting": {
            "type": "integer"
          },
          "paused": {
            "type": "integer"
          }
        },
        "required": [
          "active",
          "completed",
          "failed",
          "delayed",
          "waiting",
          "paused"
        ]
      },
      "JobName": {
        "type": "string",
        "enum": [
          "thumbnailGeneration",
          "metadataExtraction",
          "videoConversion",
          "objectTagging",
          "recognizeFaces",
          "clipEncoding",
          "backgroundTask",
          "storageTemplateMigration",
          "search",
          "sidecar"
        ]
      },
      "JobSettingsDto": {
        "type": "object",
        "properties": {
          "concurrency": {
            "type": "integer"
          }
        },
        "required": [
          "concurrency"
        ]
      },
      "JobStatusDto": {
        "type": "object",
        "properties": {
          "jobCounts": {
            "$ref": "#/components/schemas/JobCountsDto"
          },
          "queueStatus": {
            "$ref": "#/components/schemas/QueueStatusDto"
          }
        },
        "required": [
          "jobCounts",
          "queueStatus"
        ]
      },
      "LoginCredentialDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "example": "testuser@email.com"
          },
          "password": {
            "type": "string",
            "example": "password"
          }
        },
        "required": [
          "email",
          "password"
        ]
      },
      "LoginResponseDto": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string",
            "readOnly": true
          },
          "userId": {
            "type": "string",
            "readOnly": true
          },
          "userEmail": {
            "type": "string",
            "readOnly": true
          },
          "firstName": {
            "type": "string",
            "readOnly": true
          },
          "lastName": {
            "type": "string",
            "readOnly": true
          },
          "profileImagePath": {
            "type": "string",
            "readOnly": true
          },
          "isAdmin": {
            "type": "boolean",
            "readOnly": true
          },
          "shouldChangePassword": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "required": [
          "accessToken",
          "userId",
          "userEmail",
          "firstName",
          "lastName",
          "profileImagePath",
          "isAdmin",
          "shouldChangePassword"
        ]
      },
      "LogoutResponseDto": {
        "type": "object",
        "properties": {
          "successful": {
            "type": "boolean"
          },
          "redirectUri": {
            "type": "string"
          }
        },
        "required": [
          "successful",
          "redirectUri"
        ]
      },
      "MapMarkerResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "lat": {
            "type": "number",
            "format": "double"
          },
          "lon": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "id",
          "lat",
          "lon"
        ]
      },
      "MemoryLaneResponseDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetResponseDto"
            }
          }
        },
        "required": [
          "title",
          "assets"
        ]
      },
      "OAuthCallbackDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ]
      },
      "OAuthConfigDto": {
        "type": "object",
        "properties": {
          "redirectUri": {
            "type": "string"
          }
        },
        "required": [
          "redirectUri"
        ]
      },
      "OAuthConfigResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "passwordLoginEnabled": {
            "type": "boolean"
          },
          "url": {
            "type": "string"
          },
          "buttonText": {
            "type": "string"
          },
          "autoLaunch": {
            "type": "boolean"
          }
        },
        "required": [
          "enabled",
          "passwordLoginEnabled"
        ]
      },
      "PersonResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "thumbnailPath": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "thumbnailPath"
        ]
      },
      "PersonUpdateDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ]
      },
      "QueueStatusDto": {
        "type": "object",
        "properties": {
          "isActive": {
            "type": "boolean"
          },
          "isPaused": {
            "type": "boolean"
          }
        },
        "required": [
          "isActive",
          "isPaused"
        ]
      },
      "RemoveAssetsDto": {
        "type": "object",
        "properties": {
          "assetIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "assetIds"
        ]
      },
      "SearchAlbumResponseDto": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer"
          },
          "count": {
            "type": "integer"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlbumResponseDto"
            }
          },
          "facets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchFacetResponseDto"
            }
          }
        },
        "required": [
          "total",
          "count",
          "items",
          "facets"
        ]
      },
      "SearchAssetDto": {
        "type": "object",
        "properties": {
          "searchTerm": {
            "type": "string"
          }
        },
        "required": [
          "searchTerm"
        ]
      },
      "SearchAssetResponseDto": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer"
          },
          "count": {
            "type": "integer"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetResponseDto"
            }
          },
          "facets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchFacetResponseDto"
            }
          }
        },
        "required": [
          "total",
          "count",
          "items",
          "facets"
        ]
      },
      "SearchConfigResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "SearchExploreItem": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/AssetResponseDto"
          }
        },
        "required": [
          "value",
          "data"
        ]
      },
      "SearchExploreResponseDto": {
        "type": "object",
        "properties": {
          "fieldName": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchExploreItem"
            }
          }
        },
        "required": [
          "fieldName",
          "items"
        ]
      },
      "SearchFacetCountResponseDto": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "count",
          "value"
        ]
      },
      "SearchFacetResponseDto": {
        "type": "object",
        "properties": {
          "fieldName": {
            "type": "string"
          },
          "counts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchFacetCountResponseDto"
            }
          }
        },
        "required": [
          "fieldName",
          "counts"
        ]
      },
      "SearchResponseDto": {
        "type": "object",
        "properties": {
          "albums": {
            "$ref": "#/components/schemas/SearchAlbumResponseDto"
          },
          "assets": {
            "$ref": "#/components/schemas/SearchAssetResponseDto"
          }
        },
        "required": [
          "albums",
          "assets"
        ]
      },
      "ServerInfoResponseDto": {
        "type": "object",
        "properties": {
          "diskSizeRaw": {
            "type": "integer",
            "format": "int64"
          },
          "diskUseRaw": {
            "type": "integer",
            "format": "int64"
          },
          "diskAvailableRaw": {
            "type": "integer",
            "format": "int64"
          },
          "diskUsagePercentage": {
            "type": "number",
            "format": "float"
          },
          "diskSize": {
            "type": "string"
          },
          "diskUse": {
            "type": "string"
          },
          "diskAvailable": {
            "type": "string"
          }
        },
        "required": [
          "diskSizeRaw",
          "diskUseRaw",
          "diskAvailableRaw",
          "diskUsagePercentage",
          "diskSize",
          "diskUse",
          "diskAvailable"
        ]
      },
      "ServerPingResponse": {
        "type": "object",
        "properties": {
          "res": {
            "type": "string",
            "readOnly": true,
            "example": "pong"
          }
        },
        "required": [
          "res"
        ]
      },
      "ServerStatsResponseDto": {
        "type": "object",
        "properties": {
          "photos": {
            "type": "integer",
            "default": 0
          },
          "videos": {
            "type": "integer",
            "default": 0
          },
          "usage": {
            "type": "integer",
            "default": 0,
            "format": "int64"
          },
          "usageByUser": {
            "default": [],
            "title": "Array of usage for each user",
            "example": [
              {
                "photos": 1,
                "videos": 1,
                "diskUsageRaw": 1
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsageByUserDto"
            }
          }
        },
        "required": [
          "photos",
          "videos",
          "usage",
          "usageByUser"
        ]
      },
      "ServerVersionReponseDto": {
        "type": "object",
        "properties": {
          "major": {
            "type": "integer"
          },
          "minor": {
            "type": "integer"
          },
          "patch": {
            "type": "integer"
          }
        },
        "required": [
          "major",
          "minor",
          "patch"
        ]
      },
      "SharedLinkResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/SharedLinkType"
          },
          "id": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetResponseDto"
            }
          },
          "album": {
            "$ref": "#/components/schemas/AlbumResponseDto"
          },
          "allowUpload": {
            "type": "boolean"
          },
          "allowDownload": {
            "type": "boolean"
          },
          "showExif": {
            "type": "boolean"
          }
        },
        "required": [
          "type",
          "id",
          "userId",
          "key",
          "createdAt",
          "expiresAt",
          "assets",
          "allowUpload",
          "allowDownload",
          "showExif"
        ]
      },
      "SharedLinkType": {
        "type": "string",
        "enum": [
          "ALBUM",
          "INDIVIDUAL"
        ]
      },
      "SignUpDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "example": "testuser@email.com"
          },
          "password": {
            "type": "string",
            "example": "password"
          },
          "firstName": {
            "type": "string",
            "example": "Admin"
          },
          "lastName": {
            "type": "string",
            "example": "Doe"
          }
        },
        "required": [
          "email",
          "password",
          "firstName",
          "lastName"
        ]
      },
      "SmartInfoResponseDto": {
        "type": "object",
        "properties": {
          "tags": {
            "nullable": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "objects": {
            "nullable": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SystemConfigDto": {
        "type": "object",
        "properties": {
          "ffmpeg": {
            "$ref": "#/components/schemas/SystemConfigFFmpegDto"
          },
          "oauth": {
            "$ref": "#/components/schemas/SystemConfigOAuthDto"
          },
          "passwordLogin": {
            "$ref": "#/components/schemas/SystemConfigPasswordLoginDto"
          },
          "storageTemplate": {
            "$ref": "#/components/schemas/SystemConfigStorageTemplateDto"
          },
          "job": {
            "$ref": "#/components/schemas/SystemConfigJobDto"
          }
        },
        "required": [
          "ffmpeg",
          "oauth",
          "passwordLogin",
          "storageTemplate",
          "job"
        ]
      },
      "SystemConfigFFmpegDto": {
        "type": "object",
        "properties": {
          "crf": {
            "type": "integer"
          },
          "threads": {
            "type": "integer"
          },
          "preset": {
            "type": "string"
          },
          "targetVideoCodec": {
            "type": "string"
          },
          "targetAudioCodec": {
            "type": "string"
          },
          "targetResolution": {
            "type": "string"
          },
          "maxBitrate": {
            "type": "string"
          },
          "twoPass": {
            "type": "boolean"
          },
          "transcode": {
            "type": "string",
            "enum": [
              "all",
              "optimal",
              "required",
              "disabled"
            ]
          }
        },
        "required": [
          "crf",
          "threads",
          "preset",
          "targetVideoCodec",
          "targetAudioCodec",
          "targetResolution",
          "maxBitrate",
          "twoPass",
          "transcode"
        ]
      },
      "SystemConfigJobDto": {
        "type": "object",
        "properties": {
          "thumbnailGeneration": {
            "$ref": "#/components/schemas/JobSettingsDto"
          },
          "metadataExtraction": {
            "$ref": "#/components/schemas/JobSettingsDto"
          },
          "videoConversion": {
            "$ref": "#/components/schemas/JobSettingsDto"
          },
          "objectTagging": {
            "$ref": "#/components/schemas/JobSettingsDto"
          },
          "clipEncoding": {
            "$ref": "#/components/schemas/JobSettingsDto"
          },
          "storageTemplateMigration": {
            "$ref": "#/components/schemas/JobSettingsDto"
          },
          "backgroundTask": {
            "$ref": "#/components/schemas/JobSettingsDto"
          },
          "search": {
            "$ref": "#/components/schemas/JobSettingsDto"
          },
          "recognizeFaces": {
            "$ref": "#/components/schemas/JobSettingsDto"
          },
          "sidecar": {
            "$ref": "#/components/schemas/JobSettingsDto"
          }
        },
        "required": [
          "thumbnailGeneration",
          "metadataExtraction",
          "videoConversion",
          "objectTagging",
          "clipEncoding",
          "storageTemplateMigration",
          "backgroundTask",
          "search",
          "recognizeFaces",
          "sidecar"
        ]
      },
      "SystemConfigOAuthDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "issuerUrl": {
            "type": "string"
          },
          "clientId": {
            "type": "string"
          },
          "clientSecret": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "buttonText": {
            "type": "string"
          },
          "autoRegister": {
            "type": "boolean"
          },
          "autoLaunch": {
            "type": "boolean"
          },
          "mobileOverrideEnabled": {
            "type": "boolean"
          },
          "mobileRedirectUri": {
            "type": "string"
          }
        },
        "required": [
          "enabled",
          "issuerUrl",
          "clientId",
          "clientSecret",
          "scope",
          "buttonText",
          "autoRegister",
          "autoLaunch",
          "mobileOverrideEnabled",
          "mobileRedirectUri"
        ]
      },
      "SystemConfigPasswordLoginDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "SystemConfigStorageTemplateDto": {
        "type": "object",
        "properties": {
          "template": {
            "type": "string"
          }
        },
        "required": [
          "template"
        ]
      },
      "SystemConfigTemplateStorageOptionDto": {
        "type": "object",
        "properties": {
          "yearOptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "monthOptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dayOptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "hourOptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "minuteOptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "secondOptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "presetOptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "yearOptions",
          "monthOptions",
          "dayOptions",
          "hourOptions",
          "minuteOptions",
          "secondOptions",
          "presetOptions"
        ]
      },
      "TagResponseDto": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/TagTypeEnum"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "id",
          "name",
          "userId"
        ]
      },
      "TagTypeEnum": {
        "type": "string",
        "enum": [
          "OBJECT",
          "FACE",
          "CUSTOM"
        ]
      },
      "ThumbnailFormat": {
        "type": "string",
        "enum": [
          "JPEG",
          "WEBP"
        ]
      },
      "TimeGroupEnum": {
        "type": "string",
        "enum": [
          "day",
          "month"
        ]
      },
      "UpdateAlbumDto": {
        "type": "object",
        "properties": {
          "albumName": {
            "type": "string"
          },
          "albumThumbnailAssetId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "UpdateAssetDto": {
        "type": "object",
        "properties": {
          "tagIds": {
            "title": "Array of tag IDs to add to the asset",
            "example": [
              "bf973405-3f2a-48d2-a687-2ed4167164be",
              "dd41870b-5d00-46d2-924e-1d8489a0aa0f",
              "fad77c3f-deef-4e7e-9608-14c1aa4e559a"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isFavorite": {
            "type": "boolean"
          },
          "isArchived": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "UpdateTagDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "UpdateUserDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "storageLabel": {
            "type": "string"
          },
          "isAdmin": {
            "type": "boolean"
          },
          "shouldChangePassword": {
            "type": "boolean"
          }
        },
        "required": [
          "id"
        ]
      },
      "UsageByUserDto": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "userFirstName": {
            "type": "string"
          },
          "userLastName": {
            "type": "string"
          },
          "photos": {
            "type": "integer"
          },
          "videos": {
            "type": "integer"
          },
          "usage": {
            "type": "integer",
            "format": "int64"
          }
        },
        "required": [
          "userId",
          "userFirstName",
          "userLastName",
          "photos",
          "videos",
          "usage"
        ]
      },
      "UserCountResponseDto": {
        "type": "object",
        "properties": {
          "userCount": {
            "type": "integer"
          }
        },
        "required": [
          "userCount"
        ]
      },
      "UserResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "storageLabel": {
            "type": "string",
            "nullable": true
          },
          "profileImagePath": {
            "type": "string"
          },
          "shouldChangePassword": {
            "type": "boolean"
          },
          "isAdmin": {
            "type": "boolean"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "oauthId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "firstName",
          "lastName",
          "storageLabel",
          "profileImagePath",
          "shouldChangePassword",
          "isAdmin",
          "createdAt",
          "deletedAt",
          "updatedAt",
          "oauthId"
        ]
      },
      "ValidateAccessTokenResponseDto": {
        "type": "object",
        "properties": {
          "authStatus": {
            "type": "boolean"
          }
        },
        "required": [
          "authStatus"
        ]
      }
    }
  }
}