mirror of
https://github.com/immich-app/immich.git
synced 2026-01-29 23:23:45 -05:00
* faces * add openapi descriptions * remove dto descriptions * gen openapi * dtos * fix dtos * fix more * fix build * more * complete dtos * descriptions on rebase * gen rebase * revert correct integer type conversion * gen after revert * revert correct nullables * regen after revert * actually incorrect adding default here * revert correct number type conversion * regen after revert * revert nullable usage * regen fully * readd some comments * one more * one more * use enum * add missing * add missing controllers * add missing dtos * complete it * more * describe global key and slug * add remaining body and param descriptions * lint and format * cleanup * response and schema descriptions * test patch according to suggestion * revert added api response objects * revert added api body objects * revert added api param object * revert added api query objects * revert reorganized http code objects * revert reorganize ApiOkResponse objects * revert added api response objects (2) * revert added api tag object * revert added api schema objects * migrate missing asset.dto.ts * regenerate openapi builds * delete generated mustache files * remove descriptions from properties that are schemas * lint * revert nullable type changes * revert int/num type changes * remove explicit default * readd comment * lint * pr fixes * last bits and pieces * lint and format * chore: remove rejected patches * fix: deleting asset from asset-viewer on search results (#25596) * fix: escape handling in search asset viewer (#25621) * fix: correctly show owner in album options modal (#25618) * fix: validation issues * fix: validation issues --------- Co-authored-by: Jason Rasmussen <jason@rasm.me> Co-authored-by: Min Idzelis <min123@gmail.com> Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com> Co-authored-by: Paul Makles <me@insrt.uk>
25848 lines
631 KiB
JSON
25848 lines
631 KiB
JSON
{
|
|
"openapi": "3.0.0",
|
|
"paths": {
|
|
"/activities": {
|
|
"get": {
|
|
"description": "Returns a list of activities for the selected asset or album. The activities are returned in sorted order, with the oldest activities appearing first.",
|
|
"operationId": "getActivities",
|
|
"parameters": [
|
|
{
|
|
"name": "albumId",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Album ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "assetId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Asset ID (if activity is for an asset)",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "level",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by activity level",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReactionLevel"
|
|
}
|
|
},
|
|
{
|
|
"name": "type",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by activity type",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReactionType"
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by user ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ActivityResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "List all activities",
|
|
"tags": [
|
|
"Activities"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "activity.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a like or a comment for an album, or an asset in an album.",
|
|
"operationId": "createActivity",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ActivityCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ActivityResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create an activity",
|
|
"tags": [
|
|
"Activities"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "activity.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/activities/statistics": {
|
|
"get": {
|
|
"description": "Returns the number of likes and comments for a given album or asset in an album.",
|
|
"operationId": "getActivityStatistics",
|
|
"parameters": [
|
|
{
|
|
"name": "albumId",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Album ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "assetId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Asset ID (if activity is for an asset)",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ActivityStatisticsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve activity statistics",
|
|
"tags": [
|
|
"Activities"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "activity.statistics",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/activities/{id}": {
|
|
"delete": {
|
|
"description": "Removes a like or comment from a given album or asset in an album.",
|
|
"operationId": "deleteActivity",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete an activity",
|
|
"tags": [
|
|
"Activities"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "activity.delete",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/auth/unlink-all": {
|
|
"post": {
|
|
"description": "Unlinks all OAuth accounts associated with user accounts in the system.",
|
|
"operationId": "unlinkAllOAuthAccountsAdmin",
|
|
"parameters": [],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Unlink all OAuth accounts",
|
|
"tags": [
|
|
"Authentication (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminAuth.unlinkAll",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/database-backups": {
|
|
"delete": {
|
|
"description": "Delete a backup by its filename",
|
|
"operationId": "deleteDatabaseBackup",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DatabaseBackupDeleteDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete database backup",
|
|
"tags": [
|
|
"Database Backups (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "backup.delete",
|
|
"x-immich-state": "Alpha"
|
|
},
|
|
"get": {
|
|
"description": "Get the list of the successful and failed backups",
|
|
"operationId": "listDatabaseBackups",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DatabaseBackupListResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "List database backups",
|
|
"tags": [
|
|
"Database Backups (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "maintenance",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/admin/database-backups/start-restore": {
|
|
"post": {
|
|
"description": "Put Immich into maintenance mode to restore a backup (Immich must not be configured)",
|
|
"operationId": "startDatabaseRestoreFlow",
|
|
"parameters": [],
|
|
"responses": {
|
|
"201": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Start database backup restore flow",
|
|
"tags": [
|
|
"Database Backups (admin)"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/admin/database-backups/upload": {
|
|
"post": {
|
|
"description": "Uploads .sql/.sql.gz file to restore backup from",
|
|
"operationId": "uploadDatabaseBackup",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DatabaseBackupUploadDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "Backup Upload",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Upload database backup",
|
|
"tags": [
|
|
"Database Backups (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "backup.upload",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/admin/database-backups/{filename}": {
|
|
"get": {
|
|
"description": "Downloads the database backup file",
|
|
"operationId": "downloadDatabaseBackup",
|
|
"parameters": [
|
|
{
|
|
"name": "filename",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "string",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Download database backup",
|
|
"tags": [
|
|
"Database Backups (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "backup.download",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/admin/maintenance": {
|
|
"post": {
|
|
"description": "Put Immich into or take it out of maintenance mode",
|
|
"operationId": "setMaintenanceMode",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SetMaintenanceModeDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Set maintenance mode",
|
|
"tags": [
|
|
"Maintenance (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "maintenance",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/admin/maintenance/detect-install": {
|
|
"get": {
|
|
"description": "Collect integrity checks and other heuristics about local data.",
|
|
"operationId": "detectPriorInstall",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MaintenanceDetectInstallResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Detect existing install",
|
|
"tags": [
|
|
"Maintenance (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "maintenance",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/admin/maintenance/login": {
|
|
"post": {
|
|
"description": "Login with maintenance token or cookie to receive current information and perform further actions.",
|
|
"operationId": "maintenanceLogin",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MaintenanceLoginDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MaintenanceAuthDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Log into maintenance mode",
|
|
"tags": [
|
|
"Maintenance (admin)"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/admin/maintenance/status": {
|
|
"get": {
|
|
"description": "Fetch information about the currently running maintenance action.",
|
|
"operationId": "getMaintenanceStatus",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MaintenanceStatusResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Get maintenance mode status",
|
|
"tags": [
|
|
"Maintenance (admin)"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/admin/notifications": {
|
|
"post": {
|
|
"description": "Create a new notification for a specific user.",
|
|
"operationId": "createNotification",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a notification",
|
|
"tags": [
|
|
"Notifications (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/notifications/templates/{name}": {
|
|
"post": {
|
|
"description": "Retrieve a preview of the provided email template.",
|
|
"operationId": "getNotificationTemplateAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TemplateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TemplateResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Render email template",
|
|
"tags": [
|
|
"Notifications (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/notifications/test-email": {
|
|
"post": {
|
|
"description": "Send a test email using the provided SMTP configuration.",
|
|
"operationId": "sendTestEmailAdmin",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SystemConfigSmtpDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TestEmailResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Send test email",
|
|
"tags": [
|
|
"Notifications (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/users": {
|
|
"get": {
|
|
"description": "Search for users.",
|
|
"operationId": "searchUsersAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "User ID filter",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "withDeleted",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include deleted users",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Search users",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminUser.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new user.",
|
|
"operationId": "createUserAdmin",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a user",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminUser.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/users/{id}": {
|
|
"delete": {
|
|
"description": "Delete a user.",
|
|
"operationId": "deleteUserAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminDeleteDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a user",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminUser.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a specific user by their ID.",
|
|
"operationId": "getUserAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a user",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminUser.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update an existing user.",
|
|
"operationId": "updateUserAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a user",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminUser.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/users/{id}/preferences": {
|
|
"get": {
|
|
"description": "Retrieve the preferences of a specific user.",
|
|
"operationId": "getUserPreferencesAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve user preferences",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminUser.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update the preferences of a specific user.",
|
|
"operationId": "updateUserPreferencesAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update user preferences",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminUser.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/users/{id}/restore": {
|
|
"post": {
|
|
"description": "Restore a previously deleted user.",
|
|
"operationId": "restoreUserAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Restore a deleted user",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminUser.delete",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/users/{id}/sessions": {
|
|
"get": {
|
|
"description": "Retrieve all sessions for a specific user.",
|
|
"operationId": "getUserSessionsAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SessionResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve user sessions",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminSession.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/admin/users/{id}/statistics": {
|
|
"get": {
|
|
"description": "Retrieve asset statistics for a specific user.",
|
|
"operationId": "getUserStatisticsAdmin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "isFavorite",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by favorite status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isTrashed",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by trash status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "visibility",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by visibility",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetStatsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve user statistics",
|
|
"tags": [
|
|
"Users (admin)"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "adminUser.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/albums": {
|
|
"get": {
|
|
"description": "Retrieve a list of albums available to the authenticated user.",
|
|
"operationId": "getAllAlbums",
|
|
"parameters": [
|
|
{
|
|
"name": "assetId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter albums containing this asset ID (ignores shared parameter)",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "shared",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by shared status: true = only shared, false = only own, undefined = all",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AlbumResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "List all albums",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "album.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new album. The album can also be created with initial users and assets.",
|
|
"operationId": "createAlbum",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateAlbumDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AlbumResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create an album",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "album.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/albums/assets": {
|
|
"put": {
|
|
"description": "Send a list of asset IDs and album IDs to add each asset to each album.",
|
|
"operationId": "addAssetsToAlbums",
|
|
"parameters": [
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AlbumsAddAssetsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AlbumsAddAssetsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Add assets to albums",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "albumAsset.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/albums/statistics": {
|
|
"get": {
|
|
"description": "Returns statistics about the albums available to the authenticated user.",
|
|
"operationId": "getAlbumStatistics",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AlbumStatisticsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve album statistics",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "album.statistics",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/albums/{id}": {
|
|
"delete": {
|
|
"description": "Delete a specific album by its ID. Note the album is initially trashed and then immediately scheduled for deletion, but relies on a background job to complete the process.",
|
|
"operationId": "deleteAlbum",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete an album",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "album.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve information about a specific album by its ID.",
|
|
"operationId": "getAlbumInfo",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "withoutAssets",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Exclude assets from response",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AlbumResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve an album",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "album.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"patch": {
|
|
"description": "Update the information of a specific album by its ID. This endpoint can be used to update the album name, description, sort order, etc. However, it is not used to add or remove assets or users from the album.",
|
|
"operationId": "updateAlbumInfo",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateAlbumDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AlbumResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update an album",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "album.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/albums/{id}/assets": {
|
|
"delete": {
|
|
"description": "Remove multiple assets from a specific album by its ID.",
|
|
"operationId": "removeAssetFromAlbum",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BulkIdResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Remove assets from an album",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "albumAsset.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Add multiple assets to a specific album by its ID.",
|
|
"operationId": "addAssetsToAlbum",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BulkIdResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Add assets to an album",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "albumAsset.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/albums/{id}/user/{userId}": {
|
|
"delete": {
|
|
"description": "Remove a user from an album. Use an ID of \"me\" to leave a shared album.",
|
|
"operationId": "removeUserFromAlbum",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Remove user from album",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "albumUser.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Change the role for a specific user in a specific album.",
|
|
"operationId": "updateAlbumUser",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateAlbumUserDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update user role",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "albumUser.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/albums/{id}/users": {
|
|
"put": {
|
|
"description": "Share an album with multiple users. Each user can be given a specific role in the album.",
|
|
"operationId": "addUsersToAlbum",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AddUsersDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AlbumResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Share album with users",
|
|
"tags": [
|
|
"Albums"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "albumUser.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/api-keys": {
|
|
"get": {
|
|
"description": "Retrieve all API keys of the current user.",
|
|
"operationId": "getApiKeys",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/APIKeyResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "List all API keys",
|
|
"tags": [
|
|
"API keys"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "apiKey.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Creates a new API key. It will be limited to the permissions specified.",
|
|
"operationId": "createApiKey",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/APIKeyCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/APIKeyCreateResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create an API key",
|
|
"tags": [
|
|
"API keys"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "apiKey.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/api-keys/me": {
|
|
"get": {
|
|
"description": "Retrieve the API key that is used to access this endpoint.",
|
|
"operationId": "getMyApiKey",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/APIKeyResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve the current API key",
|
|
"tags": [
|
|
"API keys"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/api-keys/{id}": {
|
|
"delete": {
|
|
"description": "Deletes an API key identified by its ID. The current user must own this API key.",
|
|
"operationId": "deleteApiKey",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete an API key",
|
|
"tags": [
|
|
"API keys"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "apiKey.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve an API key by its ID. The current user must own this API key.",
|
|
"operationId": "getApiKey",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/APIKeyResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve an API key",
|
|
"tags": [
|
|
"API keys"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "apiKey.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Updates the name and permissions of an API key by its ID. The current user must own this API key.",
|
|
"operationId": "updateApiKey",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/APIKeyUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/APIKeyResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update an API key",
|
|
"tags": [
|
|
"API keys"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "apiKey.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets": {
|
|
"delete": {
|
|
"description": "Deletes multiple assets at the same time.",
|
|
"operationId": "deleteAssets",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetBulkDeleteDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete assets",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Uploads a new asset to the server.",
|
|
"operationId": "uploadAsset",
|
|
"parameters": [
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "x-immich-checksum",
|
|
"in": "header",
|
|
"description": "sha1 checksum that can be used for duplicate detection before the file is uploaded",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMediaCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "Asset Upload Information",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMediaResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "Asset is a duplicate"
|
|
},
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMediaResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "Asset uploaded successfully"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Upload asset",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.upload",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Updates multiple assets at the same time.",
|
|
"operationId": "updateAssets",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetBulkUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update assets",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/bulk-upload-check": {
|
|
"post": {
|
|
"description": "Determine which assets have already been uploaded to the server based on their SHA1 checksums.",
|
|
"operationId": "checkBulkUpload",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetBulkUploadCheckDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetBulkUploadCheckResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Check bulk upload",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.upload",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/copy": {
|
|
"put": {
|
|
"description": "Copy asset information like albums, tags, etc. from one asset to another.",
|
|
"operationId": "copyAsset",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetCopyDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Copy asset",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.copy",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/device/{deviceId}": {
|
|
"get": {
|
|
"deprecated": true,
|
|
"description": "Get all asset of a device that are in the database, ID only.",
|
|
"operationId": "getAllUserAssetsByDeviceId",
|
|
"parameters": [
|
|
{
|
|
"name": "deviceId",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Device ID",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve assets by device ID",
|
|
"tags": [
|
|
"Assets",
|
|
"Deprecated"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Deprecated"
|
|
}
|
|
],
|
|
"x-immich-state": "Deprecated"
|
|
}
|
|
},
|
|
"/assets/exist": {
|
|
"post": {
|
|
"description": "Checks if multiple assets exist on the server and returns all existing - used by background backup",
|
|
"operationId": "checkExistingAssets",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CheckExistingAssetsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CheckExistingAssetsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Check existing assets",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.upload",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/jobs": {
|
|
"post": {
|
|
"description": "Run a specific job on a set of assets.",
|
|
"operationId": "runAssetJobs",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetJobsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Run an asset job",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "job.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/metadata": {
|
|
"delete": {
|
|
"description": "Delete metadata key-value pairs for multiple assets.",
|
|
"operationId": "deleteBulkAssetMetadata",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMetadataBulkDeleteDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete asset metadata",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Beta"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.update",
|
|
"x-immich-state": "Beta"
|
|
},
|
|
"put": {
|
|
"description": "Upsert metadata key-value pairs for multiple assets.",
|
|
"operationId": "updateBulkAssetMetadata",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMetadataBulkUpsertDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetMetadataBulkResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Upsert asset metadata",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Beta"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.update",
|
|
"x-immich-state": "Beta"
|
|
}
|
|
},
|
|
"/assets/random": {
|
|
"get": {
|
|
"deprecated": true,
|
|
"description": "Retrieve a specified number of random assets for the authenticated user.",
|
|
"operationId": "getRandom",
|
|
"parameters": [
|
|
{
|
|
"name": "count",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Number of random assets to return",
|
|
"schema": {
|
|
"minimum": 1,
|
|
"type": "number"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get random assets",
|
|
"tags": [
|
|
"Assets",
|
|
"Deprecated"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Deprecated",
|
|
"replacementId": "searchAssets"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Deprecated"
|
|
}
|
|
},
|
|
"/assets/statistics": {
|
|
"get": {
|
|
"description": "Retrieve various statistics about the assets owned by the authenticated user.",
|
|
"operationId": "getAssetStatistics",
|
|
"parameters": [
|
|
{
|
|
"name": "isFavorite",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by favorite status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isTrashed",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by trash status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "visibility",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by visibility",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetStatsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get asset statistics",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.statistics",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/{id}": {
|
|
"get": {
|
|
"description": "Retrieve detailed information about a specific asset.",
|
|
"operationId": "getAssetInfo",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve an asset",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update information of a specific asset.",
|
|
"operationId": "updateAsset",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateAssetDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update an asset",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/{id}/edits": {
|
|
"delete": {
|
|
"description": "Removes all edit actions (crop, rotate, mirror) associated with the specified asset.",
|
|
"operationId": "removeAssetEdits",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Remove edits from an existing asset",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Beta"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.edit.delete",
|
|
"x-immich-state": "Beta"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a series of edit actions (crop, rotate, mirror) associated with the specified asset.",
|
|
"operationId": "getAssetEdits",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetEditsDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve edits for an existing asset",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Beta"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.edit.get",
|
|
"x-immich-state": "Beta"
|
|
},
|
|
"put": {
|
|
"description": "Apply a series of edit actions (crop, rotate, mirror) to the specified asset.",
|
|
"operationId": "editAsset",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetEditActionListDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetEditsDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Apply edits to an existing asset",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Beta"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.edit.create",
|
|
"x-immich-state": "Beta"
|
|
}
|
|
},
|
|
"/assets/{id}/metadata": {
|
|
"get": {
|
|
"description": "Retrieve all metadata key-value pairs associated with the specified asset.",
|
|
"operationId": "getAssetMetadata",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetMetadataResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get asset metadata",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update or add metadata key-value pairs for the specified asset.",
|
|
"operationId": "updateAssetMetadata",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMetadataUpsertDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetMetadataResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update asset metadata",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/{id}/metadata/{key}": {
|
|
"delete": {
|
|
"description": "Delete a specific metadata key-value pair associated with the specified asset.",
|
|
"operationId": "deleteAssetMetadata",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Asset ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Metadata key",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete asset metadata by key",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.update",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve the value of a specific metadata key associated with the specified asset.",
|
|
"operationId": "getAssetMetadataByKey",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Asset ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Metadata key",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMetadataResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve asset metadata by key",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/{id}/ocr": {
|
|
"get": {
|
|
"description": "Retrieve all OCR (Optical Character Recognition) data associated with the specified asset.",
|
|
"operationId": "getAssetOcr",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetOcrResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve asset OCR data",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/{id}/original": {
|
|
"get": {
|
|
"description": "Downloads the original file of the specified asset.",
|
|
"operationId": "downloadAsset",
|
|
"parameters": [
|
|
{
|
|
"name": "edited",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Return edited asset if available",
|
|
"schema": {
|
|
"default": false,
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Download original asset",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.download",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"deprecated": true,
|
|
"description": "Replace the asset with new file, without changing its id.",
|
|
"operationId": "replaceAsset",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMediaReplaceDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMediaResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "Asset replaced successfully"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Replace asset",
|
|
"tags": [
|
|
"Assets",
|
|
"Deprecated"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Deprecated",
|
|
"replacementId": "copyAsset"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.replace",
|
|
"x-immich-state": "Deprecated"
|
|
}
|
|
},
|
|
"/assets/{id}/thumbnail": {
|
|
"get": {
|
|
"description": "Retrieve the thumbnail image for the specified asset. Viewing the fullsize thumbnail might redirect to downloadAsset, which requires a different permission.",
|
|
"operationId": "viewAsset",
|
|
"parameters": [
|
|
{
|
|
"name": "edited",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Return edited asset if available",
|
|
"schema": {
|
|
"default": false,
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "size",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Asset media size",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetMediaSize"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "View asset thumbnail",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.view",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/assets/{id}/video/playback": {
|
|
"get": {
|
|
"description": "Streams the video file for the specified asset. This endpoint also supports byte range requests.",
|
|
"operationId": "playAssetVideo",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Play asset video",
|
|
"tags": [
|
|
"Assets"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.view",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/auth/admin-sign-up": {
|
|
"post": {
|
|
"description": "Create the first admin user in the system.",
|
|
"operationId": "signUpAdmin",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SignUpDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Register admin",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/auth/change-password": {
|
|
"post": {
|
|
"description": "Change the password of the current user.",
|
|
"operationId": "changePassword",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangePasswordDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Change password",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "auth.changePassword",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/auth/login": {
|
|
"post": {
|
|
"description": "Login with username and password and receive a session token.",
|
|
"operationId": "login",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginCredentialDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Login",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/auth/logout": {
|
|
"post": {
|
|
"description": "Logout the current user and invalidate the session token.",
|
|
"operationId": "logout",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LogoutResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Logout",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/auth/pin-code": {
|
|
"delete": {
|
|
"description": "Reset the pin code for the current user by providing the account password",
|
|
"operationId": "resetPinCode",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PinCodeResetDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Reset pin code",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "pinCode.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Setup a new pin code for the current user.",
|
|
"operationId": "setupPinCode",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PinCodeSetupDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Setup pin code",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "pinCode.create",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Change the pin code for the current user.",
|
|
"operationId": "changePinCode",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PinCodeChangeDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Change pin code",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "pinCode.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/auth/session/lock": {
|
|
"post": {
|
|
"description": "Remove elevated access to locked assets from the current session.",
|
|
"operationId": "lockAuthSession",
|
|
"parameters": [],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Lock auth session",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/auth/session/unlock": {
|
|
"post": {
|
|
"description": "Temporarily grant the session elevated access to locked assets by providing the correct PIN code.",
|
|
"operationId": "unlockAuthSession",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionUnlockDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Unlock auth session",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/auth/status": {
|
|
"get": {
|
|
"description": "Get information about the current session, including whether the user has a password, and if the session can access locked assets.",
|
|
"operationId": "getAuthStatus",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthStatusResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve auth status",
|
|
"tags": [
|
|
"Authentication"
|
|
]
|
|
}
|
|
},
|
|
"/auth/validateToken": {
|
|
"post": {
|
|
"description": "Validate the current authorization method is still valid.",
|
|
"operationId": "validateAccessToken",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidateAccessTokenResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Validate access token",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/download/archive": {
|
|
"post": {
|
|
"description": "Download a ZIP archive containing the specified assets. The assets must have been previously requested via the \"getDownloadInfo\" endpoint.",
|
|
"operationId": "downloadArchive",
|
|
"parameters": [
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Download asset archive",
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.download",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/download/info": {
|
|
"post": {
|
|
"description": "Retrieve information about how to request a download for the specified assets or album. The response includes groups of assets that can be downloaded together.",
|
|
"operationId": "getDownloadInfo",
|
|
"parameters": [
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DownloadInfoDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DownloadResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve download information",
|
|
"tags": [
|
|
"Download"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.download",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/duplicates": {
|
|
"delete": {
|
|
"description": "Delete multiple duplicate assets specified by their IDs.",
|
|
"operationId": "deleteDuplicates",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete duplicates",
|
|
"tags": [
|
|
"Duplicates"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "duplicate.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a list of duplicate assets available to the authenticated user.",
|
|
"operationId": "getAssetDuplicates",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DuplicateResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve duplicates",
|
|
"tags": [
|
|
"Duplicates"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "duplicate.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/duplicates/{id}": {
|
|
"delete": {
|
|
"description": "Delete a single duplicate asset specified by its ID.",
|
|
"operationId": "deleteDuplicate",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a duplicate",
|
|
"tags": [
|
|
"Duplicates"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "duplicate.delete",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/faces": {
|
|
"get": {
|
|
"description": "Retrieve all faces belonging to an asset.",
|
|
"operationId": "getFaces",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Face ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetFaceResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve faces for asset",
|
|
"tags": [
|
|
"Faces"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "face.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new face that has not been discovered by facial recognition. The content of the bounding box is considered a face.",
|
|
"operationId": "createFace",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetFaceCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a face",
|
|
"tags": [
|
|
"Faces"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "face.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/faces/{id}": {
|
|
"delete": {
|
|
"description": "Delete a face identified by the id. Optionally can be force deleted.",
|
|
"operationId": "deleteFace",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetFaceDeleteDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a face",
|
|
"tags": [
|
|
"Faces"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "face.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Re-assign the face provided in the body to the person identified by the id in the path parameter.",
|
|
"operationId": "reassignFacesById",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FaceDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Re-assign a face to another person",
|
|
"tags": [
|
|
"Faces"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "face.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/jobs": {
|
|
"get": {
|
|
"deprecated": true,
|
|
"description": "Retrieve the counts of the current queue, as well as the current status.",
|
|
"operationId": "getQueuesLegacy",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueuesResponseLegacyDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve queue counts and status",
|
|
"tags": [
|
|
"Jobs",
|
|
"Deprecated"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
},
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Deprecated"
|
|
}
|
|
],
|
|
"x-immich-permission": "job.read",
|
|
"x-immich-state": "Deprecated"
|
|
},
|
|
"post": {
|
|
"description": "Run a specific job. Most jobs are queued automatically, but this endpoint allows for manual creation of a handful of jobs, including various cleanup tasks, as well as creating a new database backup.",
|
|
"operationId": "createJob",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/JobCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a manual job",
|
|
"tags": [
|
|
"Jobs"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "job.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/jobs/{name}": {
|
|
"put": {
|
|
"deprecated": true,
|
|
"description": "Queue all assets for a specific job type. Defaults to only queueing assets that have not yet been processed, but the force command can be used to re-process all assets.",
|
|
"operationId": "runQueueCommandLegacy",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Queue name",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueName"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueCommandDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Run jobs",
|
|
"tags": [
|
|
"Jobs",
|
|
"Deprecated"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
},
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Deprecated"
|
|
}
|
|
],
|
|
"x-immich-permission": "job.create",
|
|
"x-immich-state": "Deprecated"
|
|
}
|
|
},
|
|
"/libraries": {
|
|
"get": {
|
|
"description": "Retrieve a list of external libraries.",
|
|
"operationId": "getAllLibraries",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LibraryResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve libraries",
|
|
"tags": [
|
|
"Libraries"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "library.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new external library.",
|
|
"operationId": "createLibrary",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateLibraryDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a library",
|
|
"tags": [
|
|
"Libraries"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "library.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/libraries/{id}": {
|
|
"delete": {
|
|
"description": "Delete an external library by its ID.",
|
|
"operationId": "deleteLibrary",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a library",
|
|
"tags": [
|
|
"Libraries"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "library.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve an external library by its ID.",
|
|
"operationId": "getLibrary",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a library",
|
|
"tags": [
|
|
"Libraries"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "library.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update an existing external library.",
|
|
"operationId": "updateLibrary",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateLibraryDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a library",
|
|
"tags": [
|
|
"Libraries"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "library.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/libraries/{id}/scan": {
|
|
"post": {
|
|
"description": "Queue a scan for the external library to find and import new assets.",
|
|
"operationId": "scanLibrary",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Scan a library",
|
|
"tags": [
|
|
"Libraries"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "library.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/libraries/{id}/statistics": {
|
|
"get": {
|
|
"description": "Retrieve statistics for a specific external library, including number of videos, images, and storage usage.",
|
|
"operationId": "getLibraryStatistics",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LibraryStatsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve library statistics",
|
|
"tags": [
|
|
"Libraries"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "library.statistics",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/libraries/{id}/validate": {
|
|
"post": {
|
|
"description": "Validate the settings of an external library.",
|
|
"operationId": "validate",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidateLibraryDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidateLibraryResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Validate library settings",
|
|
"tags": [
|
|
"Libraries"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/map/markers": {
|
|
"get": {
|
|
"description": "Retrieve a list of latitude and longitude coordinates for every asset with location data.",
|
|
"operationId": "getMapMarkers",
|
|
"parameters": [
|
|
{
|
|
"name": "fileCreatedAfter",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets created after this date",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "fileCreatedBefore",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets created before this date",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "isArchived",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by archived status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isFavorite",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by favorite status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "withPartners",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include partner assets",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "withSharedAlbums",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include shared album assets",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MapMarkerResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve map markers",
|
|
"tags": [
|
|
"Map"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "map.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/map/reverse-geocode": {
|
|
"get": {
|
|
"description": "Retrieve location information (e.g., city, country) for given latitude and longitude coordinates.",
|
|
"operationId": "reverseGeocode",
|
|
"parameters": [
|
|
{
|
|
"name": "lat",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Latitude (-90 to 90)",
|
|
"schema": {
|
|
"format": "double",
|
|
"type": "number"
|
|
}
|
|
},
|
|
{
|
|
"name": "lon",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Longitude (-180 to 180)",
|
|
"schema": {
|
|
"format": "double",
|
|
"type": "number"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MapReverseGeocodeResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Reverse geocode coordinates",
|
|
"tags": [
|
|
"Map"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "map.search",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/memories": {
|
|
"get": {
|
|
"description": "Retrieve a list of memories. Memories are sorted descending by creation date by default, although they can also be sorted in ascending order, or randomly.",
|
|
"operationId": "searchMemories",
|
|
"parameters": [
|
|
{
|
|
"name": "for",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by date",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "isSaved",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by saved status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isTrashed",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include trashed memories",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "order",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Sort order",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemorySearchOrder"
|
|
}
|
|
},
|
|
{
|
|
"name": "size",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Number of memories to return",
|
|
"schema": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"name": "type",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Memory type",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryType"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemoryResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve memories",
|
|
"tags": [
|
|
"Memories"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "memory.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new memory by providing a name, description, and a list of asset IDs to include in the memory.",
|
|
"operationId": "createMemory",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a memory",
|
|
"tags": [
|
|
"Memories"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "memory.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/memories/statistics": {
|
|
"get": {
|
|
"description": "Retrieve statistics about memories, such as total count and other relevant metrics.",
|
|
"operationId": "memoriesStatistics",
|
|
"parameters": [
|
|
{
|
|
"name": "for",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by date",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "isSaved",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by saved status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isTrashed",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include trashed memories",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "order",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Sort order",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemorySearchOrder"
|
|
}
|
|
},
|
|
{
|
|
"name": "size",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Number of memories to return",
|
|
"schema": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"name": "type",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Memory type",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryType"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryStatisticsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve memories statistics",
|
|
"tags": [
|
|
"Memories"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "memory.statistics",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/memories/{id}": {
|
|
"delete": {
|
|
"description": "Delete a specific memory by its ID.",
|
|
"operationId": "deleteMemory",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a memory",
|
|
"tags": [
|
|
"Memories"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "memory.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a specific memory by its ID.",
|
|
"operationId": "getMemory",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a memory",
|
|
"tags": [
|
|
"Memories"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "memory.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update an existing memory by its ID.",
|
|
"operationId": "updateMemory",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a memory",
|
|
"tags": [
|
|
"Memories"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "memory.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/memories/{id}/assets": {
|
|
"delete": {
|
|
"description": "Remove a list of asset IDs from a specific memory.",
|
|
"operationId": "removeMemoryAssets",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BulkIdResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Remove assets from a memory",
|
|
"tags": [
|
|
"Memories"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "memoryAsset.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Add a list of asset IDs to a specific memory.",
|
|
"operationId": "addMemoryAssets",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BulkIdResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Add assets to a memory",
|
|
"tags": [
|
|
"Memories"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "memoryAsset.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/notifications": {
|
|
"delete": {
|
|
"description": "Delete a list of notifications at once.",
|
|
"operationId": "deleteNotifications",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationDeleteAllDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete notifications",
|
|
"tags": [
|
|
"Notifications"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "notification.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a list of notifications.",
|
|
"operationId": "getNotifications",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by notification ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "level",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by notification level",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationLevel"
|
|
}
|
|
},
|
|
{
|
|
"name": "type",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by notification type",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationType"
|
|
}
|
|
},
|
|
{
|
|
"name": "unread",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by unread status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/NotificationDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve notifications",
|
|
"tags": [
|
|
"Notifications"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "notification.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update a list of notifications. Allows to bulk-set the read status of notifications.",
|
|
"operationId": "updateNotifications",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationUpdateAllDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update notifications",
|
|
"tags": [
|
|
"Notifications"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "notification.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/notifications/{id}": {
|
|
"delete": {
|
|
"description": "Delete a specific notification.",
|
|
"operationId": "deleteNotification",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a notification",
|
|
"tags": [
|
|
"Notifications"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "notification.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a specific notification identified by id.",
|
|
"operationId": "getNotification",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get a notification",
|
|
"tags": [
|
|
"Notifications"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "notification.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update a specific notification to set its read status.",
|
|
"operationId": "updateNotification",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a notification",
|
|
"tags": [
|
|
"Notifications"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "notification.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/oauth/authorize": {
|
|
"post": {
|
|
"description": "Initiate the OAuth authorization process.",
|
|
"operationId": "startOAuth",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OAuthConfigDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OAuthAuthorizeResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Start OAuth",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/oauth/callback": {
|
|
"post": {
|
|
"description": "Complete the OAuth authorization process by exchanging the authorization code for a session token.",
|
|
"operationId": "finishOAuth",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OAuthCallbackDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Finish OAuth",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/oauth/link": {
|
|
"post": {
|
|
"description": "Link an OAuth account to the authenticated user.",
|
|
"operationId": "linkOAuthAccount",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OAuthCallbackDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Link OAuth account",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/oauth/mobile-redirect": {
|
|
"get": {
|
|
"description": "Requests to this URL are automatically forwarded to the mobile app, and is used in some cases for OAuth redirecting.",
|
|
"operationId": "redirectOAuthToMobile",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Redirect OAuth to mobile",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/oauth/unlink": {
|
|
"post": {
|
|
"description": "Unlink the OAuth account from the authenticated user.",
|
|
"operationId": "unlinkOAuthAccount",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Unlink OAuth account",
|
|
"tags": [
|
|
"Authentication"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/partners": {
|
|
"get": {
|
|
"description": "Retrieve a list of partners with whom assets are shared.",
|
|
"operationId": "getPartners",
|
|
"parameters": [
|
|
{
|
|
"name": "direction",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Partner direction",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PartnerDirection"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PartnerResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve partners",
|
|
"tags": [
|
|
"Partners"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "partner.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new partner to share assets with.",
|
|
"operationId": "createPartner",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PartnerCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PartnerResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a partner",
|
|
"tags": [
|
|
"Partners"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "partner.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/partners/{id}": {
|
|
"delete": {
|
|
"description": "Stop sharing assets with a partner.",
|
|
"operationId": "removePartner",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Remove a partner",
|
|
"tags": [
|
|
"Partners"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "partner.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"deprecated": true,
|
|
"description": "Create a new partner to share assets with.",
|
|
"operationId": "createPartnerDeprecated",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PartnerResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a partner",
|
|
"tags": [
|
|
"Partners",
|
|
"Deprecated"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Deprecated",
|
|
"replacementId": "createPartner"
|
|
}
|
|
],
|
|
"x-immich-permission": "partner.create",
|
|
"x-immich-state": "Deprecated"
|
|
},
|
|
"put": {
|
|
"description": "Specify whether a partner's assets should appear in the user's timeline.",
|
|
"operationId": "updatePartner",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PartnerUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PartnerResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a partner",
|
|
"tags": [
|
|
"Partners"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "partner.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/people": {
|
|
"delete": {
|
|
"description": "Bulk delete a list of people at once.",
|
|
"operationId": "deletePeople",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete people",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a list of all people.",
|
|
"operationId": "getAllPeople",
|
|
"parameters": [
|
|
{
|
|
"name": "closestAssetId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Closest asset ID for similarity search",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "closestPersonId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Closest person ID for similarity search",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Page number for pagination",
|
|
"schema": {
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"type": "number"
|
|
}
|
|
},
|
|
{
|
|
"name": "size",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Number of items per page",
|
|
"schema": {
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 500,
|
|
"type": "number"
|
|
}
|
|
},
|
|
{
|
|
"name": "withHidden",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include hidden people",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PeopleResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get all people",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new person that can have multiple faces assigned to them.",
|
|
"operationId": "createPerson",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a person",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.create",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Bulk update multiple people at once.",
|
|
"operationId": "updatePeople",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PeopleUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BulkIdResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update people",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/people/{id}": {
|
|
"delete": {
|
|
"description": "Delete an individual person.",
|
|
"operationId": "deletePerson",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete person",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a person by id.",
|
|
"operationId": "getPerson",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get a person",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update an individual person.",
|
|
"operationId": "updatePerson",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update person",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/people/{id}/merge": {
|
|
"post": {
|
|
"description": "Merge a list of people into the person specified in the path parameter.",
|
|
"operationId": "mergePerson",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MergePersonDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BulkIdResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Merge people",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.merge",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/people/{id}/reassign": {
|
|
"put": {
|
|
"description": "Bulk reassign a list of faces to a different person.",
|
|
"operationId": "reassignFaces",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetFaceUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Reassign faces",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.reassign",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/people/{id}/statistics": {
|
|
"get": {
|
|
"description": "Retrieve statistics about a specific person.",
|
|
"operationId": "getPersonStatistics",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonStatisticsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get person statistics",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.statistics",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/people/{id}/thumbnail": {
|
|
"get": {
|
|
"description": "Retrieve the thumbnail file for a person.",
|
|
"operationId": "getPersonThumbnail",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get person thumbnail",
|
|
"tags": [
|
|
"People"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/plugins": {
|
|
"get": {
|
|
"description": "Retrieve a list of plugins available to the authenticated user.",
|
|
"operationId": "getPlugins",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PluginResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "List all plugins",
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "plugin.read",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/plugins/triggers": {
|
|
"get": {
|
|
"description": "Retrieve a list of all available plugin triggers.",
|
|
"operationId": "getPluginTriggers",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PluginTriggerResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "List all plugin triggers",
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "plugin.read",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/plugins/{id}": {
|
|
"get": {
|
|
"description": "Retrieve information about a specific plugin by its ID.",
|
|
"operationId": "getPlugin",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a plugin",
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "plugin.read",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/queues": {
|
|
"get": {
|
|
"description": "Retrieves a list of queues.",
|
|
"operationId": "getQueues",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/QueueResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "List all queues",
|
|
"tags": [
|
|
"Queues"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "queue.read",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/queues/{name}": {
|
|
"get": {
|
|
"description": "Retrieves a specific queue by its name.",
|
|
"operationId": "getQueue",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Queue name",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueName"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a queue",
|
|
"tags": [
|
|
"Queues"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "queue.read",
|
|
"x-immich-state": "Alpha"
|
|
},
|
|
"put": {
|
|
"description": "Change the paused status of a specific queue.",
|
|
"operationId": "updateQueue",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Queue name",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueName"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a queue",
|
|
"tags": [
|
|
"Queues"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "queue.update",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/queues/{name}/jobs": {
|
|
"delete": {
|
|
"description": "Removes all jobs from the specified queue.",
|
|
"operationId": "emptyQueue",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Queue name",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueName"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueDeleteDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Empty a queue",
|
|
"tags": [
|
|
"Queues"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "queueJob.delete",
|
|
"x-immich-state": "Alpha"
|
|
},
|
|
"get": {
|
|
"description": "Retrieves a list of queue jobs from the specified queue.",
|
|
"operationId": "getQueueJobs",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"required": true,
|
|
"in": "path",
|
|
"description": "Queue name",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QueueName"
|
|
}
|
|
},
|
|
{
|
|
"name": "status",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter jobs by status",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/QueueJobStatus"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/QueueJobResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve queue jobs",
|
|
"tags": [
|
|
"Queues"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "queueJob.read",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/search/cities": {
|
|
"get": {
|
|
"description": "Retrieve a list of assets with each asset belonging to a different city. This endpoint is used on the places pages to show a single thumbnail for each city the user has assets in.",
|
|
"operationId": "getAssetsByCity",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve assets by city",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/search/explore": {
|
|
"get": {
|
|
"description": "Retrieve data for the explore section, such as popular people and places.",
|
|
"operationId": "getExploreData",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SearchExploreResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve explore data",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/search/large-assets": {
|
|
"post": {
|
|
"description": "Search for assets that are considered large based on specified criteria.",
|
|
"operationId": "searchLargeAssets",
|
|
"parameters": [
|
|
{
|
|
"name": "albumIds",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by album IDs",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "city",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by city name",
|
|
"schema": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "country",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by country name",
|
|
"schema": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "createdAfter",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by creation date (after)",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "createdBefore",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by creation date (before)",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "deviceId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Device ID to filter by",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "isEncoded",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by encoded status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isFavorite",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by favorite status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isMotion",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by motion photo status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isNotInAlbum",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets not in any album",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isOffline",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by offline status",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "lensModel",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by lens model",
|
|
"schema": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "libraryId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Library ID to filter by",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "make",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by camera make",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "minFileSize",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Minimum file size in bytes",
|
|
"schema": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"name": "model",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by camera model",
|
|
"schema": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "ocr",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by OCR text content",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "personIds",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by person IDs",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "rating",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by rating",
|
|
"schema": {
|
|
"minimum": -1,
|
|
"maximum": 5,
|
|
"type": "number"
|
|
}
|
|
},
|
|
{
|
|
"name": "size",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Number of results to return",
|
|
"schema": {
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"type": "number"
|
|
}
|
|
},
|
|
{
|
|
"name": "state",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by state/province name",
|
|
"schema": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "tagIds",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by tag IDs",
|
|
"schema": {
|
|
"nullable": true,
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "takenAfter",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by taken date (after)",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "takenBefore",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by taken date (before)",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "trashedAfter",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by trash date (after)",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "trashedBefore",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by trash date (before)",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "type",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Asset type filter",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetTypeEnum"
|
|
}
|
|
},
|
|
{
|
|
"name": "updatedAfter",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by update date (after)",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "updatedBefore",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by update date (before)",
|
|
"schema": {
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "visibility",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by visibility",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
},
|
|
{
|
|
"name": "withDeleted",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include deleted assets",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "withExif",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include EXIF data in response",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Search large assets",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/search/metadata": {
|
|
"post": {
|
|
"description": "Search for assets based on various metadata criteria.",
|
|
"operationId": "searchAssets",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetadataSearchDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SearchResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Search assets by metadata",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/search/person": {
|
|
"get": {
|
|
"description": "Search for people by name.",
|
|
"operationId": "searchPerson",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Person name to search for",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "withHidden",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include hidden people",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Search people",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "person.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/search/places": {
|
|
"get": {
|
|
"description": "Search for places by name.",
|
|
"operationId": "searchPlaces",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Place name to search for",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PlacesResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Search places",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/search/random": {
|
|
"post": {
|
|
"description": "Retrieve a random selection of assets based on the provided criteria.",
|
|
"operationId": "searchRandom",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RandomSearchDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Search random assets",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/search/smart": {
|
|
"post": {
|
|
"description": "Perform a smart search for assets by using machine learning vectors to determine relevance.",
|
|
"operationId": "searchSmart",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SmartSearchDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SearchResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Smart asset search",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/search/statistics": {
|
|
"post": {
|
|
"description": "Retrieve statistical data about assets based on search criteria, such as the total matching count.",
|
|
"operationId": "searchAssetStatistics",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StatisticsSearchDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SearchStatisticsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Search asset statistics",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.statistics",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/search/suggestions": {
|
|
"get": {
|
|
"description": "Retrieve search suggestions based on partial input. This endpoint is used for typeahead search features.",
|
|
"operationId": "getSearchSuggestions",
|
|
"parameters": [
|
|
{
|
|
"name": "country",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by country",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "includeNull",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include null values in suggestions",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1.111.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "lensModel",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by lens model",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "make",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by camera make",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "model",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by camera model",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "state",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by state/province",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "type",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Suggestion type",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SearchSuggestionType"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve search suggestions",
|
|
"tags": [
|
|
"Search"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/about": {
|
|
"get": {
|
|
"description": "Retrieve a list of information about the server.",
|
|
"operationId": "getAboutInfo",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerAboutResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get server information",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "server.about",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/apk-links": {
|
|
"get": {
|
|
"description": "Retrieve links to the APKs for the current server version.",
|
|
"operationId": "getApkLinks",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerApkLinksDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get APK links",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "server.apkLinks",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/config": {
|
|
"get": {
|
|
"description": "Retrieve the current server configuration.",
|
|
"operationId": "getServerConfig",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerConfigDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Get config",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/features": {
|
|
"get": {
|
|
"description": "Retrieve available features supported by this server.",
|
|
"operationId": "getServerFeatures",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerFeaturesDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Get features",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/license": {
|
|
"delete": {
|
|
"description": "Delete the currently set server product key.",
|
|
"operationId": "deleteServerLicense",
|
|
"parameters": [],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete server product key",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "serverLicense.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve information about whether the server currently has a product key registered.",
|
|
"operationId": "getServerLicense",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LicenseResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
},
|
|
"404": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get product key",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "serverLicense.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Validate and set the server product key if successful.",
|
|
"operationId": "setServerLicense",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LicenseKeyDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LicenseResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Set server product key",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "serverLicense.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/media-types": {
|
|
"get": {
|
|
"description": "Retrieve all media types supported by the server.",
|
|
"operationId": "getSupportedMediaTypes",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerMediaTypesResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Get supported media types",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/ping": {
|
|
"get": {
|
|
"description": "Pong",
|
|
"operationId": "pingServer",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerPingResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Ping",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/statistics": {
|
|
"get": {
|
|
"description": "Retrieve statistics about the entire Immich instance such as asset counts.",
|
|
"operationId": "getServerStatistics",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerStatsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get statistics",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "server.statistics",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/storage": {
|
|
"get": {
|
|
"description": "Retrieve the current storage utilization information of the server.",
|
|
"operationId": "getStorage",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerStorageResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get storage",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "server.storage",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/theme": {
|
|
"get": {
|
|
"description": "Retrieve the custom CSS, if existent.",
|
|
"operationId": "getTheme",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerThemeDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Get theme",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/version": {
|
|
"get": {
|
|
"description": "Retrieve the current server version in semantic versioning (semver) format.",
|
|
"operationId": "getServerVersion",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServerVersionResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Get server version",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/version-check": {
|
|
"get": {
|
|
"description": "Retrieve information about the last time the version check ran.",
|
|
"operationId": "getVersionCheck",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VersionCheckStateResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get version check status",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "server.versionCheck",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/server/version-history": {
|
|
"get": {
|
|
"description": "Retrieve a list of past versions the server has been on.",
|
|
"operationId": "getVersionHistory",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ServerVersionHistoryResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"summary": "Get version history",
|
|
"tags": [
|
|
"Server"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/sessions": {
|
|
"delete": {
|
|
"description": "Delete all sessions for the user. This will not delete the current session.",
|
|
"operationId": "deleteAllSessions",
|
|
"parameters": [],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete all sessions",
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "session.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a list of sessions for the user.",
|
|
"operationId": "getSessions",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SessionResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve sessions",
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "session.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a session as a child to the current session. This endpoint is used for casting.",
|
|
"operationId": "createSession",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionCreateResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a session",
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "session.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/sessions/{id}": {
|
|
"delete": {
|
|
"description": "Delete a specific session by id.",
|
|
"operationId": "deleteSession",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a session",
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "session.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update a specific session identified by id.",
|
|
"operationId": "updateSession",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a session",
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "session.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/sessions/{id}/lock": {
|
|
"post": {
|
|
"description": "Lock a specific session by id.",
|
|
"operationId": "lockSession",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Lock a session",
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "session.lock",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/shared-links": {
|
|
"get": {
|
|
"description": "Retrieve a list of all shared links.",
|
|
"operationId": "getAllSharedLinks",
|
|
"parameters": [
|
|
{
|
|
"name": "albumId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by album ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by shared link ID",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
}
|
|
],
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SharedLinkResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve all shared links",
|
|
"tags": [
|
|
"Shared links"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "sharedLink.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new shared link.",
|
|
"operationId": "createSharedLink",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SharedLinkCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SharedLinkResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a shared link",
|
|
"tags": [
|
|
"Shared links"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "sharedLink.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/shared-links/me": {
|
|
"get": {
|
|
"description": "Retrieve the current shared link associated with authentication method.",
|
|
"operationId": "getMySharedLink",
|
|
"parameters": [
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "password",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Link password",
|
|
"schema": {
|
|
"example": "password",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "token",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Access token",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SharedLinkResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve current shared link",
|
|
"tags": [
|
|
"Shared links"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/shared-links/{id}": {
|
|
"delete": {
|
|
"description": "Delete a specific shared link by its ID.",
|
|
"operationId": "removeSharedLink",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a shared link",
|
|
"tags": [
|
|
"Shared links"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "sharedLink.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a specific shared link by its ID.",
|
|
"operationId": "getSharedLinkById",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SharedLinkResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a shared link",
|
|
"tags": [
|
|
"Shared links"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "sharedLink.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"patch": {
|
|
"description": "Update an existing shared link by its ID.",
|
|
"operationId": "updateSharedLink",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SharedLinkEditDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SharedLinkResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a shared link",
|
|
"tags": [
|
|
"Shared links"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "sharedLink.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/shared-links/{id}/assets": {
|
|
"delete": {
|
|
"description": "Remove assets from a specific shared link by its ID. This endpoint is only relevant for shared link of type individual.",
|
|
"operationId": "removeSharedLinkAssets",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetIdsResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Remove assets from a shared link",
|
|
"tags": [
|
|
"Shared links"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Add assets to a specific shared link by its ID. This endpoint is only relevant for shared link of type individual.",
|
|
"operationId": "addSharedLinkAssets",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetIdsResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Add assets to a shared link",
|
|
"tags": [
|
|
"Shared links"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/stacks": {
|
|
"delete": {
|
|
"description": "Delete multiple stacks by providing a list of stack IDs.",
|
|
"operationId": "deleteStacks",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete stacks",
|
|
"tags": [
|
|
"Stacks"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "stack.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a list of stacks.",
|
|
"operationId": "searchStacks",
|
|
"parameters": [
|
|
{
|
|
"name": "primaryAssetId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by primary asset ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/StackResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve stacks",
|
|
"tags": [
|
|
"Stacks"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "stack.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new stack by providing a name and a list of asset IDs to include in the stack. If any of the provided asset IDs are primary assets of an existing stack, the existing stack will be merged into the newly created stack.",
|
|
"operationId": "createStack",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StackCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StackResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a stack",
|
|
"tags": [
|
|
"Stacks"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "stack.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/stacks/{id}": {
|
|
"delete": {
|
|
"description": "Delete a specific stack by its ID.",
|
|
"operationId": "deleteStack",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a stack",
|
|
"tags": [
|
|
"Stacks"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "stack.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a specific stack by its ID.",
|
|
"operationId": "getStack",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StackResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a stack",
|
|
"tags": [
|
|
"Stacks"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "stack.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update an existing stack by its ID.",
|
|
"operationId": "updateStack",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StackUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StackResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a stack",
|
|
"tags": [
|
|
"Stacks"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "stack.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/stacks/{id}/assets/{assetId}": {
|
|
"delete": {
|
|
"description": "Remove a specific asset from a stack by providing the stack ID and asset ID.",
|
|
"operationId": "removeAssetFromStack",
|
|
"parameters": [
|
|
{
|
|
"name": "assetId",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Remove an asset from a stack",
|
|
"tags": [
|
|
"Stacks"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "stack.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/sync/ack": {
|
|
"delete": {
|
|
"description": "Delete specific synchronization acknowledgments.",
|
|
"operationId": "deleteSyncAck",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SyncAckDeleteDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete acknowledgements",
|
|
"tags": [
|
|
"Sync"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "syncCheckpoint.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve the synchronization acknowledgments for the current session.",
|
|
"operationId": "getSyncAck",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SyncAckDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve acknowledgements",
|
|
"tags": [
|
|
"Sync"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "syncCheckpoint.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Send a list of synchronization acknowledgements to confirm that the latest changes have been received.",
|
|
"operationId": "sendSyncAck",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SyncAckSetDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Acknowledge changes",
|
|
"tags": [
|
|
"Sync"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "syncCheckpoint.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/sync/delta-sync": {
|
|
"post": {
|
|
"deprecated": true,
|
|
"description": "Retrieve changed assets since the last sync for the authenticated user.",
|
|
"operationId": "getDeltaSync",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetDeltaSyncDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetDeltaSyncResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get delta sync for user",
|
|
"tags": [
|
|
"Sync",
|
|
"Deprecated"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Deprecated"
|
|
}
|
|
],
|
|
"x-immich-state": "Deprecated"
|
|
}
|
|
},
|
|
"/sync/full-sync": {
|
|
"post": {
|
|
"deprecated": true,
|
|
"description": "Retrieve all assets for a full synchronization for the authenticated user.",
|
|
"operationId": "getFullSyncForUser",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetFullSyncDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get full sync for user",
|
|
"tags": [
|
|
"Sync",
|
|
"Deprecated"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Deprecated"
|
|
}
|
|
],
|
|
"x-immich-state": "Deprecated"
|
|
}
|
|
},
|
|
"/sync/stream": {
|
|
"post": {
|
|
"description": "Retrieve a JSON lines streamed response of changes for synchronization. This endpoint is used by the mobile app to efficiently stay up to date with changes.",
|
|
"operationId": "getSyncStream",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SyncStreamDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Stream sync changes",
|
|
"tags": [
|
|
"Sync"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "sync.stream",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/system-config": {
|
|
"get": {
|
|
"description": "Retrieve the current system configuration.",
|
|
"operationId": "getConfig",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SystemConfigDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get system configuration",
|
|
"tags": [
|
|
"System config"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "systemConfig.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update the system configuration with a new system configuration.",
|
|
"operationId": "updateConfig",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SystemConfigDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SystemConfigDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update system configuration",
|
|
"tags": [
|
|
"System config"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "systemConfig.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/system-config/defaults": {
|
|
"get": {
|
|
"description": "Retrieve the default values for the system configuration.",
|
|
"operationId": "getConfigDefaults",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SystemConfigDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get system configuration defaults",
|
|
"tags": [
|
|
"System config"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "systemConfig.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/system-config/storage-template-options": {
|
|
"get": {
|
|
"description": "Retrieve exemplary storage template options.",
|
|
"operationId": "getStorageTemplateOptions",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SystemConfigTemplateStorageOptionDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get storage template options",
|
|
"tags": [
|
|
"System config"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "systemConfig.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/system-metadata/admin-onboarding": {
|
|
"get": {
|
|
"description": "Retrieve the current admin onboarding status.",
|
|
"operationId": "getAdminOnboarding",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AdminOnboardingUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve admin onboarding",
|
|
"tags": [
|
|
"System metadata"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "systemMetadata.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Update the admin onboarding status.",
|
|
"operationId": "updateAdminOnboarding",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AdminOnboardingUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update admin onboarding",
|
|
"tags": [
|
|
"System metadata"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "systemMetadata.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/system-metadata/reverse-geocoding-state": {
|
|
"get": {
|
|
"description": "Retrieve the current state of the reverse geocoding import.",
|
|
"operationId": "getReverseGeocodingState",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReverseGeocodingStateResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve reverse geocoding state",
|
|
"tags": [
|
|
"System metadata"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "systemMetadata.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/system-metadata/version-check-state": {
|
|
"get": {
|
|
"description": "Retrieve the current state of the version check process.",
|
|
"operationId": "getVersionCheckState",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VersionCheckStateResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve version check state",
|
|
"tags": [
|
|
"System metadata"
|
|
],
|
|
"x-immich-admin-only": true,
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "systemMetadata.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/tags": {
|
|
"get": {
|
|
"description": "Retrieve a list of all tags.",
|
|
"operationId": "getAllTags",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve tags",
|
|
"tags": [
|
|
"Tags"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "tag.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Create a new tag by providing a name and optional color.",
|
|
"operationId": "createTag",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TagCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TagResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a tag",
|
|
"tags": [
|
|
"Tags"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "tag.create",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Create or update multiple tags in a single request.",
|
|
"operationId": "upsertTags",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TagUpsertDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Upsert tags",
|
|
"tags": [
|
|
"Tags"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "tag.create",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/tags/assets": {
|
|
"put": {
|
|
"description": "Add multiple tags to multiple assets in a single request.",
|
|
"operationId": "bulkTagAssets",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TagBulkAssetsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TagBulkAssetsResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Tag assets",
|
|
"tags": [
|
|
"Tags"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "tag.asset",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/tags/{id}": {
|
|
"delete": {
|
|
"description": "Delete a specific tag by its ID.",
|
|
"operationId": "deleteTag",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a tag",
|
|
"tags": [
|
|
"Tags"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "tag.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve a specific tag by its ID.",
|
|
"operationId": "getTagById",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TagResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a tag",
|
|
"tags": [
|
|
"Tags"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "tag.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update an existing tag identified by its ID.",
|
|
"operationId": "updateTag",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TagUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TagResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a tag",
|
|
"tags": [
|
|
"Tags"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "tag.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/tags/{id}/assets": {
|
|
"delete": {
|
|
"description": "Remove a tag from all the specified assets.",
|
|
"operationId": "untagAssets",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BulkIdResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Untag assets",
|
|
"tags": [
|
|
"Tags"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "tag.asset",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Add a tag to all the specified assets.",
|
|
"operationId": "tagAssets",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BulkIdResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Tag assets",
|
|
"tags": [
|
|
"Tags"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "tag.asset",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/timeline/bucket": {
|
|
"get": {
|
|
"description": "Retrieve a string of all asset ids in a given time bucket.",
|
|
"operationId": "getTimeBucket",
|
|
"parameters": [
|
|
{
|
|
"name": "albumId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets belonging to a specific album",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "isFavorite",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by favorite status (true for favorites only, false for non-favorites only)",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isTrashed",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by trash status (true for trashed assets only, false for non-trashed only)",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "order",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetOrder"
|
|
}
|
|
},
|
|
{
|
|
"name": "personId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets containing a specific person (face recognition)",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "tagId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets with a specific tag",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "timeBucket",
|
|
"required": true,
|
|
"in": "query",
|
|
"description": "Time bucket identifier in YYYY-MM-DD format (e.g., \"2024-01-01\" for January 2024)",
|
|
"schema": {
|
|
"example": "2024-01-01",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets by specific user ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "visibility",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
},
|
|
{
|
|
"name": "withCoordinates",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include location data in the response",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "withPartners",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include assets shared by partners",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "withStacked",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include stacked assets in the response. When true, only primary assets from stacks are returned.",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TimeBucketAssetResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get time bucket",
|
|
"tags": [
|
|
"Timeline"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Internal"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Internal"
|
|
}
|
|
},
|
|
"/timeline/buckets": {
|
|
"get": {
|
|
"description": "Retrieve a list of all minimal time buckets.",
|
|
"operationId": "getTimeBuckets",
|
|
"parameters": [
|
|
{
|
|
"name": "albumId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets belonging to a specific album",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "isFavorite",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by favorite status (true for favorites only, false for non-favorites only)",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "isTrashed",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by trash status (true for trashed assets only, false for non-trashed only)",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "order",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetOrder"
|
|
}
|
|
},
|
|
{
|
|
"name": "personId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets containing a specific person (face recognition)",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"required": false,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "tagId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets with a specific tag",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter assets by specific user ID",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "visibility",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
},
|
|
{
|
|
"name": "withCoordinates",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include location data in the response",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "withPartners",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include assets shared by partners",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "withStacked",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Include stacked assets in the response. When true, only primary assets from stacks are returned.",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TimeBucketsResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get time buckets",
|
|
"tags": [
|
|
"Timeline"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Internal"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.read",
|
|
"x-immich-state": "Internal"
|
|
}
|
|
},
|
|
"/trash/empty": {
|
|
"post": {
|
|
"description": "Permanently delete all items in the trash.",
|
|
"operationId": "emptyTrash",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TrashResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Empty trash",
|
|
"tags": [
|
|
"Trash"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.delete",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/trash/restore": {
|
|
"post": {
|
|
"description": "Restore all items in the trash.",
|
|
"operationId": "restoreTrash",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TrashResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Restore trash",
|
|
"tags": [
|
|
"Trash"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.delete",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/trash/restore/assets": {
|
|
"post": {
|
|
"description": "Restore specific assets from the trash.",
|
|
"operationId": "restoreAssets",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkIdsDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TrashResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Restore assets",
|
|
"tags": [
|
|
"Trash"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "asset.delete",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/users": {
|
|
"get": {
|
|
"description": "Retrieve a list of all users on the server.",
|
|
"operationId": "searchUsers",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get all users",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "user.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/users/me": {
|
|
"get": {
|
|
"description": "Retrieve information about the user making the API request.",
|
|
"operationId": "getMyUser",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get current user",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "user.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update the current user making teh API request.",
|
|
"operationId": "updateMyUser",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserUpdateMeDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserAdminResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update current user",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "user.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/users/me/license": {
|
|
"delete": {
|
|
"description": "Delete the registered product key for the current user.",
|
|
"operationId": "deleteUserLicense",
|
|
"parameters": [],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete user product key",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userLicense.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve information about whether the current user has a registered product key.",
|
|
"operationId": "getUserLicense",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LicenseResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve user product key",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userLicense.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Register a product key for the current user.",
|
|
"operationId": "setUserLicense",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LicenseKeyDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LicenseResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Set user product key",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userLicense.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/users/me/onboarding": {
|
|
"delete": {
|
|
"description": "Delete the onboarding status of the current user.",
|
|
"operationId": "deleteUserOnboarding",
|
|
"parameters": [],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete user onboarding",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userOnboarding.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve the onboarding status of the current user.",
|
|
"operationId": "getUserOnboarding",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OnboardingResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve user onboarding",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userOnboarding.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update the onboarding status of the current user.",
|
|
"operationId": "setUserOnboarding",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OnboardingDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OnboardingResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update user onboarding",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userOnboarding.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/users/me/preferences": {
|
|
"get": {
|
|
"description": "Retrieve the preferences for the current user.",
|
|
"operationId": "getMyPreferences",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Get my preferences",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userPreference.read",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"put": {
|
|
"description": "Update the preferences of the current user.",
|
|
"operationId": "updateMyPreferences",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserPreferencesResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update my preferences",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userPreference.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/users/profile-image": {
|
|
"delete": {
|
|
"description": "Delete the profile image of the current user.",
|
|
"operationId": "deleteProfileImage",
|
|
"parameters": [],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete user profile image",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userProfileImage.delete",
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"post": {
|
|
"description": "Upload and set a new profile image for the current user.",
|
|
"operationId": "createProfileImage",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateProfileImageDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "A new avatar for the user",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateProfileImageResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create user profile image",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userProfileImage.update",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/users/{id}": {
|
|
"get": {
|
|
"description": "Retrieve a specific user by their ID.",
|
|
"operationId": "getUser",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a user",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "user.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/users/{id}/profile-image": {
|
|
"get": {
|
|
"description": "Retrieve the profile image file for a user.",
|
|
"operationId": "getProfileImage",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve user profile image",
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "userProfileImage.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/view/folder": {
|
|
"get": {
|
|
"description": "Retrieve assets that are children of a specific folder.",
|
|
"operationId": "getAssetsByOriginalPath",
|
|
"parameters": [
|
|
{
|
|
"name": "path",
|
|
"required": true,
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve assets by original path",
|
|
"tags": [
|
|
"Views"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "folder.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/view/folder/unique-paths": {
|
|
"get": {
|
|
"description": "Retrieve a list of unique folder paths from asset original paths.",
|
|
"operationId": "getUniqueOriginalPaths",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve unique paths",
|
|
"tags": [
|
|
"Views"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Beta"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-permission": "folder.read",
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"/workflows": {
|
|
"get": {
|
|
"description": "Retrieve a list of workflows available to the authenticated user.",
|
|
"operationId": "getWorkflows",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorkflowResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "List all workflows",
|
|
"tags": [
|
|
"Workflows"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "workflow.read",
|
|
"x-immich-state": "Alpha"
|
|
},
|
|
"post": {
|
|
"description": "Create a new workflow, the workflow can also be created with empty filters and actions.",
|
|
"operationId": "createWorkflow",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowCreateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Create a workflow",
|
|
"tags": [
|
|
"Workflows"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "workflow.create",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"/workflows/{id}": {
|
|
"delete": {
|
|
"description": "Delete a workflow by its ID.",
|
|
"operationId": "deleteWorkflow",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Delete a workflow",
|
|
"tags": [
|
|
"Workflows"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "workflow.delete",
|
|
"x-immich-state": "Alpha"
|
|
},
|
|
"get": {
|
|
"description": "Retrieve information about a specific workflow by its ID.",
|
|
"operationId": "getWorkflow",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Retrieve a workflow",
|
|
"tags": [
|
|
"Workflows"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "workflow.read",
|
|
"x-immich-state": "Alpha"
|
|
},
|
|
"put": {
|
|
"description": "Update the information of a specific workflow by its ID. This endpoint can be used to update the workflow name, description, trigger type, filters and actions order, etc.",
|
|
"operationId": "updateWorkflow",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"required": true,
|
|
"in": "path",
|
|
"schema": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowResponseDto"
|
|
}
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearer": []
|
|
},
|
|
{
|
|
"cookie": []
|
|
},
|
|
{
|
|
"api_key": []
|
|
}
|
|
],
|
|
"summary": "Update a workflow",
|
|
"tags": [
|
|
"Workflows"
|
|
],
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.3.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-permission": "workflow.update",
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
}
|
|
},
|
|
"info": {
|
|
"title": "Immich",
|
|
"description": "Immich API",
|
|
"version": "2.5.2",
|
|
"contact": {}
|
|
},
|
|
"tags": [
|
|
{
|
|
"name": "Activities",
|
|
"description": "An activity is a like or a comment made by a user on an asset or album."
|
|
},
|
|
{
|
|
"name": "Albums",
|
|
"description": "An album is a collection of assets that can be shared with other users or via shared links."
|
|
},
|
|
{
|
|
"name": "API keys",
|
|
"description": "An api key can be used to programmatically access the Immich API."
|
|
},
|
|
{
|
|
"name": "Assets",
|
|
"description": "An asset is an image or video that has been uploaded to Immich."
|
|
},
|
|
{
|
|
"name": "Authentication",
|
|
"description": "Endpoints related to user authentication, including OAuth."
|
|
},
|
|
{
|
|
"name": "Authentication (admin)",
|
|
"description": "Administrative endpoints related to authentication."
|
|
},
|
|
{
|
|
"name": "Database Backups (admin)",
|
|
"description": "Manage backups of the Immich database."
|
|
},
|
|
{
|
|
"name": "Deprecated",
|
|
"description": "Deprecated endpoints that are planned for removal in the next major release."
|
|
},
|
|
{
|
|
"name": "Download",
|
|
"description": "Endpoints for downloading assets or collections of assets."
|
|
},
|
|
{
|
|
"name": "Duplicates",
|
|
"description": "Endpoints for managing and identifying duplicate assets."
|
|
},
|
|
{
|
|
"name": "Faces",
|
|
"description": "A face is a detected human face within an asset, which can be associated with a person. Faces are normally detected via machine learning, but can also be created via manually."
|
|
},
|
|
{
|
|
"name": "Jobs",
|
|
"description": "Queues and background jobs are used for processing tasks asynchronously. Queues can be paused and resumed as needed."
|
|
},
|
|
{
|
|
"name": "Libraries",
|
|
"description": "An external library is made up of input file paths or expressions that are scanned for asset files. Discovered files are automatically imported. Assets much be unique within a library, but can be duplicated across libraries. Each user has a default upload library, and can have one or more external libraries."
|
|
},
|
|
{
|
|
"name": "Maintenance (admin)",
|
|
"description": "Maintenance mode allows you to put Immich in a read-only state to perform various operations."
|
|
},
|
|
{
|
|
"name": "Map",
|
|
"description": "Map endpoints include supplemental functionality related to geolocation, such as reverse geocoding and retrieving map markers for assets with geolocation data."
|
|
},
|
|
{
|
|
"name": "Memories",
|
|
"description": "A memory is a specialized collection of assets with dedicated viewing implementations in the web and mobile clients. A memory includes fields related to visibility and are automatically generated per user via a background job."
|
|
},
|
|
{
|
|
"name": "Notifications",
|
|
"description": "A notification is a specialized message sent to users to inform them of important events. Currently, these notifications are only shown in the Immich web application."
|
|
},
|
|
{
|
|
"name": "Notifications (admin)",
|
|
"description": "Notification administrative endpoints."
|
|
},
|
|
{
|
|
"name": "Partners",
|
|
"description": "A partner is a link with another user that allows sharing of assets between two users."
|
|
},
|
|
{
|
|
"name": "People",
|
|
"description": "A person is a collection of faces, which can be favorited and named. A person can also be merged into another person. People are automatically created via the face recognition job."
|
|
},
|
|
{
|
|
"name": "Plugins",
|
|
"description": "A plugin is an installed module that makes filters and actions available for the workflow feature."
|
|
},
|
|
{
|
|
"name": "Queues",
|
|
"description": "Queues and background jobs are used for processing tasks asynchronously. Queues can be paused and resumed as needed."
|
|
},
|
|
{
|
|
"name": "Search",
|
|
"description": "Endpoints related to searching assets via text, smart search, optical character recognition (OCR), and other filters like person, album, and other metadata. Search endpoints usually support pagination and sorting."
|
|
},
|
|
{
|
|
"name": "Server",
|
|
"description": "Information about the current server deployment, including version and build information, available features, supported media types, and more."
|
|
},
|
|
{
|
|
"name": "Sessions",
|
|
"description": "A session represents an authenticated login session for a user. Sessions also appear in the web application as \"Authorized devices\"."
|
|
},
|
|
{
|
|
"name": "Shared links",
|
|
"description": "A shared link is a public url that provides access to a specific album, asset, or collection of assets. A shared link can be protected with a password, include a specific slug, allow or disallow downloads, and optionally include an expiration date."
|
|
},
|
|
{
|
|
"name": "Stacks",
|
|
"description": "A stack is a group of related assets. One asset is the \"primary\" asset, and the rest are \"child\" assets. On the main timeline, stack parents are included by default, while child assets are hidden."
|
|
},
|
|
{
|
|
"name": "Sync",
|
|
"description": "A collection of endpoints for the new mobile synchronization implementation."
|
|
},
|
|
{
|
|
"name": "System config",
|
|
"description": "Endpoints to view, modify, and validate the system configuration settings."
|
|
},
|
|
{
|
|
"name": "System metadata",
|
|
"description": "Endpoints to view, modify, and validate the system metadata, which includes information about things like admin onboarding status."
|
|
},
|
|
{
|
|
"name": "Tags",
|
|
"description": "A tag is a user-defined label that can be applied to assets for organizational purposes. Tags can also be hierarchical, allowing for parent-child relationships between tags."
|
|
},
|
|
{
|
|
"name": "Timeline",
|
|
"description": "Specialized endpoints related to the timeline implementation used in the web application. External applications or tools should not use or rely on these endpoints, as they are subject to change without notice."
|
|
},
|
|
{
|
|
"name": "Trash",
|
|
"description": "Endpoints for managing the trash can, which includes assets that have been discarded. Items in the trash are automatically deleted after a configured amount of time."
|
|
},
|
|
{
|
|
"name": "Users (admin)",
|
|
"description": "Administrative endpoints for managing users, including creating, updating, deleting, and restoring users. Also includes endpoints for resetting passwords and PIN codes."
|
|
},
|
|
{
|
|
"name": "Users",
|
|
"description": "Endpoints for viewing and updating the current users, including product key information, profile picture data, onboarding progress, and more."
|
|
},
|
|
{
|
|
"name": "Views",
|
|
"description": "Endpoints for specialized views, such as the folder view."
|
|
},
|
|
{
|
|
"name": "Workflows",
|
|
"description": "A workflow is a set of actions that run whenever a triggering event occurs. Workflows also can include filters to further limit execution."
|
|
}
|
|
],
|
|
"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": {
|
|
"properties": {
|
|
"name": {
|
|
"description": "API key name",
|
|
"type": "string"
|
|
},
|
|
"permissions": {
|
|
"description": "List of permissions",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Permission"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"permissions"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"APIKeyCreateResponseDto": {
|
|
"properties": {
|
|
"apiKey": {
|
|
"$ref": "#/components/schemas/APIKeyResponseDto"
|
|
},
|
|
"secret": {
|
|
"description": "API key secret (only shown once)",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"apiKey",
|
|
"secret"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"APIKeyResponseDto": {
|
|
"properties": {
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "API key ID",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "API key name",
|
|
"type": "string"
|
|
},
|
|
"permissions": {
|
|
"description": "List of permissions",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Permission"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"createdAt",
|
|
"id",
|
|
"name",
|
|
"permissions",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"APIKeyUpdateDto": {
|
|
"properties": {
|
|
"name": {
|
|
"description": "API key name",
|
|
"type": "string"
|
|
},
|
|
"permissions": {
|
|
"description": "List of permissions",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Permission"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"ActivityCreateDto": {
|
|
"properties": {
|
|
"albumId": {
|
|
"description": "Album ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"assetId": {
|
|
"description": "Asset ID (if activity is for an asset)",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"comment": {
|
|
"description": "Comment text (required if type is comment)",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ReactionType"
|
|
}
|
|
],
|
|
"description": "Activity type (like or comment)"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumId",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ActivityResponseDto": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID (if activity is for an asset)",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"comment": {
|
|
"description": "Comment text (for comment activities)",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Activity ID",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ReactionType"
|
|
}
|
|
],
|
|
"description": "Activity type"
|
|
},
|
|
"user": {
|
|
"$ref": "#/components/schemas/UserResponseDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"createdAt",
|
|
"id",
|
|
"type",
|
|
"user"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ActivityStatisticsResponseDto": {
|
|
"properties": {
|
|
"comments": {
|
|
"description": "Number of comments",
|
|
"type": "integer"
|
|
},
|
|
"likes": {
|
|
"description": "Number of likes",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"comments",
|
|
"likes"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AddUsersDto": {
|
|
"properties": {
|
|
"albumUsers": {
|
|
"description": "Album users to add",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AlbumUserAddDto"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumUsers"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AdminOnboardingUpdateDto": {
|
|
"properties": {
|
|
"isOnboarded": {
|
|
"description": "Is admin onboarded",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"isOnboarded"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AlbumResponseDto": {
|
|
"properties": {
|
|
"albumName": {
|
|
"description": "Album name",
|
|
"type": "string"
|
|
},
|
|
"albumThumbnailAssetId": {
|
|
"description": "Thumbnail asset ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"albumUsers": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AlbumUserResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"assetCount": {
|
|
"description": "Number of assets",
|
|
"type": "integer"
|
|
},
|
|
"assets": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"contributorCounts": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContributorCountResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Album description",
|
|
"type": "string"
|
|
},
|
|
"endDate": {
|
|
"description": "End date (latest asset)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"hasSharedLink": {
|
|
"description": "Has shared link",
|
|
"type": "boolean"
|
|
},
|
|
"id": {
|
|
"description": "Album ID",
|
|
"type": "string"
|
|
},
|
|
"isActivityEnabled": {
|
|
"description": "Activity feed enabled",
|
|
"type": "boolean"
|
|
},
|
|
"lastModifiedAssetTimestamp": {
|
|
"description": "Last modified asset timestamp",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"order": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetOrder"
|
|
}
|
|
],
|
|
"description": "Asset sort order"
|
|
},
|
|
"owner": {
|
|
"$ref": "#/components/schemas/UserResponseDto"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner user ID",
|
|
"type": "string"
|
|
},
|
|
"shared": {
|
|
"description": "Is shared album",
|
|
"type": "boolean"
|
|
},
|
|
"startDate": {
|
|
"description": "Start date (earliest asset)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumName",
|
|
"albumThumbnailAssetId",
|
|
"albumUsers",
|
|
"assetCount",
|
|
"assets",
|
|
"createdAt",
|
|
"description",
|
|
"hasSharedLink",
|
|
"id",
|
|
"isActivityEnabled",
|
|
"owner",
|
|
"ownerId",
|
|
"shared",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AlbumStatisticsResponseDto": {
|
|
"properties": {
|
|
"notShared": {
|
|
"description": "Number of non-shared albums",
|
|
"type": "integer"
|
|
},
|
|
"owned": {
|
|
"description": "Number of owned albums",
|
|
"type": "integer"
|
|
},
|
|
"shared": {
|
|
"description": "Number of shared albums",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"notShared",
|
|
"owned",
|
|
"shared"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AlbumUserAddDto": {
|
|
"properties": {
|
|
"role": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AlbumUserRole"
|
|
}
|
|
],
|
|
"default": "editor",
|
|
"description": "Album user role"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AlbumUserCreateDto": {
|
|
"properties": {
|
|
"role": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AlbumUserRole"
|
|
}
|
|
],
|
|
"description": "Album user role"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"role",
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AlbumUserResponseDto": {
|
|
"properties": {
|
|
"role": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AlbumUserRole"
|
|
}
|
|
],
|
|
"description": "Album user role"
|
|
},
|
|
"user": {
|
|
"$ref": "#/components/schemas/UserResponseDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"role",
|
|
"user"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AlbumUserRole": {
|
|
"description": "Album user role",
|
|
"enum": [
|
|
"editor",
|
|
"viewer"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AlbumsAddAssetsDto": {
|
|
"properties": {
|
|
"albumIds": {
|
|
"description": "Album IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"assetIds": {
|
|
"description": "Asset IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumIds",
|
|
"assetIds"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AlbumsAddAssetsResponseDto": {
|
|
"properties": {
|
|
"error": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/BulkIdErrorReason"
|
|
}
|
|
],
|
|
"description": "Error reason"
|
|
},
|
|
"success": {
|
|
"description": "Operation success",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AlbumsResponse": {
|
|
"properties": {
|
|
"defaultAssetOrder": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetOrder"
|
|
}
|
|
],
|
|
"default": "desc",
|
|
"description": "Default asset order for albums"
|
|
}
|
|
},
|
|
"required": [
|
|
"defaultAssetOrder"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AlbumsUpdate": {
|
|
"description": "Album preferences",
|
|
"properties": {
|
|
"defaultAssetOrder": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetOrder"
|
|
}
|
|
],
|
|
"description": "Default asset order for albums"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"AssetBulkDeleteDto": {
|
|
"properties": {
|
|
"force": {
|
|
"description": "Force delete even if in use",
|
|
"type": "boolean"
|
|
},
|
|
"ids": {
|
|
"description": "IDs to process",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"ids"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetBulkUpdateDto": {
|
|
"properties": {
|
|
"dateTimeOriginal": {
|
|
"description": "Original date and time",
|
|
"type": "string"
|
|
},
|
|
"dateTimeRelative": {
|
|
"description": "Relative time offset in seconds",
|
|
"type": "number"
|
|
},
|
|
"description": {
|
|
"description": "Asset description",
|
|
"type": "string"
|
|
},
|
|
"duplicateId": {
|
|
"description": "Duplicate asset ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"ids": {
|
|
"description": "Asset IDs to update",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Mark as favorite",
|
|
"type": "boolean"
|
|
},
|
|
"latitude": {
|
|
"description": "Latitude coordinate",
|
|
"type": "number"
|
|
},
|
|
"longitude": {
|
|
"description": "Longitude coordinate",
|
|
"type": "number"
|
|
},
|
|
"rating": {
|
|
"description": "Rating",
|
|
"maximum": 5,
|
|
"minimum": -1,
|
|
"type": "number"
|
|
},
|
|
"timeZone": {
|
|
"description": "Time zone (IANA timezone)",
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
],
|
|
"description": "Asset visibility"
|
|
}
|
|
},
|
|
"required": [
|
|
"ids"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetBulkUploadCheckDto": {
|
|
"properties": {
|
|
"assets": {
|
|
"description": "Assets to check",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetBulkUploadCheckItem"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"assets"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetBulkUploadCheckItem": {
|
|
"properties": {
|
|
"checksum": {
|
|
"description": "Base64 or hex encoded SHA1 hash",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"checksum",
|
|
"id"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetBulkUploadCheckResponseDto": {
|
|
"properties": {
|
|
"results": {
|
|
"description": "Upload check results",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetBulkUploadCheckResult"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"results"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetBulkUploadCheckResult": {
|
|
"properties": {
|
|
"action": {
|
|
"description": "Upload action",
|
|
"enum": [
|
|
"accept",
|
|
"reject"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"assetId": {
|
|
"description": "Existing asset ID if duplicate",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"isTrashed": {
|
|
"description": "Whether existing asset is trashed",
|
|
"type": "boolean"
|
|
},
|
|
"reason": {
|
|
"description": "Rejection reason if rejected",
|
|
"enum": [
|
|
"duplicate",
|
|
"unsupported-format"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"id"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetCopyDto": {
|
|
"properties": {
|
|
"albums": {
|
|
"default": true,
|
|
"description": "Copy album associations",
|
|
"type": "boolean"
|
|
},
|
|
"favorite": {
|
|
"default": true,
|
|
"description": "Copy favorite status",
|
|
"type": "boolean"
|
|
},
|
|
"sharedLinks": {
|
|
"default": true,
|
|
"description": "Copy shared links",
|
|
"type": "boolean"
|
|
},
|
|
"sidecar": {
|
|
"default": true,
|
|
"description": "Copy sidecar file",
|
|
"type": "boolean"
|
|
},
|
|
"sourceId": {
|
|
"description": "Source asset ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"stack": {
|
|
"default": true,
|
|
"description": "Copy stack association",
|
|
"type": "boolean"
|
|
},
|
|
"targetId": {
|
|
"description": "Target asset ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"sourceId",
|
|
"targetId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetDeltaSyncDto": {
|
|
"properties": {
|
|
"updatedAfter": {
|
|
"description": "Sync assets updated after this date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"userIds": {
|
|
"description": "User IDs to sync",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"updatedAfter",
|
|
"userIds"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetDeltaSyncResponseDto": {
|
|
"properties": {
|
|
"deleted": {
|
|
"description": "Deleted asset IDs",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"needsFullSync": {
|
|
"description": "Whether full sync is needed",
|
|
"type": "boolean"
|
|
},
|
|
"upserted": {
|
|
"description": "Upserted assets",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"deleted",
|
|
"needsFullSync",
|
|
"upserted"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetEditAction": {
|
|
"description": "Type of edit action to perform",
|
|
"enum": [
|
|
"crop",
|
|
"rotate",
|
|
"mirror"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AssetEditActionCrop": {
|
|
"properties": {
|
|
"action": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetEditAction"
|
|
}
|
|
],
|
|
"description": "Type of edit action to perform"
|
|
},
|
|
"parameters": {
|
|
"$ref": "#/components/schemas/CropParameters"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"parameters"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetEditActionListDto": {
|
|
"properties": {
|
|
"edits": {
|
|
"description": "List of edit actions to apply (crop, rotate, or mirror)",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetEditActionCrop"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AssetEditActionRotate"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AssetEditActionMirror"
|
|
}
|
|
]
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"edits"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetEditActionMirror": {
|
|
"properties": {
|
|
"action": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetEditAction"
|
|
}
|
|
],
|
|
"description": "Type of edit action to perform"
|
|
},
|
|
"parameters": {
|
|
"$ref": "#/components/schemas/MirrorParameters"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"parameters"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetEditActionRotate": {
|
|
"properties": {
|
|
"action": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetEditAction"
|
|
}
|
|
],
|
|
"description": "Type of edit action to perform"
|
|
},
|
|
"parameters": {
|
|
"$ref": "#/components/schemas/RotateParameters"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"parameters"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetEditsDto": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID to apply edits to",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"edits": {
|
|
"description": "List of edit actions to apply (crop, rotate, or mirror)",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetEditActionCrop"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AssetEditActionRotate"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AssetEditActionMirror"
|
|
}
|
|
]
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"edits"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetFaceCreateDto": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"height": {
|
|
"description": "Face bounding box height",
|
|
"type": "integer"
|
|
},
|
|
"imageHeight": {
|
|
"description": "Image height in pixels",
|
|
"type": "integer"
|
|
},
|
|
"imageWidth": {
|
|
"description": "Image width in pixels",
|
|
"type": "integer"
|
|
},
|
|
"personId": {
|
|
"description": "Person ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"width": {
|
|
"description": "Face bounding box width",
|
|
"type": "integer"
|
|
},
|
|
"x": {
|
|
"description": "Face bounding box X coordinate",
|
|
"type": "integer"
|
|
},
|
|
"y": {
|
|
"description": "Face bounding box Y coordinate",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"height",
|
|
"imageHeight",
|
|
"imageWidth",
|
|
"personId",
|
|
"width",
|
|
"x",
|
|
"y"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetFaceDeleteDto": {
|
|
"properties": {
|
|
"force": {
|
|
"description": "Force delete even if person has other faces",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"force"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetFaceResponseDto": {
|
|
"properties": {
|
|
"boundingBoxX1": {
|
|
"description": "Bounding box X1 coordinate",
|
|
"type": "integer"
|
|
},
|
|
"boundingBoxX2": {
|
|
"description": "Bounding box X2 coordinate",
|
|
"type": "integer"
|
|
},
|
|
"boundingBoxY1": {
|
|
"description": "Bounding box Y1 coordinate",
|
|
"type": "integer"
|
|
},
|
|
"boundingBoxY2": {
|
|
"description": "Bounding box Y2 coordinate",
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"description": "Face ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"imageHeight": {
|
|
"description": "Image height in pixels",
|
|
"type": "integer"
|
|
},
|
|
"imageWidth": {
|
|
"description": "Image width in pixels",
|
|
"type": "integer"
|
|
},
|
|
"person": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PersonResponseDto"
|
|
}
|
|
],
|
|
"description": "Person associated with face",
|
|
"nullable": true
|
|
},
|
|
"sourceType": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SourceType"
|
|
}
|
|
],
|
|
"description": "Face detection source type"
|
|
}
|
|
},
|
|
"required": [
|
|
"boundingBoxX1",
|
|
"boundingBoxX2",
|
|
"boundingBoxY1",
|
|
"boundingBoxY2",
|
|
"id",
|
|
"imageHeight",
|
|
"imageWidth",
|
|
"person"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetFaceUpdateDto": {
|
|
"properties": {
|
|
"data": {
|
|
"description": "Face update items",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetFaceUpdateItem"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"data"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetFaceUpdateItem": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"personId": {
|
|
"description": "Person ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"personId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetFaceWithoutPersonResponseDto": {
|
|
"properties": {
|
|
"boundingBoxX1": {
|
|
"description": "Bounding box X1 coordinate",
|
|
"type": "integer"
|
|
},
|
|
"boundingBoxX2": {
|
|
"description": "Bounding box X2 coordinate",
|
|
"type": "integer"
|
|
},
|
|
"boundingBoxY1": {
|
|
"description": "Bounding box Y1 coordinate",
|
|
"type": "integer"
|
|
},
|
|
"boundingBoxY2": {
|
|
"description": "Bounding box Y2 coordinate",
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"description": "Face ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"imageHeight": {
|
|
"description": "Image height in pixels",
|
|
"type": "integer"
|
|
},
|
|
"imageWidth": {
|
|
"description": "Image width in pixels",
|
|
"type": "integer"
|
|
},
|
|
"sourceType": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SourceType"
|
|
}
|
|
],
|
|
"description": "Face detection source type"
|
|
}
|
|
},
|
|
"required": [
|
|
"boundingBoxX1",
|
|
"boundingBoxX2",
|
|
"boundingBoxY1",
|
|
"boundingBoxY2",
|
|
"id",
|
|
"imageHeight",
|
|
"imageWidth"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetFullSyncDto": {
|
|
"properties": {
|
|
"lastId": {
|
|
"description": "Last asset ID (pagination)",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"limit": {
|
|
"description": "Maximum number of assets to return",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"updatedUntil": {
|
|
"description": "Sync assets updated until this date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"userId": {
|
|
"description": "Filter by user ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"limit",
|
|
"updatedUntil"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetIdsDto": {
|
|
"properties": {
|
|
"assetIds": {
|
|
"description": "Asset IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetIds"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetIdsResponseDto": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"error": {
|
|
"description": "Error reason if failed",
|
|
"enum": [
|
|
"duplicate",
|
|
"no_permission",
|
|
"not_found"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"success": {
|
|
"description": "Whether operation succeeded",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"success"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetJobName": {
|
|
"description": "Job name",
|
|
"enum": [
|
|
"refresh-faces",
|
|
"refresh-metadata",
|
|
"regenerate-thumbnail",
|
|
"transcode-video"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AssetJobsDto": {
|
|
"properties": {
|
|
"assetIds": {
|
|
"description": "Asset IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"name": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetJobName"
|
|
}
|
|
],
|
|
"description": "Job name"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetIds",
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMediaCreateDto": {
|
|
"properties": {
|
|
"assetData": {
|
|
"description": "Asset file data",
|
|
"format": "binary",
|
|
"type": "string"
|
|
},
|
|
"deviceAssetId": {
|
|
"description": "Device asset ID",
|
|
"type": "string"
|
|
},
|
|
"deviceId": {
|
|
"description": "Device ID",
|
|
"type": "string"
|
|
},
|
|
"duration": {
|
|
"description": "Duration (for videos)",
|
|
"type": "string"
|
|
},
|
|
"fileCreatedAt": {
|
|
"description": "File creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"fileModifiedAt": {
|
|
"description": "File modification date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"filename": {
|
|
"description": "Filename",
|
|
"type": "string"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Mark as favorite",
|
|
"type": "boolean"
|
|
},
|
|
"livePhotoVideoId": {
|
|
"description": "Live photo video ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"metadata": {
|
|
"description": "Asset metadata items",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetMetadataUpsertItemDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"sidecarData": {
|
|
"description": "Sidecar file data",
|
|
"format": "binary",
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
],
|
|
"description": "Asset visibility"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetData",
|
|
"deviceAssetId",
|
|
"deviceId",
|
|
"fileCreatedAt",
|
|
"fileModifiedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMediaReplaceDto": {
|
|
"properties": {
|
|
"assetData": {
|
|
"description": "Asset file data",
|
|
"format": "binary",
|
|
"type": "string"
|
|
},
|
|
"deviceAssetId": {
|
|
"description": "Device asset ID",
|
|
"type": "string"
|
|
},
|
|
"deviceId": {
|
|
"description": "Device ID",
|
|
"type": "string"
|
|
},
|
|
"duration": {
|
|
"description": "Duration (for videos)",
|
|
"type": "string"
|
|
},
|
|
"fileCreatedAt": {
|
|
"description": "File creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"fileModifiedAt": {
|
|
"description": "File modification date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"filename": {
|
|
"description": "Filename",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetData",
|
|
"deviceAssetId",
|
|
"deviceId",
|
|
"fileCreatedAt",
|
|
"fileModifiedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMediaResponseDto": {
|
|
"properties": {
|
|
"id": {
|
|
"description": "Asset media ID",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetMediaStatus"
|
|
}
|
|
],
|
|
"description": "Upload status"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"status"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMediaSize": {
|
|
"enum": [
|
|
"original",
|
|
"fullsize",
|
|
"preview",
|
|
"thumbnail"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AssetMediaStatus": {
|
|
"description": "Upload status",
|
|
"enum": [
|
|
"created",
|
|
"replaced",
|
|
"duplicate"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AssetMetadataBulkDeleteDto": {
|
|
"properties": {
|
|
"items": {
|
|
"description": "Metadata items to delete",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetMetadataBulkDeleteItemDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"items"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMetadataBulkDeleteItemDto": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"description": "Metadata key",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"key"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMetadataBulkResponseDto": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"description": "Metadata key",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"description": "Metadata value (object)",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"key",
|
|
"updatedAt",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMetadataBulkUpsertDto": {
|
|
"properties": {
|
|
"items": {
|
|
"description": "Metadata items to upsert",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetMetadataBulkUpsertItemDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"items"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMetadataBulkUpsertItemDto": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"description": "Metadata key",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"description": "Metadata value (object)",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"key",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMetadataResponseDto": {
|
|
"properties": {
|
|
"key": {
|
|
"description": "Metadata key",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"description": "Metadata value (object)",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"updatedAt",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMetadataUpsertDto": {
|
|
"properties": {
|
|
"items": {
|
|
"description": "Metadata items to upsert",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetMetadataUpsertItemDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"items"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetMetadataUpsertItemDto": {
|
|
"properties": {
|
|
"key": {
|
|
"description": "Metadata key",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"description": "Metadata value (object)",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetOcrResponseDto": {
|
|
"properties": {
|
|
"assetId": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"boxScore": {
|
|
"description": "Confidence score for text detection box",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"id": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"text": {
|
|
"description": "Recognized text",
|
|
"type": "string"
|
|
},
|
|
"textScore": {
|
|
"description": "Confidence score for text recognition",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"x1": {
|
|
"description": "Normalized x coordinate of box corner 1 (0-1)",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"x2": {
|
|
"description": "Normalized x coordinate of box corner 2 (0-1)",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"x3": {
|
|
"description": "Normalized x coordinate of box corner 3 (0-1)",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"x4": {
|
|
"description": "Normalized x coordinate of box corner 4 (0-1)",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"y1": {
|
|
"description": "Normalized y coordinate of box corner 1 (0-1)",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"y2": {
|
|
"description": "Normalized y coordinate of box corner 2 (0-1)",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"y3": {
|
|
"description": "Normalized y coordinate of box corner 3 (0-1)",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"y4": {
|
|
"description": "Normalized y coordinate of box corner 4 (0-1)",
|
|
"format": "double",
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"boxScore",
|
|
"id",
|
|
"text",
|
|
"textScore",
|
|
"x1",
|
|
"x2",
|
|
"x3",
|
|
"x4",
|
|
"y1",
|
|
"y2",
|
|
"y3",
|
|
"y4"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetOrder": {
|
|
"description": "Asset sort order",
|
|
"enum": [
|
|
"asc",
|
|
"desc"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AssetResponseDto": {
|
|
"properties": {
|
|
"checksum": {
|
|
"description": "Base64 encoded SHA1 hash",
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "The UTC timestamp when the asset was originally uploaded to Immich.",
|
|
"example": "2024-01-15T20:30:00.000Z",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"deviceAssetId": {
|
|
"description": "Device asset ID",
|
|
"type": "string"
|
|
},
|
|
"deviceId": {
|
|
"description": "Device ID",
|
|
"type": "string"
|
|
},
|
|
"duplicateId": {
|
|
"description": "Duplicate group ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"duration": {
|
|
"description": "Video duration (for videos)",
|
|
"type": "string"
|
|
},
|
|
"exifInfo": {
|
|
"$ref": "#/components/schemas/ExifResponseDto"
|
|
},
|
|
"fileCreatedAt": {
|
|
"description": "The actual UTC timestamp when the file was created/captured, preserving timezone information. This is the authoritative timestamp for chronological sorting within timeline groups. Combined with timezone data, this can be used to determine the exact moment the photo was taken.",
|
|
"example": "2024-01-15T19:30:00.000Z",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"fileModifiedAt": {
|
|
"description": "The UTC timestamp when the file was last modified on the filesystem. This reflects the last time the physical file was changed, which may be different from when the photo was originally taken.",
|
|
"example": "2024-01-16T10:15:00.000Z",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"hasMetadata": {
|
|
"description": "Whether asset has metadata",
|
|
"type": "boolean"
|
|
},
|
|
"height": {
|
|
"description": "Asset height",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"id": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"isArchived": {
|
|
"description": "Is archived",
|
|
"type": "boolean"
|
|
},
|
|
"isEdited": {
|
|
"description": "Is edited",
|
|
"type": "boolean",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.5.0",
|
|
"state": "Beta"
|
|
}
|
|
],
|
|
"x-immich-state": "Beta"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Is favorite",
|
|
"type": "boolean"
|
|
},
|
|
"isOffline": {
|
|
"description": "Is offline",
|
|
"type": "boolean"
|
|
},
|
|
"isTrashed": {
|
|
"description": "Is trashed",
|
|
"type": "boolean"
|
|
},
|
|
"libraryId": {
|
|
"deprecated": true,
|
|
"description": "Library ID",
|
|
"format": "uuid",
|
|
"nullable": true,
|
|
"type": "string",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1",
|
|
"state": "Deprecated"
|
|
}
|
|
],
|
|
"x-immich-state": "Deprecated"
|
|
},
|
|
"livePhotoVideoId": {
|
|
"description": "Live photo video ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"localDateTime": {
|
|
"description": "The local date and time when the photo/video was taken, derived from EXIF metadata. This represents the photographer's local time regardless of timezone, stored as a timezone-agnostic timestamp. Used for timeline grouping by \"local\" days and months.",
|
|
"example": "2024-01-15T14:30:00.000Z",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"originalFileName": {
|
|
"description": "Original file name",
|
|
"type": "string"
|
|
},
|
|
"originalMimeType": {
|
|
"description": "Original MIME type",
|
|
"type": "string"
|
|
},
|
|
"originalPath": {
|
|
"description": "Original file path",
|
|
"type": "string"
|
|
},
|
|
"owner": {
|
|
"$ref": "#/components/schemas/UserResponseDto"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner user ID",
|
|
"type": "string"
|
|
},
|
|
"people": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonWithFacesResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"resized": {
|
|
"deprecated": true,
|
|
"description": "Is resized",
|
|
"type": "boolean",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v1.113.0",
|
|
"state": "Deprecated"
|
|
}
|
|
],
|
|
"x-immich-state": "Deprecated"
|
|
},
|
|
"stack": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetStackResponseDto"
|
|
}
|
|
],
|
|
"nullable": true
|
|
},
|
|
"tags": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"thumbhash": {
|
|
"description": "Thumbhash for thumbnail generation",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetTypeEnum"
|
|
}
|
|
],
|
|
"description": "Asset type"
|
|
},
|
|
"unassignedFaces": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetFaceWithoutPersonResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"updatedAt": {
|
|
"description": "The UTC timestamp when the asset record was last updated in the database. This is automatically maintained by the database and reflects when any field in the asset was last modified.",
|
|
"example": "2024-01-16T12:45:30.000Z",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
],
|
|
"description": "Asset visibility"
|
|
},
|
|
"width": {
|
|
"description": "Asset width",
|
|
"nullable": true,
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"checksum",
|
|
"createdAt",
|
|
"deviceAssetId",
|
|
"deviceId",
|
|
"duration",
|
|
"fileCreatedAt",
|
|
"fileModifiedAt",
|
|
"hasMetadata",
|
|
"height",
|
|
"id",
|
|
"isArchived",
|
|
"isEdited",
|
|
"isFavorite",
|
|
"isOffline",
|
|
"isTrashed",
|
|
"localDateTime",
|
|
"originalFileName",
|
|
"originalPath",
|
|
"ownerId",
|
|
"thumbhash",
|
|
"type",
|
|
"updatedAt",
|
|
"visibility",
|
|
"width"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetStackResponseDto": {
|
|
"properties": {
|
|
"assetCount": {
|
|
"description": "Number of assets in stack",
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"description": "Stack ID",
|
|
"type": "string"
|
|
},
|
|
"primaryAssetId": {
|
|
"description": "Primary asset ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetCount",
|
|
"id",
|
|
"primaryAssetId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetStatsResponseDto": {
|
|
"properties": {
|
|
"images": {
|
|
"description": "Number of images",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"description": "Total number of assets",
|
|
"type": "integer"
|
|
},
|
|
"videos": {
|
|
"description": "Number of videos",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"images",
|
|
"total",
|
|
"videos"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AssetTypeEnum": {
|
|
"description": "Asset type",
|
|
"enum": [
|
|
"IMAGE",
|
|
"VIDEO",
|
|
"AUDIO",
|
|
"OTHER"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AssetVisibility": {
|
|
"description": "Asset visibility",
|
|
"enum": [
|
|
"archive",
|
|
"timeline",
|
|
"hidden",
|
|
"locked"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AudioCodec": {
|
|
"description": "Target audio codec",
|
|
"enum": [
|
|
"mp3",
|
|
"aac",
|
|
"libopus",
|
|
"pcm_s16le"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"AuthStatusResponseDto": {
|
|
"properties": {
|
|
"expiresAt": {
|
|
"description": "Session expiration date",
|
|
"type": "string"
|
|
},
|
|
"isElevated": {
|
|
"description": "Is elevated session",
|
|
"type": "boolean"
|
|
},
|
|
"password": {
|
|
"description": "Has password set",
|
|
"type": "boolean"
|
|
},
|
|
"pinCode": {
|
|
"description": "Has PIN code set",
|
|
"type": "boolean"
|
|
},
|
|
"pinExpiresAt": {
|
|
"description": "PIN expiration date",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"isElevated",
|
|
"password",
|
|
"pinCode"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"AvatarUpdate": {
|
|
"properties": {
|
|
"color": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserAvatarColor"
|
|
}
|
|
],
|
|
"description": "Avatar color"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"BulkIdErrorReason": {
|
|
"description": "Error reason",
|
|
"enum": [
|
|
"duplicate",
|
|
"no_permission",
|
|
"not_found",
|
|
"unknown"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"BulkIdResponseDto": {
|
|
"properties": {
|
|
"error": {
|
|
"description": "Error reason if failed",
|
|
"enum": [
|
|
"duplicate",
|
|
"no_permission",
|
|
"not_found",
|
|
"unknown"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "ID",
|
|
"type": "string"
|
|
},
|
|
"success": {
|
|
"description": "Whether operation succeeded",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"success"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"BulkIdsDto": {
|
|
"properties": {
|
|
"ids": {
|
|
"description": "IDs to process",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"ids"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CLIPConfig": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether the task is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"modelName": {
|
|
"description": "Name of the model to use",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"modelName"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CQMode": {
|
|
"description": "CQ mode",
|
|
"enum": [
|
|
"auto",
|
|
"cqp",
|
|
"icq"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"CastResponse": {
|
|
"properties": {
|
|
"gCastEnabled": {
|
|
"default": false,
|
|
"description": "Whether Google Cast is enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"gCastEnabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CastUpdate": {
|
|
"properties": {
|
|
"gCastEnabled": {
|
|
"description": "Whether Google Cast is enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"ChangePasswordDto": {
|
|
"properties": {
|
|
"invalidateSessions": {
|
|
"default": false,
|
|
"description": "Invalidate all other sessions",
|
|
"type": "boolean"
|
|
},
|
|
"newPassword": {
|
|
"description": "New password (min 8 characters)",
|
|
"example": "password",
|
|
"minLength": 8,
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"description": "Current password",
|
|
"example": "password",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"newPassword",
|
|
"password"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CheckExistingAssetsDto": {
|
|
"properties": {
|
|
"deviceAssetIds": {
|
|
"description": "Device asset IDs to check",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
},
|
|
"deviceId": {
|
|
"description": "Device ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"deviceAssetIds",
|
|
"deviceId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CheckExistingAssetsResponseDto": {
|
|
"properties": {
|
|
"existingIds": {
|
|
"description": "Existing asset IDs",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"existingIds"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"Colorspace": {
|
|
"description": "Colorspace",
|
|
"enum": [
|
|
"srgb",
|
|
"p3"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"ContributorCountResponseDto": {
|
|
"properties": {
|
|
"assetCount": {
|
|
"description": "Number of assets contributed",
|
|
"type": "integer"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetCount",
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CreateAlbumDto": {
|
|
"properties": {
|
|
"albumName": {
|
|
"description": "Album name",
|
|
"type": "string"
|
|
},
|
|
"albumUsers": {
|
|
"description": "Album users",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AlbumUserCreateDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"assetIds": {
|
|
"description": "Initial asset IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"description": {
|
|
"description": "Album description",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumName"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CreateLibraryDto": {
|
|
"properties": {
|
|
"exclusionPatterns": {
|
|
"description": "Exclusion patterns (max 128)",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 128,
|
|
"type": "array",
|
|
"uniqueItems": true
|
|
},
|
|
"importPaths": {
|
|
"description": "Import paths (max 128)",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 128,
|
|
"type": "array",
|
|
"uniqueItems": true
|
|
},
|
|
"name": {
|
|
"description": "Library name",
|
|
"type": "string"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner user ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"ownerId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CreateProfileImageDto": {
|
|
"properties": {
|
|
"file": {
|
|
"description": "Profile image file",
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CreateProfileImageResponseDto": {
|
|
"properties": {
|
|
"profileChangedAt": {
|
|
"description": "Profile image change date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"profileImagePath": {
|
|
"description": "Profile image file path",
|
|
"type": "string"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"profileChangedAt",
|
|
"profileImagePath",
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"CropParameters": {
|
|
"properties": {
|
|
"height": {
|
|
"description": "Height of the crop",
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"width": {
|
|
"description": "Width of the crop",
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"x": {
|
|
"description": "Top-Left X coordinate of crop",
|
|
"minimum": 0,
|
|
"type": "number"
|
|
},
|
|
"y": {
|
|
"description": "Top-Left Y coordinate of crop",
|
|
"minimum": 0,
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"height",
|
|
"width",
|
|
"x",
|
|
"y"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DatabaseBackupConfig": {
|
|
"properties": {
|
|
"cronExpression": {
|
|
"description": "Cron expression",
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"keepLastAmount": {
|
|
"description": "Keep last amount",
|
|
"minimum": 1,
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"cronExpression",
|
|
"enabled",
|
|
"keepLastAmount"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DatabaseBackupDeleteDto": {
|
|
"properties": {
|
|
"backups": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"backups"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DatabaseBackupDto": {
|
|
"properties": {
|
|
"filename": {
|
|
"type": "string"
|
|
},
|
|
"filesize": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"filename",
|
|
"filesize"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DatabaseBackupListResponseDto": {
|
|
"properties": {
|
|
"backups": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DatabaseBackupDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"backups"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DatabaseBackupUploadDto": {
|
|
"properties": {
|
|
"file": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"DownloadArchiveInfo": {
|
|
"properties": {
|
|
"assetIds": {
|
|
"description": "Asset IDs in this archive",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"size": {
|
|
"description": "Archive size in bytes",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetIds",
|
|
"size"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DownloadInfoDto": {
|
|
"properties": {
|
|
"albumId": {
|
|
"description": "Album ID to download",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"archiveSize": {
|
|
"description": "Archive size limit in bytes",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"assetIds": {
|
|
"description": "Asset IDs to download",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"userId": {
|
|
"description": "User ID to download assets from",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"DownloadResponse": {
|
|
"properties": {
|
|
"archiveSize": {
|
|
"description": "Maximum archive size in bytes",
|
|
"type": "integer"
|
|
},
|
|
"includeEmbeddedVideos": {
|
|
"default": false,
|
|
"description": "Whether to include embedded videos in downloads",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"archiveSize",
|
|
"includeEmbeddedVideos"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DownloadResponseDto": {
|
|
"properties": {
|
|
"archives": {
|
|
"description": "Archive information",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DownloadArchiveInfo"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"totalSize": {
|
|
"description": "Total size in bytes",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"archives",
|
|
"totalSize"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DownloadUpdate": {
|
|
"properties": {
|
|
"archiveSize": {
|
|
"description": "Maximum archive size in bytes",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"includeEmbeddedVideos": {
|
|
"description": "Whether to include embedded videos in downloads",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"DuplicateDetectionConfig": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether the task is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"maxDistance": {
|
|
"description": "Maximum distance threshold for duplicate detection",
|
|
"format": "double",
|
|
"maximum": 0.1,
|
|
"minimum": 0.001,
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"maxDistance"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"DuplicateResponseDto": {
|
|
"properties": {
|
|
"assets": {
|
|
"description": "Duplicate assets",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"duplicateId": {
|
|
"description": "Duplicate group ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assets",
|
|
"duplicateId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"EmailNotificationsResponse": {
|
|
"properties": {
|
|
"albumInvite": {
|
|
"description": "Whether to receive email notifications for album invites",
|
|
"type": "boolean"
|
|
},
|
|
"albumUpdate": {
|
|
"description": "Whether to receive email notifications for album updates",
|
|
"type": "boolean"
|
|
},
|
|
"enabled": {
|
|
"description": "Whether email notifications are enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumInvite",
|
|
"albumUpdate",
|
|
"enabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"EmailNotificationsUpdate": {
|
|
"properties": {
|
|
"albumInvite": {
|
|
"description": "Whether to receive email notifications for album invites",
|
|
"type": "boolean"
|
|
},
|
|
"albumUpdate": {
|
|
"description": "Whether to receive email notifications for album updates",
|
|
"type": "boolean"
|
|
},
|
|
"enabled": {
|
|
"description": "Whether email notifications are enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"ExifResponseDto": {
|
|
"properties": {
|
|
"city": {
|
|
"default": null,
|
|
"description": "City name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"default": null,
|
|
"description": "Country name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"dateTimeOriginal": {
|
|
"default": null,
|
|
"description": "Original date/time",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"default": null,
|
|
"description": "Image description",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"exifImageHeight": {
|
|
"default": null,
|
|
"description": "Image height in pixels",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"exifImageWidth": {
|
|
"default": null,
|
|
"description": "Image width in pixels",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"exposureTime": {
|
|
"default": null,
|
|
"description": "Exposure time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"fNumber": {
|
|
"default": null,
|
|
"description": "F-number (aperture)",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"fileSizeInByte": {
|
|
"default": null,
|
|
"description": "File size in bytes",
|
|
"format": "int64",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"focalLength": {
|
|
"default": null,
|
|
"description": "Focal length in mm",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"iso": {
|
|
"default": null,
|
|
"description": "ISO sensitivity",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"latitude": {
|
|
"default": null,
|
|
"description": "GPS latitude",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"lensModel": {
|
|
"default": null,
|
|
"description": "Lens model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"longitude": {
|
|
"default": null,
|
|
"description": "GPS longitude",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"make": {
|
|
"default": null,
|
|
"description": "Camera make",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"default": null,
|
|
"description": "Camera model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"modifyDate": {
|
|
"default": null,
|
|
"description": "Modification date/time",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"orientation": {
|
|
"default": null,
|
|
"description": "Image orientation",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"projectionType": {
|
|
"default": null,
|
|
"description": "Projection type",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"rating": {
|
|
"default": null,
|
|
"description": "Rating",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"state": {
|
|
"default": null,
|
|
"description": "State/province name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"timeZone": {
|
|
"default": null,
|
|
"description": "Time zone",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"FaceDto": {
|
|
"properties": {
|
|
"id": {
|
|
"description": "Face ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"FacialRecognitionConfig": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether the task is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"maxDistance": {
|
|
"description": "Maximum distance threshold for face recognition",
|
|
"format": "double",
|
|
"maximum": 2,
|
|
"minimum": 0.1,
|
|
"type": "number"
|
|
},
|
|
"minFaces": {
|
|
"description": "Minimum number of faces required for recognition",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"minScore": {
|
|
"description": "Minimum confidence score for face detection",
|
|
"format": "double",
|
|
"maximum": 1,
|
|
"minimum": 0.1,
|
|
"type": "number"
|
|
},
|
|
"modelName": {
|
|
"description": "Name of the model to use",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"maxDistance",
|
|
"minFaces",
|
|
"minScore",
|
|
"modelName"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"FoldersResponse": {
|
|
"properties": {
|
|
"enabled": {
|
|
"default": false,
|
|
"description": "Whether folders are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"sidebarWeb": {
|
|
"default": false,
|
|
"description": "Whether folders appear in web sidebar",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"sidebarWeb"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"FoldersUpdate": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether folders are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"sidebarWeb": {
|
|
"description": "Whether folders appear in web sidebar",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"ImageFormat": {
|
|
"description": "Image format",
|
|
"enum": [
|
|
"jpeg",
|
|
"webp"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"JobCreateDto": {
|
|
"properties": {
|
|
"name": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ManualJobName"
|
|
}
|
|
],
|
|
"description": "Job name"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"JobName": {
|
|
"description": "Job name",
|
|
"enum": [
|
|
"AssetDelete",
|
|
"AssetDeleteCheck",
|
|
"AssetDetectFacesQueueAll",
|
|
"AssetDetectFaces",
|
|
"AssetDetectDuplicatesQueueAll",
|
|
"AssetDetectDuplicates",
|
|
"AssetEditThumbnailGeneration",
|
|
"AssetEncodeVideoQueueAll",
|
|
"AssetEncodeVideo",
|
|
"AssetEmptyTrash",
|
|
"AssetExtractMetadataQueueAll",
|
|
"AssetExtractMetadata",
|
|
"AssetFileMigration",
|
|
"AssetGenerateThumbnailsQueueAll",
|
|
"AssetGenerateThumbnails",
|
|
"AuditLogCleanup",
|
|
"AuditTableCleanup",
|
|
"DatabaseBackup",
|
|
"FacialRecognitionQueueAll",
|
|
"FacialRecognition",
|
|
"FileDelete",
|
|
"FileMigrationQueueAll",
|
|
"LibraryDeleteCheck",
|
|
"LibraryDelete",
|
|
"LibraryRemoveAsset",
|
|
"LibraryScanAssetsQueueAll",
|
|
"LibrarySyncAssets",
|
|
"LibrarySyncFilesQueueAll",
|
|
"LibrarySyncFiles",
|
|
"LibraryScanQueueAll",
|
|
"MemoryCleanup",
|
|
"MemoryGenerate",
|
|
"NotificationsCleanup",
|
|
"NotifyUserSignup",
|
|
"NotifyAlbumInvite",
|
|
"NotifyAlbumUpdate",
|
|
"UserDelete",
|
|
"UserDeleteCheck",
|
|
"UserSyncUsage",
|
|
"PersonCleanup",
|
|
"PersonFileMigration",
|
|
"PersonGenerateThumbnail",
|
|
"SessionCleanup",
|
|
"SendMail",
|
|
"SidecarQueueAll",
|
|
"SidecarCheck",
|
|
"SidecarWrite",
|
|
"SmartSearchQueueAll",
|
|
"SmartSearch",
|
|
"StorageTemplateMigration",
|
|
"StorageTemplateMigrationSingle",
|
|
"TagCleanup",
|
|
"VersionCheck",
|
|
"OcrQueueAll",
|
|
"Ocr",
|
|
"WorkflowRun"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"JobSettingsDto": {
|
|
"properties": {
|
|
"concurrency": {
|
|
"description": "Concurrency",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"concurrency"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"LibraryResponseDto": {
|
|
"properties": {
|
|
"assetCount": {
|
|
"description": "Number of assets",
|
|
"type": "integer"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"exclusionPatterns": {
|
|
"description": "Exclusion patterns",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"id": {
|
|
"description": "Library ID",
|
|
"type": "string"
|
|
},
|
|
"importPaths": {
|
|
"description": "Import paths",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"name": {
|
|
"description": "Library name",
|
|
"type": "string"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner user ID",
|
|
"type": "string"
|
|
},
|
|
"refreshedAt": {
|
|
"description": "Last refresh date",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetCount",
|
|
"createdAt",
|
|
"exclusionPatterns",
|
|
"id",
|
|
"importPaths",
|
|
"name",
|
|
"ownerId",
|
|
"refreshedAt",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"LibraryStatsResponseDto": {
|
|
"properties": {
|
|
"photos": {
|
|
"default": 0,
|
|
"description": "Number of photos",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"default": 0,
|
|
"description": "Total number of assets",
|
|
"type": "integer"
|
|
},
|
|
"usage": {
|
|
"default": 0,
|
|
"description": "Storage usage in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"videos": {
|
|
"default": 0,
|
|
"description": "Number of videos",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"photos",
|
|
"total",
|
|
"usage",
|
|
"videos"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"LicenseKeyDto": {
|
|
"properties": {
|
|
"activationKey": {
|
|
"description": "Activation key",
|
|
"type": "string"
|
|
},
|
|
"licenseKey": {
|
|
"description": "License key (format: IM(SV|CL)(-XXXX){8})",
|
|
"pattern": "/IM(SV|CL)(-[\\dA-Za-z]{4}){8}/",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"activationKey",
|
|
"licenseKey"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"LicenseResponseDto": {
|
|
"properties": {
|
|
"activatedAt": {
|
|
"description": "Activation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"activationKey": {
|
|
"description": "Activation key",
|
|
"type": "string"
|
|
},
|
|
"licenseKey": {
|
|
"description": "License key (format: IM(SV|CL)(-XXXX){8})",
|
|
"pattern": "/IM(SV|CL)(-[\\dA-Za-z]{4}){8}/",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"activatedAt",
|
|
"activationKey",
|
|
"licenseKey"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"LogLevel": {
|
|
"enum": [
|
|
"verbose",
|
|
"debug",
|
|
"log",
|
|
"warn",
|
|
"error",
|
|
"fatal"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"LoginCredentialDto": {
|
|
"properties": {
|
|
"email": {
|
|
"description": "User email",
|
|
"example": "testuser@email.com",
|
|
"format": "email",
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"description": "User password",
|
|
"example": "password",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"email",
|
|
"password"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"LoginResponseDto": {
|
|
"properties": {
|
|
"accessToken": {
|
|
"description": "Access token",
|
|
"type": "string"
|
|
},
|
|
"isAdmin": {
|
|
"description": "Is admin user",
|
|
"type": "boolean"
|
|
},
|
|
"isOnboarded": {
|
|
"description": "Is onboarded",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"profileImagePath": {
|
|
"description": "Profile image path",
|
|
"type": "string"
|
|
},
|
|
"shouldChangePassword": {
|
|
"description": "Should change password",
|
|
"type": "boolean"
|
|
},
|
|
"userEmail": {
|
|
"description": "User email",
|
|
"type": "string"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"accessToken",
|
|
"isAdmin",
|
|
"isOnboarded",
|
|
"name",
|
|
"profileImagePath",
|
|
"shouldChangePassword",
|
|
"userEmail",
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"LogoutResponseDto": {
|
|
"properties": {
|
|
"redirectUri": {
|
|
"description": "Redirect URI",
|
|
"type": "string"
|
|
},
|
|
"successful": {
|
|
"description": "Logout successful",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"redirectUri",
|
|
"successful"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MachineLearningAvailabilityChecksDto": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"interval": {
|
|
"type": "number"
|
|
},
|
|
"timeout": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"interval",
|
|
"timeout"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MaintenanceAction": {
|
|
"description": "Maintenance action",
|
|
"enum": [
|
|
"start",
|
|
"end",
|
|
"select_database_restore",
|
|
"restore_database"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"MaintenanceAuthDto": {
|
|
"properties": {
|
|
"username": {
|
|
"description": "Maintenance username",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"username"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MaintenanceDetectInstallResponseDto": {
|
|
"properties": {
|
|
"storage": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MaintenanceDetectInstallStorageFolderDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"storage"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MaintenanceDetectInstallStorageFolderDto": {
|
|
"properties": {
|
|
"files": {
|
|
"description": "Number of files in the folder",
|
|
"type": "number"
|
|
},
|
|
"folder": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/StorageFolder"
|
|
}
|
|
],
|
|
"description": "Storage folder"
|
|
},
|
|
"readable": {
|
|
"description": "Whether the folder is readable",
|
|
"type": "boolean"
|
|
},
|
|
"writable": {
|
|
"description": "Whether the folder is writable",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"files",
|
|
"folder",
|
|
"readable",
|
|
"writable"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MaintenanceLoginDto": {
|
|
"properties": {
|
|
"token": {
|
|
"description": "Maintenance token",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"MaintenanceStatusResponseDto": {
|
|
"properties": {
|
|
"action": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MaintenanceAction"
|
|
}
|
|
],
|
|
"description": "Maintenance action"
|
|
},
|
|
"active": {
|
|
"type": "boolean"
|
|
},
|
|
"error": {
|
|
"type": "string"
|
|
},
|
|
"progress": {
|
|
"type": "number"
|
|
},
|
|
"task": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"active"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ManualJobName": {
|
|
"description": "Job name",
|
|
"enum": [
|
|
"person-cleanup",
|
|
"tag-cleanup",
|
|
"user-cleanup",
|
|
"memory-cleanup",
|
|
"memory-create",
|
|
"backup-database"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"MapMarkerResponseDto": {
|
|
"properties": {
|
|
"city": {
|
|
"description": "City name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"description": "Country name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"lat": {
|
|
"description": "Latitude",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"lon": {
|
|
"description": "Longitude",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"state": {
|
|
"description": "State/Province name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"city",
|
|
"country",
|
|
"id",
|
|
"lat",
|
|
"lon",
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MapReverseGeocodeResponseDto": {
|
|
"properties": {
|
|
"city": {
|
|
"description": "City name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"description": "Country name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"description": "State/Province name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"city",
|
|
"country",
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MemoriesResponse": {
|
|
"properties": {
|
|
"duration": {
|
|
"default": 5,
|
|
"description": "Memory duration in seconds",
|
|
"type": "integer"
|
|
},
|
|
"enabled": {
|
|
"default": true,
|
|
"description": "Whether memories are enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"duration",
|
|
"enabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MemoriesUpdate": {
|
|
"properties": {
|
|
"duration": {
|
|
"description": "Memory duration in seconds",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"enabled": {
|
|
"description": "Whether memories are enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"MemoryCreateDto": {
|
|
"properties": {
|
|
"assetIds": {
|
|
"description": "Asset IDs to associate with memory",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"data": {
|
|
"$ref": "#/components/schemas/OnThisDayDto"
|
|
},
|
|
"isSaved": {
|
|
"description": "Is memory saved",
|
|
"type": "boolean"
|
|
},
|
|
"memoryAt": {
|
|
"description": "Memory date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"seenAt": {
|
|
"description": "Date when memory was seen",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MemoryType"
|
|
}
|
|
],
|
|
"description": "Memory type"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"memoryAt",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MemoryResponseDto": {
|
|
"properties": {
|
|
"assets": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"data": {
|
|
"$ref": "#/components/schemas/OnThisDayDto"
|
|
},
|
|
"deletedAt": {
|
|
"description": "Deletion date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"hideAt": {
|
|
"description": "Date when memory should be hidden",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Memory ID",
|
|
"type": "string"
|
|
},
|
|
"isSaved": {
|
|
"description": "Is memory saved",
|
|
"type": "boolean"
|
|
},
|
|
"memoryAt": {
|
|
"description": "Memory date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner user ID",
|
|
"type": "string"
|
|
},
|
|
"seenAt": {
|
|
"description": "Date when memory was seen",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"showAt": {
|
|
"description": "Date when memory should be shown",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MemoryType"
|
|
}
|
|
],
|
|
"description": "Memory type"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assets",
|
|
"createdAt",
|
|
"data",
|
|
"id",
|
|
"isSaved",
|
|
"memoryAt",
|
|
"ownerId",
|
|
"type",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MemorySearchOrder": {
|
|
"enum": [
|
|
"asc",
|
|
"desc",
|
|
"random"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"MemoryStatisticsResponseDto": {
|
|
"properties": {
|
|
"total": {
|
|
"description": "Total number of memories",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"total"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MemoryType": {
|
|
"enum": [
|
|
"on_this_day"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"MemoryUpdateDto": {
|
|
"properties": {
|
|
"isSaved": {
|
|
"description": "Is memory saved",
|
|
"type": "boolean"
|
|
},
|
|
"memoryAt": {
|
|
"description": "Memory date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"seenAt": {
|
|
"description": "Date when memory was seen",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"MergePersonDto": {
|
|
"properties": {
|
|
"ids": {
|
|
"description": "Person IDs to merge",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"ids"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MetadataSearchDto": {
|
|
"properties": {
|
|
"albumIds": {
|
|
"description": "Filter by album IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"checksum": {
|
|
"description": "Filter by file checksum",
|
|
"type": "string"
|
|
},
|
|
"city": {
|
|
"description": "Filter by city name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"description": "Filter by country name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"createdAfter": {
|
|
"description": "Filter by creation date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"createdBefore": {
|
|
"description": "Filter by creation date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Filter by description text",
|
|
"type": "string"
|
|
},
|
|
"deviceAssetId": {
|
|
"description": "Filter by device asset ID",
|
|
"type": "string"
|
|
},
|
|
"deviceId": {
|
|
"description": "Device ID to filter by",
|
|
"type": "string"
|
|
},
|
|
"encodedVideoPath": {
|
|
"description": "Filter by encoded video file path",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Filter by asset ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"isEncoded": {
|
|
"description": "Filter by encoded status",
|
|
"type": "boolean"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Filter by favorite status",
|
|
"type": "boolean"
|
|
},
|
|
"isMotion": {
|
|
"description": "Filter by motion photo status",
|
|
"type": "boolean"
|
|
},
|
|
"isNotInAlbum": {
|
|
"description": "Filter assets not in any album",
|
|
"type": "boolean"
|
|
},
|
|
"isOffline": {
|
|
"description": "Filter by offline status",
|
|
"type": "boolean"
|
|
},
|
|
"lensModel": {
|
|
"description": "Filter by lens model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"libraryId": {
|
|
"description": "Library ID to filter by",
|
|
"format": "uuid",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"make": {
|
|
"description": "Filter by camera make",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "Filter by camera model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"ocr": {
|
|
"description": "Filter by OCR text content",
|
|
"type": "string"
|
|
},
|
|
"order": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetOrder"
|
|
}
|
|
],
|
|
"default": "desc",
|
|
"description": "Sort order"
|
|
},
|
|
"originalFileName": {
|
|
"description": "Filter by original file name",
|
|
"type": "string"
|
|
},
|
|
"originalPath": {
|
|
"description": "Filter by original file path",
|
|
"type": "string"
|
|
},
|
|
"page": {
|
|
"description": "Page number",
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"personIds": {
|
|
"description": "Filter by person IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"previewPath": {
|
|
"description": "Filter by preview file path",
|
|
"type": "string"
|
|
},
|
|
"rating": {
|
|
"description": "Filter by rating",
|
|
"maximum": 5,
|
|
"minimum": -1,
|
|
"type": "number"
|
|
},
|
|
"size": {
|
|
"description": "Number of results to return",
|
|
"maximum": 1000,
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"state": {
|
|
"description": "Filter by state/province name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"tagIds": {
|
|
"description": "Filter by tag IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"nullable": true,
|
|
"type": "array"
|
|
},
|
|
"takenAfter": {
|
|
"description": "Filter by taken date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"takenBefore": {
|
|
"description": "Filter by taken date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"thumbnailPath": {
|
|
"description": "Filter by thumbnail file path",
|
|
"type": "string"
|
|
},
|
|
"trashedAfter": {
|
|
"description": "Filter by trash date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"trashedBefore": {
|
|
"description": "Filter by trash date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetTypeEnum"
|
|
}
|
|
],
|
|
"description": "Asset type filter"
|
|
},
|
|
"updatedAfter": {
|
|
"description": "Filter by update date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"updatedBefore": {
|
|
"description": "Filter by update date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
],
|
|
"description": "Filter by visibility"
|
|
},
|
|
"withDeleted": {
|
|
"description": "Include deleted assets",
|
|
"type": "boolean"
|
|
},
|
|
"withExif": {
|
|
"description": "Include EXIF data in response",
|
|
"type": "boolean"
|
|
},
|
|
"withPeople": {
|
|
"description": "Include assets with people",
|
|
"type": "boolean"
|
|
},
|
|
"withStacked": {
|
|
"description": "Include stacked assets",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"MirrorAxis": {
|
|
"description": "Axis to mirror along",
|
|
"enum": [
|
|
"horizontal",
|
|
"vertical"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"MirrorParameters": {
|
|
"properties": {
|
|
"axis": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MirrorAxis"
|
|
}
|
|
],
|
|
"description": "Axis to mirror along"
|
|
}
|
|
},
|
|
"required": [
|
|
"axis"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"NotificationCreateDto": {
|
|
"properties": {
|
|
"data": {
|
|
"description": "Additional notification data",
|
|
"type": "object"
|
|
},
|
|
"description": {
|
|
"description": "Notification description",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"level": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NotificationLevel"
|
|
}
|
|
],
|
|
"description": "Notification level"
|
|
},
|
|
"readAt": {
|
|
"description": "Date when notification was read",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"description": "Notification title",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NotificationType"
|
|
}
|
|
],
|
|
"description": "Notification type"
|
|
},
|
|
"userId": {
|
|
"description": "User ID to send notification to",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"title",
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"NotificationDeleteAllDto": {
|
|
"properties": {
|
|
"ids": {
|
|
"description": "Notification IDs to delete",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"ids"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"NotificationDto": {
|
|
"properties": {
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"data": {
|
|
"description": "Additional notification data",
|
|
"type": "object"
|
|
},
|
|
"description": {
|
|
"description": "Notification description",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Notification ID",
|
|
"type": "string"
|
|
},
|
|
"level": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NotificationLevel"
|
|
}
|
|
],
|
|
"description": "Notification level"
|
|
},
|
|
"readAt": {
|
|
"description": "Date when notification was read",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"description": "Notification title",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NotificationType"
|
|
}
|
|
],
|
|
"description": "Notification type"
|
|
}
|
|
},
|
|
"required": [
|
|
"createdAt",
|
|
"id",
|
|
"level",
|
|
"title",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"NotificationLevel": {
|
|
"enum": [
|
|
"success",
|
|
"error",
|
|
"warning",
|
|
"info"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"NotificationType": {
|
|
"enum": [
|
|
"JobFailed",
|
|
"BackupFailed",
|
|
"SystemMessage",
|
|
"AlbumInvite",
|
|
"AlbumUpdate",
|
|
"Custom"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"NotificationUpdateAllDto": {
|
|
"properties": {
|
|
"ids": {
|
|
"description": "Notification IDs to update",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"readAt": {
|
|
"description": "Date when notifications were read",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"ids"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"NotificationUpdateDto": {
|
|
"properties": {
|
|
"readAt": {
|
|
"description": "Date when notification was read",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"OAuthAuthorizeResponseDto": {
|
|
"properties": {
|
|
"url": {
|
|
"description": "OAuth authorization URL",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"url"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"OAuthCallbackDto": {
|
|
"properties": {
|
|
"codeVerifier": {
|
|
"description": "OAuth code verifier (PKCE)",
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"description": "OAuth state parameter",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"description": "OAuth callback URL",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"url"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"OAuthConfigDto": {
|
|
"properties": {
|
|
"codeChallenge": {
|
|
"description": "OAuth code challenge (PKCE)",
|
|
"type": "string"
|
|
},
|
|
"redirectUri": {
|
|
"description": "OAuth redirect URI",
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"description": "OAuth state parameter",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"redirectUri"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"OAuthTokenEndpointAuthMethod": {
|
|
"description": "Token endpoint auth method",
|
|
"enum": [
|
|
"client_secret_post",
|
|
"client_secret_basic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"OcrConfig": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether the task is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"maxResolution": {
|
|
"description": "Maximum resolution for OCR processing",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"minDetectionScore": {
|
|
"description": "Minimum confidence score for text detection",
|
|
"format": "double",
|
|
"maximum": 1,
|
|
"minimum": 0.1,
|
|
"type": "number"
|
|
},
|
|
"minRecognitionScore": {
|
|
"description": "Minimum confidence score for text recognition",
|
|
"format": "double",
|
|
"maximum": 1,
|
|
"minimum": 0.1,
|
|
"type": "number"
|
|
},
|
|
"modelName": {
|
|
"description": "Name of the model to use",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"maxResolution",
|
|
"minDetectionScore",
|
|
"minRecognitionScore",
|
|
"modelName"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"OnThisDayDto": {
|
|
"properties": {
|
|
"year": {
|
|
"description": "Year for on this day memory",
|
|
"minimum": 1,
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"year"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"OnboardingDto": {
|
|
"properties": {
|
|
"isOnboarded": {
|
|
"description": "Is user onboarded",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"isOnboarded"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"OnboardingResponseDto": {
|
|
"properties": {
|
|
"isOnboarded": {
|
|
"description": "Is user onboarded",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"isOnboarded"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PartnerCreateDto": {
|
|
"properties": {
|
|
"sharedWithId": {
|
|
"description": "User ID to share with",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"sharedWithId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PartnerDirection": {
|
|
"enum": [
|
|
"shared-by",
|
|
"shared-with"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PartnerResponseDto": {
|
|
"properties": {
|
|
"avatarColor": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserAvatarColor"
|
|
}
|
|
],
|
|
"description": "Avatar color"
|
|
},
|
|
"email": {
|
|
"description": "User email",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
},
|
|
"inTimeline": {
|
|
"description": "Show in timeline",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"profileChangedAt": {
|
|
"description": "Profile change date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"profileImagePath": {
|
|
"description": "Profile image path",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"avatarColor",
|
|
"email",
|
|
"id",
|
|
"name",
|
|
"profileChangedAt",
|
|
"profileImagePath"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PartnerUpdateDto": {
|
|
"properties": {
|
|
"inTimeline": {
|
|
"description": "Show partner assets in timeline",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"inTimeline"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PeopleResponse": {
|
|
"properties": {
|
|
"enabled": {
|
|
"default": true,
|
|
"description": "Whether people are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"sidebarWeb": {
|
|
"default": false,
|
|
"description": "Whether people appear in web sidebar",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"sidebarWeb"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PeopleResponseDto": {
|
|
"properties": {
|
|
"hasNextPage": {
|
|
"description": "Whether there are more pages",
|
|
"type": "boolean",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1.110.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"hidden": {
|
|
"description": "Number of hidden people",
|
|
"type": "integer"
|
|
},
|
|
"people": {
|
|
"description": "List of people",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"total": {
|
|
"description": "Total number of people",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"hidden",
|
|
"people",
|
|
"total"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PeopleUpdate": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether people are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"sidebarWeb": {
|
|
"description": "Whether people appear in web sidebar",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"PeopleUpdateDto": {
|
|
"properties": {
|
|
"people": {
|
|
"description": "People to update",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PeopleUpdateItem"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"people"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PeopleUpdateItem": {
|
|
"properties": {
|
|
"birthDate": {
|
|
"description": "Person date of birth",
|
|
"format": "date",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"color": {
|
|
"description": "Person color (hex)",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"featureFaceAssetId": {
|
|
"description": "Asset ID used for feature face thumbnail",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Person ID",
|
|
"type": "string"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Mark as favorite",
|
|
"type": "boolean"
|
|
},
|
|
"isHidden": {
|
|
"description": "Person visibility (hidden)",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "Person name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"Permission": {
|
|
"description": "List of permissions",
|
|
"enum": [
|
|
"all",
|
|
"activity.create",
|
|
"activity.read",
|
|
"activity.update",
|
|
"activity.delete",
|
|
"activity.statistics",
|
|
"apiKey.create",
|
|
"apiKey.read",
|
|
"apiKey.update",
|
|
"apiKey.delete",
|
|
"asset.read",
|
|
"asset.update",
|
|
"asset.delete",
|
|
"asset.statistics",
|
|
"asset.share",
|
|
"asset.view",
|
|
"asset.download",
|
|
"asset.upload",
|
|
"asset.replace",
|
|
"asset.copy",
|
|
"asset.derive",
|
|
"asset.edit.get",
|
|
"asset.edit.create",
|
|
"asset.edit.delete",
|
|
"album.create",
|
|
"album.read",
|
|
"album.update",
|
|
"album.delete",
|
|
"album.statistics",
|
|
"album.share",
|
|
"album.download",
|
|
"albumAsset.create",
|
|
"albumAsset.delete",
|
|
"albumUser.create",
|
|
"albumUser.update",
|
|
"albumUser.delete",
|
|
"auth.changePassword",
|
|
"authDevice.delete",
|
|
"archive.read",
|
|
"backup.list",
|
|
"backup.download",
|
|
"backup.upload",
|
|
"backup.delete",
|
|
"duplicate.read",
|
|
"duplicate.delete",
|
|
"face.create",
|
|
"face.read",
|
|
"face.update",
|
|
"face.delete",
|
|
"folder.read",
|
|
"job.create",
|
|
"job.read",
|
|
"library.create",
|
|
"library.read",
|
|
"library.update",
|
|
"library.delete",
|
|
"library.statistics",
|
|
"timeline.read",
|
|
"timeline.download",
|
|
"maintenance",
|
|
"map.read",
|
|
"map.search",
|
|
"memory.create",
|
|
"memory.read",
|
|
"memory.update",
|
|
"memory.delete",
|
|
"memory.statistics",
|
|
"memoryAsset.create",
|
|
"memoryAsset.delete",
|
|
"notification.create",
|
|
"notification.read",
|
|
"notification.update",
|
|
"notification.delete",
|
|
"partner.create",
|
|
"partner.read",
|
|
"partner.update",
|
|
"partner.delete",
|
|
"person.create",
|
|
"person.read",
|
|
"person.update",
|
|
"person.delete",
|
|
"person.statistics",
|
|
"person.merge",
|
|
"person.reassign",
|
|
"pinCode.create",
|
|
"pinCode.update",
|
|
"pinCode.delete",
|
|
"plugin.create",
|
|
"plugin.read",
|
|
"plugin.update",
|
|
"plugin.delete",
|
|
"server.about",
|
|
"server.apkLinks",
|
|
"server.storage",
|
|
"server.statistics",
|
|
"server.versionCheck",
|
|
"serverLicense.read",
|
|
"serverLicense.update",
|
|
"serverLicense.delete",
|
|
"session.create",
|
|
"session.read",
|
|
"session.update",
|
|
"session.delete",
|
|
"session.lock",
|
|
"sharedLink.create",
|
|
"sharedLink.read",
|
|
"sharedLink.update",
|
|
"sharedLink.delete",
|
|
"stack.create",
|
|
"stack.read",
|
|
"stack.update",
|
|
"stack.delete",
|
|
"sync.stream",
|
|
"syncCheckpoint.read",
|
|
"syncCheckpoint.update",
|
|
"syncCheckpoint.delete",
|
|
"systemConfig.read",
|
|
"systemConfig.update",
|
|
"systemMetadata.read",
|
|
"systemMetadata.update",
|
|
"tag.create",
|
|
"tag.read",
|
|
"tag.update",
|
|
"tag.delete",
|
|
"tag.asset",
|
|
"user.read",
|
|
"user.update",
|
|
"userLicense.create",
|
|
"userLicense.read",
|
|
"userLicense.update",
|
|
"userLicense.delete",
|
|
"userOnboarding.read",
|
|
"userOnboarding.update",
|
|
"userOnboarding.delete",
|
|
"userPreference.read",
|
|
"userPreference.update",
|
|
"userProfileImage.create",
|
|
"userProfileImage.read",
|
|
"userProfileImage.update",
|
|
"userProfileImage.delete",
|
|
"queue.read",
|
|
"queue.update",
|
|
"queueJob.create",
|
|
"queueJob.read",
|
|
"queueJob.update",
|
|
"queueJob.delete",
|
|
"workflow.create",
|
|
"workflow.read",
|
|
"workflow.update",
|
|
"workflow.delete",
|
|
"adminUser.create",
|
|
"adminUser.read",
|
|
"adminUser.update",
|
|
"adminUser.delete",
|
|
"adminSession.read",
|
|
"adminAuth.unlinkAll"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PersonCreateDto": {
|
|
"properties": {
|
|
"birthDate": {
|
|
"description": "Person date of birth",
|
|
"format": "date",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"color": {
|
|
"description": "Person color (hex)",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Mark as favorite",
|
|
"type": "boolean"
|
|
},
|
|
"isHidden": {
|
|
"description": "Person visibility (hidden)",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "Person name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"PersonResponseDto": {
|
|
"properties": {
|
|
"birthDate": {
|
|
"description": "Person date of birth",
|
|
"format": "date",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"color": {
|
|
"description": "Person color (hex)",
|
|
"type": "string",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1.126.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"id": {
|
|
"description": "Person ID",
|
|
"type": "string"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Is favorite",
|
|
"type": "boolean",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1.126.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"isHidden": {
|
|
"description": "Is hidden",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "Person name",
|
|
"type": "string"
|
|
},
|
|
"thumbnailPath": {
|
|
"description": "Thumbnail path",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1.107.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"required": [
|
|
"birthDate",
|
|
"id",
|
|
"isHidden",
|
|
"name",
|
|
"thumbnailPath"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PersonStatisticsResponseDto": {
|
|
"properties": {
|
|
"assets": {
|
|
"description": "Number of assets",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"assets"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PersonUpdateDto": {
|
|
"properties": {
|
|
"birthDate": {
|
|
"description": "Person date of birth",
|
|
"format": "date",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"color": {
|
|
"description": "Person color (hex)",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"featureFaceAssetId": {
|
|
"description": "Asset ID used for feature face thumbnail",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Mark as favorite",
|
|
"type": "boolean"
|
|
},
|
|
"isHidden": {
|
|
"description": "Person visibility (hidden)",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "Person name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"PersonWithFacesResponseDto": {
|
|
"properties": {
|
|
"birthDate": {
|
|
"description": "Person date of birth",
|
|
"format": "date",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"color": {
|
|
"description": "Person color (hex)",
|
|
"type": "string",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1.126.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"faces": {
|
|
"description": "Face detections",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetFaceWithoutPersonResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"id": {
|
|
"description": "Person ID",
|
|
"type": "string"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Is favorite",
|
|
"type": "boolean",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1.126.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
},
|
|
"isHidden": {
|
|
"description": "Is hidden",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "Person name",
|
|
"type": "string"
|
|
},
|
|
"thumbnailPath": {
|
|
"description": "Thumbnail path",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v1.107.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2",
|
|
"state": "Stable"
|
|
}
|
|
],
|
|
"x-immich-state": "Stable"
|
|
}
|
|
},
|
|
"required": [
|
|
"birthDate",
|
|
"faces",
|
|
"id",
|
|
"isHidden",
|
|
"name",
|
|
"thumbnailPath"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PinCodeChangeDto": {
|
|
"properties": {
|
|
"newPinCode": {
|
|
"description": "New PIN code (4-6 digits)",
|
|
"example": "123456",
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"description": "User password (required if PIN code is not provided)",
|
|
"type": "string"
|
|
},
|
|
"pinCode": {
|
|
"description": "New PIN code (4-6 digits)",
|
|
"example": "123456",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"newPinCode"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PinCodeResetDto": {
|
|
"properties": {
|
|
"password": {
|
|
"description": "User password (required if PIN code is not provided)",
|
|
"type": "string"
|
|
},
|
|
"pinCode": {
|
|
"description": "New PIN code (4-6 digits)",
|
|
"example": "123456",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"PinCodeSetupDto": {
|
|
"properties": {
|
|
"pinCode": {
|
|
"description": "PIN code (4-6 digits)",
|
|
"example": "123456",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"pinCode"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PlacesResponseDto": {
|
|
"properties": {
|
|
"admin1name": {
|
|
"description": "Administrative level 1 name (state/province)",
|
|
"type": "string"
|
|
},
|
|
"admin2name": {
|
|
"description": "Administrative level 2 name (county/district)",
|
|
"type": "string"
|
|
},
|
|
"latitude": {
|
|
"description": "Latitude coordinate",
|
|
"type": "number"
|
|
},
|
|
"longitude": {
|
|
"description": "Longitude coordinate",
|
|
"type": "number"
|
|
},
|
|
"name": {
|
|
"description": "Place name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"latitude",
|
|
"longitude",
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginActionResponseDto": {
|
|
"properties": {
|
|
"description": {
|
|
"description": "Action description",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Action ID",
|
|
"type": "string"
|
|
},
|
|
"methodName": {
|
|
"description": "Method name",
|
|
"type": "string"
|
|
},
|
|
"pluginId": {
|
|
"description": "Plugin ID",
|
|
"type": "string"
|
|
},
|
|
"schema": {
|
|
"description": "Action schema",
|
|
"nullable": true,
|
|
"type": "object"
|
|
},
|
|
"supportedContexts": {
|
|
"description": "Supported contexts",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PluginContextType"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"title": {
|
|
"description": "Action title",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"description",
|
|
"id",
|
|
"methodName",
|
|
"pluginId",
|
|
"schema",
|
|
"supportedContexts",
|
|
"title"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginContextType": {
|
|
"description": "Context type",
|
|
"enum": [
|
|
"asset",
|
|
"album",
|
|
"person"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PluginFilterResponseDto": {
|
|
"properties": {
|
|
"description": {
|
|
"description": "Filter description",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Filter ID",
|
|
"type": "string"
|
|
},
|
|
"methodName": {
|
|
"description": "Method name",
|
|
"type": "string"
|
|
},
|
|
"pluginId": {
|
|
"description": "Plugin ID",
|
|
"type": "string"
|
|
},
|
|
"schema": {
|
|
"description": "Filter schema",
|
|
"nullable": true,
|
|
"type": "object"
|
|
},
|
|
"supportedContexts": {
|
|
"description": "Supported contexts",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PluginContextType"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"title": {
|
|
"description": "Filter title",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"description",
|
|
"id",
|
|
"methodName",
|
|
"pluginId",
|
|
"schema",
|
|
"supportedContexts",
|
|
"title"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginResponseDto": {
|
|
"properties": {
|
|
"actions": {
|
|
"description": "Plugin actions",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PluginActionResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"author": {
|
|
"description": "Plugin author",
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Plugin description",
|
|
"type": "string"
|
|
},
|
|
"filters": {
|
|
"description": "Plugin filters",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PluginFilterResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"id": {
|
|
"description": "Plugin ID",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Plugin name",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"description": "Plugin title",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"description": "Plugin version",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"actions",
|
|
"author",
|
|
"createdAt",
|
|
"description",
|
|
"filters",
|
|
"id",
|
|
"name",
|
|
"title",
|
|
"updatedAt",
|
|
"version"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginTriggerResponseDto": {
|
|
"properties": {
|
|
"contextType": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PluginContextType"
|
|
}
|
|
],
|
|
"description": "Context type"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PluginTriggerType"
|
|
}
|
|
],
|
|
"description": "Trigger type"
|
|
}
|
|
},
|
|
"required": [
|
|
"contextType",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginTriggerType": {
|
|
"description": "Trigger type",
|
|
"enum": [
|
|
"AssetCreate",
|
|
"PersonRecognized"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PurchaseResponse": {
|
|
"properties": {
|
|
"hideBuyButtonUntil": {
|
|
"description": "Date until which to hide buy button",
|
|
"type": "string"
|
|
},
|
|
"showSupportBadge": {
|
|
"description": "Whether to show support badge",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"hideBuyButtonUntil",
|
|
"showSupportBadge"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PurchaseUpdate": {
|
|
"properties": {
|
|
"hideBuyButtonUntil": {
|
|
"description": "Date until which to hide buy button",
|
|
"type": "string"
|
|
},
|
|
"showSupportBadge": {
|
|
"description": "Whether to show support badge",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"QueueCommand": {
|
|
"description": "Queue command to execute",
|
|
"enum": [
|
|
"start",
|
|
"pause",
|
|
"resume",
|
|
"empty",
|
|
"clear-failed"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"QueueCommandDto": {
|
|
"properties": {
|
|
"command": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/QueueCommand"
|
|
}
|
|
],
|
|
"description": "Queue command to execute"
|
|
},
|
|
"force": {
|
|
"description": "Force the command execution (if applicable)",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"command"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"QueueDeleteDto": {
|
|
"properties": {
|
|
"failed": {
|
|
"description": "If true, will also remove failed jobs from the queue.",
|
|
"type": "boolean",
|
|
"x-immich-history": [
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Added"
|
|
},
|
|
{
|
|
"version": "v2.4.0",
|
|
"state": "Alpha"
|
|
}
|
|
],
|
|
"x-immich-state": "Alpha"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"QueueJobResponseDto": {
|
|
"properties": {
|
|
"data": {
|
|
"description": "Job data payload",
|
|
"type": "object"
|
|
},
|
|
"id": {
|
|
"description": "Job ID",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/JobName"
|
|
}
|
|
],
|
|
"description": "Job name"
|
|
},
|
|
"timestamp": {
|
|
"description": "Job creation timestamp",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"name",
|
|
"timestamp"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"QueueJobStatus": {
|
|
"enum": [
|
|
"active",
|
|
"failed",
|
|
"completed",
|
|
"delayed",
|
|
"waiting",
|
|
"paused"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"QueueName": {
|
|
"enum": [
|
|
"thumbnailGeneration",
|
|
"metadataExtraction",
|
|
"videoConversion",
|
|
"faceDetection",
|
|
"facialRecognition",
|
|
"smartSearch",
|
|
"duplicateDetection",
|
|
"backgroundTask",
|
|
"storageTemplateMigration",
|
|
"migration",
|
|
"search",
|
|
"sidecar",
|
|
"library",
|
|
"notifications",
|
|
"backupDatabase",
|
|
"ocr",
|
|
"workflow",
|
|
"editor"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"QueueResponseDto": {
|
|
"properties": {
|
|
"isPaused": {
|
|
"description": "Whether the queue is paused",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/QueueName"
|
|
}
|
|
],
|
|
"description": "Queue name"
|
|
},
|
|
"statistics": {
|
|
"$ref": "#/components/schemas/QueueStatisticsDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"isPaused",
|
|
"name",
|
|
"statistics"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"QueueResponseLegacyDto": {
|
|
"properties": {
|
|
"jobCounts": {
|
|
"$ref": "#/components/schemas/QueueStatisticsDto"
|
|
},
|
|
"queueStatus": {
|
|
"$ref": "#/components/schemas/QueueStatusLegacyDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"jobCounts",
|
|
"queueStatus"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"QueueStatisticsDto": {
|
|
"properties": {
|
|
"active": {
|
|
"description": "Number of active jobs",
|
|
"type": "integer"
|
|
},
|
|
"completed": {
|
|
"description": "Number of completed jobs",
|
|
"type": "integer"
|
|
},
|
|
"delayed": {
|
|
"description": "Number of delayed jobs",
|
|
"type": "integer"
|
|
},
|
|
"failed": {
|
|
"description": "Number of failed jobs",
|
|
"type": "integer"
|
|
},
|
|
"paused": {
|
|
"description": "Number of paused jobs",
|
|
"type": "integer"
|
|
},
|
|
"waiting": {
|
|
"description": "Number of waiting jobs",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"active",
|
|
"completed",
|
|
"delayed",
|
|
"failed",
|
|
"paused",
|
|
"waiting"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"QueueStatusLegacyDto": {
|
|
"properties": {
|
|
"isActive": {
|
|
"description": "Whether the queue is currently active (has running jobs)",
|
|
"type": "boolean"
|
|
},
|
|
"isPaused": {
|
|
"description": "Whether the queue is paused",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"isActive",
|
|
"isPaused"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"QueueUpdateDto": {
|
|
"properties": {
|
|
"isPaused": {
|
|
"description": "Whether to pause the queue",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"QueuesResponseLegacyDto": {
|
|
"properties": {
|
|
"backgroundTask": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"backupDatabase": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"duplicateDetection": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"editor": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"faceDetection": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"facialRecognition": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"library": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"metadataExtraction": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"migration": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"notifications": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"ocr": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"search": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"sidecar": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"smartSearch": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"storageTemplateMigration": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"thumbnailGeneration": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"videoConversion": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
},
|
|
"workflow": {
|
|
"$ref": "#/components/schemas/QueueResponseLegacyDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"backgroundTask",
|
|
"backupDatabase",
|
|
"duplicateDetection",
|
|
"editor",
|
|
"faceDetection",
|
|
"facialRecognition",
|
|
"library",
|
|
"metadataExtraction",
|
|
"migration",
|
|
"notifications",
|
|
"ocr",
|
|
"search",
|
|
"sidecar",
|
|
"smartSearch",
|
|
"storageTemplateMigration",
|
|
"thumbnailGeneration",
|
|
"videoConversion",
|
|
"workflow"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"RandomSearchDto": {
|
|
"properties": {
|
|
"albumIds": {
|
|
"description": "Filter by album IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"city": {
|
|
"description": "Filter by city name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"description": "Filter by country name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"createdAfter": {
|
|
"description": "Filter by creation date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"createdBefore": {
|
|
"description": "Filter by creation date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"deviceId": {
|
|
"description": "Device ID to filter by",
|
|
"type": "string"
|
|
},
|
|
"isEncoded": {
|
|
"description": "Filter by encoded status",
|
|
"type": "boolean"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Filter by favorite status",
|
|
"type": "boolean"
|
|
},
|
|
"isMotion": {
|
|
"description": "Filter by motion photo status",
|
|
"type": "boolean"
|
|
},
|
|
"isNotInAlbum": {
|
|
"description": "Filter assets not in any album",
|
|
"type": "boolean"
|
|
},
|
|
"isOffline": {
|
|
"description": "Filter by offline status",
|
|
"type": "boolean"
|
|
},
|
|
"lensModel": {
|
|
"description": "Filter by lens model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"libraryId": {
|
|
"description": "Library ID to filter by",
|
|
"format": "uuid",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"make": {
|
|
"description": "Filter by camera make",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "Filter by camera model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"ocr": {
|
|
"description": "Filter by OCR text content",
|
|
"type": "string"
|
|
},
|
|
"personIds": {
|
|
"description": "Filter by person IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"rating": {
|
|
"description": "Filter by rating",
|
|
"maximum": 5,
|
|
"minimum": -1,
|
|
"type": "number"
|
|
},
|
|
"size": {
|
|
"description": "Number of results to return",
|
|
"maximum": 1000,
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"state": {
|
|
"description": "Filter by state/province name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"tagIds": {
|
|
"description": "Filter by tag IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"nullable": true,
|
|
"type": "array"
|
|
},
|
|
"takenAfter": {
|
|
"description": "Filter by taken date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"takenBefore": {
|
|
"description": "Filter by taken date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"trashedAfter": {
|
|
"description": "Filter by trash date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"trashedBefore": {
|
|
"description": "Filter by trash date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetTypeEnum"
|
|
}
|
|
],
|
|
"description": "Asset type filter"
|
|
},
|
|
"updatedAfter": {
|
|
"description": "Filter by update date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"updatedBefore": {
|
|
"description": "Filter by update date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
],
|
|
"description": "Filter by visibility"
|
|
},
|
|
"withDeleted": {
|
|
"description": "Include deleted assets",
|
|
"type": "boolean"
|
|
},
|
|
"withExif": {
|
|
"description": "Include EXIF data in response",
|
|
"type": "boolean"
|
|
},
|
|
"withPeople": {
|
|
"description": "Include assets with people",
|
|
"type": "boolean"
|
|
},
|
|
"withStacked": {
|
|
"description": "Include stacked assets",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"RatingsResponse": {
|
|
"properties": {
|
|
"enabled": {
|
|
"default": false,
|
|
"description": "Whether ratings are enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"RatingsUpdate": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether ratings are enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"ReactionLevel": {
|
|
"enum": [
|
|
"album",
|
|
"asset"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"ReactionType": {
|
|
"enum": [
|
|
"comment",
|
|
"like"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"ReverseGeocodingStateResponseDto": {
|
|
"properties": {
|
|
"lastImportFileName": {
|
|
"description": "Last import file name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"lastUpdate": {
|
|
"description": "Last update timestamp",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"lastImportFileName",
|
|
"lastUpdate"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"RotateParameters": {
|
|
"properties": {
|
|
"angle": {
|
|
"description": "Rotation angle in degrees",
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"angle"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SearchAlbumResponseDto": {
|
|
"properties": {
|
|
"count": {
|
|
"description": "Number of albums in this page",
|
|
"type": "integer"
|
|
},
|
|
"facets": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SearchFacetResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AlbumResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"total": {
|
|
"description": "Total number of matching albums",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"count",
|
|
"facets",
|
|
"items",
|
|
"total"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SearchAssetResponseDto": {
|
|
"properties": {
|
|
"count": {
|
|
"description": "Number of assets in this page",
|
|
"type": "integer"
|
|
},
|
|
"facets": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SearchFacetResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"nextPage": {
|
|
"description": "Next page token",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"total": {
|
|
"description": "Total number of matching assets",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"count",
|
|
"facets",
|
|
"items",
|
|
"nextPage",
|
|
"total"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SearchExploreItem": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"value": {
|
|
"description": "Explore value",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SearchExploreResponseDto": {
|
|
"properties": {
|
|
"fieldName": {
|
|
"description": "Explore field name",
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SearchExploreItem"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"fieldName",
|
|
"items"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SearchFacetCountResponseDto": {
|
|
"properties": {
|
|
"count": {
|
|
"description": "Number of assets with this facet value",
|
|
"type": "integer"
|
|
},
|
|
"value": {
|
|
"description": "Facet value",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"count",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SearchFacetResponseDto": {
|
|
"properties": {
|
|
"counts": {
|
|
"description": "Facet counts",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SearchFacetCountResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"fieldName": {
|
|
"description": "Facet field name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"counts",
|
|
"fieldName"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SearchResponseDto": {
|
|
"properties": {
|
|
"albums": {
|
|
"$ref": "#/components/schemas/SearchAlbumResponseDto"
|
|
},
|
|
"assets": {
|
|
"$ref": "#/components/schemas/SearchAssetResponseDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"albums",
|
|
"assets"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SearchStatisticsResponseDto": {
|
|
"properties": {
|
|
"total": {
|
|
"description": "Total number of matching assets",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"total"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SearchSuggestionType": {
|
|
"enum": [
|
|
"country",
|
|
"state",
|
|
"city",
|
|
"camera-make",
|
|
"camera-model",
|
|
"camera-lens-model"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"ServerAboutResponseDto": {
|
|
"properties": {
|
|
"build": {
|
|
"description": "Build identifier",
|
|
"type": "string"
|
|
},
|
|
"buildImage": {
|
|
"description": "Build image name",
|
|
"type": "string"
|
|
},
|
|
"buildImageUrl": {
|
|
"description": "Build image URL",
|
|
"type": "string"
|
|
},
|
|
"buildUrl": {
|
|
"description": "Build URL",
|
|
"type": "string"
|
|
},
|
|
"exiftool": {
|
|
"description": "ExifTool version",
|
|
"type": "string"
|
|
},
|
|
"ffmpeg": {
|
|
"description": "FFmpeg version",
|
|
"type": "string"
|
|
},
|
|
"imagemagick": {
|
|
"description": "ImageMagick version",
|
|
"type": "string"
|
|
},
|
|
"libvips": {
|
|
"description": "libvips version",
|
|
"type": "string"
|
|
},
|
|
"licensed": {
|
|
"description": "Whether the server is licensed",
|
|
"type": "boolean"
|
|
},
|
|
"nodejs": {
|
|
"description": "Node.js version",
|
|
"type": "string"
|
|
},
|
|
"repository": {
|
|
"description": "Repository name",
|
|
"type": "string"
|
|
},
|
|
"repositoryUrl": {
|
|
"description": "Repository URL",
|
|
"type": "string"
|
|
},
|
|
"sourceCommit": {
|
|
"description": "Source commit hash",
|
|
"type": "string"
|
|
},
|
|
"sourceRef": {
|
|
"description": "Source reference (branch/tag)",
|
|
"type": "string"
|
|
},
|
|
"sourceUrl": {
|
|
"description": "Source URL",
|
|
"type": "string"
|
|
},
|
|
"thirdPartyBugFeatureUrl": {
|
|
"description": "Third-party bug/feature URL",
|
|
"type": "string"
|
|
},
|
|
"thirdPartyDocumentationUrl": {
|
|
"description": "Third-party documentation URL",
|
|
"type": "string"
|
|
},
|
|
"thirdPartySourceUrl": {
|
|
"description": "Third-party source URL",
|
|
"type": "string"
|
|
},
|
|
"thirdPartySupportUrl": {
|
|
"description": "Third-party support URL",
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"description": "Server version",
|
|
"type": "string"
|
|
},
|
|
"versionUrl": {
|
|
"description": "URL to version information",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"licensed",
|
|
"version",
|
|
"versionUrl"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerApkLinksDto": {
|
|
"properties": {
|
|
"arm64v8a": {
|
|
"description": "APK download link for ARM64 v8a architecture",
|
|
"type": "string"
|
|
},
|
|
"armeabiv7a": {
|
|
"description": "APK download link for ARM EABI v7a architecture",
|
|
"type": "string"
|
|
},
|
|
"universal": {
|
|
"description": "APK download link for universal architecture",
|
|
"type": "string"
|
|
},
|
|
"x86_64": {
|
|
"description": "APK download link for x86_64 architecture",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"arm64v8a",
|
|
"armeabiv7a",
|
|
"universal",
|
|
"x86_64"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerConfigDto": {
|
|
"properties": {
|
|
"externalDomain": {
|
|
"description": "External domain URL",
|
|
"type": "string"
|
|
},
|
|
"isInitialized": {
|
|
"description": "Whether the server has been initialized",
|
|
"type": "boolean"
|
|
},
|
|
"isOnboarded": {
|
|
"description": "Whether the admin has completed onboarding",
|
|
"type": "boolean"
|
|
},
|
|
"loginPageMessage": {
|
|
"description": "Login page message",
|
|
"type": "string"
|
|
},
|
|
"maintenanceMode": {
|
|
"description": "Whether maintenance mode is active",
|
|
"type": "boolean"
|
|
},
|
|
"mapDarkStyleUrl": {
|
|
"description": "Map dark style URL",
|
|
"type": "string"
|
|
},
|
|
"mapLightStyleUrl": {
|
|
"description": "Map light style URL",
|
|
"type": "string"
|
|
},
|
|
"oauthButtonText": {
|
|
"description": "OAuth button text",
|
|
"type": "string"
|
|
},
|
|
"publicUsers": {
|
|
"description": "Whether public user registration is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"trashDays": {
|
|
"description": "Number of days before trashed assets are permanently deleted",
|
|
"type": "integer"
|
|
},
|
|
"userDeleteDelay": {
|
|
"description": "Delay in days before deleted users are permanently removed",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"externalDomain",
|
|
"isInitialized",
|
|
"isOnboarded",
|
|
"loginPageMessage",
|
|
"maintenanceMode",
|
|
"mapDarkStyleUrl",
|
|
"mapLightStyleUrl",
|
|
"oauthButtonText",
|
|
"publicUsers",
|
|
"trashDays",
|
|
"userDeleteDelay"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerFeaturesDto": {
|
|
"properties": {
|
|
"configFile": {
|
|
"description": "Whether config file is available",
|
|
"type": "boolean"
|
|
},
|
|
"duplicateDetection": {
|
|
"description": "Whether duplicate detection is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"email": {
|
|
"description": "Whether email notifications are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"facialRecognition": {
|
|
"description": "Whether facial recognition is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"importFaces": {
|
|
"description": "Whether face import is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"map": {
|
|
"description": "Whether map feature is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"oauth": {
|
|
"description": "Whether OAuth is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"oauthAutoLaunch": {
|
|
"description": "Whether OAuth auto-launch is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"ocr": {
|
|
"description": "Whether OCR is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"passwordLogin": {
|
|
"description": "Whether password login is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"reverseGeocoding": {
|
|
"description": "Whether reverse geocoding is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"search": {
|
|
"description": "Whether search is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"sidecar": {
|
|
"description": "Whether sidecar files are supported",
|
|
"type": "boolean"
|
|
},
|
|
"smartSearch": {
|
|
"description": "Whether smart search is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"trash": {
|
|
"description": "Whether trash feature is enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"configFile",
|
|
"duplicateDetection",
|
|
"email",
|
|
"facialRecognition",
|
|
"importFaces",
|
|
"map",
|
|
"oauth",
|
|
"oauthAutoLaunch",
|
|
"ocr",
|
|
"passwordLogin",
|
|
"reverseGeocoding",
|
|
"search",
|
|
"sidecar",
|
|
"smartSearch",
|
|
"trash"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerMediaTypesResponseDto": {
|
|
"properties": {
|
|
"image": {
|
|
"description": "Supported image MIME types",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"sidecar": {
|
|
"description": "Supported sidecar MIME types",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"video": {
|
|
"description": "Supported video MIME types",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"image",
|
|
"sidecar",
|
|
"video"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerPingResponse": {
|
|
"properties": {
|
|
"res": {
|
|
"example": "pong",
|
|
"readOnly": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"res"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerStatsResponseDto": {
|
|
"properties": {
|
|
"photos": {
|
|
"default": 0,
|
|
"description": "Total number of photos",
|
|
"type": "integer"
|
|
},
|
|
"usage": {
|
|
"default": 0,
|
|
"description": "Total storage usage in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"usageByUser": {
|
|
"default": [],
|
|
"example": [
|
|
{
|
|
"photos": 1,
|
|
"videos": 1,
|
|
"diskUsageRaw": 2,
|
|
"usagePhotos": 1,
|
|
"usageVideos": 1
|
|
}
|
|
],
|
|
"items": {
|
|
"$ref": "#/components/schemas/UsageByUserDto"
|
|
},
|
|
"title": "Array of usage for each user",
|
|
"type": "array"
|
|
},
|
|
"usagePhotos": {
|
|
"default": 0,
|
|
"description": "Storage usage for photos in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"usageVideos": {
|
|
"default": 0,
|
|
"description": "Storage usage for videos in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"videos": {
|
|
"default": 0,
|
|
"description": "Total number of videos",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"photos",
|
|
"usage",
|
|
"usageByUser",
|
|
"usagePhotos",
|
|
"usageVideos",
|
|
"videos"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerStorageResponseDto": {
|
|
"properties": {
|
|
"diskAvailable": {
|
|
"description": "Available disk space (human-readable format)",
|
|
"type": "string"
|
|
},
|
|
"diskAvailableRaw": {
|
|
"description": "Available disk space in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"diskSize": {
|
|
"description": "Total disk size (human-readable format)",
|
|
"type": "string"
|
|
},
|
|
"diskSizeRaw": {
|
|
"description": "Total disk size in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"diskUsagePercentage": {
|
|
"description": "Disk usage percentage (0-100)",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"diskUse": {
|
|
"description": "Used disk space (human-readable format)",
|
|
"type": "string"
|
|
},
|
|
"diskUseRaw": {
|
|
"description": "Used disk space in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"diskAvailable",
|
|
"diskAvailableRaw",
|
|
"diskSize",
|
|
"diskSizeRaw",
|
|
"diskUsagePercentage",
|
|
"diskUse",
|
|
"diskUseRaw"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerThemeDto": {
|
|
"properties": {
|
|
"customCss": {
|
|
"description": "Custom CSS for theming",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"customCss"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerVersionHistoryResponseDto": {
|
|
"properties": {
|
|
"createdAt": {
|
|
"description": "When this version was first seen",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Version history entry ID",
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"description": "Version string",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"createdAt",
|
|
"id",
|
|
"version"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServerVersionResponseDto": {
|
|
"properties": {
|
|
"major": {
|
|
"description": "Major version number",
|
|
"type": "integer"
|
|
},
|
|
"minor": {
|
|
"description": "Minor version number",
|
|
"type": "integer"
|
|
},
|
|
"patch": {
|
|
"description": "Patch version number",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"major",
|
|
"minor",
|
|
"patch"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SessionCreateDto": {
|
|
"properties": {
|
|
"deviceOS": {
|
|
"description": "Device OS",
|
|
"type": "string"
|
|
},
|
|
"deviceType": {
|
|
"description": "Device type",
|
|
"type": "string"
|
|
},
|
|
"duration": {
|
|
"description": "Session duration in seconds",
|
|
"minimum": 1,
|
|
"type": "number"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"SessionCreateResponseDto": {
|
|
"properties": {
|
|
"appVersion": {
|
|
"description": "App version",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"type": "string"
|
|
},
|
|
"current": {
|
|
"description": "Is current session",
|
|
"type": "boolean"
|
|
},
|
|
"deviceOS": {
|
|
"description": "Device OS",
|
|
"type": "string"
|
|
},
|
|
"deviceType": {
|
|
"description": "Device type",
|
|
"type": "string"
|
|
},
|
|
"expiresAt": {
|
|
"description": "Expiration date",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Session ID",
|
|
"type": "string"
|
|
},
|
|
"isPendingSyncReset": {
|
|
"description": "Is pending sync reset",
|
|
"type": "boolean"
|
|
},
|
|
"token": {
|
|
"description": "Session token",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"appVersion",
|
|
"createdAt",
|
|
"current",
|
|
"deviceOS",
|
|
"deviceType",
|
|
"id",
|
|
"isPendingSyncReset",
|
|
"token",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SessionResponseDto": {
|
|
"properties": {
|
|
"appVersion": {
|
|
"description": "App version",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"type": "string"
|
|
},
|
|
"current": {
|
|
"description": "Is current session",
|
|
"type": "boolean"
|
|
},
|
|
"deviceOS": {
|
|
"description": "Device OS",
|
|
"type": "string"
|
|
},
|
|
"deviceType": {
|
|
"description": "Device type",
|
|
"type": "string"
|
|
},
|
|
"expiresAt": {
|
|
"description": "Expiration date",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Session ID",
|
|
"type": "string"
|
|
},
|
|
"isPendingSyncReset": {
|
|
"description": "Is pending sync reset",
|
|
"type": "boolean"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"appVersion",
|
|
"createdAt",
|
|
"current",
|
|
"deviceOS",
|
|
"deviceType",
|
|
"id",
|
|
"isPendingSyncReset",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SessionUnlockDto": {
|
|
"properties": {
|
|
"password": {
|
|
"description": "User password (required if PIN code is not provided)",
|
|
"type": "string"
|
|
},
|
|
"pinCode": {
|
|
"description": "New PIN code (4-6 digits)",
|
|
"example": "123456",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"SessionUpdateDto": {
|
|
"properties": {
|
|
"isPendingSyncReset": {
|
|
"description": "Reset pending sync state",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"SetMaintenanceModeDto": {
|
|
"properties": {
|
|
"action": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MaintenanceAction"
|
|
}
|
|
],
|
|
"description": "Maintenance action"
|
|
},
|
|
"restoreBackupFilename": {
|
|
"description": "Restore backup filename",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SharedLinkCreateDto": {
|
|
"properties": {
|
|
"albumId": {
|
|
"description": "Album ID (for album sharing)",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"allowDownload": {
|
|
"default": true,
|
|
"description": "Allow downloads",
|
|
"type": "boolean"
|
|
},
|
|
"allowUpload": {
|
|
"description": "Allow uploads",
|
|
"type": "boolean"
|
|
},
|
|
"assetIds": {
|
|
"description": "Asset IDs (for individual assets)",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"description": {
|
|
"description": "Link description",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"expiresAt": {
|
|
"default": null,
|
|
"description": "Expiration date",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"description": "Link password",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"showMetadata": {
|
|
"default": true,
|
|
"description": "Show metadata",
|
|
"type": "boolean"
|
|
},
|
|
"slug": {
|
|
"description": "Custom URL slug",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SharedLinkType"
|
|
}
|
|
],
|
|
"description": "Shared link type"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SharedLinkEditDto": {
|
|
"properties": {
|
|
"allowDownload": {
|
|
"description": "Allow downloads",
|
|
"type": "boolean"
|
|
},
|
|
"allowUpload": {
|
|
"description": "Allow uploads",
|
|
"type": "boolean"
|
|
},
|
|
"changeExpiryTime": {
|
|
"description": "Whether to change the expiry time. Few clients cannot send null to set the expiryTime to never. Setting this flag and not sending expiryAt is considered as null instead. Clients that can send null values can ignore this.",
|
|
"type": "boolean"
|
|
},
|
|
"description": {
|
|
"description": "Link description",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"expiresAt": {
|
|
"description": "Expiration date",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"description": "Link password",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"showMetadata": {
|
|
"description": "Show metadata",
|
|
"type": "boolean"
|
|
},
|
|
"slug": {
|
|
"description": "Custom URL slug",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"SharedLinkResponseDto": {
|
|
"properties": {
|
|
"album": {
|
|
"$ref": "#/components/schemas/AlbumResponseDto"
|
|
},
|
|
"allowDownload": {
|
|
"description": "Allow downloads",
|
|
"type": "boolean"
|
|
},
|
|
"allowUpload": {
|
|
"description": "Allow uploads",
|
|
"type": "boolean"
|
|
},
|
|
"assets": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Link description",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"expiresAt": {
|
|
"description": "Expiration date",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Shared link ID",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"description": "Encryption key (base64url)",
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"description": "Has password",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"showMetadata": {
|
|
"description": "Show metadata",
|
|
"type": "boolean"
|
|
},
|
|
"slug": {
|
|
"description": "Custom URL slug",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"description": "Access token",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SharedLinkType"
|
|
}
|
|
],
|
|
"description": "Shared link type"
|
|
},
|
|
"userId": {
|
|
"description": "Owner user ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"allowDownload",
|
|
"allowUpload",
|
|
"assets",
|
|
"createdAt",
|
|
"description",
|
|
"expiresAt",
|
|
"id",
|
|
"key",
|
|
"password",
|
|
"showMetadata",
|
|
"slug",
|
|
"type",
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SharedLinkType": {
|
|
"description": "Shared link type",
|
|
"enum": [
|
|
"ALBUM",
|
|
"INDIVIDUAL"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"SharedLinksResponse": {
|
|
"properties": {
|
|
"enabled": {
|
|
"default": true,
|
|
"description": "Whether shared links are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"sidebarWeb": {
|
|
"default": false,
|
|
"description": "Whether shared links appear in web sidebar",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"sidebarWeb"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SharedLinksUpdate": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether shared links are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"sidebarWeb": {
|
|
"description": "Whether shared links appear in web sidebar",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"SignUpDto": {
|
|
"properties": {
|
|
"email": {
|
|
"description": "User email",
|
|
"example": "testuser@email.com",
|
|
"format": "email",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"example": "Admin",
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"description": "User password",
|
|
"example": "password",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"email",
|
|
"name",
|
|
"password"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SmartSearchDto": {
|
|
"properties": {
|
|
"albumIds": {
|
|
"description": "Filter by album IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"city": {
|
|
"description": "Filter by city name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"description": "Filter by country name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"createdAfter": {
|
|
"description": "Filter by creation date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"createdBefore": {
|
|
"description": "Filter by creation date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"deviceId": {
|
|
"description": "Device ID to filter by",
|
|
"type": "string"
|
|
},
|
|
"isEncoded": {
|
|
"description": "Filter by encoded status",
|
|
"type": "boolean"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Filter by favorite status",
|
|
"type": "boolean"
|
|
},
|
|
"isMotion": {
|
|
"description": "Filter by motion photo status",
|
|
"type": "boolean"
|
|
},
|
|
"isNotInAlbum": {
|
|
"description": "Filter assets not in any album",
|
|
"type": "boolean"
|
|
},
|
|
"isOffline": {
|
|
"description": "Filter by offline status",
|
|
"type": "boolean"
|
|
},
|
|
"language": {
|
|
"description": "Search language code",
|
|
"type": "string"
|
|
},
|
|
"lensModel": {
|
|
"description": "Filter by lens model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"libraryId": {
|
|
"description": "Library ID to filter by",
|
|
"format": "uuid",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"make": {
|
|
"description": "Filter by camera make",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "Filter by camera model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"ocr": {
|
|
"description": "Filter by OCR text content",
|
|
"type": "string"
|
|
},
|
|
"page": {
|
|
"description": "Page number",
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"personIds": {
|
|
"description": "Filter by person IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"query": {
|
|
"description": "Natural language search query",
|
|
"type": "string"
|
|
},
|
|
"queryAssetId": {
|
|
"description": "Asset ID to use as search reference",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"rating": {
|
|
"description": "Filter by rating",
|
|
"maximum": 5,
|
|
"minimum": -1,
|
|
"type": "number"
|
|
},
|
|
"size": {
|
|
"description": "Number of results to return",
|
|
"maximum": 1000,
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"state": {
|
|
"description": "Filter by state/province name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"tagIds": {
|
|
"description": "Filter by tag IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"nullable": true,
|
|
"type": "array"
|
|
},
|
|
"takenAfter": {
|
|
"description": "Filter by taken date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"takenBefore": {
|
|
"description": "Filter by taken date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"trashedAfter": {
|
|
"description": "Filter by trash date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"trashedBefore": {
|
|
"description": "Filter by trash date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetTypeEnum"
|
|
}
|
|
],
|
|
"description": "Asset type filter"
|
|
},
|
|
"updatedAfter": {
|
|
"description": "Filter by update date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"updatedBefore": {
|
|
"description": "Filter by update date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
],
|
|
"description": "Filter by visibility"
|
|
},
|
|
"withDeleted": {
|
|
"description": "Include deleted assets",
|
|
"type": "boolean"
|
|
},
|
|
"withExif": {
|
|
"description": "Include EXIF data in response",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"SourceType": {
|
|
"description": "Face detection source type",
|
|
"enum": [
|
|
"machine-learning",
|
|
"exif",
|
|
"manual"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"StackCreateDto": {
|
|
"properties": {
|
|
"assetIds": {
|
|
"description": "Asset IDs (first becomes primary, min 2)",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"minItems": 2,
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetIds"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"StackResponseDto": {
|
|
"properties": {
|
|
"assets": {
|
|
"description": "Stack assets",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"id": {
|
|
"description": "Stack ID",
|
|
"type": "string"
|
|
},
|
|
"primaryAssetId": {
|
|
"description": "Primary asset ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assets",
|
|
"id",
|
|
"primaryAssetId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"StackUpdateDto": {
|
|
"properties": {
|
|
"primaryAssetId": {
|
|
"description": "Primary asset ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"StatisticsSearchDto": {
|
|
"properties": {
|
|
"albumIds": {
|
|
"description": "Filter by album IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"city": {
|
|
"description": "Filter by city name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"description": "Filter by country name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"createdAfter": {
|
|
"description": "Filter by creation date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"createdBefore": {
|
|
"description": "Filter by creation date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Filter by description text",
|
|
"type": "string"
|
|
},
|
|
"deviceId": {
|
|
"description": "Device ID to filter by",
|
|
"type": "string"
|
|
},
|
|
"isEncoded": {
|
|
"description": "Filter by encoded status",
|
|
"type": "boolean"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Filter by favorite status",
|
|
"type": "boolean"
|
|
},
|
|
"isMotion": {
|
|
"description": "Filter by motion photo status",
|
|
"type": "boolean"
|
|
},
|
|
"isNotInAlbum": {
|
|
"description": "Filter assets not in any album",
|
|
"type": "boolean"
|
|
},
|
|
"isOffline": {
|
|
"description": "Filter by offline status",
|
|
"type": "boolean"
|
|
},
|
|
"lensModel": {
|
|
"description": "Filter by lens model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"libraryId": {
|
|
"description": "Library ID to filter by",
|
|
"format": "uuid",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"make": {
|
|
"description": "Filter by camera make",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "Filter by camera model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"ocr": {
|
|
"description": "Filter by OCR text content",
|
|
"type": "string"
|
|
},
|
|
"personIds": {
|
|
"description": "Filter by person IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"rating": {
|
|
"description": "Filter by rating",
|
|
"maximum": 5,
|
|
"minimum": -1,
|
|
"type": "number"
|
|
},
|
|
"state": {
|
|
"description": "Filter by state/province name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"tagIds": {
|
|
"description": "Filter by tag IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"nullable": true,
|
|
"type": "array"
|
|
},
|
|
"takenAfter": {
|
|
"description": "Filter by taken date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"takenBefore": {
|
|
"description": "Filter by taken date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"trashedAfter": {
|
|
"description": "Filter by trash date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"trashedBefore": {
|
|
"description": "Filter by trash date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetTypeEnum"
|
|
}
|
|
],
|
|
"description": "Asset type filter"
|
|
},
|
|
"updatedAfter": {
|
|
"description": "Filter by update date (after)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"updatedBefore": {
|
|
"description": "Filter by update date (before)",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
],
|
|
"description": "Filter by visibility"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"StorageFolder": {
|
|
"description": "Storage folder",
|
|
"enum": [
|
|
"encoded-video",
|
|
"library",
|
|
"upload",
|
|
"profile",
|
|
"thumbs",
|
|
"backups"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"SyncAckDeleteDto": {
|
|
"properties": {
|
|
"types": {
|
|
"description": "Sync entity types to delete acks for",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SyncEntityType"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"SyncAckDto": {
|
|
"properties": {
|
|
"ack": {
|
|
"description": "Acknowledgment ID",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SyncEntityType"
|
|
}
|
|
],
|
|
"description": "Sync entity type"
|
|
}
|
|
},
|
|
"required": [
|
|
"ack",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAckSetDto": {
|
|
"properties": {
|
|
"acks": {
|
|
"description": "Acknowledgment IDs (max 1000)",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 1000,
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"acks"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAckV1": {
|
|
"properties": {},
|
|
"type": "object"
|
|
},
|
|
"SyncAlbumDeleteV1": {
|
|
"properties": {
|
|
"albumId": {
|
|
"description": "Album ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAlbumToAssetDeleteV1": {
|
|
"properties": {
|
|
"albumId": {
|
|
"description": "Album ID",
|
|
"type": "string"
|
|
},
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumId",
|
|
"assetId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAlbumToAssetV1": {
|
|
"properties": {
|
|
"albumId": {
|
|
"description": "Album ID",
|
|
"type": "string"
|
|
},
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumId",
|
|
"assetId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAlbumUserDeleteV1": {
|
|
"properties": {
|
|
"albumId": {
|
|
"description": "Album ID",
|
|
"type": "string"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumId",
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAlbumUserV1": {
|
|
"properties": {
|
|
"albumId": {
|
|
"description": "Album ID",
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AlbumUserRole"
|
|
}
|
|
],
|
|
"description": "Album user role"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumId",
|
|
"role",
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAlbumV1": {
|
|
"properties": {
|
|
"createdAt": {
|
|
"description": "Created at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Album description",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Album ID",
|
|
"type": "string"
|
|
},
|
|
"isActivityEnabled": {
|
|
"description": "Is activity enabled",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "Album name",
|
|
"type": "string"
|
|
},
|
|
"order": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetOrder"
|
|
}
|
|
]
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner ID",
|
|
"type": "string"
|
|
},
|
|
"thumbnailAssetId": {
|
|
"description": "Thumbnail asset ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Updated at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"createdAt",
|
|
"description",
|
|
"id",
|
|
"isActivityEnabled",
|
|
"name",
|
|
"order",
|
|
"ownerId",
|
|
"thumbnailAssetId",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAssetDeleteV1": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAssetExifV1": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"city": {
|
|
"description": "City",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"description": "Country",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"dateTimeOriginal": {
|
|
"description": "Date time original",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Description",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"exifImageHeight": {
|
|
"description": "Exif image height",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"exifImageWidth": {
|
|
"description": "Exif image width",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"exposureTime": {
|
|
"description": "Exposure time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"fNumber": {
|
|
"description": "F number",
|
|
"format": "double",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"fileSizeInByte": {
|
|
"description": "File size in byte",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"focalLength": {
|
|
"description": "Focal length",
|
|
"format": "double",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"fps": {
|
|
"description": "FPS",
|
|
"format": "double",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"iso": {
|
|
"description": "ISO",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"latitude": {
|
|
"description": "Latitude",
|
|
"format": "double",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"lensModel": {
|
|
"description": "Lens model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"longitude": {
|
|
"description": "Longitude",
|
|
"format": "double",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"make": {
|
|
"description": "Make",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "Model",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"modifyDate": {
|
|
"description": "Modify date",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"orientation": {
|
|
"description": "Orientation",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"profileDescription": {
|
|
"description": "Profile description",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"projectionType": {
|
|
"description": "Projection type",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"rating": {
|
|
"description": "Rating",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"state": {
|
|
"description": "State",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"timeZone": {
|
|
"description": "Time zone",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"city",
|
|
"country",
|
|
"dateTimeOriginal",
|
|
"description",
|
|
"exifImageHeight",
|
|
"exifImageWidth",
|
|
"exposureTime",
|
|
"fNumber",
|
|
"fileSizeInByte",
|
|
"focalLength",
|
|
"fps",
|
|
"iso",
|
|
"latitude",
|
|
"lensModel",
|
|
"longitude",
|
|
"make",
|
|
"model",
|
|
"modifyDate",
|
|
"orientation",
|
|
"profileDescription",
|
|
"projectionType",
|
|
"rating",
|
|
"state",
|
|
"timeZone"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAssetFaceDeleteV1": {
|
|
"properties": {
|
|
"assetFaceId": {
|
|
"description": "Asset face ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetFaceId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAssetFaceV1": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"boundingBoxX1": {
|
|
"type": "integer"
|
|
},
|
|
"boundingBoxX2": {
|
|
"type": "integer"
|
|
},
|
|
"boundingBoxY1": {
|
|
"type": "integer"
|
|
},
|
|
"boundingBoxY2": {
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"description": "Asset face ID",
|
|
"type": "string"
|
|
},
|
|
"imageHeight": {
|
|
"type": "integer"
|
|
},
|
|
"imageWidth": {
|
|
"type": "integer"
|
|
},
|
|
"personId": {
|
|
"description": "Person ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"sourceType": {
|
|
"description": "Source type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"boundingBoxX1",
|
|
"boundingBoxX2",
|
|
"boundingBoxY1",
|
|
"boundingBoxY2",
|
|
"id",
|
|
"imageHeight",
|
|
"imageWidth",
|
|
"personId",
|
|
"sourceType"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAssetMetadataDeleteV1": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"description": "Key",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"key"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAssetMetadataV1": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"description": "Key",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"description": "Value",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"key",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAssetV1": {
|
|
"properties": {
|
|
"checksum": {
|
|
"description": "Checksum",
|
|
"type": "string"
|
|
},
|
|
"deletedAt": {
|
|
"description": "Deleted at",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"duration": {
|
|
"description": "Duration",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"fileCreatedAt": {
|
|
"description": "File created at",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"fileModifiedAt": {
|
|
"description": "File modified at",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"height": {
|
|
"description": "Asset height",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"isEdited": {
|
|
"description": "Is edited",
|
|
"type": "boolean"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Is favorite",
|
|
"type": "boolean"
|
|
},
|
|
"libraryId": {
|
|
"description": "Library ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"livePhotoVideoId": {
|
|
"description": "Live photo video ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"localDateTime": {
|
|
"description": "Local date time",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"originalFileName": {
|
|
"description": "Original file name",
|
|
"type": "string"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner ID",
|
|
"type": "string"
|
|
},
|
|
"stackId": {
|
|
"description": "Stack ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"thumbhash": {
|
|
"description": "Thumbhash",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetTypeEnum"
|
|
}
|
|
],
|
|
"description": "Asset type"
|
|
},
|
|
"visibility": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
],
|
|
"description": "Asset visibility"
|
|
},
|
|
"width": {
|
|
"description": "Asset width",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"checksum",
|
|
"deletedAt",
|
|
"duration",
|
|
"fileCreatedAt",
|
|
"fileModifiedAt",
|
|
"height",
|
|
"id",
|
|
"isEdited",
|
|
"isFavorite",
|
|
"libraryId",
|
|
"livePhotoVideoId",
|
|
"localDateTime",
|
|
"originalFileName",
|
|
"ownerId",
|
|
"stackId",
|
|
"thumbhash",
|
|
"type",
|
|
"visibility",
|
|
"width"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncAuthUserV1": {
|
|
"properties": {
|
|
"avatarColor": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserAvatarColor"
|
|
}
|
|
],
|
|
"description": "User avatar color",
|
|
"nullable": true
|
|
},
|
|
"deletedAt": {
|
|
"description": "User deleted at",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"description": "User email",
|
|
"type": "string"
|
|
},
|
|
"hasProfileImage": {
|
|
"description": "User has profile image",
|
|
"type": "boolean"
|
|
},
|
|
"id": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
},
|
|
"isAdmin": {
|
|
"description": "User is admin",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"oauthId": {
|
|
"description": "User OAuth ID",
|
|
"type": "string"
|
|
},
|
|
"pinCode": {
|
|
"description": "User pin code",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"profileChangedAt": {
|
|
"description": "User profile changed at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"quotaSizeInBytes": {
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"quotaUsageInBytes": {
|
|
"type": "integer"
|
|
},
|
|
"storageLabel": {
|
|
"description": "User storage label",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"avatarColor",
|
|
"deletedAt",
|
|
"email",
|
|
"hasProfileImage",
|
|
"id",
|
|
"isAdmin",
|
|
"name",
|
|
"oauthId",
|
|
"pinCode",
|
|
"profileChangedAt",
|
|
"quotaSizeInBytes",
|
|
"quotaUsageInBytes",
|
|
"storageLabel"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncCompleteV1": {
|
|
"properties": {},
|
|
"type": "object"
|
|
},
|
|
"SyncEntityType": {
|
|
"description": "Sync entity type",
|
|
"enum": [
|
|
"AuthUserV1",
|
|
"UserV1",
|
|
"UserDeleteV1",
|
|
"AssetV1",
|
|
"AssetDeleteV1",
|
|
"AssetExifV1",
|
|
"AssetMetadataV1",
|
|
"AssetMetadataDeleteV1",
|
|
"PartnerV1",
|
|
"PartnerDeleteV1",
|
|
"PartnerAssetV1",
|
|
"PartnerAssetBackfillV1",
|
|
"PartnerAssetDeleteV1",
|
|
"PartnerAssetExifV1",
|
|
"PartnerAssetExifBackfillV1",
|
|
"PartnerStackBackfillV1",
|
|
"PartnerStackDeleteV1",
|
|
"PartnerStackV1",
|
|
"AlbumV1",
|
|
"AlbumDeleteV1",
|
|
"AlbumUserV1",
|
|
"AlbumUserBackfillV1",
|
|
"AlbumUserDeleteV1",
|
|
"AlbumAssetCreateV1",
|
|
"AlbumAssetUpdateV1",
|
|
"AlbumAssetBackfillV1",
|
|
"AlbumAssetExifCreateV1",
|
|
"AlbumAssetExifUpdateV1",
|
|
"AlbumAssetExifBackfillV1",
|
|
"AlbumToAssetV1",
|
|
"AlbumToAssetDeleteV1",
|
|
"AlbumToAssetBackfillV1",
|
|
"MemoryV1",
|
|
"MemoryDeleteV1",
|
|
"MemoryToAssetV1",
|
|
"MemoryToAssetDeleteV1",
|
|
"StackV1",
|
|
"StackDeleteV1",
|
|
"PersonV1",
|
|
"PersonDeleteV1",
|
|
"AssetFaceV1",
|
|
"AssetFaceDeleteV1",
|
|
"UserMetadataV1",
|
|
"UserMetadataDeleteV1",
|
|
"SyncAckV1",
|
|
"SyncResetV1",
|
|
"SyncCompleteV1"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"SyncMemoryAssetDeleteV1": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"memoryId": {
|
|
"description": "Memory ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"memoryId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncMemoryAssetV1": {
|
|
"properties": {
|
|
"assetId": {
|
|
"description": "Asset ID",
|
|
"type": "string"
|
|
},
|
|
"memoryId": {
|
|
"description": "Memory ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetId",
|
|
"memoryId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncMemoryDeleteV1": {
|
|
"properties": {
|
|
"memoryId": {
|
|
"description": "Memory ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"memoryId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncMemoryV1": {
|
|
"properties": {
|
|
"createdAt": {
|
|
"description": "Created at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"data": {
|
|
"description": "Data",
|
|
"type": "object"
|
|
},
|
|
"deletedAt": {
|
|
"description": "Deleted at",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"hideAt": {
|
|
"description": "Hide at",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Memory ID",
|
|
"type": "string"
|
|
},
|
|
"isSaved": {
|
|
"description": "Is saved",
|
|
"type": "boolean"
|
|
},
|
|
"memoryAt": {
|
|
"description": "Memory at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner ID",
|
|
"type": "string"
|
|
},
|
|
"seenAt": {
|
|
"description": "Seen at",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"showAt": {
|
|
"description": "Show at",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MemoryType"
|
|
}
|
|
],
|
|
"description": "Memory type"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Updated at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"createdAt",
|
|
"data",
|
|
"deletedAt",
|
|
"hideAt",
|
|
"id",
|
|
"isSaved",
|
|
"memoryAt",
|
|
"ownerId",
|
|
"seenAt",
|
|
"showAt",
|
|
"type",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncPartnerDeleteV1": {
|
|
"properties": {
|
|
"sharedById": {
|
|
"description": "Shared by ID",
|
|
"type": "string"
|
|
},
|
|
"sharedWithId": {
|
|
"description": "Shared with ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"sharedById",
|
|
"sharedWithId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncPartnerV1": {
|
|
"properties": {
|
|
"inTimeline": {
|
|
"description": "In timeline",
|
|
"type": "boolean"
|
|
},
|
|
"sharedById": {
|
|
"description": "Shared by ID",
|
|
"type": "string"
|
|
},
|
|
"sharedWithId": {
|
|
"description": "Shared with ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"inTimeline",
|
|
"sharedById",
|
|
"sharedWithId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncPersonDeleteV1": {
|
|
"properties": {
|
|
"personId": {
|
|
"description": "Person ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"personId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncPersonV1": {
|
|
"properties": {
|
|
"birthDate": {
|
|
"description": "Birth date",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"color": {
|
|
"description": "Color",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "Created at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"faceAssetId": {
|
|
"description": "Face asset ID",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Person ID",
|
|
"type": "string"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Is favorite",
|
|
"type": "boolean"
|
|
},
|
|
"isHidden": {
|
|
"description": "Is hidden",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "Person name",
|
|
"type": "string"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner ID",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Updated at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"birthDate",
|
|
"color",
|
|
"createdAt",
|
|
"faceAssetId",
|
|
"id",
|
|
"isFavorite",
|
|
"isHidden",
|
|
"name",
|
|
"ownerId",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncRequestType": {
|
|
"description": "Sync request types",
|
|
"enum": [
|
|
"AlbumsV1",
|
|
"AlbumUsersV1",
|
|
"AlbumToAssetsV1",
|
|
"AlbumAssetsV1",
|
|
"AlbumAssetExifsV1",
|
|
"AssetsV1",
|
|
"AssetExifsV1",
|
|
"AssetMetadataV1",
|
|
"AuthUsersV1",
|
|
"MemoriesV1",
|
|
"MemoryToAssetsV1",
|
|
"PartnersV1",
|
|
"PartnerAssetsV1",
|
|
"PartnerAssetExifsV1",
|
|
"PartnerStacksV1",
|
|
"StacksV1",
|
|
"UsersV1",
|
|
"PeopleV1",
|
|
"AssetFacesV1",
|
|
"UserMetadataV1"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"SyncResetV1": {
|
|
"properties": {},
|
|
"type": "object"
|
|
},
|
|
"SyncStackDeleteV1": {
|
|
"properties": {
|
|
"stackId": {
|
|
"description": "Stack ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"stackId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncStackV1": {
|
|
"properties": {
|
|
"createdAt": {
|
|
"description": "Created at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Stack ID",
|
|
"type": "string"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner ID",
|
|
"type": "string"
|
|
},
|
|
"primaryAssetId": {
|
|
"description": "Primary asset ID",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Updated at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"createdAt",
|
|
"id",
|
|
"ownerId",
|
|
"primaryAssetId",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncStreamDto": {
|
|
"properties": {
|
|
"reset": {
|
|
"description": "Reset sync state",
|
|
"type": "boolean"
|
|
},
|
|
"types": {
|
|
"description": "Sync request types",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SyncRequestType"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"types"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncUserDeleteV1": {
|
|
"properties": {
|
|
"userId": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncUserMetadataDeleteV1": {
|
|
"properties": {
|
|
"key": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserMetadataKey"
|
|
}
|
|
],
|
|
"description": "User metadata key"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"userId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncUserMetadataV1": {
|
|
"properties": {
|
|
"key": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserMetadataKey"
|
|
}
|
|
],
|
|
"description": "User metadata key"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"description": "User metadata value",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"userId",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SyncUserV1": {
|
|
"properties": {
|
|
"avatarColor": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserAvatarColor"
|
|
}
|
|
],
|
|
"description": "User avatar color",
|
|
"nullable": true
|
|
},
|
|
"deletedAt": {
|
|
"description": "User deleted at",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"description": "User email",
|
|
"type": "string"
|
|
},
|
|
"hasProfileImage": {
|
|
"description": "User has profile image",
|
|
"type": "boolean"
|
|
},
|
|
"id": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"profileChangedAt": {
|
|
"description": "User profile changed at",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"avatarColor",
|
|
"deletedAt",
|
|
"email",
|
|
"hasProfileImage",
|
|
"id",
|
|
"name",
|
|
"profileChangedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigBackupsDto": {
|
|
"properties": {
|
|
"database": {
|
|
"$ref": "#/components/schemas/DatabaseBackupConfig"
|
|
}
|
|
},
|
|
"required": [
|
|
"database"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigDto": {
|
|
"properties": {
|
|
"backup": {
|
|
"$ref": "#/components/schemas/SystemConfigBackupsDto"
|
|
},
|
|
"ffmpeg": {
|
|
"$ref": "#/components/schemas/SystemConfigFFmpegDto"
|
|
},
|
|
"image": {
|
|
"$ref": "#/components/schemas/SystemConfigImageDto"
|
|
},
|
|
"job": {
|
|
"$ref": "#/components/schemas/SystemConfigJobDto"
|
|
},
|
|
"library": {
|
|
"$ref": "#/components/schemas/SystemConfigLibraryDto"
|
|
},
|
|
"logging": {
|
|
"$ref": "#/components/schemas/SystemConfigLoggingDto"
|
|
},
|
|
"machineLearning": {
|
|
"$ref": "#/components/schemas/SystemConfigMachineLearningDto"
|
|
},
|
|
"map": {
|
|
"$ref": "#/components/schemas/SystemConfigMapDto"
|
|
},
|
|
"metadata": {
|
|
"$ref": "#/components/schemas/SystemConfigMetadataDto"
|
|
},
|
|
"newVersionCheck": {
|
|
"$ref": "#/components/schemas/SystemConfigNewVersionCheckDto"
|
|
},
|
|
"nightlyTasks": {
|
|
"$ref": "#/components/schemas/SystemConfigNightlyTasksDto"
|
|
},
|
|
"notifications": {
|
|
"$ref": "#/components/schemas/SystemConfigNotificationsDto"
|
|
},
|
|
"oauth": {
|
|
"$ref": "#/components/schemas/SystemConfigOAuthDto"
|
|
},
|
|
"passwordLogin": {
|
|
"$ref": "#/components/schemas/SystemConfigPasswordLoginDto"
|
|
},
|
|
"reverseGeocoding": {
|
|
"$ref": "#/components/schemas/SystemConfigReverseGeocodingDto"
|
|
},
|
|
"server": {
|
|
"$ref": "#/components/schemas/SystemConfigServerDto"
|
|
},
|
|
"storageTemplate": {
|
|
"$ref": "#/components/schemas/SystemConfigStorageTemplateDto"
|
|
},
|
|
"templates": {
|
|
"$ref": "#/components/schemas/SystemConfigTemplatesDto"
|
|
},
|
|
"theme": {
|
|
"$ref": "#/components/schemas/SystemConfigThemeDto"
|
|
},
|
|
"trash": {
|
|
"$ref": "#/components/schemas/SystemConfigTrashDto"
|
|
},
|
|
"user": {
|
|
"$ref": "#/components/schemas/SystemConfigUserDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"backup",
|
|
"ffmpeg",
|
|
"image",
|
|
"job",
|
|
"library",
|
|
"logging",
|
|
"machineLearning",
|
|
"map",
|
|
"metadata",
|
|
"newVersionCheck",
|
|
"nightlyTasks",
|
|
"notifications",
|
|
"oauth",
|
|
"passwordLogin",
|
|
"reverseGeocoding",
|
|
"server",
|
|
"storageTemplate",
|
|
"templates",
|
|
"theme",
|
|
"trash",
|
|
"user"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigFFmpegDto": {
|
|
"properties": {
|
|
"accel": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TranscodeHWAccel"
|
|
}
|
|
],
|
|
"description": "Transcode hardware acceleration"
|
|
},
|
|
"accelDecode": {
|
|
"description": "Accelerated decode",
|
|
"type": "boolean"
|
|
},
|
|
"acceptedAudioCodecs": {
|
|
"description": "Accepted audio codecs",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AudioCodec"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"acceptedContainers": {
|
|
"description": "Accepted containers",
|
|
"items": {
|
|
"$ref": "#/components/schemas/VideoContainer"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"acceptedVideoCodecs": {
|
|
"description": "Accepted video codecs",
|
|
"items": {
|
|
"$ref": "#/components/schemas/VideoCodec"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"bframes": {
|
|
"description": "B-frames",
|
|
"maximum": 16,
|
|
"minimum": -1,
|
|
"type": "integer"
|
|
},
|
|
"cqMode": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CQMode"
|
|
}
|
|
],
|
|
"description": "CQ mode"
|
|
},
|
|
"crf": {
|
|
"description": "CRF",
|
|
"maximum": 51,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"gopSize": {
|
|
"description": "GOP size",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"maxBitrate": {
|
|
"description": "Max bitrate",
|
|
"type": "string"
|
|
},
|
|
"preferredHwDevice": {
|
|
"description": "Preferred hardware device",
|
|
"type": "string"
|
|
},
|
|
"preset": {
|
|
"description": "Preset",
|
|
"type": "string"
|
|
},
|
|
"refs": {
|
|
"description": "References",
|
|
"maximum": 6,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"targetAudioCodec": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AudioCodec"
|
|
}
|
|
],
|
|
"description": "Target audio codec"
|
|
},
|
|
"targetResolution": {
|
|
"description": "Target resolution",
|
|
"type": "string"
|
|
},
|
|
"targetVideoCodec": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/VideoCodec"
|
|
}
|
|
],
|
|
"description": "Target video codec"
|
|
},
|
|
"temporalAQ": {
|
|
"description": "Temporal AQ",
|
|
"type": "boolean"
|
|
},
|
|
"threads": {
|
|
"description": "Threads",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"tonemap": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ToneMapping"
|
|
}
|
|
],
|
|
"description": "Tone mapping"
|
|
},
|
|
"transcode": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TranscodePolicy"
|
|
}
|
|
],
|
|
"description": "Transcode policy"
|
|
},
|
|
"twoPass": {
|
|
"description": "Two pass",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"accel",
|
|
"accelDecode",
|
|
"acceptedAudioCodecs",
|
|
"acceptedContainers",
|
|
"acceptedVideoCodecs",
|
|
"bframes",
|
|
"cqMode",
|
|
"crf",
|
|
"gopSize",
|
|
"maxBitrate",
|
|
"preferredHwDevice",
|
|
"preset",
|
|
"refs",
|
|
"targetAudioCodec",
|
|
"targetResolution",
|
|
"targetVideoCodec",
|
|
"temporalAQ",
|
|
"threads",
|
|
"tonemap",
|
|
"transcode",
|
|
"twoPass"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigFacesDto": {
|
|
"properties": {
|
|
"import": {
|
|
"description": "Import",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"import"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigGeneratedFullsizeImageDto": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"format": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ImageFormat"
|
|
}
|
|
],
|
|
"description": "Image format"
|
|
},
|
|
"progressive": {
|
|
"default": false,
|
|
"description": "Progressive",
|
|
"type": "boolean"
|
|
},
|
|
"quality": {
|
|
"description": "Quality",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"format",
|
|
"quality"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigGeneratedImageDto": {
|
|
"properties": {
|
|
"format": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ImageFormat"
|
|
}
|
|
],
|
|
"description": "Image format"
|
|
},
|
|
"progressive": {
|
|
"default": false,
|
|
"type": "boolean"
|
|
},
|
|
"quality": {
|
|
"description": "Quality",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"size": {
|
|
"description": "Size",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"format",
|
|
"quality",
|
|
"size"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigImageDto": {
|
|
"properties": {
|
|
"colorspace": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Colorspace"
|
|
}
|
|
],
|
|
"description": "Colorspace"
|
|
},
|
|
"extractEmbedded": {
|
|
"description": "Extract embedded",
|
|
"type": "boolean"
|
|
},
|
|
"fullsize": {
|
|
"$ref": "#/components/schemas/SystemConfigGeneratedFullsizeImageDto"
|
|
},
|
|
"preview": {
|
|
"$ref": "#/components/schemas/SystemConfigGeneratedImageDto"
|
|
},
|
|
"thumbnail": {
|
|
"$ref": "#/components/schemas/SystemConfigGeneratedImageDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"colorspace",
|
|
"extractEmbedded",
|
|
"fullsize",
|
|
"preview",
|
|
"thumbnail"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigJobDto": {
|
|
"properties": {
|
|
"backgroundTask": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"editor": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"faceDetection": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"library": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"metadataExtraction": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"migration": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"notifications": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"ocr": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"search": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"sidecar": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"smartSearch": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"thumbnailGeneration": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"videoConversion": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
},
|
|
"workflow": {
|
|
"$ref": "#/components/schemas/JobSettingsDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"backgroundTask",
|
|
"editor",
|
|
"faceDetection",
|
|
"library",
|
|
"metadataExtraction",
|
|
"migration",
|
|
"notifications",
|
|
"ocr",
|
|
"search",
|
|
"sidecar",
|
|
"smartSearch",
|
|
"thumbnailGeneration",
|
|
"videoConversion",
|
|
"workflow"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigLibraryDto": {
|
|
"properties": {
|
|
"scan": {
|
|
"$ref": "#/components/schemas/SystemConfigLibraryScanDto"
|
|
},
|
|
"watch": {
|
|
"$ref": "#/components/schemas/SystemConfigLibraryWatchDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"scan",
|
|
"watch"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigLibraryScanDto": {
|
|
"properties": {
|
|
"cronExpression": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"cronExpression",
|
|
"enabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigLibraryWatchDto": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigLoggingDto": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"level": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LogLevel"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"level"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigMachineLearningDto": {
|
|
"properties": {
|
|
"availabilityChecks": {
|
|
"$ref": "#/components/schemas/MachineLearningAvailabilityChecksDto"
|
|
},
|
|
"clip": {
|
|
"$ref": "#/components/schemas/CLIPConfig"
|
|
},
|
|
"duplicateDetection": {
|
|
"$ref": "#/components/schemas/DuplicateDetectionConfig"
|
|
},
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"facialRecognition": {
|
|
"$ref": "#/components/schemas/FacialRecognitionConfig"
|
|
},
|
|
"ocr": {
|
|
"$ref": "#/components/schemas/OcrConfig"
|
|
},
|
|
"urls": {
|
|
"format": "uri",
|
|
"items": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"availabilityChecks",
|
|
"clip",
|
|
"duplicateDetection",
|
|
"enabled",
|
|
"facialRecognition",
|
|
"ocr",
|
|
"urls"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigMapDto": {
|
|
"properties": {
|
|
"darkStyle": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"lightStyle": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"darkStyle",
|
|
"enabled",
|
|
"lightStyle"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigMetadataDto": {
|
|
"properties": {
|
|
"faces": {
|
|
"$ref": "#/components/schemas/SystemConfigFacesDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"faces"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigNewVersionCheckDto": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigNightlyTasksDto": {
|
|
"properties": {
|
|
"clusterNewFaces": {
|
|
"description": "Cluster new faces",
|
|
"type": "boolean"
|
|
},
|
|
"databaseCleanup": {
|
|
"description": "Database cleanup",
|
|
"type": "boolean"
|
|
},
|
|
"generateMemories": {
|
|
"description": "Generate memories",
|
|
"type": "boolean"
|
|
},
|
|
"missingThumbnails": {
|
|
"description": "Missing thumbnails",
|
|
"type": "boolean"
|
|
},
|
|
"startTime": {
|
|
"type": "string"
|
|
},
|
|
"syncQuotaUsage": {
|
|
"description": "Sync quota usage",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"clusterNewFaces",
|
|
"databaseCleanup",
|
|
"generateMemories",
|
|
"missingThumbnails",
|
|
"startTime",
|
|
"syncQuotaUsage"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigNotificationsDto": {
|
|
"properties": {
|
|
"smtp": {
|
|
"$ref": "#/components/schemas/SystemConfigSmtpDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"smtp"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigOAuthDto": {
|
|
"properties": {
|
|
"autoLaunch": {
|
|
"description": "Auto launch",
|
|
"type": "boolean"
|
|
},
|
|
"autoRegister": {
|
|
"description": "Auto register",
|
|
"type": "boolean"
|
|
},
|
|
"buttonText": {
|
|
"description": "Button text",
|
|
"type": "string"
|
|
},
|
|
"clientId": {
|
|
"description": "Client ID",
|
|
"type": "string"
|
|
},
|
|
"clientSecret": {
|
|
"description": "Client secret",
|
|
"type": "string"
|
|
},
|
|
"defaultStorageQuota": {
|
|
"description": "Default storage quota",
|
|
"format": "int64",
|
|
"minimum": 0,
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"issuerUrl": {
|
|
"description": "Issuer URL",
|
|
"type": "string"
|
|
},
|
|
"mobileOverrideEnabled": {
|
|
"description": "Mobile override enabled",
|
|
"type": "boolean"
|
|
},
|
|
"mobileRedirectUri": {
|
|
"description": "Mobile redirect URI",
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"profileSigningAlgorithm": {
|
|
"description": "Profile signing algorithm",
|
|
"type": "string"
|
|
},
|
|
"roleClaim": {
|
|
"description": "Role claim",
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"description": "Scope",
|
|
"type": "string"
|
|
},
|
|
"signingAlgorithm": {
|
|
"type": "string"
|
|
},
|
|
"storageLabelClaim": {
|
|
"description": "Storage label claim",
|
|
"type": "string"
|
|
},
|
|
"storageQuotaClaim": {
|
|
"description": "Storage quota claim",
|
|
"type": "string"
|
|
},
|
|
"timeout": {
|
|
"description": "Timeout",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"tokenEndpointAuthMethod": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/OAuthTokenEndpointAuthMethod"
|
|
}
|
|
],
|
|
"description": "Token endpoint auth method"
|
|
}
|
|
},
|
|
"required": [
|
|
"autoLaunch",
|
|
"autoRegister",
|
|
"buttonText",
|
|
"clientId",
|
|
"clientSecret",
|
|
"defaultStorageQuota",
|
|
"enabled",
|
|
"issuerUrl",
|
|
"mobileOverrideEnabled",
|
|
"mobileRedirectUri",
|
|
"profileSigningAlgorithm",
|
|
"roleClaim",
|
|
"scope",
|
|
"signingAlgorithm",
|
|
"storageLabelClaim",
|
|
"storageQuotaClaim",
|
|
"timeout",
|
|
"tokenEndpointAuthMethod"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigPasswordLoginDto": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigReverseGeocodingDto": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigServerDto": {
|
|
"properties": {
|
|
"externalDomain": {
|
|
"description": "External domain",
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"loginPageMessage": {
|
|
"description": "Login page message",
|
|
"type": "string"
|
|
},
|
|
"publicUsers": {
|
|
"description": "Public users",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"externalDomain",
|
|
"loginPageMessage",
|
|
"publicUsers"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigSmtpDto": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether SMTP email notifications are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"from": {
|
|
"description": "Email address to send from",
|
|
"type": "string"
|
|
},
|
|
"replyTo": {
|
|
"description": "Email address for replies",
|
|
"type": "string"
|
|
},
|
|
"transport": {
|
|
"$ref": "#/components/schemas/SystemConfigSmtpTransportDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"from",
|
|
"replyTo",
|
|
"transport"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigSmtpTransportDto": {
|
|
"properties": {
|
|
"host": {
|
|
"description": "SMTP server hostname",
|
|
"type": "string"
|
|
},
|
|
"ignoreCert": {
|
|
"description": "Whether to ignore SSL certificate errors",
|
|
"type": "boolean"
|
|
},
|
|
"password": {
|
|
"description": "SMTP password",
|
|
"type": "string"
|
|
},
|
|
"port": {
|
|
"description": "SMTP server port",
|
|
"maximum": 65535,
|
|
"minimum": 0,
|
|
"type": "number"
|
|
},
|
|
"secure": {
|
|
"description": "Whether to use secure connection (TLS/SSL)",
|
|
"type": "boolean"
|
|
},
|
|
"username": {
|
|
"description": "SMTP username",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"host",
|
|
"ignoreCert",
|
|
"password",
|
|
"port",
|
|
"secure",
|
|
"username"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigStorageTemplateDto": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"hashVerificationEnabled": {
|
|
"description": "Hash verification enabled",
|
|
"type": "boolean"
|
|
},
|
|
"template": {
|
|
"description": "Template",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"hashVerificationEnabled",
|
|
"template"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigTemplateEmailsDto": {
|
|
"properties": {
|
|
"albumInviteTemplate": {
|
|
"type": "string"
|
|
},
|
|
"albumUpdateTemplate": {
|
|
"type": "string"
|
|
},
|
|
"welcomeTemplate": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"albumInviteTemplate",
|
|
"albumUpdateTemplate",
|
|
"welcomeTemplate"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigTemplateStorageOptionDto": {
|
|
"properties": {
|
|
"dayOptions": {
|
|
"description": "Available day format options for storage template",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"hourOptions": {
|
|
"description": "Available hour format options for storage template",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"minuteOptions": {
|
|
"description": "Available minute format options for storage template",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"monthOptions": {
|
|
"description": "Available month format options for storage template",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"presetOptions": {
|
|
"description": "Available preset template options",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"secondOptions": {
|
|
"description": "Available second format options for storage template",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"weekOptions": {
|
|
"description": "Available week format options for storage template",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"yearOptions": {
|
|
"description": "Available year format options for storage template",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"dayOptions",
|
|
"hourOptions",
|
|
"minuteOptions",
|
|
"monthOptions",
|
|
"presetOptions",
|
|
"secondOptions",
|
|
"weekOptions",
|
|
"yearOptions"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigTemplatesDto": {
|
|
"properties": {
|
|
"email": {
|
|
"$ref": "#/components/schemas/SystemConfigTemplateEmailsDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"email"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigThemeDto": {
|
|
"properties": {
|
|
"customCss": {
|
|
"description": "Custom CSS for theming",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"customCss"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigTrashDto": {
|
|
"properties": {
|
|
"days": {
|
|
"description": "Days",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"enabled": {
|
|
"description": "Enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"days",
|
|
"enabled"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SystemConfigUserDto": {
|
|
"properties": {
|
|
"deleteDelay": {
|
|
"description": "Delete delay",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"deleteDelay"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TagBulkAssetsDto": {
|
|
"properties": {
|
|
"assetIds": {
|
|
"description": "Asset IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"tagIds": {
|
|
"description": "Tag IDs",
|
|
"items": {
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"assetIds",
|
|
"tagIds"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TagBulkAssetsResponseDto": {
|
|
"properties": {
|
|
"count": {
|
|
"description": "Number of assets tagged",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"count"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TagCreateDto": {
|
|
"properties": {
|
|
"color": {
|
|
"description": "Tag color (hex)",
|
|
"pattern": "^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Tag name",
|
|
"type": "string"
|
|
},
|
|
"parentId": {
|
|
"description": "Parent tag ID",
|
|
"format": "uuid",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TagResponseDto": {
|
|
"properties": {
|
|
"color": {
|
|
"description": "Tag color (hex)",
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Tag ID",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Tag name",
|
|
"type": "string"
|
|
},
|
|
"parentId": {
|
|
"description": "Parent tag ID",
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"description": "Tag value (full path)",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"createdAt",
|
|
"id",
|
|
"name",
|
|
"updatedAt",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TagUpdateDto": {
|
|
"properties": {
|
|
"color": {
|
|
"description": "Tag color (hex)",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"TagUpsertDto": {
|
|
"properties": {
|
|
"tags": {
|
|
"description": "Tag names to upsert",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"tags"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TagsResponse": {
|
|
"properties": {
|
|
"enabled": {
|
|
"default": true,
|
|
"description": "Whether tags are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"sidebarWeb": {
|
|
"default": true,
|
|
"description": "Whether tags appear in web sidebar",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"sidebarWeb"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TagsUpdate": {
|
|
"properties": {
|
|
"enabled": {
|
|
"description": "Whether tags are enabled",
|
|
"type": "boolean"
|
|
},
|
|
"sidebarWeb": {
|
|
"description": "Whether tags appear in web sidebar",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"TemplateDto": {
|
|
"properties": {
|
|
"template": {
|
|
"description": "Template name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"template"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TemplateResponseDto": {
|
|
"properties": {
|
|
"html": {
|
|
"description": "Template HTML content",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Template name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"html",
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TestEmailResponseDto": {
|
|
"properties": {
|
|
"messageId": {
|
|
"description": "Email message ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"messageId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TimeBucketAssetResponseDto": {
|
|
"properties": {
|
|
"city": {
|
|
"description": "Array of city names extracted from EXIF GPS data",
|
|
"items": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"country": {
|
|
"description": "Array of country names extracted from EXIF GPS data",
|
|
"items": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"duration": {
|
|
"description": "Array of video durations in HH:MM:SS format (null for images)",
|
|
"items": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"fileCreatedAt": {
|
|
"description": "Array of file creation timestamps in UTC",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"id": {
|
|
"description": "Array of asset IDs in the time bucket",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Array indicating whether each asset is favorited",
|
|
"items": {
|
|
"type": "boolean"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"isImage": {
|
|
"description": "Array indicating whether each asset is an image (false for videos)",
|
|
"items": {
|
|
"type": "boolean"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"isTrashed": {
|
|
"description": "Array indicating whether each asset is in the trash",
|
|
"items": {
|
|
"type": "boolean"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"latitude": {
|
|
"description": "Array of latitude coordinates extracted from EXIF GPS data",
|
|
"items": {
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"livePhotoVideoId": {
|
|
"description": "Array of live photo video asset IDs (null for non-live photos)",
|
|
"items": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"localOffsetHours": {
|
|
"description": "Array of UTC offset hours at the time each photo was taken. Positive values are east of UTC, negative values are west of UTC. Values may be fractional (e.g., 5.5 for +05:30, -9.75 for -09:45). Applying this offset to 'fileCreatedAt' will give you the time the photo was taken from the photographer's perspective.",
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"longitude": {
|
|
"description": "Array of longitude coordinates extracted from EXIF GPS data",
|
|
"items": {
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"ownerId": {
|
|
"description": "Array of owner IDs for each asset",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"projectionType": {
|
|
"description": "Array of projection types for 360° content (e.g., \"EQUIRECTANGULAR\", \"CUBEFACE\", \"CYLINDRICAL\")",
|
|
"items": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"ratio": {
|
|
"description": "Array of aspect ratios (width/height) for each asset",
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"stack": {
|
|
"description": "Array of stack information as [stackId, assetCount] tuples (null for non-stacked assets)",
|
|
"items": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 2,
|
|
"minItems": 2,
|
|
"nullable": true,
|
|
"type": "array"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"thumbhash": {
|
|
"description": "Array of BlurHash strings for generating asset previews (base64 encoded)",
|
|
"items": {
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"visibility": {
|
|
"description": "Array of visibility statuses for each asset (e.g., ARCHIVE, TIMELINE, HIDDEN, LOCKED)",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"city",
|
|
"country",
|
|
"duration",
|
|
"fileCreatedAt",
|
|
"id",
|
|
"isFavorite",
|
|
"isImage",
|
|
"isTrashed",
|
|
"livePhotoVideoId",
|
|
"localOffsetHours",
|
|
"ownerId",
|
|
"projectionType",
|
|
"ratio",
|
|
"thumbhash",
|
|
"visibility"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"TimeBucketsResponseDto": {
|
|
"properties": {
|
|
"count": {
|
|
"description": "Number of assets in this time bucket",
|
|
"example": 42,
|
|
"type": "integer"
|
|
},
|
|
"timeBucket": {
|
|
"description": "Time bucket identifier in YYYY-MM-DD format representing the start of the time period",
|
|
"example": "2024-01-01",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"count",
|
|
"timeBucket"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ToneMapping": {
|
|
"description": "Tone mapping",
|
|
"enum": [
|
|
"hable",
|
|
"mobius",
|
|
"reinhard",
|
|
"disabled"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"TranscodeHWAccel": {
|
|
"description": "Transcode hardware acceleration",
|
|
"enum": [
|
|
"nvenc",
|
|
"qsv",
|
|
"vaapi",
|
|
"rkmpp",
|
|
"disabled"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"TranscodePolicy": {
|
|
"description": "Transcode policy",
|
|
"enum": [
|
|
"all",
|
|
"optimal",
|
|
"bitrate",
|
|
"required",
|
|
"disabled"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"TrashResponseDto": {
|
|
"properties": {
|
|
"count": {
|
|
"description": "Number of items in trash",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"count"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"UpdateAlbumDto": {
|
|
"properties": {
|
|
"albumName": {
|
|
"description": "Album name",
|
|
"type": "string"
|
|
},
|
|
"albumThumbnailAssetId": {
|
|
"description": "Album thumbnail asset ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Album description",
|
|
"type": "string"
|
|
},
|
|
"isActivityEnabled": {
|
|
"description": "Enable activity feed",
|
|
"type": "boolean"
|
|
},
|
|
"order": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetOrder"
|
|
}
|
|
],
|
|
"description": "Asset sort order"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"UpdateAlbumUserDto": {
|
|
"properties": {
|
|
"role": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AlbumUserRole"
|
|
}
|
|
],
|
|
"description": "Album user role"
|
|
}
|
|
},
|
|
"required": [
|
|
"role"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"UpdateAssetDto": {
|
|
"properties": {
|
|
"dateTimeOriginal": {
|
|
"description": "Original date and time",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Asset description",
|
|
"type": "string"
|
|
},
|
|
"isFavorite": {
|
|
"description": "Mark as favorite",
|
|
"type": "boolean"
|
|
},
|
|
"latitude": {
|
|
"description": "Latitude coordinate",
|
|
"type": "number"
|
|
},
|
|
"livePhotoVideoId": {
|
|
"description": "Live photo video ID",
|
|
"format": "uuid",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"longitude": {
|
|
"description": "Longitude coordinate",
|
|
"type": "number"
|
|
},
|
|
"rating": {
|
|
"description": "Rating",
|
|
"maximum": 5,
|
|
"minimum": -1,
|
|
"type": "number"
|
|
},
|
|
"visibility": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AssetVisibility"
|
|
}
|
|
],
|
|
"description": "Asset visibility"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"UpdateLibraryDto": {
|
|
"properties": {
|
|
"exclusionPatterns": {
|
|
"description": "Exclusion patterns (max 128)",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 128,
|
|
"type": "array",
|
|
"uniqueItems": true
|
|
},
|
|
"importPaths": {
|
|
"description": "Import paths (max 128)",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 128,
|
|
"type": "array",
|
|
"uniqueItems": true
|
|
},
|
|
"name": {
|
|
"description": "Library name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"UsageByUserDto": {
|
|
"properties": {
|
|
"photos": {
|
|
"description": "Number of photos",
|
|
"type": "integer"
|
|
},
|
|
"quotaSizeInBytes": {
|
|
"description": "User quota size in bytes (null if unlimited)",
|
|
"format": "int64",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"usage": {
|
|
"description": "Total storage usage in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"usagePhotos": {
|
|
"description": "Storage usage for photos in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"usageVideos": {
|
|
"description": "Storage usage for videos in bytes",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"userId": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
},
|
|
"userName": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"videos": {
|
|
"description": "Number of videos",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"photos",
|
|
"quotaSizeInBytes",
|
|
"usage",
|
|
"usagePhotos",
|
|
"usageVideos",
|
|
"userId",
|
|
"userName",
|
|
"videos"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"UserAdminCreateDto": {
|
|
"properties": {
|
|
"avatarColor": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserAvatarColor"
|
|
}
|
|
],
|
|
"description": "Avatar color",
|
|
"nullable": true
|
|
},
|
|
"email": {
|
|
"description": "User email",
|
|
"format": "email",
|
|
"type": "string"
|
|
},
|
|
"isAdmin": {
|
|
"description": "Grant admin privileges",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"notify": {
|
|
"description": "Send notification email",
|
|
"type": "boolean"
|
|
},
|
|
"password": {
|
|
"description": "User password",
|
|
"type": "string"
|
|
},
|
|
"quotaSizeInBytes": {
|
|
"description": "Storage quota in bytes",
|
|
"format": "int64",
|
|
"minimum": 0,
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"shouldChangePassword": {
|
|
"description": "Require password change on next login",
|
|
"type": "boolean"
|
|
},
|
|
"storageLabel": {
|
|
"description": "Storage label",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"email",
|
|
"name",
|
|
"password"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"UserAdminDeleteDto": {
|
|
"properties": {
|
|
"force": {
|
|
"description": "Force delete even if user has assets",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"UserAdminResponseDto": {
|
|
"properties": {
|
|
"avatarColor": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserAvatarColor"
|
|
}
|
|
],
|
|
"description": "Avatar color"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"deletedAt": {
|
|
"description": "Deletion date",
|
|
"format": "date-time",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"description": "User email",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
},
|
|
"isAdmin": {
|
|
"description": "Is admin user",
|
|
"type": "boolean"
|
|
},
|
|
"license": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserLicense"
|
|
}
|
|
],
|
|
"description": "User license",
|
|
"nullable": true
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"oauthId": {
|
|
"description": "OAuth ID",
|
|
"type": "string"
|
|
},
|
|
"profileChangedAt": {
|
|
"description": "Profile change date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"profileImagePath": {
|
|
"description": "Profile image path",
|
|
"type": "string"
|
|
},
|
|
"quotaSizeInBytes": {
|
|
"description": "Storage quota in bytes",
|
|
"format": "int64",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"quotaUsageInBytes": {
|
|
"description": "Storage usage in bytes",
|
|
"format": "int64",
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"shouldChangePassword": {
|
|
"description": "Require password change on next login",
|
|
"type": "boolean"
|
|
},
|
|
"status": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserStatus"
|
|
}
|
|
],
|
|
"description": "User status"
|
|
},
|
|
"storageLabel": {
|
|
"description": "Storage label",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"description": "Last update date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"avatarColor",
|
|
"createdAt",
|
|
"deletedAt",
|
|
"email",
|
|
"id",
|
|
"isAdmin",
|
|
"license",
|
|
"name",
|
|
"oauthId",
|
|
"profileChangedAt",
|
|
"profileImagePath",
|
|
"quotaSizeInBytes",
|
|
"quotaUsageInBytes",
|
|
"shouldChangePassword",
|
|
"status",
|
|
"storageLabel",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"UserAdminUpdateDto": {
|
|
"properties": {
|
|
"avatarColor": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserAvatarColor"
|
|
}
|
|
],
|
|
"description": "Avatar color",
|
|
"nullable": true
|
|
},
|
|
"email": {
|
|
"description": "User email",
|
|
"format": "email",
|
|
"type": "string"
|
|
},
|
|
"isAdmin": {
|
|
"description": "Grant admin privileges",
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"description": "User password",
|
|
"type": "string"
|
|
},
|
|
"pinCode": {
|
|
"description": "PIN code",
|
|
"example": "123456",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"quotaSizeInBytes": {
|
|
"description": "Storage quota in bytes",
|
|
"format": "int64",
|
|
"minimum": 0,
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"shouldChangePassword": {
|
|
"description": "Require password change on next login",
|
|
"type": "boolean"
|
|
},
|
|
"storageLabel": {
|
|
"description": "Storage label",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"UserAvatarColor": {
|
|
"description": "Avatar color",
|
|
"enum": [
|
|
"primary",
|
|
"pink",
|
|
"red",
|
|
"yellow",
|
|
"blue",
|
|
"green",
|
|
"purple",
|
|
"orange",
|
|
"gray",
|
|
"amber"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"UserLicense": {
|
|
"properties": {
|
|
"activatedAt": {
|
|
"description": "Activation date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"activationKey": {
|
|
"description": "Activation key",
|
|
"type": "string"
|
|
},
|
|
"licenseKey": {
|
|
"description": "License key",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"activatedAt",
|
|
"activationKey",
|
|
"licenseKey"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"UserMetadataKey": {
|
|
"description": "User metadata key",
|
|
"enum": [
|
|
"preferences",
|
|
"license",
|
|
"onboarding"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"UserPreferencesResponseDto": {
|
|
"properties": {
|
|
"albums": {
|
|
"$ref": "#/components/schemas/AlbumsResponse"
|
|
},
|
|
"cast": {
|
|
"$ref": "#/components/schemas/CastResponse"
|
|
},
|
|
"download": {
|
|
"$ref": "#/components/schemas/DownloadResponse"
|
|
},
|
|
"emailNotifications": {
|
|
"$ref": "#/components/schemas/EmailNotificationsResponse"
|
|
},
|
|
"folders": {
|
|
"$ref": "#/components/schemas/FoldersResponse"
|
|
},
|
|
"memories": {
|
|
"$ref": "#/components/schemas/MemoriesResponse"
|
|
},
|
|
"people": {
|
|
"$ref": "#/components/schemas/PeopleResponse"
|
|
},
|
|
"purchase": {
|
|
"$ref": "#/components/schemas/PurchaseResponse"
|
|
},
|
|
"ratings": {
|
|
"$ref": "#/components/schemas/RatingsResponse"
|
|
},
|
|
"sharedLinks": {
|
|
"$ref": "#/components/schemas/SharedLinksResponse"
|
|
},
|
|
"tags": {
|
|
"$ref": "#/components/schemas/TagsResponse"
|
|
}
|
|
},
|
|
"required": [
|
|
"albums",
|
|
"cast",
|
|
"download",
|
|
"emailNotifications",
|
|
"folders",
|
|
"memories",
|
|
"people",
|
|
"purchase",
|
|
"ratings",
|
|
"sharedLinks",
|
|
"tags"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"UserPreferencesUpdateDto": {
|
|
"properties": {
|
|
"albums": {
|
|
"$ref": "#/components/schemas/AlbumsUpdate"
|
|
},
|
|
"avatar": {
|
|
"$ref": "#/components/schemas/AvatarUpdate"
|
|
},
|
|
"cast": {
|
|
"$ref": "#/components/schemas/CastUpdate"
|
|
},
|
|
"download": {
|
|
"$ref": "#/components/schemas/DownloadUpdate"
|
|
},
|
|
"emailNotifications": {
|
|
"$ref": "#/components/schemas/EmailNotificationsUpdate"
|
|
},
|
|
"folders": {
|
|
"$ref": "#/components/schemas/FoldersUpdate"
|
|
},
|
|
"memories": {
|
|
"$ref": "#/components/schemas/MemoriesUpdate"
|
|
},
|
|
"people": {
|
|
"$ref": "#/components/schemas/PeopleUpdate"
|
|
},
|
|
"purchase": {
|
|
"$ref": "#/components/schemas/PurchaseUpdate"
|
|
},
|
|
"ratings": {
|
|
"$ref": "#/components/schemas/RatingsUpdate"
|
|
},
|
|
"sharedLinks": {
|
|
"$ref": "#/components/schemas/SharedLinksUpdate"
|
|
},
|
|
"tags": {
|
|
"$ref": "#/components/schemas/TagsUpdate"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"UserResponseDto": {
|
|
"properties": {
|
|
"avatarColor": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserAvatarColor"
|
|
}
|
|
],
|
|
"description": "Avatar color"
|
|
},
|
|
"email": {
|
|
"description": "User email",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "User ID",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"profileChangedAt": {
|
|
"description": "Profile change date",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"profileImagePath": {
|
|
"description": "Profile image path",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"avatarColor",
|
|
"email",
|
|
"id",
|
|
"name",
|
|
"profileChangedAt",
|
|
"profileImagePath"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"UserStatus": {
|
|
"description": "User status",
|
|
"enum": [
|
|
"active",
|
|
"removing",
|
|
"deleted"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"UserUpdateMeDto": {
|
|
"properties": {
|
|
"avatarColor": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UserAvatarColor"
|
|
}
|
|
],
|
|
"description": "Avatar color",
|
|
"nullable": true
|
|
},
|
|
"email": {
|
|
"description": "User email",
|
|
"format": "email",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "User name",
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"description": "User password (deprecated, use change password endpoint)",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"ValidateAccessTokenResponseDto": {
|
|
"properties": {
|
|
"authStatus": {
|
|
"description": "Authentication status",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"authStatus"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ValidateLibraryDto": {
|
|
"properties": {
|
|
"exclusionPatterns": {
|
|
"description": "Exclusion patterns (max 128)",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 128,
|
|
"type": "array",
|
|
"uniqueItems": true
|
|
},
|
|
"importPaths": {
|
|
"description": "Import paths to validate (max 128)",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 128,
|
|
"type": "array",
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"ValidateLibraryImportPathResponseDto": {
|
|
"properties": {
|
|
"importPath": {
|
|
"description": "Import path",
|
|
"type": "string"
|
|
},
|
|
"isValid": {
|
|
"default": false,
|
|
"description": "Is valid",
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"description": "Validation message",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"importPath",
|
|
"isValid"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ValidateLibraryResponseDto": {
|
|
"properties": {
|
|
"importPaths": {
|
|
"description": "Validation results for import paths",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ValidateLibraryImportPathResponseDto"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"VersionCheckStateResponseDto": {
|
|
"properties": {
|
|
"checkedAt": {
|
|
"description": "Last check timestamp",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"releaseVersion": {
|
|
"description": "Release version",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"checkedAt",
|
|
"releaseVersion"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"VideoCodec": {
|
|
"description": "Target video codec",
|
|
"enum": [
|
|
"h264",
|
|
"hevc",
|
|
"vp9",
|
|
"av1"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"VideoContainer": {
|
|
"description": "Accepted containers",
|
|
"enum": [
|
|
"mov",
|
|
"mp4",
|
|
"ogg",
|
|
"webm"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"WorkflowActionItemDto": {
|
|
"properties": {
|
|
"actionConfig": {
|
|
"description": "Action configuration",
|
|
"type": "object"
|
|
},
|
|
"pluginActionId": {
|
|
"description": "Plugin action ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"pluginActionId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"WorkflowActionResponseDto": {
|
|
"properties": {
|
|
"actionConfig": {
|
|
"description": "Action configuration",
|
|
"nullable": true,
|
|
"type": "object"
|
|
},
|
|
"id": {
|
|
"description": "Action ID",
|
|
"type": "string"
|
|
},
|
|
"order": {
|
|
"description": "Action order",
|
|
"type": "number"
|
|
},
|
|
"pluginActionId": {
|
|
"description": "Plugin action ID",
|
|
"type": "string"
|
|
},
|
|
"workflowId": {
|
|
"description": "Workflow ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"actionConfig",
|
|
"id",
|
|
"order",
|
|
"pluginActionId",
|
|
"workflowId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"WorkflowCreateDto": {
|
|
"properties": {
|
|
"actions": {
|
|
"description": "Workflow actions",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorkflowActionItemDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"description": {
|
|
"description": "Workflow description",
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"description": "Workflow enabled",
|
|
"type": "boolean"
|
|
},
|
|
"filters": {
|
|
"description": "Workflow filters",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorkflowFilterItemDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"name": {
|
|
"description": "Workflow name",
|
|
"type": "string"
|
|
},
|
|
"triggerType": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PluginTriggerType"
|
|
}
|
|
],
|
|
"description": "Workflow trigger type"
|
|
}
|
|
},
|
|
"required": [
|
|
"actions",
|
|
"filters",
|
|
"name",
|
|
"triggerType"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"WorkflowFilterItemDto": {
|
|
"properties": {
|
|
"filterConfig": {
|
|
"description": "Filter configuration",
|
|
"type": "object"
|
|
},
|
|
"pluginFilterId": {
|
|
"description": "Plugin filter ID",
|
|
"format": "uuid",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"pluginFilterId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"WorkflowFilterResponseDto": {
|
|
"properties": {
|
|
"filterConfig": {
|
|
"description": "Filter configuration",
|
|
"nullable": true,
|
|
"type": "object"
|
|
},
|
|
"id": {
|
|
"description": "Filter ID",
|
|
"type": "string"
|
|
},
|
|
"order": {
|
|
"description": "Filter order",
|
|
"type": "number"
|
|
},
|
|
"pluginFilterId": {
|
|
"description": "Plugin filter ID",
|
|
"type": "string"
|
|
},
|
|
"workflowId": {
|
|
"description": "Workflow ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"filterConfig",
|
|
"id",
|
|
"order",
|
|
"pluginFilterId",
|
|
"workflowId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"WorkflowResponseDto": {
|
|
"properties": {
|
|
"actions": {
|
|
"description": "Workflow actions",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorkflowActionResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"createdAt": {
|
|
"description": "Creation date",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"description": "Workflow description",
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"description": "Workflow enabled",
|
|
"type": "boolean"
|
|
},
|
|
"filters": {
|
|
"description": "Workflow filters",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorkflowFilterResponseDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"id": {
|
|
"description": "Workflow ID",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Workflow name",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"ownerId": {
|
|
"description": "Owner user ID",
|
|
"type": "string"
|
|
},
|
|
"triggerType": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PluginTriggerType"
|
|
}
|
|
],
|
|
"description": "Workflow trigger type"
|
|
}
|
|
},
|
|
"required": [
|
|
"actions",
|
|
"createdAt",
|
|
"description",
|
|
"enabled",
|
|
"filters",
|
|
"id",
|
|
"name",
|
|
"ownerId",
|
|
"triggerType"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"WorkflowUpdateDto": {
|
|
"properties": {
|
|
"actions": {
|
|
"description": "Workflow actions",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorkflowActionItemDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"description": {
|
|
"description": "Workflow description",
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"description": "Workflow enabled",
|
|
"type": "boolean"
|
|
},
|
|
"filters": {
|
|
"description": "Workflow filters",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorkflowFilterItemDto"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"name": {
|
|
"description": "Workflow name",
|
|
"type": "string"
|
|
},
|
|
"triggerType": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PluginTriggerType"
|
|
}
|
|
],
|
|
"description": "Workflow trigger type"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
} |