Merge remote-tracking branch 'origin/main' into feat/yucca-integration

This commit is contained in:
izzy
2026-04-16 12:04:38 +01:00
523 changed files with 2711 additions and 54886 deletions
+173 -528
View File
@@ -1956,15 +1956,6 @@
"schema": {
"type": "string"
}
},
{
"name": "withoutAssets",
"required": false,
"in": "query",
"description": "Exclude assets from response",
"schema": {
"type": "boolean"
}
}
],
"responses": {
@@ -2227,6 +2218,77 @@
"x-immich-state": "Stable"
}
},
"/albums/{id}/map-markers": {
"get": {
"description": "Retrieve map marker information for a specific album by its ID.",
"operationId": "getAlbumMapMarkers",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"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": {
"items": {
"$ref": "#/components/schemas/MapMarkerResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
},
"security": [
{
"bearer": []
},
{
"cookie": []
},
{
"api_key": []
}
],
"summary": "Retrieve album map markers",
"tags": [
"Albums"
],
"x-immich-history": [
{
"version": "v3",
"state": "Added"
}
],
"x-immich-permission": "album.read"
}
},
"/albums/{id}/user/{userId}": {
"delete": {
"description": "Remove a user from an album. Use an ID of \"me\" to leave a shared album.",
@@ -2441,7 +2503,7 @@
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/APIKeyResponseDto"
"$ref": "#/components/schemas/ApiKeyResponseDto"
},
"type": "array"
}
@@ -2490,7 +2552,7 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIKeyCreateDto"
"$ref": "#/components/schemas/ApiKeyCreateDto"
}
}
},
@@ -2501,7 +2563,7 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIKeyCreateResponseDto"
"$ref": "#/components/schemas/ApiKeyCreateResponseDto"
}
}
},
@@ -2551,7 +2613,7 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIKeyResponseDto"
"$ref": "#/components/schemas/ApiKeyResponseDto"
}
}
},
@@ -2663,7 +2725,7 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIKeyResponseDto"
"$ref": "#/components/schemas/ApiKeyResponseDto"
}
}
},
@@ -2721,7 +2783,7 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIKeyUpdateDto"
"$ref": "#/components/schemas/ApiKeyUpdateDto"
}
}
},
@@ -2732,7 +2794,7 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIKeyResponseDto"
"$ref": "#/components/schemas/ApiKeyResponseDto"
}
}
},
@@ -3084,126 +3146,6 @@
"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.",
@@ -9255,15 +9197,6 @@
"type": "string"
}
},
{
"name": "deviceId",
"required": false,
"in": "query",
"description": "Device ID to filter by",
"schema": {
"type": "string"
}
},
{
"name": "isEncoded",
"required": false,
@@ -12294,123 +12227,6 @@
"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.",
@@ -14077,7 +13893,7 @@
"x-immich-state": "Stable"
},
"put": {
"description": "Update the current user making teh API request.",
"description": "Update the current user making the API request.",
"operationId": "updateMyUser",
"parameters": [],
"requestBody": {
@@ -16295,100 +16111,6 @@
}
},
"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",
"example": "2024-01-01T00:00:00.000Z",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"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",
"example": "2024-01-01T00:00:00.000Z",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"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"
},
"ActiveScheduleItemDto": {
"properties": {
"repositoryId": {
@@ -16552,12 +16274,6 @@
"minimum": 0,
"type": "integer"
},
"assets": {
"items": {
"$ref": "#/components/schemas/AssetResponseDto"
},
"type": "array"
},
"contributorCounts": {
"items": {
"$ref": "#/components/schemas/ContributorCountResponseDto"
@@ -16625,7 +16341,6 @@
"albumThumbnailAssetId",
"albumUsers",
"assetCount",
"assets",
"createdAt",
"description",
"hasSharedLink",
@@ -16788,6 +16503,100 @@
},
"type": "object"
},
"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",
"example": "2024-01-01T00:00:00.000Z",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"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",
"example": "2024-01-01T00:00:00.000Z",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"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"
},
"AssetBulkDeleteDto": {
"properties": {
"force": {
@@ -17009,59 +16818,6 @@
],
"type": "object"
},
"AssetDeltaSyncDto": {
"properties": {
"updatedAfter": {
"description": "Sync assets updated after this date",
"example": "2024-01-01T00:00:00.000Z",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"userIds": {
"description": "User IDs to sync",
"items": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"type": "array"
}
},
"required": [
"updatedAfter",
"userIds"
],
"type": "object"
},
"AssetDeltaSyncResponseDto": {
"description": "Asset delta sync response",
"properties": {
"deleted": {
"description": "Deleted asset IDs",
"items": {
"type": "string"
},
"type": "array"
},
"needsFullSync": {
"description": "Whether full sync is needed",
"type": "boolean"
},
"upserted": {
"items": {
"$ref": "#/components/schemas/AssetResponseDto"
},
"type": "array"
}
},
"required": [
"deleted",
"needsFullSync",
"upserted"
],
"type": "object"
},
"AssetEditAction": {
"description": "Type of edit action to perform",
"enum": [
@@ -17407,40 +17163,6 @@
],
"type": "object"
},
"AssetFullSyncDto": {
"properties": {
"lastId": {
"description": "Last asset ID (pagination)",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"limit": {
"description": "Maximum number of assets to return",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"updatedUntil": {
"description": "Sync assets updated until this date",
"example": "2024-01-01T00:00:00.000Z",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"userId": {
"description": "Filter by user ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
"required": [
"limit",
"updatedUntil"
],
"type": "object"
},
"AssetIdErrorReason": {
"description": "Error reason if failed",
"enum": [
@@ -17525,14 +17247,6 @@
"format": "binary",
"type": "string"
},
"deviceAssetId": {
"description": "Device asset ID",
"type": "string"
},
"deviceId": {
"description": "Device ID",
"type": "string"
},
"duration": {
"description": "Duration (for videos)",
"type": "string"
@@ -17583,8 +17297,6 @@
},
"required": [
"assetData",
"deviceAssetId",
"deviceId",
"fileCreatedAt",
"fileModifiedAt"
],
@@ -17900,14 +17612,6 @@
"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,
@@ -18089,8 +17793,6 @@
"required": [
"checksum",
"createdAt",
"deviceAssetId",
"deviceId",
"duration",
"fileCreatedAt",
"fileModifiedAt",
@@ -18425,42 +18127,6 @@
],
"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": [
@@ -19516,7 +19182,6 @@
"AssetFileMigration",
"AssetGenerateThumbnailsQueueAll",
"AssetGenerateThumbnails",
"AuditLogCleanup",
"AuditTableCleanup",
"DatabaseBackup",
"FacialRecognitionQueueAll",
@@ -20362,14 +20027,6 @@
"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"
@@ -22270,10 +21927,6 @@
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"deviceId": {
"description": "Device ID to filter by",
"type": "string"
},
"isEncoded": {
"description": "Filter by encoded status",
"type": "boolean"
@@ -24057,10 +23710,6 @@
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"deviceId": {
"description": "Device ID to filter by",
"type": "string"
},
"isEncoded": {
"description": "Filter by encoded status",
"type": "boolean"
@@ -24362,10 +24011,6 @@
"description": "Filter by description text",
"type": "string"
},
"deviceId": {
"description": "Device ID to filter by",
"type": "string"
},
"isEncoded": {
"description": "Filter by encoded status",
"type": "boolean"