Immich bindings and CLI in OCaml
1{
2 "openapi": "3.0.0",
3 "paths": {
4 "/activities": {
5 "get": {
6 "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.",
7 "operationId": "getActivities",
8 "parameters": [
9 {
10 "name": "albumId",
11 "required": true,
12 "in": "query",
13 "schema": {
14 "format": "uuid",
15 "type": "string"
16 }
17 },
18 {
19 "name": "assetId",
20 "required": false,
21 "in": "query",
22 "schema": {
23 "format": "uuid",
24 "type": "string"
25 }
26 },
27 {
28 "name": "level",
29 "required": false,
30 "in": "query",
31 "schema": {
32 "$ref": "#/components/schemas/ReactionLevel"
33 }
34 },
35 {
36 "name": "type",
37 "required": false,
38 "in": "query",
39 "schema": {
40 "$ref": "#/components/schemas/ReactionType"
41 }
42 },
43 {
44 "name": "userId",
45 "required": false,
46 "in": "query",
47 "schema": {
48 "format": "uuid",
49 "type": "string"
50 }
51 }
52 ],
53 "responses": {
54 "200": {
55 "content": {
56 "application/json": {
57 "schema": {
58 "items": {
59 "$ref": "#/components/schemas/ActivityResponseDto"
60 },
61 "type": "array"
62 }
63 }
64 },
65 "description": ""
66 }
67 },
68 "security": [
69 {
70 "bearer": []
71 },
72 {
73 "cookie": []
74 },
75 {
76 "api_key": []
77 }
78 ],
79 "summary": "List all activities",
80 "tags": [
81 "Activities"
82 ],
83 "x-immich-history": [
84 {
85 "version": "v1",
86 "state": "Added"
87 },
88 {
89 "version": "v1",
90 "state": "Beta"
91 },
92 {
93 "version": "v2",
94 "state": "Stable"
95 }
96 ],
97 "x-immich-permission": "activity.read",
98 "x-immich-state": "Stable"
99 },
100 "post": {
101 "description": "Create a like or a comment for an album, or an asset in an album.",
102 "operationId": "createActivity",
103 "parameters": [],
104 "requestBody": {
105 "content": {
106 "application/json": {
107 "schema": {
108 "$ref": "#/components/schemas/ActivityCreateDto"
109 }
110 }
111 },
112 "required": true
113 },
114 "responses": {
115 "201": {
116 "content": {
117 "application/json": {
118 "schema": {
119 "$ref": "#/components/schemas/ActivityResponseDto"
120 }
121 }
122 },
123 "description": ""
124 }
125 },
126 "security": [
127 {
128 "bearer": []
129 },
130 {
131 "cookie": []
132 },
133 {
134 "api_key": []
135 }
136 ],
137 "summary": "Create an activity",
138 "tags": [
139 "Activities"
140 ],
141 "x-immich-history": [
142 {
143 "version": "v1",
144 "state": "Added"
145 },
146 {
147 "version": "v1",
148 "state": "Beta"
149 },
150 {
151 "version": "v2",
152 "state": "Stable"
153 }
154 ],
155 "x-immich-permission": "activity.create",
156 "x-immich-state": "Stable"
157 }
158 },
159 "/activities/statistics": {
160 "get": {
161 "description": "Returns the number of likes and comments for a given album or asset in an album.",
162 "operationId": "getActivityStatistics",
163 "parameters": [
164 {
165 "name": "albumId",
166 "required": true,
167 "in": "query",
168 "schema": {
169 "format": "uuid",
170 "type": "string"
171 }
172 },
173 {
174 "name": "assetId",
175 "required": false,
176 "in": "query",
177 "schema": {
178 "format": "uuid",
179 "type": "string"
180 }
181 }
182 ],
183 "responses": {
184 "200": {
185 "content": {
186 "application/json": {
187 "schema": {
188 "$ref": "#/components/schemas/ActivityStatisticsResponseDto"
189 }
190 }
191 },
192 "description": ""
193 }
194 },
195 "security": [
196 {
197 "bearer": []
198 },
199 {
200 "cookie": []
201 },
202 {
203 "api_key": []
204 }
205 ],
206 "summary": "Retrieve activity statistics",
207 "tags": [
208 "Activities"
209 ],
210 "x-immich-history": [
211 {
212 "version": "v1",
213 "state": "Added"
214 },
215 {
216 "version": "v1",
217 "state": "Beta"
218 },
219 {
220 "version": "v2",
221 "state": "Stable"
222 }
223 ],
224 "x-immich-permission": "activity.statistics",
225 "x-immich-state": "Stable"
226 }
227 },
228 "/activities/{id}": {
229 "delete": {
230 "description": "Removes a like or comment from a given album or asset in an album.",
231 "operationId": "deleteActivity",
232 "parameters": [
233 {
234 "name": "id",
235 "required": true,
236 "in": "path",
237 "schema": {
238 "format": "uuid",
239 "type": "string"
240 }
241 }
242 ],
243 "responses": {
244 "204": {
245 "description": ""
246 }
247 },
248 "security": [
249 {
250 "bearer": []
251 },
252 {
253 "cookie": []
254 },
255 {
256 "api_key": []
257 }
258 ],
259 "summary": "Delete an activity",
260 "tags": [
261 "Activities"
262 ],
263 "x-immich-history": [
264 {
265 "version": "v1",
266 "state": "Added"
267 },
268 {
269 "version": "v1",
270 "state": "Beta"
271 },
272 {
273 "version": "v2",
274 "state": "Stable"
275 }
276 ],
277 "x-immich-permission": "activity.delete",
278 "x-immich-state": "Stable"
279 }
280 },
281 "/admin/auth/unlink-all": {
282 "post": {
283 "description": "Unlinks all OAuth accounts associated with user accounts in the system.",
284 "operationId": "unlinkAllOAuthAccountsAdmin",
285 "parameters": [],
286 "responses": {
287 "204": {
288 "description": ""
289 }
290 },
291 "security": [
292 {
293 "bearer": []
294 },
295 {
296 "cookie": []
297 },
298 {
299 "api_key": []
300 }
301 ],
302 "summary": "Unlink all OAuth accounts",
303 "tags": [
304 "Authentication (admin)"
305 ],
306 "x-immich-admin-only": true,
307 "x-immich-history": [
308 {
309 "version": "v1",
310 "state": "Added"
311 },
312 {
313 "version": "v1",
314 "state": "Beta"
315 },
316 {
317 "version": "v2",
318 "state": "Stable"
319 }
320 ],
321 "x-immich-permission": "adminAuth.unlinkAll",
322 "x-immich-state": "Stable"
323 }
324 },
325 "/admin/database-backups": {
326 "delete": {
327 "description": "Delete a backup by its filename",
328 "operationId": "deleteDatabaseBackup",
329 "parameters": [],
330 "requestBody": {
331 "content": {
332 "application/json": {
333 "schema": {
334 "$ref": "#/components/schemas/DatabaseBackupDeleteDto"
335 }
336 }
337 },
338 "required": true
339 },
340 "responses": {
341 "200": {
342 "description": ""
343 }
344 },
345 "security": [
346 {
347 "bearer": []
348 },
349 {
350 "cookie": []
351 },
352 {
353 "api_key": []
354 }
355 ],
356 "summary": "Delete database backup",
357 "tags": [
358 "Database Backups (admin)"
359 ],
360 "x-immich-admin-only": true,
361 "x-immich-history": [
362 {
363 "version": "v2.5.0",
364 "state": "Added"
365 },
366 {
367 "version": "v2.5.0",
368 "state": "Alpha"
369 }
370 ],
371 "x-immich-permission": "backup.delete",
372 "x-immich-state": "Alpha"
373 },
374 "get": {
375 "description": "Get the list of the successful and failed backups",
376 "operationId": "listDatabaseBackups",
377 "parameters": [],
378 "responses": {
379 "200": {
380 "content": {
381 "application/json": {
382 "schema": {
383 "$ref": "#/components/schemas/DatabaseBackupListResponseDto"
384 }
385 }
386 },
387 "description": ""
388 }
389 },
390 "security": [
391 {
392 "bearer": []
393 },
394 {
395 "cookie": []
396 },
397 {
398 "api_key": []
399 }
400 ],
401 "summary": "List database backups",
402 "tags": [
403 "Database Backups (admin)"
404 ],
405 "x-immich-admin-only": true,
406 "x-immich-history": [
407 {
408 "version": "v2.5.0",
409 "state": "Added"
410 },
411 {
412 "version": "v2.5.0",
413 "state": "Alpha"
414 }
415 ],
416 "x-immich-permission": "maintenance",
417 "x-immich-state": "Alpha"
418 }
419 },
420 "/admin/database-backups/start-restore": {
421 "post": {
422 "description": "Put Immich into maintenance mode to restore a backup (Immich must not be configured)",
423 "operationId": "startDatabaseRestoreFlow",
424 "parameters": [],
425 "responses": {
426 "201": {
427 "description": ""
428 }
429 },
430 "summary": "Start database backup restore flow",
431 "tags": [
432 "Database Backups (admin)"
433 ],
434 "x-immich-history": [
435 {
436 "version": "v2.5.0",
437 "state": "Added"
438 },
439 {
440 "version": "v2.5.0",
441 "state": "Alpha"
442 }
443 ],
444 "x-immich-state": "Alpha"
445 }
446 },
447 "/admin/database-backups/upload": {
448 "post": {
449 "description": "Uploads .sql/.sql.gz file to restore backup from",
450 "operationId": "uploadDatabaseBackup",
451 "parameters": [],
452 "requestBody": {
453 "content": {
454 "multipart/form-data": {
455 "schema": {
456 "$ref": "#/components/schemas/DatabaseBackupUploadDto"
457 }
458 }
459 },
460 "description": "Backup Upload",
461 "required": true
462 },
463 "responses": {
464 "201": {
465 "description": ""
466 }
467 },
468 "security": [
469 {
470 "bearer": []
471 },
472 {
473 "cookie": []
474 },
475 {
476 "api_key": []
477 }
478 ],
479 "summary": "Upload database backup",
480 "tags": [
481 "Database Backups (admin)"
482 ],
483 "x-immich-admin-only": true,
484 "x-immich-history": [
485 {
486 "version": "v2.5.0",
487 "state": "Added"
488 },
489 {
490 "version": "v2.5.0",
491 "state": "Alpha"
492 }
493 ],
494 "x-immich-permission": "backup.upload",
495 "x-immich-state": "Alpha"
496 }
497 },
498 "/admin/database-backups/{filename}": {
499 "get": {
500 "description": "Downloads the database backup file",
501 "operationId": "downloadDatabaseBackup",
502 "parameters": [
503 {
504 "name": "filename",
505 "required": true,
506 "in": "path",
507 "schema": {
508 "format": "string",
509 "type": "string"
510 }
511 }
512 ],
513 "responses": {
514 "200": {
515 "content": {
516 "application/octet-stream": {
517 "schema": {
518 "format": "binary",
519 "type": "string"
520 }
521 }
522 },
523 "description": ""
524 }
525 },
526 "security": [
527 {
528 "bearer": []
529 },
530 {
531 "cookie": []
532 },
533 {
534 "api_key": []
535 }
536 ],
537 "summary": "Download database backup",
538 "tags": [
539 "Database Backups (admin)"
540 ],
541 "x-immich-admin-only": true,
542 "x-immich-history": [
543 {
544 "version": "v2.5.0",
545 "state": "Added"
546 },
547 {
548 "version": "v2.5.0",
549 "state": "Alpha"
550 }
551 ],
552 "x-immich-permission": "backup.download",
553 "x-immich-state": "Alpha"
554 }
555 },
556 "/admin/maintenance": {
557 "post": {
558 "description": "Put Immich into or take it out of maintenance mode",
559 "operationId": "setMaintenanceMode",
560 "parameters": [],
561 "requestBody": {
562 "content": {
563 "application/json": {
564 "schema": {
565 "$ref": "#/components/schemas/SetMaintenanceModeDto"
566 }
567 }
568 },
569 "required": true
570 },
571 "responses": {
572 "201": {
573 "description": ""
574 }
575 },
576 "security": [
577 {
578 "bearer": []
579 },
580 {
581 "cookie": []
582 },
583 {
584 "api_key": []
585 }
586 ],
587 "summary": "Set maintenance mode",
588 "tags": [
589 "Maintenance (admin)"
590 ],
591 "x-immich-admin-only": true,
592 "x-immich-history": [
593 {
594 "version": "v2.3.0",
595 "state": "Added"
596 },
597 {
598 "version": "v2.3.0",
599 "state": "Alpha"
600 }
601 ],
602 "x-immich-permission": "maintenance",
603 "x-immich-state": "Alpha"
604 }
605 },
606 "/admin/maintenance/detect-install": {
607 "get": {
608 "description": "Collect integrity checks and other heuristics about local data.",
609 "operationId": "detectPriorInstall",
610 "parameters": [],
611 "responses": {
612 "200": {
613 "content": {
614 "application/json": {
615 "schema": {
616 "$ref": "#/components/schemas/MaintenanceDetectInstallResponseDto"
617 }
618 }
619 },
620 "description": ""
621 }
622 },
623 "security": [
624 {
625 "bearer": []
626 },
627 {
628 "cookie": []
629 },
630 {
631 "api_key": []
632 }
633 ],
634 "summary": "Detect existing install",
635 "tags": [
636 "Maintenance (admin)"
637 ],
638 "x-immich-admin-only": true,
639 "x-immich-history": [
640 {
641 "version": "v2.5.0",
642 "state": "Added"
643 },
644 {
645 "version": "v2.5.0",
646 "state": "Alpha"
647 }
648 ],
649 "x-immich-permission": "maintenance",
650 "x-immich-state": "Alpha"
651 }
652 },
653 "/admin/maintenance/login": {
654 "post": {
655 "description": "Login with maintenance token or cookie to receive current information and perform further actions.",
656 "operationId": "maintenanceLogin",
657 "parameters": [],
658 "requestBody": {
659 "content": {
660 "application/json": {
661 "schema": {
662 "$ref": "#/components/schemas/MaintenanceLoginDto"
663 }
664 }
665 },
666 "required": true
667 },
668 "responses": {
669 "201": {
670 "content": {
671 "application/json": {
672 "schema": {
673 "$ref": "#/components/schemas/MaintenanceAuthDto"
674 }
675 }
676 },
677 "description": ""
678 }
679 },
680 "summary": "Log into maintenance mode",
681 "tags": [
682 "Maintenance (admin)"
683 ],
684 "x-immich-history": [
685 {
686 "version": "v2.3.0",
687 "state": "Added"
688 },
689 {
690 "version": "v2.3.0",
691 "state": "Alpha"
692 }
693 ],
694 "x-immich-state": "Alpha"
695 }
696 },
697 "/admin/maintenance/status": {
698 "get": {
699 "description": "Fetch information about the currently running maintenance action.",
700 "operationId": "getMaintenanceStatus",
701 "parameters": [],
702 "responses": {
703 "200": {
704 "content": {
705 "application/json": {
706 "schema": {
707 "$ref": "#/components/schemas/MaintenanceStatusResponseDto"
708 }
709 }
710 },
711 "description": ""
712 }
713 },
714 "summary": "Get maintenance mode status",
715 "tags": [
716 "Maintenance (admin)"
717 ],
718 "x-immich-history": [
719 {
720 "version": "v2.5.0",
721 "state": "Added"
722 },
723 {
724 "version": "v2.5.0",
725 "state": "Alpha"
726 }
727 ],
728 "x-immich-state": "Alpha"
729 }
730 },
731 "/admin/notifications": {
732 "post": {
733 "description": "Create a new notification for a specific user.",
734 "operationId": "createNotification",
735 "parameters": [],
736 "requestBody": {
737 "content": {
738 "application/json": {
739 "schema": {
740 "$ref": "#/components/schemas/NotificationCreateDto"
741 }
742 }
743 },
744 "required": true
745 },
746 "responses": {
747 "201": {
748 "content": {
749 "application/json": {
750 "schema": {
751 "$ref": "#/components/schemas/NotificationDto"
752 }
753 }
754 },
755 "description": ""
756 }
757 },
758 "security": [
759 {
760 "bearer": []
761 },
762 {
763 "cookie": []
764 },
765 {
766 "api_key": []
767 }
768 ],
769 "summary": "Create a notification",
770 "tags": [
771 "Notifications (admin)"
772 ],
773 "x-immich-admin-only": true,
774 "x-immich-history": [
775 {
776 "version": "v1",
777 "state": "Added"
778 },
779 {
780 "version": "v1",
781 "state": "Beta"
782 },
783 {
784 "version": "v2",
785 "state": "Stable"
786 }
787 ],
788 "x-immich-state": "Stable"
789 }
790 },
791 "/admin/notifications/templates/{name}": {
792 "post": {
793 "description": "Retrieve a preview of the provided email template.",
794 "operationId": "getNotificationTemplateAdmin",
795 "parameters": [
796 {
797 "name": "name",
798 "required": true,
799 "in": "path",
800 "schema": {
801 "type": "string"
802 }
803 }
804 ],
805 "requestBody": {
806 "content": {
807 "application/json": {
808 "schema": {
809 "$ref": "#/components/schemas/TemplateDto"
810 }
811 }
812 },
813 "required": true
814 },
815 "responses": {
816 "200": {
817 "content": {
818 "application/json": {
819 "schema": {
820 "$ref": "#/components/schemas/TemplateResponseDto"
821 }
822 }
823 },
824 "description": ""
825 }
826 },
827 "security": [
828 {
829 "bearer": []
830 },
831 {
832 "cookie": []
833 },
834 {
835 "api_key": []
836 }
837 ],
838 "summary": "Render email template",
839 "tags": [
840 "Notifications (admin)"
841 ],
842 "x-immich-admin-only": true,
843 "x-immich-history": [
844 {
845 "version": "v1",
846 "state": "Added"
847 },
848 {
849 "version": "v1",
850 "state": "Beta"
851 },
852 {
853 "version": "v2",
854 "state": "Stable"
855 }
856 ],
857 "x-immich-state": "Stable"
858 }
859 },
860 "/admin/notifications/test-email": {
861 "post": {
862 "description": "Send a test email using the provided SMTP configuration.",
863 "operationId": "sendTestEmailAdmin",
864 "parameters": [],
865 "requestBody": {
866 "content": {
867 "application/json": {
868 "schema": {
869 "$ref": "#/components/schemas/SystemConfigSmtpDto"
870 }
871 }
872 },
873 "required": true
874 },
875 "responses": {
876 "200": {
877 "content": {
878 "application/json": {
879 "schema": {
880 "$ref": "#/components/schemas/TestEmailResponseDto"
881 }
882 }
883 },
884 "description": ""
885 }
886 },
887 "security": [
888 {
889 "bearer": []
890 },
891 {
892 "cookie": []
893 },
894 {
895 "api_key": []
896 }
897 ],
898 "summary": "Send test email",
899 "tags": [
900 "Notifications (admin)"
901 ],
902 "x-immich-admin-only": true,
903 "x-immich-history": [
904 {
905 "version": "v1",
906 "state": "Added"
907 },
908 {
909 "version": "v1",
910 "state": "Beta"
911 },
912 {
913 "version": "v2",
914 "state": "Stable"
915 }
916 ],
917 "x-immich-state": "Stable"
918 }
919 },
920 "/admin/users": {
921 "get": {
922 "description": "Search for users.",
923 "operationId": "searchUsersAdmin",
924 "parameters": [
925 {
926 "name": "id",
927 "required": false,
928 "in": "query",
929 "schema": {
930 "format": "uuid",
931 "type": "string"
932 }
933 },
934 {
935 "name": "withDeleted",
936 "required": false,
937 "in": "query",
938 "schema": {
939 "type": "boolean"
940 }
941 }
942 ],
943 "responses": {
944 "200": {
945 "content": {
946 "application/json": {
947 "schema": {
948 "items": {
949 "$ref": "#/components/schemas/UserAdminResponseDto"
950 },
951 "type": "array"
952 }
953 }
954 },
955 "description": ""
956 }
957 },
958 "security": [
959 {
960 "bearer": []
961 },
962 {
963 "cookie": []
964 },
965 {
966 "api_key": []
967 }
968 ],
969 "summary": "Search users",
970 "tags": [
971 "Users (admin)"
972 ],
973 "x-immich-admin-only": true,
974 "x-immich-history": [
975 {
976 "version": "v1",
977 "state": "Added"
978 },
979 {
980 "version": "v1",
981 "state": "Beta"
982 },
983 {
984 "version": "v2",
985 "state": "Stable"
986 }
987 ],
988 "x-immich-permission": "adminUser.read",
989 "x-immich-state": "Stable"
990 },
991 "post": {
992 "description": "Create a new user.",
993 "operationId": "createUserAdmin",
994 "parameters": [],
995 "requestBody": {
996 "content": {
997 "application/json": {
998 "schema": {
999 "$ref": "#/components/schemas/UserAdminCreateDto"
1000 }
1001 }
1002 },
1003 "required": true
1004 },
1005 "responses": {
1006 "201": {
1007 "content": {
1008 "application/json": {
1009 "schema": {
1010 "$ref": "#/components/schemas/UserAdminResponseDto"
1011 }
1012 }
1013 },
1014 "description": ""
1015 }
1016 },
1017 "security": [
1018 {
1019 "bearer": []
1020 },
1021 {
1022 "cookie": []
1023 },
1024 {
1025 "api_key": []
1026 }
1027 ],
1028 "summary": "Create a user",
1029 "tags": [
1030 "Users (admin)"
1031 ],
1032 "x-immich-admin-only": true,
1033 "x-immich-history": [
1034 {
1035 "version": "v1",
1036 "state": "Added"
1037 },
1038 {
1039 "version": "v1",
1040 "state": "Beta"
1041 },
1042 {
1043 "version": "v2",
1044 "state": "Stable"
1045 }
1046 ],
1047 "x-immich-permission": "adminUser.create",
1048 "x-immich-state": "Stable"
1049 }
1050 },
1051 "/admin/users/{id}": {
1052 "delete": {
1053 "description": "Delete a user.",
1054 "operationId": "deleteUserAdmin",
1055 "parameters": [
1056 {
1057 "name": "id",
1058 "required": true,
1059 "in": "path",
1060 "schema": {
1061 "format": "uuid",
1062 "type": "string"
1063 }
1064 }
1065 ],
1066 "requestBody": {
1067 "content": {
1068 "application/json": {
1069 "schema": {
1070 "$ref": "#/components/schemas/UserAdminDeleteDto"
1071 }
1072 }
1073 },
1074 "required": true
1075 },
1076 "responses": {
1077 "200": {
1078 "content": {
1079 "application/json": {
1080 "schema": {
1081 "$ref": "#/components/schemas/UserAdminResponseDto"
1082 }
1083 }
1084 },
1085 "description": ""
1086 }
1087 },
1088 "security": [
1089 {
1090 "bearer": []
1091 },
1092 {
1093 "cookie": []
1094 },
1095 {
1096 "api_key": []
1097 }
1098 ],
1099 "summary": "Delete a user",
1100 "tags": [
1101 "Users (admin)"
1102 ],
1103 "x-immich-admin-only": true,
1104 "x-immich-history": [
1105 {
1106 "version": "v1",
1107 "state": "Added"
1108 },
1109 {
1110 "version": "v1",
1111 "state": "Beta"
1112 },
1113 {
1114 "version": "v2",
1115 "state": "Stable"
1116 }
1117 ],
1118 "x-immich-permission": "adminUser.delete",
1119 "x-immich-state": "Stable"
1120 },
1121 "get": {
1122 "description": "Retrieve a specific user by their ID.",
1123 "operationId": "getUserAdmin",
1124 "parameters": [
1125 {
1126 "name": "id",
1127 "required": true,
1128 "in": "path",
1129 "schema": {
1130 "format": "uuid",
1131 "type": "string"
1132 }
1133 }
1134 ],
1135 "responses": {
1136 "200": {
1137 "content": {
1138 "application/json": {
1139 "schema": {
1140 "$ref": "#/components/schemas/UserAdminResponseDto"
1141 }
1142 }
1143 },
1144 "description": ""
1145 }
1146 },
1147 "security": [
1148 {
1149 "bearer": []
1150 },
1151 {
1152 "cookie": []
1153 },
1154 {
1155 "api_key": []
1156 }
1157 ],
1158 "summary": "Retrieve a user",
1159 "tags": [
1160 "Users (admin)"
1161 ],
1162 "x-immich-admin-only": true,
1163 "x-immich-history": [
1164 {
1165 "version": "v1",
1166 "state": "Added"
1167 },
1168 {
1169 "version": "v1",
1170 "state": "Beta"
1171 },
1172 {
1173 "version": "v2",
1174 "state": "Stable"
1175 }
1176 ],
1177 "x-immich-permission": "adminUser.read",
1178 "x-immich-state": "Stable"
1179 },
1180 "put": {
1181 "description": "Update an existing user.",
1182 "operationId": "updateUserAdmin",
1183 "parameters": [
1184 {
1185 "name": "id",
1186 "required": true,
1187 "in": "path",
1188 "schema": {
1189 "format": "uuid",
1190 "type": "string"
1191 }
1192 }
1193 ],
1194 "requestBody": {
1195 "content": {
1196 "application/json": {
1197 "schema": {
1198 "$ref": "#/components/schemas/UserAdminUpdateDto"
1199 }
1200 }
1201 },
1202 "required": true
1203 },
1204 "responses": {
1205 "200": {
1206 "content": {
1207 "application/json": {
1208 "schema": {
1209 "$ref": "#/components/schemas/UserAdminResponseDto"
1210 }
1211 }
1212 },
1213 "description": ""
1214 }
1215 },
1216 "security": [
1217 {
1218 "bearer": []
1219 },
1220 {
1221 "cookie": []
1222 },
1223 {
1224 "api_key": []
1225 }
1226 ],
1227 "summary": "Update a user",
1228 "tags": [
1229 "Users (admin)"
1230 ],
1231 "x-immich-admin-only": true,
1232 "x-immich-history": [
1233 {
1234 "version": "v1",
1235 "state": "Added"
1236 },
1237 {
1238 "version": "v1",
1239 "state": "Beta"
1240 },
1241 {
1242 "version": "v2",
1243 "state": "Stable"
1244 }
1245 ],
1246 "x-immich-permission": "adminUser.update",
1247 "x-immich-state": "Stable"
1248 }
1249 },
1250 "/admin/users/{id}/preferences": {
1251 "get": {
1252 "description": "Retrieve the preferences of a specific user.",
1253 "operationId": "getUserPreferencesAdmin",
1254 "parameters": [
1255 {
1256 "name": "id",
1257 "required": true,
1258 "in": "path",
1259 "schema": {
1260 "format": "uuid",
1261 "type": "string"
1262 }
1263 }
1264 ],
1265 "responses": {
1266 "200": {
1267 "content": {
1268 "application/json": {
1269 "schema": {
1270 "$ref": "#/components/schemas/UserPreferencesResponseDto"
1271 }
1272 }
1273 },
1274 "description": ""
1275 }
1276 },
1277 "security": [
1278 {
1279 "bearer": []
1280 },
1281 {
1282 "cookie": []
1283 },
1284 {
1285 "api_key": []
1286 }
1287 ],
1288 "summary": "Retrieve user preferences",
1289 "tags": [
1290 "Users (admin)"
1291 ],
1292 "x-immich-admin-only": true,
1293 "x-immich-history": [
1294 {
1295 "version": "v1",
1296 "state": "Added"
1297 },
1298 {
1299 "version": "v1",
1300 "state": "Beta"
1301 },
1302 {
1303 "version": "v2",
1304 "state": "Stable"
1305 }
1306 ],
1307 "x-immich-permission": "adminUser.read",
1308 "x-immich-state": "Stable"
1309 },
1310 "put": {
1311 "description": "Update the preferences of a specific user.",
1312 "operationId": "updateUserPreferencesAdmin",
1313 "parameters": [
1314 {
1315 "name": "id",
1316 "required": true,
1317 "in": "path",
1318 "schema": {
1319 "format": "uuid",
1320 "type": "string"
1321 }
1322 }
1323 ],
1324 "requestBody": {
1325 "content": {
1326 "application/json": {
1327 "schema": {
1328 "$ref": "#/components/schemas/UserPreferencesUpdateDto"
1329 }
1330 }
1331 },
1332 "required": true
1333 },
1334 "responses": {
1335 "200": {
1336 "content": {
1337 "application/json": {
1338 "schema": {
1339 "$ref": "#/components/schemas/UserPreferencesResponseDto"
1340 }
1341 }
1342 },
1343 "description": ""
1344 }
1345 },
1346 "security": [
1347 {
1348 "bearer": []
1349 },
1350 {
1351 "cookie": []
1352 },
1353 {
1354 "api_key": []
1355 }
1356 ],
1357 "summary": "Update user preferences",
1358 "tags": [
1359 "Users (admin)"
1360 ],
1361 "x-immich-admin-only": true,
1362 "x-immich-history": [
1363 {
1364 "version": "v1",
1365 "state": "Added"
1366 },
1367 {
1368 "version": "v1",
1369 "state": "Beta"
1370 },
1371 {
1372 "version": "v2",
1373 "state": "Stable"
1374 }
1375 ],
1376 "x-immich-permission": "adminUser.update",
1377 "x-immich-state": "Stable"
1378 }
1379 },
1380 "/admin/users/{id}/restore": {
1381 "post": {
1382 "description": "Restore a previously deleted user.",
1383 "operationId": "restoreUserAdmin",
1384 "parameters": [
1385 {
1386 "name": "id",
1387 "required": true,
1388 "in": "path",
1389 "schema": {
1390 "format": "uuid",
1391 "type": "string"
1392 }
1393 }
1394 ],
1395 "responses": {
1396 "200": {
1397 "content": {
1398 "application/json": {
1399 "schema": {
1400 "$ref": "#/components/schemas/UserAdminResponseDto"
1401 }
1402 }
1403 },
1404 "description": ""
1405 }
1406 },
1407 "security": [
1408 {
1409 "bearer": []
1410 },
1411 {
1412 "cookie": []
1413 },
1414 {
1415 "api_key": []
1416 }
1417 ],
1418 "summary": "Restore a deleted user",
1419 "tags": [
1420 "Users (admin)"
1421 ],
1422 "x-immich-admin-only": true,
1423 "x-immich-history": [
1424 {
1425 "version": "v1",
1426 "state": "Added"
1427 },
1428 {
1429 "version": "v1",
1430 "state": "Beta"
1431 },
1432 {
1433 "version": "v2",
1434 "state": "Stable"
1435 }
1436 ],
1437 "x-immich-permission": "adminUser.delete",
1438 "x-immich-state": "Stable"
1439 }
1440 },
1441 "/admin/users/{id}/sessions": {
1442 "get": {
1443 "description": "Retrieve all sessions for a specific user.",
1444 "operationId": "getUserSessionsAdmin",
1445 "parameters": [
1446 {
1447 "name": "id",
1448 "required": true,
1449 "in": "path",
1450 "schema": {
1451 "format": "uuid",
1452 "type": "string"
1453 }
1454 }
1455 ],
1456 "responses": {
1457 "200": {
1458 "content": {
1459 "application/json": {
1460 "schema": {
1461 "items": {
1462 "$ref": "#/components/schemas/SessionResponseDto"
1463 },
1464 "type": "array"
1465 }
1466 }
1467 },
1468 "description": ""
1469 }
1470 },
1471 "security": [
1472 {
1473 "bearer": []
1474 },
1475 {
1476 "cookie": []
1477 },
1478 {
1479 "api_key": []
1480 }
1481 ],
1482 "summary": "Retrieve user sessions",
1483 "tags": [
1484 "Users (admin)"
1485 ],
1486 "x-immich-admin-only": true,
1487 "x-immich-history": [
1488 {
1489 "version": "v1",
1490 "state": "Added"
1491 },
1492 {
1493 "version": "v1",
1494 "state": "Beta"
1495 },
1496 {
1497 "version": "v2",
1498 "state": "Stable"
1499 }
1500 ],
1501 "x-immich-permission": "adminSession.read",
1502 "x-immich-state": "Stable"
1503 }
1504 },
1505 "/admin/users/{id}/statistics": {
1506 "get": {
1507 "description": "Retrieve asset statistics for a specific user.",
1508 "operationId": "getUserStatisticsAdmin",
1509 "parameters": [
1510 {
1511 "name": "id",
1512 "required": true,
1513 "in": "path",
1514 "schema": {
1515 "format": "uuid",
1516 "type": "string"
1517 }
1518 },
1519 {
1520 "name": "isFavorite",
1521 "required": false,
1522 "in": "query",
1523 "schema": {
1524 "type": "boolean"
1525 }
1526 },
1527 {
1528 "name": "isTrashed",
1529 "required": false,
1530 "in": "query",
1531 "schema": {
1532 "type": "boolean"
1533 }
1534 },
1535 {
1536 "name": "visibility",
1537 "required": false,
1538 "in": "query",
1539 "schema": {
1540 "$ref": "#/components/schemas/AssetVisibility"
1541 }
1542 }
1543 ],
1544 "responses": {
1545 "200": {
1546 "content": {
1547 "application/json": {
1548 "schema": {
1549 "$ref": "#/components/schemas/AssetStatsResponseDto"
1550 }
1551 }
1552 },
1553 "description": ""
1554 }
1555 },
1556 "security": [
1557 {
1558 "bearer": []
1559 },
1560 {
1561 "cookie": []
1562 },
1563 {
1564 "api_key": []
1565 }
1566 ],
1567 "summary": "Retrieve user statistics",
1568 "tags": [
1569 "Users (admin)"
1570 ],
1571 "x-immich-admin-only": true,
1572 "x-immich-history": [
1573 {
1574 "version": "v1",
1575 "state": "Added"
1576 },
1577 {
1578 "version": "v1",
1579 "state": "Beta"
1580 },
1581 {
1582 "version": "v2",
1583 "state": "Stable"
1584 }
1585 ],
1586 "x-immich-permission": "adminUser.read",
1587 "x-immich-state": "Stable"
1588 }
1589 },
1590 "/albums": {
1591 "get": {
1592 "description": "Retrieve a list of albums available to the authenticated user.",
1593 "operationId": "getAllAlbums",
1594 "parameters": [
1595 {
1596 "name": "assetId",
1597 "required": false,
1598 "in": "query",
1599 "description": "Only returns albums that contain the asset\nIgnores the shared parameter\nundefined: get all albums",
1600 "schema": {
1601 "format": "uuid",
1602 "type": "string"
1603 }
1604 },
1605 {
1606 "name": "shared",
1607 "required": false,
1608 "in": "query",
1609 "schema": {
1610 "type": "boolean"
1611 }
1612 }
1613 ],
1614 "responses": {
1615 "200": {
1616 "content": {
1617 "application/json": {
1618 "schema": {
1619 "items": {
1620 "$ref": "#/components/schemas/AlbumResponseDto"
1621 },
1622 "type": "array"
1623 }
1624 }
1625 },
1626 "description": ""
1627 }
1628 },
1629 "security": [
1630 {
1631 "bearer": []
1632 },
1633 {
1634 "cookie": []
1635 },
1636 {
1637 "api_key": []
1638 }
1639 ],
1640 "summary": "List all albums",
1641 "tags": [
1642 "Albums"
1643 ],
1644 "x-immich-history": [
1645 {
1646 "version": "v1",
1647 "state": "Added"
1648 },
1649 {
1650 "version": "v1",
1651 "state": "Beta"
1652 },
1653 {
1654 "version": "v2",
1655 "state": "Stable"
1656 }
1657 ],
1658 "x-immich-permission": "album.read",
1659 "x-immich-state": "Stable"
1660 },
1661 "post": {
1662 "description": "Create a new album. The album can also be created with initial users and assets.",
1663 "operationId": "createAlbum",
1664 "parameters": [],
1665 "requestBody": {
1666 "content": {
1667 "application/json": {
1668 "schema": {
1669 "$ref": "#/components/schemas/CreateAlbumDto"
1670 }
1671 }
1672 },
1673 "required": true
1674 },
1675 "responses": {
1676 "201": {
1677 "content": {
1678 "application/json": {
1679 "schema": {
1680 "$ref": "#/components/schemas/AlbumResponseDto"
1681 }
1682 }
1683 },
1684 "description": ""
1685 }
1686 },
1687 "security": [
1688 {
1689 "bearer": []
1690 },
1691 {
1692 "cookie": []
1693 },
1694 {
1695 "api_key": []
1696 }
1697 ],
1698 "summary": "Create an album",
1699 "tags": [
1700 "Albums"
1701 ],
1702 "x-immich-history": [
1703 {
1704 "version": "v1",
1705 "state": "Added"
1706 },
1707 {
1708 "version": "v1",
1709 "state": "Beta"
1710 },
1711 {
1712 "version": "v2",
1713 "state": "Stable"
1714 }
1715 ],
1716 "x-immich-permission": "album.create",
1717 "x-immich-state": "Stable"
1718 }
1719 },
1720 "/albums/assets": {
1721 "put": {
1722 "description": "Send a list of asset IDs and album IDs to add each asset to each album.",
1723 "operationId": "addAssetsToAlbums",
1724 "parameters": [
1725 {
1726 "name": "key",
1727 "required": false,
1728 "in": "query",
1729 "schema": {
1730 "type": "string"
1731 }
1732 },
1733 {
1734 "name": "slug",
1735 "required": false,
1736 "in": "query",
1737 "schema": {
1738 "type": "string"
1739 }
1740 }
1741 ],
1742 "requestBody": {
1743 "content": {
1744 "application/json": {
1745 "schema": {
1746 "$ref": "#/components/schemas/AlbumsAddAssetsDto"
1747 }
1748 }
1749 },
1750 "required": true
1751 },
1752 "responses": {
1753 "200": {
1754 "content": {
1755 "application/json": {
1756 "schema": {
1757 "$ref": "#/components/schemas/AlbumsAddAssetsResponseDto"
1758 }
1759 }
1760 },
1761 "description": ""
1762 }
1763 },
1764 "security": [
1765 {
1766 "bearer": []
1767 },
1768 {
1769 "cookie": []
1770 },
1771 {
1772 "api_key": []
1773 }
1774 ],
1775 "summary": "Add assets to albums",
1776 "tags": [
1777 "Albums"
1778 ],
1779 "x-immich-history": [
1780 {
1781 "version": "v1",
1782 "state": "Added"
1783 },
1784 {
1785 "version": "v1",
1786 "state": "Beta"
1787 },
1788 {
1789 "version": "v2",
1790 "state": "Stable"
1791 }
1792 ],
1793 "x-immich-permission": "albumAsset.create",
1794 "x-immich-state": "Stable"
1795 }
1796 },
1797 "/albums/statistics": {
1798 "get": {
1799 "description": "Returns statistics about the albums available to the authenticated user.",
1800 "operationId": "getAlbumStatistics",
1801 "parameters": [],
1802 "responses": {
1803 "200": {
1804 "content": {
1805 "application/json": {
1806 "schema": {
1807 "$ref": "#/components/schemas/AlbumStatisticsResponseDto"
1808 }
1809 }
1810 },
1811 "description": ""
1812 }
1813 },
1814 "security": [
1815 {
1816 "bearer": []
1817 },
1818 {
1819 "cookie": []
1820 },
1821 {
1822 "api_key": []
1823 }
1824 ],
1825 "summary": "Retrieve album statistics",
1826 "tags": [
1827 "Albums"
1828 ],
1829 "x-immich-history": [
1830 {
1831 "version": "v1",
1832 "state": "Added"
1833 },
1834 {
1835 "version": "v1",
1836 "state": "Beta"
1837 },
1838 {
1839 "version": "v2",
1840 "state": "Stable"
1841 }
1842 ],
1843 "x-immich-permission": "album.statistics",
1844 "x-immich-state": "Stable"
1845 }
1846 },
1847 "/albums/{id}": {
1848 "delete": {
1849 "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.",
1850 "operationId": "deleteAlbum",
1851 "parameters": [
1852 {
1853 "name": "id",
1854 "required": true,
1855 "in": "path",
1856 "schema": {
1857 "format": "uuid",
1858 "type": "string"
1859 }
1860 }
1861 ],
1862 "responses": {
1863 "204": {
1864 "description": ""
1865 }
1866 },
1867 "security": [
1868 {
1869 "bearer": []
1870 },
1871 {
1872 "cookie": []
1873 },
1874 {
1875 "api_key": []
1876 }
1877 ],
1878 "summary": "Delete an album",
1879 "tags": [
1880 "Albums"
1881 ],
1882 "x-immich-history": [
1883 {
1884 "version": "v1",
1885 "state": "Added"
1886 },
1887 {
1888 "version": "v1",
1889 "state": "Beta"
1890 },
1891 {
1892 "version": "v2",
1893 "state": "Stable"
1894 }
1895 ],
1896 "x-immich-permission": "album.delete",
1897 "x-immich-state": "Stable"
1898 },
1899 "get": {
1900 "description": "Retrieve information about a specific album by its ID.",
1901 "operationId": "getAlbumInfo",
1902 "parameters": [
1903 {
1904 "name": "id",
1905 "required": true,
1906 "in": "path",
1907 "schema": {
1908 "format": "uuid",
1909 "type": "string"
1910 }
1911 },
1912 {
1913 "name": "key",
1914 "required": false,
1915 "in": "query",
1916 "schema": {
1917 "type": "string"
1918 }
1919 },
1920 {
1921 "name": "slug",
1922 "required": false,
1923 "in": "query",
1924 "schema": {
1925 "type": "string"
1926 }
1927 },
1928 {
1929 "name": "withoutAssets",
1930 "required": false,
1931 "in": "query",
1932 "schema": {
1933 "type": "boolean"
1934 }
1935 }
1936 ],
1937 "responses": {
1938 "200": {
1939 "content": {
1940 "application/json": {
1941 "schema": {
1942 "$ref": "#/components/schemas/AlbumResponseDto"
1943 }
1944 }
1945 },
1946 "description": ""
1947 }
1948 },
1949 "security": [
1950 {
1951 "bearer": []
1952 },
1953 {
1954 "cookie": []
1955 },
1956 {
1957 "api_key": []
1958 }
1959 ],
1960 "summary": "Retrieve an album",
1961 "tags": [
1962 "Albums"
1963 ],
1964 "x-immich-history": [
1965 {
1966 "version": "v1",
1967 "state": "Added"
1968 },
1969 {
1970 "version": "v1",
1971 "state": "Beta"
1972 },
1973 {
1974 "version": "v2",
1975 "state": "Stable"
1976 }
1977 ],
1978 "x-immich-permission": "album.read",
1979 "x-immich-state": "Stable"
1980 },
1981 "patch": {
1982 "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.",
1983 "operationId": "updateAlbumInfo",
1984 "parameters": [
1985 {
1986 "name": "id",
1987 "required": true,
1988 "in": "path",
1989 "schema": {
1990 "format": "uuid",
1991 "type": "string"
1992 }
1993 }
1994 ],
1995 "requestBody": {
1996 "content": {
1997 "application/json": {
1998 "schema": {
1999 "$ref": "#/components/schemas/UpdateAlbumDto"
2000 }
2001 }
2002 },
2003 "required": true
2004 },
2005 "responses": {
2006 "200": {
2007 "content": {
2008 "application/json": {
2009 "schema": {
2010 "$ref": "#/components/schemas/AlbumResponseDto"
2011 }
2012 }
2013 },
2014 "description": ""
2015 }
2016 },
2017 "security": [
2018 {
2019 "bearer": []
2020 },
2021 {
2022 "cookie": []
2023 },
2024 {
2025 "api_key": []
2026 }
2027 ],
2028 "summary": "Update an album",
2029 "tags": [
2030 "Albums"
2031 ],
2032 "x-immich-history": [
2033 {
2034 "version": "v1",
2035 "state": "Added"
2036 },
2037 {
2038 "version": "v1",
2039 "state": "Beta"
2040 },
2041 {
2042 "version": "v2",
2043 "state": "Stable"
2044 }
2045 ],
2046 "x-immich-permission": "album.update",
2047 "x-immich-state": "Stable"
2048 }
2049 },
2050 "/albums/{id}/assets": {
2051 "delete": {
2052 "description": "Remove multiple assets from a specific album by its ID.",
2053 "operationId": "removeAssetFromAlbum",
2054 "parameters": [
2055 {
2056 "name": "id",
2057 "required": true,
2058 "in": "path",
2059 "schema": {
2060 "format": "uuid",
2061 "type": "string"
2062 }
2063 }
2064 ],
2065 "requestBody": {
2066 "content": {
2067 "application/json": {
2068 "schema": {
2069 "$ref": "#/components/schemas/BulkIdsDto"
2070 }
2071 }
2072 },
2073 "required": true
2074 },
2075 "responses": {
2076 "200": {
2077 "content": {
2078 "application/json": {
2079 "schema": {
2080 "items": {
2081 "$ref": "#/components/schemas/BulkIdResponseDto"
2082 },
2083 "type": "array"
2084 }
2085 }
2086 },
2087 "description": ""
2088 }
2089 },
2090 "security": [
2091 {
2092 "bearer": []
2093 },
2094 {
2095 "cookie": []
2096 },
2097 {
2098 "api_key": []
2099 }
2100 ],
2101 "summary": "Remove assets from an album",
2102 "tags": [
2103 "Albums"
2104 ],
2105 "x-immich-history": [
2106 {
2107 "version": "v1",
2108 "state": "Added"
2109 },
2110 {
2111 "version": "v1",
2112 "state": "Beta"
2113 },
2114 {
2115 "version": "v2",
2116 "state": "Stable"
2117 }
2118 ],
2119 "x-immich-permission": "albumAsset.delete",
2120 "x-immich-state": "Stable"
2121 },
2122 "put": {
2123 "description": "Add multiple assets to a specific album by its ID.",
2124 "operationId": "addAssetsToAlbum",
2125 "parameters": [
2126 {
2127 "name": "id",
2128 "required": true,
2129 "in": "path",
2130 "schema": {
2131 "format": "uuid",
2132 "type": "string"
2133 }
2134 },
2135 {
2136 "name": "key",
2137 "required": false,
2138 "in": "query",
2139 "schema": {
2140 "type": "string"
2141 }
2142 },
2143 {
2144 "name": "slug",
2145 "required": false,
2146 "in": "query",
2147 "schema": {
2148 "type": "string"
2149 }
2150 }
2151 ],
2152 "requestBody": {
2153 "content": {
2154 "application/json": {
2155 "schema": {
2156 "$ref": "#/components/schemas/BulkIdsDto"
2157 }
2158 }
2159 },
2160 "required": true
2161 },
2162 "responses": {
2163 "200": {
2164 "content": {
2165 "application/json": {
2166 "schema": {
2167 "items": {
2168 "$ref": "#/components/schemas/BulkIdResponseDto"
2169 },
2170 "type": "array"
2171 }
2172 }
2173 },
2174 "description": ""
2175 }
2176 },
2177 "security": [
2178 {
2179 "bearer": []
2180 },
2181 {
2182 "cookie": []
2183 },
2184 {
2185 "api_key": []
2186 }
2187 ],
2188 "summary": "Add assets to an album",
2189 "tags": [
2190 "Albums"
2191 ],
2192 "x-immich-history": [
2193 {
2194 "version": "v1",
2195 "state": "Added"
2196 },
2197 {
2198 "version": "v1",
2199 "state": "Beta"
2200 },
2201 {
2202 "version": "v2",
2203 "state": "Stable"
2204 }
2205 ],
2206 "x-immich-permission": "albumAsset.create",
2207 "x-immich-state": "Stable"
2208 }
2209 },
2210 "/albums/{id}/user/{userId}": {
2211 "delete": {
2212 "description": "Remove a user from an album. Use an ID of \"me\" to leave a shared album.",
2213 "operationId": "removeUserFromAlbum",
2214 "parameters": [
2215 {
2216 "name": "id",
2217 "required": true,
2218 "in": "path",
2219 "schema": {
2220 "format": "uuid",
2221 "type": "string"
2222 }
2223 },
2224 {
2225 "name": "userId",
2226 "required": true,
2227 "in": "path",
2228 "schema": {
2229 "type": "string"
2230 }
2231 }
2232 ],
2233 "responses": {
2234 "204": {
2235 "description": ""
2236 }
2237 },
2238 "security": [
2239 {
2240 "bearer": []
2241 },
2242 {
2243 "cookie": []
2244 },
2245 {
2246 "api_key": []
2247 }
2248 ],
2249 "summary": "Remove user from album",
2250 "tags": [
2251 "Albums"
2252 ],
2253 "x-immich-history": [
2254 {
2255 "version": "v1",
2256 "state": "Added"
2257 },
2258 {
2259 "version": "v1",
2260 "state": "Beta"
2261 },
2262 {
2263 "version": "v2",
2264 "state": "Stable"
2265 }
2266 ],
2267 "x-immich-permission": "albumUser.delete",
2268 "x-immich-state": "Stable"
2269 },
2270 "put": {
2271 "description": "Change the role for a specific user in a specific album.",
2272 "operationId": "updateAlbumUser",
2273 "parameters": [
2274 {
2275 "name": "id",
2276 "required": true,
2277 "in": "path",
2278 "schema": {
2279 "format": "uuid",
2280 "type": "string"
2281 }
2282 },
2283 {
2284 "name": "userId",
2285 "required": true,
2286 "in": "path",
2287 "schema": {
2288 "type": "string"
2289 }
2290 }
2291 ],
2292 "requestBody": {
2293 "content": {
2294 "application/json": {
2295 "schema": {
2296 "$ref": "#/components/schemas/UpdateAlbumUserDto"
2297 }
2298 }
2299 },
2300 "required": true
2301 },
2302 "responses": {
2303 "204": {
2304 "description": ""
2305 }
2306 },
2307 "security": [
2308 {
2309 "bearer": []
2310 },
2311 {
2312 "cookie": []
2313 },
2314 {
2315 "api_key": []
2316 }
2317 ],
2318 "summary": "Update user role",
2319 "tags": [
2320 "Albums"
2321 ],
2322 "x-immich-history": [
2323 {
2324 "version": "v1",
2325 "state": "Added"
2326 },
2327 {
2328 "version": "v1",
2329 "state": "Beta"
2330 },
2331 {
2332 "version": "v2",
2333 "state": "Stable"
2334 }
2335 ],
2336 "x-immich-permission": "albumUser.update",
2337 "x-immich-state": "Stable"
2338 }
2339 },
2340 "/albums/{id}/users": {
2341 "put": {
2342 "description": "Share an album with multiple users. Each user can be given a specific role in the album.",
2343 "operationId": "addUsersToAlbum",
2344 "parameters": [
2345 {
2346 "name": "id",
2347 "required": true,
2348 "in": "path",
2349 "schema": {
2350 "format": "uuid",
2351 "type": "string"
2352 }
2353 }
2354 ],
2355 "requestBody": {
2356 "content": {
2357 "application/json": {
2358 "schema": {
2359 "$ref": "#/components/schemas/AddUsersDto"
2360 }
2361 }
2362 },
2363 "required": true
2364 },
2365 "responses": {
2366 "200": {
2367 "content": {
2368 "application/json": {
2369 "schema": {
2370 "$ref": "#/components/schemas/AlbumResponseDto"
2371 }
2372 }
2373 },
2374 "description": ""
2375 }
2376 },
2377 "security": [
2378 {
2379 "bearer": []
2380 },
2381 {
2382 "cookie": []
2383 },
2384 {
2385 "api_key": []
2386 }
2387 ],
2388 "summary": "Share album with users",
2389 "tags": [
2390 "Albums"
2391 ],
2392 "x-immich-history": [
2393 {
2394 "version": "v1",
2395 "state": "Added"
2396 },
2397 {
2398 "version": "v1",
2399 "state": "Beta"
2400 },
2401 {
2402 "version": "v2",
2403 "state": "Stable"
2404 }
2405 ],
2406 "x-immich-permission": "albumUser.create",
2407 "x-immich-state": "Stable"
2408 }
2409 },
2410 "/api-keys": {
2411 "get": {
2412 "description": "Retrieve all API keys of the current user.",
2413 "operationId": "getApiKeys",
2414 "parameters": [],
2415 "responses": {
2416 "200": {
2417 "content": {
2418 "application/json": {
2419 "schema": {
2420 "items": {
2421 "$ref": "#/components/schemas/APIKeyResponseDto"
2422 },
2423 "type": "array"
2424 }
2425 }
2426 },
2427 "description": ""
2428 }
2429 },
2430 "security": [
2431 {
2432 "bearer": []
2433 },
2434 {
2435 "cookie": []
2436 },
2437 {
2438 "api_key": []
2439 }
2440 ],
2441 "summary": "List all API keys",
2442 "tags": [
2443 "API keys"
2444 ],
2445 "x-immich-history": [
2446 {
2447 "version": "v1",
2448 "state": "Added"
2449 },
2450 {
2451 "version": "v1",
2452 "state": "Beta"
2453 },
2454 {
2455 "version": "v2",
2456 "state": "Stable"
2457 }
2458 ],
2459 "x-immich-permission": "apiKey.read",
2460 "x-immich-state": "Stable"
2461 },
2462 "post": {
2463 "description": "Creates a new API key. It will be limited to the permissions specified.",
2464 "operationId": "createApiKey",
2465 "parameters": [],
2466 "requestBody": {
2467 "content": {
2468 "application/json": {
2469 "schema": {
2470 "$ref": "#/components/schemas/APIKeyCreateDto"
2471 }
2472 }
2473 },
2474 "required": true
2475 },
2476 "responses": {
2477 "201": {
2478 "content": {
2479 "application/json": {
2480 "schema": {
2481 "$ref": "#/components/schemas/APIKeyCreateResponseDto"
2482 }
2483 }
2484 },
2485 "description": ""
2486 }
2487 },
2488 "security": [
2489 {
2490 "bearer": []
2491 },
2492 {
2493 "cookie": []
2494 },
2495 {
2496 "api_key": []
2497 }
2498 ],
2499 "summary": "Create an API key",
2500 "tags": [
2501 "API keys"
2502 ],
2503 "x-immich-history": [
2504 {
2505 "version": "v1",
2506 "state": "Added"
2507 },
2508 {
2509 "version": "v1",
2510 "state": "Beta"
2511 },
2512 {
2513 "version": "v2",
2514 "state": "Stable"
2515 }
2516 ],
2517 "x-immich-permission": "apiKey.create",
2518 "x-immich-state": "Stable"
2519 }
2520 },
2521 "/api-keys/me": {
2522 "get": {
2523 "description": "Retrieve the API key that is used to access this endpoint.",
2524 "operationId": "getMyApiKey",
2525 "parameters": [],
2526 "responses": {
2527 "200": {
2528 "content": {
2529 "application/json": {
2530 "schema": {
2531 "$ref": "#/components/schemas/APIKeyResponseDto"
2532 }
2533 }
2534 },
2535 "description": ""
2536 }
2537 },
2538 "security": [
2539 {
2540 "bearer": []
2541 },
2542 {
2543 "cookie": []
2544 },
2545 {
2546 "api_key": []
2547 }
2548 ],
2549 "summary": "Retrieve the current API key",
2550 "tags": [
2551 "API keys"
2552 ],
2553 "x-immich-history": [
2554 {
2555 "version": "v1",
2556 "state": "Added"
2557 },
2558 {
2559 "version": "v1",
2560 "state": "Beta"
2561 },
2562 {
2563 "version": "v2",
2564 "state": "Stable"
2565 }
2566 ],
2567 "x-immich-state": "Stable"
2568 }
2569 },
2570 "/api-keys/{id}": {
2571 "delete": {
2572 "description": "Deletes an API key identified by its ID. The current user must own this API key.",
2573 "operationId": "deleteApiKey",
2574 "parameters": [
2575 {
2576 "name": "id",
2577 "required": true,
2578 "in": "path",
2579 "schema": {
2580 "format": "uuid",
2581 "type": "string"
2582 }
2583 }
2584 ],
2585 "responses": {
2586 "204": {
2587 "description": ""
2588 }
2589 },
2590 "security": [
2591 {
2592 "bearer": []
2593 },
2594 {
2595 "cookie": []
2596 },
2597 {
2598 "api_key": []
2599 }
2600 ],
2601 "summary": "Delete an API key",
2602 "tags": [
2603 "API keys"
2604 ],
2605 "x-immich-history": [
2606 {
2607 "version": "v1",
2608 "state": "Added"
2609 },
2610 {
2611 "version": "v1",
2612 "state": "Beta"
2613 },
2614 {
2615 "version": "v2",
2616 "state": "Stable"
2617 }
2618 ],
2619 "x-immich-permission": "apiKey.delete",
2620 "x-immich-state": "Stable"
2621 },
2622 "get": {
2623 "description": "Retrieve an API key by its ID. The current user must own this API key.",
2624 "operationId": "getApiKey",
2625 "parameters": [
2626 {
2627 "name": "id",
2628 "required": true,
2629 "in": "path",
2630 "schema": {
2631 "format": "uuid",
2632 "type": "string"
2633 }
2634 }
2635 ],
2636 "responses": {
2637 "200": {
2638 "content": {
2639 "application/json": {
2640 "schema": {
2641 "$ref": "#/components/schemas/APIKeyResponseDto"
2642 }
2643 }
2644 },
2645 "description": ""
2646 }
2647 },
2648 "security": [
2649 {
2650 "bearer": []
2651 },
2652 {
2653 "cookie": []
2654 },
2655 {
2656 "api_key": []
2657 }
2658 ],
2659 "summary": "Retrieve an API key",
2660 "tags": [
2661 "API keys"
2662 ],
2663 "x-immich-history": [
2664 {
2665 "version": "v1",
2666 "state": "Added"
2667 },
2668 {
2669 "version": "v1",
2670 "state": "Beta"
2671 },
2672 {
2673 "version": "v2",
2674 "state": "Stable"
2675 }
2676 ],
2677 "x-immich-permission": "apiKey.read",
2678 "x-immich-state": "Stable"
2679 },
2680 "put": {
2681 "description": "Updates the name and permissions of an API key by its ID. The current user must own this API key.",
2682 "operationId": "updateApiKey",
2683 "parameters": [
2684 {
2685 "name": "id",
2686 "required": true,
2687 "in": "path",
2688 "schema": {
2689 "format": "uuid",
2690 "type": "string"
2691 }
2692 }
2693 ],
2694 "requestBody": {
2695 "content": {
2696 "application/json": {
2697 "schema": {
2698 "$ref": "#/components/schemas/APIKeyUpdateDto"
2699 }
2700 }
2701 },
2702 "required": true
2703 },
2704 "responses": {
2705 "200": {
2706 "content": {
2707 "application/json": {
2708 "schema": {
2709 "$ref": "#/components/schemas/APIKeyResponseDto"
2710 }
2711 }
2712 },
2713 "description": ""
2714 }
2715 },
2716 "security": [
2717 {
2718 "bearer": []
2719 },
2720 {
2721 "cookie": []
2722 },
2723 {
2724 "api_key": []
2725 }
2726 ],
2727 "summary": "Update an API key",
2728 "tags": [
2729 "API keys"
2730 ],
2731 "x-immich-history": [
2732 {
2733 "version": "v1",
2734 "state": "Added"
2735 },
2736 {
2737 "version": "v1",
2738 "state": "Beta"
2739 },
2740 {
2741 "version": "v2",
2742 "state": "Stable"
2743 }
2744 ],
2745 "x-immich-permission": "apiKey.update",
2746 "x-immich-state": "Stable"
2747 }
2748 },
2749 "/assets": {
2750 "delete": {
2751 "description": "Deletes multiple assets at the same time.",
2752 "operationId": "deleteAssets",
2753 "parameters": [],
2754 "requestBody": {
2755 "content": {
2756 "application/json": {
2757 "schema": {
2758 "$ref": "#/components/schemas/AssetBulkDeleteDto"
2759 }
2760 }
2761 },
2762 "required": true
2763 },
2764 "responses": {
2765 "204": {
2766 "description": ""
2767 }
2768 },
2769 "security": [
2770 {
2771 "bearer": []
2772 },
2773 {
2774 "cookie": []
2775 },
2776 {
2777 "api_key": []
2778 }
2779 ],
2780 "summary": "Delete assets",
2781 "tags": [
2782 "Assets"
2783 ],
2784 "x-immich-history": [
2785 {
2786 "version": "v1",
2787 "state": "Added"
2788 },
2789 {
2790 "version": "v1",
2791 "state": "Beta"
2792 },
2793 {
2794 "version": "v2",
2795 "state": "Stable"
2796 }
2797 ],
2798 "x-immich-permission": "asset.delete",
2799 "x-immich-state": "Stable"
2800 },
2801 "post": {
2802 "description": "Uploads a new asset to the server.",
2803 "operationId": "uploadAsset",
2804 "parameters": [
2805 {
2806 "name": "key",
2807 "required": false,
2808 "in": "query",
2809 "schema": {
2810 "type": "string"
2811 }
2812 },
2813 {
2814 "name": "slug",
2815 "required": false,
2816 "in": "query",
2817 "schema": {
2818 "type": "string"
2819 }
2820 },
2821 {
2822 "name": "x-immich-checksum",
2823 "in": "header",
2824 "description": "sha1 checksum that can be used for duplicate detection before the file is uploaded",
2825 "required": false,
2826 "schema": {
2827 "type": "string"
2828 }
2829 }
2830 ],
2831 "requestBody": {
2832 "content": {
2833 "multipart/form-data": {
2834 "schema": {
2835 "$ref": "#/components/schemas/AssetMediaCreateDto"
2836 }
2837 }
2838 },
2839 "description": "Asset Upload Information",
2840 "required": true
2841 },
2842 "responses": {
2843 "200": {
2844 "content": {
2845 "application/json": {
2846 "schema": {
2847 "$ref": "#/components/schemas/AssetMediaResponseDto"
2848 }
2849 }
2850 },
2851 "description": "Asset is a duplicate"
2852 },
2853 "201": {
2854 "content": {
2855 "application/json": {
2856 "schema": {
2857 "$ref": "#/components/schemas/AssetMediaResponseDto"
2858 }
2859 }
2860 },
2861 "description": "Asset uploaded successfully"
2862 }
2863 },
2864 "security": [
2865 {
2866 "bearer": []
2867 },
2868 {
2869 "cookie": []
2870 },
2871 {
2872 "api_key": []
2873 }
2874 ],
2875 "summary": "Upload asset",
2876 "tags": [
2877 "Assets"
2878 ],
2879 "x-immich-history": [
2880 {
2881 "version": "v1",
2882 "state": "Added"
2883 },
2884 {
2885 "version": "v1",
2886 "state": "Beta"
2887 },
2888 {
2889 "version": "v2",
2890 "state": "Stable"
2891 }
2892 ],
2893 "x-immich-permission": "asset.upload",
2894 "x-immich-state": "Stable"
2895 },
2896 "put": {
2897 "description": "Updates multiple assets at the same time.",
2898 "operationId": "updateAssets",
2899 "parameters": [],
2900 "requestBody": {
2901 "content": {
2902 "application/json": {
2903 "schema": {
2904 "$ref": "#/components/schemas/AssetBulkUpdateDto"
2905 }
2906 }
2907 },
2908 "required": true
2909 },
2910 "responses": {
2911 "204": {
2912 "description": ""
2913 }
2914 },
2915 "security": [
2916 {
2917 "bearer": []
2918 },
2919 {
2920 "cookie": []
2921 },
2922 {
2923 "api_key": []
2924 }
2925 ],
2926 "summary": "Update assets",
2927 "tags": [
2928 "Assets"
2929 ],
2930 "x-immich-history": [
2931 {
2932 "version": "v1",
2933 "state": "Added"
2934 },
2935 {
2936 "version": "v1",
2937 "state": "Beta"
2938 },
2939 {
2940 "version": "v2",
2941 "state": "Stable"
2942 }
2943 ],
2944 "x-immich-permission": "asset.update",
2945 "x-immich-state": "Stable"
2946 }
2947 },
2948 "/assets/bulk-upload-check": {
2949 "post": {
2950 "description": "Determine which assets have already been uploaded to the server based on their SHA1 checksums.",
2951 "operationId": "checkBulkUpload",
2952 "parameters": [],
2953 "requestBody": {
2954 "content": {
2955 "application/json": {
2956 "schema": {
2957 "$ref": "#/components/schemas/AssetBulkUploadCheckDto"
2958 }
2959 }
2960 },
2961 "required": true
2962 },
2963 "responses": {
2964 "200": {
2965 "content": {
2966 "application/json": {
2967 "schema": {
2968 "$ref": "#/components/schemas/AssetBulkUploadCheckResponseDto"
2969 }
2970 }
2971 },
2972 "description": ""
2973 }
2974 },
2975 "security": [
2976 {
2977 "bearer": []
2978 },
2979 {
2980 "cookie": []
2981 },
2982 {
2983 "api_key": []
2984 }
2985 ],
2986 "summary": "Check bulk upload",
2987 "tags": [
2988 "Assets"
2989 ],
2990 "x-immich-history": [
2991 {
2992 "version": "v1",
2993 "state": "Added"
2994 },
2995 {
2996 "version": "v1",
2997 "state": "Beta"
2998 },
2999 {
3000 "version": "v2",
3001 "state": "Stable"
3002 }
3003 ],
3004 "x-immich-permission": "asset.upload",
3005 "x-immich-state": "Stable"
3006 }
3007 },
3008 "/assets/copy": {
3009 "put": {
3010 "description": "Copy asset information like albums, tags, etc. from one asset to another.",
3011 "operationId": "copyAsset",
3012 "parameters": [],
3013 "requestBody": {
3014 "content": {
3015 "application/json": {
3016 "schema": {
3017 "$ref": "#/components/schemas/AssetCopyDto"
3018 }
3019 }
3020 },
3021 "required": true
3022 },
3023 "responses": {
3024 "204": {
3025 "description": ""
3026 }
3027 },
3028 "security": [
3029 {
3030 "bearer": []
3031 },
3032 {
3033 "cookie": []
3034 },
3035 {
3036 "api_key": []
3037 }
3038 ],
3039 "summary": "Copy asset",
3040 "tags": [
3041 "Assets"
3042 ],
3043 "x-immich-history": [
3044 {
3045 "version": "v1",
3046 "state": "Added"
3047 },
3048 {
3049 "version": "v1",
3050 "state": "Beta"
3051 },
3052 {
3053 "version": "v2",
3054 "state": "Stable"
3055 }
3056 ],
3057 "x-immich-permission": "asset.copy",
3058 "x-immich-state": "Stable"
3059 }
3060 },
3061 "/assets/device/{deviceId}": {
3062 "get": {
3063 "deprecated": true,
3064 "description": "Get all asset of a device that are in the database, ID only.",
3065 "operationId": "getAllUserAssetsByDeviceId",
3066 "parameters": [
3067 {
3068 "name": "deviceId",
3069 "required": true,
3070 "in": "path",
3071 "schema": {
3072 "type": "string"
3073 }
3074 }
3075 ],
3076 "responses": {
3077 "200": {
3078 "content": {
3079 "application/json": {
3080 "schema": {
3081 "items": {
3082 "type": "string"
3083 },
3084 "type": "array"
3085 }
3086 }
3087 },
3088 "description": ""
3089 }
3090 },
3091 "security": [
3092 {
3093 "bearer": []
3094 },
3095 {
3096 "cookie": []
3097 },
3098 {
3099 "api_key": []
3100 }
3101 ],
3102 "summary": "Retrieve assets by device ID",
3103 "tags": [
3104 "Assets",
3105 "Deprecated"
3106 ],
3107 "x-immich-history": [
3108 {
3109 "version": "v1",
3110 "state": "Added"
3111 },
3112 {
3113 "version": "v2",
3114 "state": "Deprecated"
3115 }
3116 ],
3117 "x-immich-state": "Deprecated"
3118 }
3119 },
3120 "/assets/exist": {
3121 "post": {
3122 "description": "Checks if multiple assets exist on the server and returns all existing - used by background backup",
3123 "operationId": "checkExistingAssets",
3124 "parameters": [],
3125 "requestBody": {
3126 "content": {
3127 "application/json": {
3128 "schema": {
3129 "$ref": "#/components/schemas/CheckExistingAssetsDto"
3130 }
3131 }
3132 },
3133 "required": true
3134 },
3135 "responses": {
3136 "200": {
3137 "content": {
3138 "application/json": {
3139 "schema": {
3140 "$ref": "#/components/schemas/CheckExistingAssetsResponseDto"
3141 }
3142 }
3143 },
3144 "description": ""
3145 }
3146 },
3147 "security": [
3148 {
3149 "bearer": []
3150 },
3151 {
3152 "cookie": []
3153 },
3154 {
3155 "api_key": []
3156 }
3157 ],
3158 "summary": "Check existing assets",
3159 "tags": [
3160 "Assets"
3161 ],
3162 "x-immich-history": [
3163 {
3164 "version": "v1",
3165 "state": "Added"
3166 },
3167 {
3168 "version": "v1",
3169 "state": "Beta"
3170 },
3171 {
3172 "version": "v2",
3173 "state": "Stable"
3174 }
3175 ],
3176 "x-immich-permission": "asset.upload",
3177 "x-immich-state": "Stable"
3178 }
3179 },
3180 "/assets/jobs": {
3181 "post": {
3182 "description": "Run a specific job on a set of assets.",
3183 "operationId": "runAssetJobs",
3184 "parameters": [],
3185 "requestBody": {
3186 "content": {
3187 "application/json": {
3188 "schema": {
3189 "$ref": "#/components/schemas/AssetJobsDto"
3190 }
3191 }
3192 },
3193 "required": true
3194 },
3195 "responses": {
3196 "204": {
3197 "description": ""
3198 }
3199 },
3200 "security": [
3201 {
3202 "bearer": []
3203 },
3204 {
3205 "cookie": []
3206 },
3207 {
3208 "api_key": []
3209 }
3210 ],
3211 "summary": "Run an asset job",
3212 "tags": [
3213 "Assets"
3214 ],
3215 "x-immich-history": [
3216 {
3217 "version": "v1",
3218 "state": "Added"
3219 },
3220 {
3221 "version": "v1",
3222 "state": "Beta"
3223 },
3224 {
3225 "version": "v2",
3226 "state": "Stable"
3227 }
3228 ],
3229 "x-immich-permission": "job.create",
3230 "x-immich-state": "Stable"
3231 }
3232 },
3233 "/assets/metadata": {
3234 "delete": {
3235 "description": "Delete metadata key-value pairs for multiple assets.",
3236 "operationId": "deleteBulkAssetMetadata",
3237 "parameters": [],
3238 "requestBody": {
3239 "content": {
3240 "application/json": {
3241 "schema": {
3242 "$ref": "#/components/schemas/AssetMetadataBulkDeleteDto"
3243 }
3244 }
3245 },
3246 "required": true
3247 },
3248 "responses": {
3249 "204": {
3250 "description": ""
3251 }
3252 },
3253 "security": [
3254 {
3255 "bearer": []
3256 },
3257 {
3258 "cookie": []
3259 },
3260 {
3261 "api_key": []
3262 }
3263 ],
3264 "summary": "Delete asset metadata",
3265 "tags": [
3266 "Assets"
3267 ],
3268 "x-immich-history": [
3269 {
3270 "version": "v1",
3271 "state": "Added"
3272 },
3273 {
3274 "version": "v2.5.0",
3275 "state": "Beta"
3276 }
3277 ],
3278 "x-immich-permission": "asset.update",
3279 "x-immich-state": "Beta"
3280 },
3281 "put": {
3282 "description": "Upsert metadata key-value pairs for multiple assets.",
3283 "operationId": "updateBulkAssetMetadata",
3284 "parameters": [],
3285 "requestBody": {
3286 "content": {
3287 "application/json": {
3288 "schema": {
3289 "$ref": "#/components/schemas/AssetMetadataBulkUpsertDto"
3290 }
3291 }
3292 },
3293 "required": true
3294 },
3295 "responses": {
3296 "200": {
3297 "content": {
3298 "application/json": {
3299 "schema": {
3300 "items": {
3301 "$ref": "#/components/schemas/AssetMetadataBulkResponseDto"
3302 },
3303 "type": "array"
3304 }
3305 }
3306 },
3307 "description": ""
3308 }
3309 },
3310 "security": [
3311 {
3312 "bearer": []
3313 },
3314 {
3315 "cookie": []
3316 },
3317 {
3318 "api_key": []
3319 }
3320 ],
3321 "summary": "Upsert asset metadata",
3322 "tags": [
3323 "Assets"
3324 ],
3325 "x-immich-history": [
3326 {
3327 "version": "v1",
3328 "state": "Added"
3329 },
3330 {
3331 "version": "v2.5.0",
3332 "state": "Beta"
3333 }
3334 ],
3335 "x-immich-permission": "asset.update",
3336 "x-immich-state": "Beta"
3337 }
3338 },
3339 "/assets/random": {
3340 "get": {
3341 "deprecated": true,
3342 "description": "Retrieve a specified number of random assets for the authenticated user.",
3343 "operationId": "getRandom",
3344 "parameters": [
3345 {
3346 "name": "count",
3347 "required": false,
3348 "in": "query",
3349 "schema": {
3350 "minimum": 1,
3351 "type": "number"
3352 }
3353 }
3354 ],
3355 "responses": {
3356 "200": {
3357 "content": {
3358 "application/json": {
3359 "schema": {
3360 "items": {
3361 "$ref": "#/components/schemas/AssetResponseDto"
3362 },
3363 "type": "array"
3364 }
3365 }
3366 },
3367 "description": ""
3368 }
3369 },
3370 "security": [
3371 {
3372 "bearer": []
3373 },
3374 {
3375 "cookie": []
3376 },
3377 {
3378 "api_key": []
3379 }
3380 ],
3381 "summary": "Get random assets",
3382 "tags": [
3383 "Assets",
3384 "Deprecated"
3385 ],
3386 "x-immich-history": [
3387 {
3388 "version": "v1",
3389 "state": "Added"
3390 },
3391 {
3392 "version": "v1",
3393 "state": "Deprecated",
3394 "replacementId": "searchAssets"
3395 }
3396 ],
3397 "x-immich-permission": "asset.read",
3398 "x-immich-state": "Deprecated"
3399 }
3400 },
3401 "/assets/statistics": {
3402 "get": {
3403 "description": "Retrieve various statistics about the assets owned by the authenticated user.",
3404 "operationId": "getAssetStatistics",
3405 "parameters": [
3406 {
3407 "name": "isFavorite",
3408 "required": false,
3409 "in": "query",
3410 "schema": {
3411 "type": "boolean"
3412 }
3413 },
3414 {
3415 "name": "isTrashed",
3416 "required": false,
3417 "in": "query",
3418 "schema": {
3419 "type": "boolean"
3420 }
3421 },
3422 {
3423 "name": "visibility",
3424 "required": false,
3425 "in": "query",
3426 "schema": {
3427 "$ref": "#/components/schemas/AssetVisibility"
3428 }
3429 }
3430 ],
3431 "responses": {
3432 "200": {
3433 "content": {
3434 "application/json": {
3435 "schema": {
3436 "$ref": "#/components/schemas/AssetStatsResponseDto"
3437 }
3438 }
3439 },
3440 "description": ""
3441 }
3442 },
3443 "security": [
3444 {
3445 "bearer": []
3446 },
3447 {
3448 "cookie": []
3449 },
3450 {
3451 "api_key": []
3452 }
3453 ],
3454 "summary": "Get asset statistics",
3455 "tags": [
3456 "Assets"
3457 ],
3458 "x-immich-history": [
3459 {
3460 "version": "v1",
3461 "state": "Added"
3462 },
3463 {
3464 "version": "v1",
3465 "state": "Beta"
3466 },
3467 {
3468 "version": "v2",
3469 "state": "Stable"
3470 }
3471 ],
3472 "x-immich-permission": "asset.statistics",
3473 "x-immich-state": "Stable"
3474 }
3475 },
3476 "/assets/{id}": {
3477 "get": {
3478 "description": "Retrieve detailed information about a specific asset.",
3479 "operationId": "getAssetInfo",
3480 "parameters": [
3481 {
3482 "name": "id",
3483 "required": true,
3484 "in": "path",
3485 "schema": {
3486 "format": "uuid",
3487 "type": "string"
3488 }
3489 },
3490 {
3491 "name": "key",
3492 "required": false,
3493 "in": "query",
3494 "schema": {
3495 "type": "string"
3496 }
3497 },
3498 {
3499 "name": "slug",
3500 "required": false,
3501 "in": "query",
3502 "schema": {
3503 "type": "string"
3504 }
3505 }
3506 ],
3507 "responses": {
3508 "200": {
3509 "content": {
3510 "application/json": {
3511 "schema": {
3512 "$ref": "#/components/schemas/AssetResponseDto"
3513 }
3514 }
3515 },
3516 "description": ""
3517 }
3518 },
3519 "security": [
3520 {
3521 "bearer": []
3522 },
3523 {
3524 "cookie": []
3525 },
3526 {
3527 "api_key": []
3528 }
3529 ],
3530 "summary": "Retrieve an asset",
3531 "tags": [
3532 "Assets"
3533 ],
3534 "x-immich-history": [
3535 {
3536 "version": "v1",
3537 "state": "Added"
3538 },
3539 {
3540 "version": "v1",
3541 "state": "Beta"
3542 },
3543 {
3544 "version": "v2",
3545 "state": "Stable"
3546 }
3547 ],
3548 "x-immich-permission": "asset.read",
3549 "x-immich-state": "Stable"
3550 },
3551 "put": {
3552 "description": "Update information of a specific asset.",
3553 "operationId": "updateAsset",
3554 "parameters": [
3555 {
3556 "name": "id",
3557 "required": true,
3558 "in": "path",
3559 "schema": {
3560 "format": "uuid",
3561 "type": "string"
3562 }
3563 }
3564 ],
3565 "requestBody": {
3566 "content": {
3567 "application/json": {
3568 "schema": {
3569 "$ref": "#/components/schemas/UpdateAssetDto"
3570 }
3571 }
3572 },
3573 "required": true
3574 },
3575 "responses": {
3576 "200": {
3577 "content": {
3578 "application/json": {
3579 "schema": {
3580 "$ref": "#/components/schemas/AssetResponseDto"
3581 }
3582 }
3583 },
3584 "description": ""
3585 }
3586 },
3587 "security": [
3588 {
3589 "bearer": []
3590 },
3591 {
3592 "cookie": []
3593 },
3594 {
3595 "api_key": []
3596 }
3597 ],
3598 "summary": "Update an asset",
3599 "tags": [
3600 "Assets"
3601 ],
3602 "x-immich-history": [
3603 {
3604 "version": "v1",
3605 "state": "Added"
3606 },
3607 {
3608 "version": "v1",
3609 "state": "Beta"
3610 },
3611 {
3612 "version": "v2",
3613 "state": "Stable"
3614 }
3615 ],
3616 "x-immich-permission": "asset.update",
3617 "x-immich-state": "Stable"
3618 }
3619 },
3620 "/assets/{id}/edits": {
3621 "delete": {
3622 "description": "Removes all edit actions (crop, rotate, mirror) associated with the specified asset.",
3623 "operationId": "removeAssetEdits",
3624 "parameters": [
3625 {
3626 "name": "id",
3627 "required": true,
3628 "in": "path",
3629 "schema": {
3630 "format": "uuid",
3631 "type": "string"
3632 }
3633 }
3634 ],
3635 "responses": {
3636 "204": {
3637 "description": ""
3638 }
3639 },
3640 "security": [
3641 {
3642 "bearer": []
3643 },
3644 {
3645 "cookie": []
3646 },
3647 {
3648 "api_key": []
3649 }
3650 ],
3651 "summary": "Remove edits from an existing asset",
3652 "tags": [
3653 "Assets"
3654 ],
3655 "x-immich-history": [
3656 {
3657 "version": "v2.5.0",
3658 "state": "Added"
3659 },
3660 {
3661 "version": "v2.5.0",
3662 "state": "Beta"
3663 }
3664 ],
3665 "x-immich-permission": "asset.edit.delete",
3666 "x-immich-state": "Beta"
3667 },
3668 "get": {
3669 "description": "Retrieve a series of edit actions (crop, rotate, mirror) associated with the specified asset.",
3670 "operationId": "getAssetEdits",
3671 "parameters": [
3672 {
3673 "name": "id",
3674 "required": true,
3675 "in": "path",
3676 "schema": {
3677 "format": "uuid",
3678 "type": "string"
3679 }
3680 }
3681 ],
3682 "responses": {
3683 "200": {
3684 "content": {
3685 "application/json": {
3686 "schema": {
3687 "$ref": "#/components/schemas/AssetEditsDto"
3688 }
3689 }
3690 },
3691 "description": ""
3692 }
3693 },
3694 "security": [
3695 {
3696 "bearer": []
3697 },
3698 {
3699 "cookie": []
3700 },
3701 {
3702 "api_key": []
3703 }
3704 ],
3705 "summary": "Retrieve edits for an existing asset",
3706 "tags": [
3707 "Assets"
3708 ],
3709 "x-immich-history": [
3710 {
3711 "version": "v2.5.0",
3712 "state": "Added"
3713 },
3714 {
3715 "version": "v2.5.0",
3716 "state": "Beta"
3717 }
3718 ],
3719 "x-immich-permission": "asset.edit.get",
3720 "x-immich-state": "Beta"
3721 },
3722 "put": {
3723 "description": "Apply a series of edit actions (crop, rotate, mirror) to the specified asset.",
3724 "operationId": "editAsset",
3725 "parameters": [
3726 {
3727 "name": "id",
3728 "required": true,
3729 "in": "path",
3730 "schema": {
3731 "format": "uuid",
3732 "type": "string"
3733 }
3734 }
3735 ],
3736 "requestBody": {
3737 "content": {
3738 "application/json": {
3739 "schema": {
3740 "$ref": "#/components/schemas/AssetEditActionListDto"
3741 }
3742 }
3743 },
3744 "required": true
3745 },
3746 "responses": {
3747 "200": {
3748 "content": {
3749 "application/json": {
3750 "schema": {
3751 "$ref": "#/components/schemas/AssetEditsDto"
3752 }
3753 }
3754 },
3755 "description": ""
3756 }
3757 },
3758 "security": [
3759 {
3760 "bearer": []
3761 },
3762 {
3763 "cookie": []
3764 },
3765 {
3766 "api_key": []
3767 }
3768 ],
3769 "summary": "Apply edits to an existing asset",
3770 "tags": [
3771 "Assets"
3772 ],
3773 "x-immich-history": [
3774 {
3775 "version": "v2.5.0",
3776 "state": "Added"
3777 },
3778 {
3779 "version": "v2.5.0",
3780 "state": "Beta"
3781 }
3782 ],
3783 "x-immich-permission": "asset.edit.create",
3784 "x-immich-state": "Beta"
3785 }
3786 },
3787 "/assets/{id}/metadata": {
3788 "get": {
3789 "description": "Retrieve all metadata key-value pairs associated with the specified asset.",
3790 "operationId": "getAssetMetadata",
3791 "parameters": [
3792 {
3793 "name": "id",
3794 "required": true,
3795 "in": "path",
3796 "schema": {
3797 "format": "uuid",
3798 "type": "string"
3799 }
3800 }
3801 ],
3802 "responses": {
3803 "200": {
3804 "content": {
3805 "application/json": {
3806 "schema": {
3807 "items": {
3808 "$ref": "#/components/schemas/AssetMetadataResponseDto"
3809 },
3810 "type": "array"
3811 }
3812 }
3813 },
3814 "description": ""
3815 }
3816 },
3817 "security": [
3818 {
3819 "bearer": []
3820 },
3821 {
3822 "cookie": []
3823 },
3824 {
3825 "api_key": []
3826 }
3827 ],
3828 "summary": "Get asset metadata",
3829 "tags": [
3830 "Assets"
3831 ],
3832 "x-immich-history": [
3833 {
3834 "version": "v1",
3835 "state": "Added"
3836 },
3837 {
3838 "version": "v1",
3839 "state": "Beta"
3840 },
3841 {
3842 "version": "v2",
3843 "state": "Stable"
3844 }
3845 ],
3846 "x-immich-permission": "asset.read",
3847 "x-immich-state": "Stable"
3848 },
3849 "put": {
3850 "description": "Update or add metadata key-value pairs for the specified asset.",
3851 "operationId": "updateAssetMetadata",
3852 "parameters": [
3853 {
3854 "name": "id",
3855 "required": true,
3856 "in": "path",
3857 "schema": {
3858 "format": "uuid",
3859 "type": "string"
3860 }
3861 }
3862 ],
3863 "requestBody": {
3864 "content": {
3865 "application/json": {
3866 "schema": {
3867 "$ref": "#/components/schemas/AssetMetadataUpsertDto"
3868 }
3869 }
3870 },
3871 "required": true
3872 },
3873 "responses": {
3874 "200": {
3875 "content": {
3876 "application/json": {
3877 "schema": {
3878 "items": {
3879 "$ref": "#/components/schemas/AssetMetadataResponseDto"
3880 },
3881 "type": "array"
3882 }
3883 }
3884 },
3885 "description": ""
3886 }
3887 },
3888 "security": [
3889 {
3890 "bearer": []
3891 },
3892 {
3893 "cookie": []
3894 },
3895 {
3896 "api_key": []
3897 }
3898 ],
3899 "summary": "Update asset metadata",
3900 "tags": [
3901 "Assets"
3902 ],
3903 "x-immich-history": [
3904 {
3905 "version": "v1",
3906 "state": "Added"
3907 },
3908 {
3909 "version": "v1",
3910 "state": "Beta"
3911 },
3912 {
3913 "version": "v2",
3914 "state": "Stable"
3915 }
3916 ],
3917 "x-immich-permission": "asset.update",
3918 "x-immich-state": "Stable"
3919 }
3920 },
3921 "/assets/{id}/metadata/{key}": {
3922 "delete": {
3923 "description": "Delete a specific metadata key-value pair associated with the specified asset.",
3924 "operationId": "deleteAssetMetadata",
3925 "parameters": [
3926 {
3927 "name": "id",
3928 "required": true,
3929 "in": "path",
3930 "schema": {
3931 "format": "uuid",
3932 "type": "string"
3933 }
3934 },
3935 {
3936 "name": "key",
3937 "required": true,
3938 "in": "path",
3939 "schema": {
3940 "type": "string"
3941 }
3942 }
3943 ],
3944 "responses": {
3945 "204": {
3946 "description": ""
3947 }
3948 },
3949 "security": [
3950 {
3951 "bearer": []
3952 },
3953 {
3954 "cookie": []
3955 },
3956 {
3957 "api_key": []
3958 }
3959 ],
3960 "summary": "Delete asset metadata by key",
3961 "tags": [
3962 "Assets"
3963 ],
3964 "x-immich-history": [
3965 {
3966 "version": "v1",
3967 "state": "Added"
3968 },
3969 {
3970 "version": "v1",
3971 "state": "Beta"
3972 },
3973 {
3974 "version": "v2",
3975 "state": "Stable"
3976 }
3977 ],
3978 "x-immich-permission": "asset.update",
3979 "x-immich-state": "Stable"
3980 },
3981 "get": {
3982 "description": "Retrieve the value of a specific metadata key associated with the specified asset.",
3983 "operationId": "getAssetMetadataByKey",
3984 "parameters": [
3985 {
3986 "name": "id",
3987 "required": true,
3988 "in": "path",
3989 "schema": {
3990 "format": "uuid",
3991 "type": "string"
3992 }
3993 },
3994 {
3995 "name": "key",
3996 "required": true,
3997 "in": "path",
3998 "schema": {
3999 "type": "string"
4000 }
4001 }
4002 ],
4003 "responses": {
4004 "200": {
4005 "content": {
4006 "application/json": {
4007 "schema": {
4008 "$ref": "#/components/schemas/AssetMetadataResponseDto"
4009 }
4010 }
4011 },
4012 "description": ""
4013 }
4014 },
4015 "security": [
4016 {
4017 "bearer": []
4018 },
4019 {
4020 "cookie": []
4021 },
4022 {
4023 "api_key": []
4024 }
4025 ],
4026 "summary": "Retrieve asset metadata by key",
4027 "tags": [
4028 "Assets"
4029 ],
4030 "x-immich-history": [
4031 {
4032 "version": "v1",
4033 "state": "Added"
4034 },
4035 {
4036 "version": "v1",
4037 "state": "Beta"
4038 },
4039 {
4040 "version": "v2",
4041 "state": "Stable"
4042 }
4043 ],
4044 "x-immich-permission": "asset.read",
4045 "x-immich-state": "Stable"
4046 }
4047 },
4048 "/assets/{id}/ocr": {
4049 "get": {
4050 "description": "Retrieve all OCR (Optical Character Recognition) data associated with the specified asset.",
4051 "operationId": "getAssetOcr",
4052 "parameters": [
4053 {
4054 "name": "id",
4055 "required": true,
4056 "in": "path",
4057 "schema": {
4058 "format": "uuid",
4059 "type": "string"
4060 }
4061 }
4062 ],
4063 "responses": {
4064 "200": {
4065 "content": {
4066 "application/json": {
4067 "schema": {
4068 "items": {
4069 "$ref": "#/components/schemas/AssetOcrResponseDto"
4070 },
4071 "type": "array"
4072 }
4073 }
4074 },
4075 "description": ""
4076 }
4077 },
4078 "security": [
4079 {
4080 "bearer": []
4081 },
4082 {
4083 "cookie": []
4084 },
4085 {
4086 "api_key": []
4087 }
4088 ],
4089 "summary": "Retrieve asset OCR data",
4090 "tags": [
4091 "Assets"
4092 ],
4093 "x-immich-history": [
4094 {
4095 "version": "v1",
4096 "state": "Added"
4097 },
4098 {
4099 "version": "v1",
4100 "state": "Beta"
4101 },
4102 {
4103 "version": "v2",
4104 "state": "Stable"
4105 }
4106 ],
4107 "x-immich-permission": "asset.read",
4108 "x-immich-state": "Stable"
4109 }
4110 },
4111 "/assets/{id}/original": {
4112 "get": {
4113 "description": "Downloads the original file of the specified asset.",
4114 "operationId": "downloadAsset",
4115 "parameters": [
4116 {
4117 "name": "edited",
4118 "required": false,
4119 "in": "query",
4120 "schema": {
4121 "default": false,
4122 "type": "boolean"
4123 }
4124 },
4125 {
4126 "name": "id",
4127 "required": true,
4128 "in": "path",
4129 "schema": {
4130 "format": "uuid",
4131 "type": "string"
4132 }
4133 },
4134 {
4135 "name": "key",
4136 "required": false,
4137 "in": "query",
4138 "schema": {
4139 "type": "string"
4140 }
4141 },
4142 {
4143 "name": "slug",
4144 "required": false,
4145 "in": "query",
4146 "schema": {
4147 "type": "string"
4148 }
4149 }
4150 ],
4151 "responses": {
4152 "200": {
4153 "content": {
4154 "application/octet-stream": {
4155 "schema": {
4156 "format": "binary",
4157 "type": "string"
4158 }
4159 }
4160 },
4161 "description": ""
4162 }
4163 },
4164 "security": [
4165 {
4166 "bearer": []
4167 },
4168 {
4169 "cookie": []
4170 },
4171 {
4172 "api_key": []
4173 }
4174 ],
4175 "summary": "Download original asset",
4176 "tags": [
4177 "Assets"
4178 ],
4179 "x-immich-history": [
4180 {
4181 "version": "v1",
4182 "state": "Added"
4183 },
4184 {
4185 "version": "v1",
4186 "state": "Beta"
4187 },
4188 {
4189 "version": "v2",
4190 "state": "Stable"
4191 }
4192 ],
4193 "x-immich-permission": "asset.download",
4194 "x-immich-state": "Stable"
4195 },
4196 "put": {
4197 "deprecated": true,
4198 "description": "Replace the asset with new file, without changing its id.",
4199 "operationId": "replaceAsset",
4200 "parameters": [
4201 {
4202 "name": "id",
4203 "required": true,
4204 "in": "path",
4205 "schema": {
4206 "format": "uuid",
4207 "type": "string"
4208 }
4209 },
4210 {
4211 "name": "key",
4212 "required": false,
4213 "in": "query",
4214 "schema": {
4215 "type": "string"
4216 }
4217 },
4218 {
4219 "name": "slug",
4220 "required": false,
4221 "in": "query",
4222 "schema": {
4223 "type": "string"
4224 }
4225 }
4226 ],
4227 "requestBody": {
4228 "content": {
4229 "multipart/form-data": {
4230 "schema": {
4231 "$ref": "#/components/schemas/AssetMediaReplaceDto"
4232 }
4233 }
4234 },
4235 "required": true
4236 },
4237 "responses": {
4238 "200": {
4239 "content": {
4240 "application/json": {
4241 "schema": {
4242 "$ref": "#/components/schemas/AssetMediaResponseDto"
4243 }
4244 }
4245 },
4246 "description": "Asset replaced successfully"
4247 }
4248 },
4249 "security": [
4250 {
4251 "bearer": []
4252 },
4253 {
4254 "cookie": []
4255 },
4256 {
4257 "api_key": []
4258 }
4259 ],
4260 "summary": "Replace asset",
4261 "tags": [
4262 "Assets",
4263 "Deprecated"
4264 ],
4265 "x-immich-history": [
4266 {
4267 "version": "v1",
4268 "state": "Added"
4269 },
4270 {
4271 "version": "v1",
4272 "state": "Deprecated",
4273 "replacementId": "copyAsset"
4274 }
4275 ],
4276 "x-immich-permission": "asset.replace",
4277 "x-immich-state": "Deprecated"
4278 }
4279 },
4280 "/assets/{id}/thumbnail": {
4281 "get": {
4282 "description": "Retrieve the thumbnail image for the specified asset. Viewing the fullsize thumbnail might redirect to downloadAsset, which requires a different permission.",
4283 "operationId": "viewAsset",
4284 "parameters": [
4285 {
4286 "name": "edited",
4287 "required": false,
4288 "in": "query",
4289 "schema": {
4290 "default": false,
4291 "type": "boolean"
4292 }
4293 },
4294 {
4295 "name": "id",
4296 "required": true,
4297 "in": "path",
4298 "schema": {
4299 "format": "uuid",
4300 "type": "string"
4301 }
4302 },
4303 {
4304 "name": "key",
4305 "required": false,
4306 "in": "query",
4307 "schema": {
4308 "type": "string"
4309 }
4310 },
4311 {
4312 "name": "size",
4313 "required": false,
4314 "in": "query",
4315 "schema": {
4316 "$ref": "#/components/schemas/AssetMediaSize"
4317 }
4318 },
4319 {
4320 "name": "slug",
4321 "required": false,
4322 "in": "query",
4323 "schema": {
4324 "type": "string"
4325 }
4326 }
4327 ],
4328 "responses": {
4329 "200": {
4330 "content": {
4331 "application/octet-stream": {
4332 "schema": {
4333 "format": "binary",
4334 "type": "string"
4335 }
4336 }
4337 },
4338 "description": ""
4339 }
4340 },
4341 "security": [
4342 {
4343 "bearer": []
4344 },
4345 {
4346 "cookie": []
4347 },
4348 {
4349 "api_key": []
4350 }
4351 ],
4352 "summary": "View asset thumbnail",
4353 "tags": [
4354 "Assets"
4355 ],
4356 "x-immich-history": [
4357 {
4358 "version": "v1",
4359 "state": "Added"
4360 },
4361 {
4362 "version": "v1",
4363 "state": "Beta"
4364 },
4365 {
4366 "version": "v2",
4367 "state": "Stable"
4368 }
4369 ],
4370 "x-immich-permission": "asset.view",
4371 "x-immich-state": "Stable"
4372 }
4373 },
4374 "/assets/{id}/video/playback": {
4375 "get": {
4376 "description": "Streams the video file for the specified asset. This endpoint also supports byte range requests.",
4377 "operationId": "playAssetVideo",
4378 "parameters": [
4379 {
4380 "name": "id",
4381 "required": true,
4382 "in": "path",
4383 "schema": {
4384 "format": "uuid",
4385 "type": "string"
4386 }
4387 },
4388 {
4389 "name": "key",
4390 "required": false,
4391 "in": "query",
4392 "schema": {
4393 "type": "string"
4394 }
4395 },
4396 {
4397 "name": "slug",
4398 "required": false,
4399 "in": "query",
4400 "schema": {
4401 "type": "string"
4402 }
4403 }
4404 ],
4405 "responses": {
4406 "200": {
4407 "content": {
4408 "application/octet-stream": {
4409 "schema": {
4410 "format": "binary",
4411 "type": "string"
4412 }
4413 }
4414 },
4415 "description": ""
4416 }
4417 },
4418 "security": [
4419 {
4420 "bearer": []
4421 },
4422 {
4423 "cookie": []
4424 },
4425 {
4426 "api_key": []
4427 }
4428 ],
4429 "summary": "Play asset video",
4430 "tags": [
4431 "Assets"
4432 ],
4433 "x-immich-history": [
4434 {
4435 "version": "v1",
4436 "state": "Added"
4437 },
4438 {
4439 "version": "v1",
4440 "state": "Beta"
4441 },
4442 {
4443 "version": "v2",
4444 "state": "Stable"
4445 }
4446 ],
4447 "x-immich-permission": "asset.view",
4448 "x-immich-state": "Stable"
4449 }
4450 },
4451 "/auth/admin-sign-up": {
4452 "post": {
4453 "description": "Create the first admin user in the system.",
4454 "operationId": "signUpAdmin",
4455 "parameters": [],
4456 "requestBody": {
4457 "content": {
4458 "application/json": {
4459 "schema": {
4460 "$ref": "#/components/schemas/SignUpDto"
4461 }
4462 }
4463 },
4464 "required": true
4465 },
4466 "responses": {
4467 "201": {
4468 "content": {
4469 "application/json": {
4470 "schema": {
4471 "$ref": "#/components/schemas/UserAdminResponseDto"
4472 }
4473 }
4474 },
4475 "description": ""
4476 }
4477 },
4478 "summary": "Register admin",
4479 "tags": [
4480 "Authentication"
4481 ],
4482 "x-immich-history": [
4483 {
4484 "version": "v1",
4485 "state": "Added"
4486 },
4487 {
4488 "version": "v1",
4489 "state": "Beta"
4490 },
4491 {
4492 "version": "v2",
4493 "state": "Stable"
4494 }
4495 ],
4496 "x-immich-state": "Stable"
4497 }
4498 },
4499 "/auth/change-password": {
4500 "post": {
4501 "description": "Change the password of the current user.",
4502 "operationId": "changePassword",
4503 "parameters": [],
4504 "requestBody": {
4505 "content": {
4506 "application/json": {
4507 "schema": {
4508 "$ref": "#/components/schemas/ChangePasswordDto"
4509 }
4510 }
4511 },
4512 "required": true
4513 },
4514 "responses": {
4515 "200": {
4516 "content": {
4517 "application/json": {
4518 "schema": {
4519 "$ref": "#/components/schemas/UserAdminResponseDto"
4520 }
4521 }
4522 },
4523 "description": ""
4524 }
4525 },
4526 "security": [
4527 {
4528 "bearer": []
4529 },
4530 {
4531 "cookie": []
4532 },
4533 {
4534 "api_key": []
4535 }
4536 ],
4537 "summary": "Change password",
4538 "tags": [
4539 "Authentication"
4540 ],
4541 "x-immich-history": [
4542 {
4543 "version": "v1",
4544 "state": "Added"
4545 },
4546 {
4547 "version": "v1",
4548 "state": "Beta"
4549 },
4550 {
4551 "version": "v2",
4552 "state": "Stable"
4553 }
4554 ],
4555 "x-immich-permission": "auth.changePassword",
4556 "x-immich-state": "Stable"
4557 }
4558 },
4559 "/auth/login": {
4560 "post": {
4561 "description": "Login with username and password and receive a session token.",
4562 "operationId": "login",
4563 "parameters": [],
4564 "requestBody": {
4565 "content": {
4566 "application/json": {
4567 "schema": {
4568 "$ref": "#/components/schemas/LoginCredentialDto"
4569 }
4570 }
4571 },
4572 "required": true
4573 },
4574 "responses": {
4575 "201": {
4576 "content": {
4577 "application/json": {
4578 "schema": {
4579 "$ref": "#/components/schemas/LoginResponseDto"
4580 }
4581 }
4582 },
4583 "description": ""
4584 }
4585 },
4586 "summary": "Login",
4587 "tags": [
4588 "Authentication"
4589 ],
4590 "x-immich-history": [
4591 {
4592 "version": "v1",
4593 "state": "Added"
4594 },
4595 {
4596 "version": "v1",
4597 "state": "Beta"
4598 },
4599 {
4600 "version": "v2",
4601 "state": "Stable"
4602 }
4603 ],
4604 "x-immich-state": "Stable"
4605 }
4606 },
4607 "/auth/logout": {
4608 "post": {
4609 "description": "Logout the current user and invalidate the session token.",
4610 "operationId": "logout",
4611 "parameters": [],
4612 "responses": {
4613 "200": {
4614 "content": {
4615 "application/json": {
4616 "schema": {
4617 "$ref": "#/components/schemas/LogoutResponseDto"
4618 }
4619 }
4620 },
4621 "description": ""
4622 }
4623 },
4624 "security": [
4625 {
4626 "bearer": []
4627 },
4628 {
4629 "cookie": []
4630 },
4631 {
4632 "api_key": []
4633 }
4634 ],
4635 "summary": "Logout",
4636 "tags": [
4637 "Authentication"
4638 ],
4639 "x-immich-history": [
4640 {
4641 "version": "v1",
4642 "state": "Added"
4643 },
4644 {
4645 "version": "v1",
4646 "state": "Beta"
4647 },
4648 {
4649 "version": "v2",
4650 "state": "Stable"
4651 }
4652 ],
4653 "x-immich-state": "Stable"
4654 }
4655 },
4656 "/auth/pin-code": {
4657 "delete": {
4658 "description": "Reset the pin code for the current user by providing the account password",
4659 "operationId": "resetPinCode",
4660 "parameters": [],
4661 "requestBody": {
4662 "content": {
4663 "application/json": {
4664 "schema": {
4665 "$ref": "#/components/schemas/PinCodeResetDto"
4666 }
4667 }
4668 },
4669 "required": true
4670 },
4671 "responses": {
4672 "204": {
4673 "description": ""
4674 }
4675 },
4676 "security": [
4677 {
4678 "bearer": []
4679 },
4680 {
4681 "cookie": []
4682 },
4683 {
4684 "api_key": []
4685 }
4686 ],
4687 "summary": "Reset pin code",
4688 "tags": [
4689 "Authentication"
4690 ],
4691 "x-immich-history": [
4692 {
4693 "version": "v1",
4694 "state": "Added"
4695 },
4696 {
4697 "version": "v1",
4698 "state": "Beta"
4699 },
4700 {
4701 "version": "v2",
4702 "state": "Stable"
4703 }
4704 ],
4705 "x-immich-permission": "pinCode.delete",
4706 "x-immich-state": "Stable"
4707 },
4708 "post": {
4709 "description": "Setup a new pin code for the current user.",
4710 "operationId": "setupPinCode",
4711 "parameters": [],
4712 "requestBody": {
4713 "content": {
4714 "application/json": {
4715 "schema": {
4716 "$ref": "#/components/schemas/PinCodeSetupDto"
4717 }
4718 }
4719 },
4720 "required": true
4721 },
4722 "responses": {
4723 "204": {
4724 "description": ""
4725 }
4726 },
4727 "security": [
4728 {
4729 "bearer": []
4730 },
4731 {
4732 "cookie": []
4733 },
4734 {
4735 "api_key": []
4736 }
4737 ],
4738 "summary": "Setup pin code",
4739 "tags": [
4740 "Authentication"
4741 ],
4742 "x-immich-history": [
4743 {
4744 "version": "v1",
4745 "state": "Added"
4746 },
4747 {
4748 "version": "v1",
4749 "state": "Beta"
4750 },
4751 {
4752 "version": "v2",
4753 "state": "Stable"
4754 }
4755 ],
4756 "x-immich-permission": "pinCode.create",
4757 "x-immich-state": "Stable"
4758 },
4759 "put": {
4760 "description": "Change the pin code for the current user.",
4761 "operationId": "changePinCode",
4762 "parameters": [],
4763 "requestBody": {
4764 "content": {
4765 "application/json": {
4766 "schema": {
4767 "$ref": "#/components/schemas/PinCodeChangeDto"
4768 }
4769 }
4770 },
4771 "required": true
4772 },
4773 "responses": {
4774 "204": {
4775 "description": ""
4776 }
4777 },
4778 "security": [
4779 {
4780 "bearer": []
4781 },
4782 {
4783 "cookie": []
4784 },
4785 {
4786 "api_key": []
4787 }
4788 ],
4789 "summary": "Change pin code",
4790 "tags": [
4791 "Authentication"
4792 ],
4793 "x-immich-history": [
4794 {
4795 "version": "v1",
4796 "state": "Added"
4797 },
4798 {
4799 "version": "v1",
4800 "state": "Beta"
4801 },
4802 {
4803 "version": "v2",
4804 "state": "Stable"
4805 }
4806 ],
4807 "x-immich-permission": "pinCode.update",
4808 "x-immich-state": "Stable"
4809 }
4810 },
4811 "/auth/session/lock": {
4812 "post": {
4813 "description": "Remove elevated access to locked assets from the current session.",
4814 "operationId": "lockAuthSession",
4815 "parameters": [],
4816 "responses": {
4817 "204": {
4818 "description": ""
4819 }
4820 },
4821 "security": [
4822 {
4823 "bearer": []
4824 },
4825 {
4826 "cookie": []
4827 },
4828 {
4829 "api_key": []
4830 }
4831 ],
4832 "summary": "Lock auth session",
4833 "tags": [
4834 "Authentication"
4835 ],
4836 "x-immich-history": [
4837 {
4838 "version": "v1",
4839 "state": "Added"
4840 },
4841 {
4842 "version": "v1",
4843 "state": "Beta"
4844 },
4845 {
4846 "version": "v2",
4847 "state": "Stable"
4848 }
4849 ],
4850 "x-immich-state": "Stable"
4851 }
4852 },
4853 "/auth/session/unlock": {
4854 "post": {
4855 "description": "Temporarily grant the session elevated access to locked assets by providing the correct PIN code.",
4856 "operationId": "unlockAuthSession",
4857 "parameters": [],
4858 "requestBody": {
4859 "content": {
4860 "application/json": {
4861 "schema": {
4862 "$ref": "#/components/schemas/SessionUnlockDto"
4863 }
4864 }
4865 },
4866 "required": true
4867 },
4868 "responses": {
4869 "204": {
4870 "description": ""
4871 }
4872 },
4873 "security": [
4874 {
4875 "bearer": []
4876 },
4877 {
4878 "cookie": []
4879 },
4880 {
4881 "api_key": []
4882 }
4883 ],
4884 "summary": "Unlock auth session",
4885 "tags": [
4886 "Authentication"
4887 ],
4888 "x-immich-history": [
4889 {
4890 "version": "v1",
4891 "state": "Added"
4892 },
4893 {
4894 "version": "v1",
4895 "state": "Beta"
4896 },
4897 {
4898 "version": "v2",
4899 "state": "Stable"
4900 }
4901 ],
4902 "x-immich-state": "Stable"
4903 }
4904 },
4905 "/auth/status": {
4906 "get": {
4907 "description": "Get information about the current session, including whether the user has a password, and if the session can access locked assets.",
4908 "operationId": "getAuthStatus",
4909 "parameters": [],
4910 "responses": {
4911 "200": {
4912 "content": {
4913 "application/json": {
4914 "schema": {
4915 "$ref": "#/components/schemas/AuthStatusResponseDto"
4916 }
4917 }
4918 },
4919 "description": ""
4920 }
4921 },
4922 "security": [
4923 {
4924 "bearer": []
4925 },
4926 {
4927 "cookie": []
4928 },
4929 {
4930 "api_key": []
4931 }
4932 ],
4933 "summary": "Retrieve auth status",
4934 "tags": [
4935 "Authentication"
4936 ]
4937 }
4938 },
4939 "/auth/validateToken": {
4940 "post": {
4941 "description": "Validate the current authorization method is still valid.",
4942 "operationId": "validateAccessToken",
4943 "parameters": [],
4944 "responses": {
4945 "200": {
4946 "content": {
4947 "application/json": {
4948 "schema": {
4949 "$ref": "#/components/schemas/ValidateAccessTokenResponseDto"
4950 }
4951 }
4952 },
4953 "description": ""
4954 }
4955 },
4956 "security": [
4957 {
4958 "bearer": []
4959 },
4960 {
4961 "cookie": []
4962 },
4963 {
4964 "api_key": []
4965 }
4966 ],
4967 "summary": "Validate access token",
4968 "tags": [
4969 "Authentication"
4970 ],
4971 "x-immich-history": [
4972 {
4973 "version": "v1",
4974 "state": "Added"
4975 },
4976 {
4977 "version": "v1",
4978 "state": "Beta"
4979 },
4980 {
4981 "version": "v2",
4982 "state": "Stable"
4983 }
4984 ],
4985 "x-immich-state": "Stable"
4986 }
4987 },
4988 "/download/archive": {
4989 "post": {
4990 "description": "Download a ZIP archive containing the specified assets. The assets must have been previously requested via the \"getDownloadInfo\" endpoint.",
4991 "operationId": "downloadArchive",
4992 "parameters": [
4993 {
4994 "name": "key",
4995 "required": false,
4996 "in": "query",
4997 "schema": {
4998 "type": "string"
4999 }
5000 },
5001 {
5002 "name": "slug",
5003 "required": false,
5004 "in": "query",
5005 "schema": {
5006 "type": "string"
5007 }
5008 }
5009 ],
5010 "requestBody": {
5011 "content": {
5012 "application/json": {
5013 "schema": {
5014 "$ref": "#/components/schemas/AssetIdsDto"
5015 }
5016 }
5017 },
5018 "required": true
5019 },
5020 "responses": {
5021 "200": {
5022 "content": {
5023 "application/octet-stream": {
5024 "schema": {
5025 "format": "binary",
5026 "type": "string"
5027 }
5028 }
5029 },
5030 "description": ""
5031 }
5032 },
5033 "security": [
5034 {
5035 "bearer": []
5036 },
5037 {
5038 "cookie": []
5039 },
5040 {
5041 "api_key": []
5042 }
5043 ],
5044 "summary": "Download asset archive",
5045 "tags": [
5046 "Download"
5047 ],
5048 "x-immich-history": [
5049 {
5050 "version": "v1",
5051 "state": "Added"
5052 },
5053 {
5054 "version": "v1",
5055 "state": "Beta"
5056 },
5057 {
5058 "version": "v2",
5059 "state": "Stable"
5060 }
5061 ],
5062 "x-immich-permission": "asset.download",
5063 "x-immich-state": "Stable"
5064 }
5065 },
5066 "/download/info": {
5067 "post": {
5068 "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.",
5069 "operationId": "getDownloadInfo",
5070 "parameters": [
5071 {
5072 "name": "key",
5073 "required": false,
5074 "in": "query",
5075 "schema": {
5076 "type": "string"
5077 }
5078 },
5079 {
5080 "name": "slug",
5081 "required": false,
5082 "in": "query",
5083 "schema": {
5084 "type": "string"
5085 }
5086 }
5087 ],
5088 "requestBody": {
5089 "content": {
5090 "application/json": {
5091 "schema": {
5092 "$ref": "#/components/schemas/DownloadInfoDto"
5093 }
5094 }
5095 },
5096 "required": true
5097 },
5098 "responses": {
5099 "201": {
5100 "content": {
5101 "application/json": {
5102 "schema": {
5103 "$ref": "#/components/schemas/DownloadResponseDto"
5104 }
5105 }
5106 },
5107 "description": ""
5108 }
5109 },
5110 "security": [
5111 {
5112 "bearer": []
5113 },
5114 {
5115 "cookie": []
5116 },
5117 {
5118 "api_key": []
5119 }
5120 ],
5121 "summary": "Retrieve download information",
5122 "tags": [
5123 "Download"
5124 ],
5125 "x-immich-history": [
5126 {
5127 "version": "v1",
5128 "state": "Added"
5129 },
5130 {
5131 "version": "v1",
5132 "state": "Beta"
5133 },
5134 {
5135 "version": "v2",
5136 "state": "Stable"
5137 }
5138 ],
5139 "x-immich-permission": "asset.download",
5140 "x-immich-state": "Stable"
5141 }
5142 },
5143 "/duplicates": {
5144 "delete": {
5145 "description": "Delete multiple duplicate assets specified by their IDs.",
5146 "operationId": "deleteDuplicates",
5147 "parameters": [],
5148 "requestBody": {
5149 "content": {
5150 "application/json": {
5151 "schema": {
5152 "$ref": "#/components/schemas/BulkIdsDto"
5153 }
5154 }
5155 },
5156 "required": true
5157 },
5158 "responses": {
5159 "204": {
5160 "description": ""
5161 }
5162 },
5163 "security": [
5164 {
5165 "bearer": []
5166 },
5167 {
5168 "cookie": []
5169 },
5170 {
5171 "api_key": []
5172 }
5173 ],
5174 "summary": "Delete duplicates",
5175 "tags": [
5176 "Duplicates"
5177 ],
5178 "x-immich-history": [
5179 {
5180 "version": "v1",
5181 "state": "Added"
5182 },
5183 {
5184 "version": "v1",
5185 "state": "Beta"
5186 },
5187 {
5188 "version": "v2",
5189 "state": "Stable"
5190 }
5191 ],
5192 "x-immich-permission": "duplicate.delete",
5193 "x-immich-state": "Stable"
5194 },
5195 "get": {
5196 "description": "Retrieve a list of duplicate assets available to the authenticated user.",
5197 "operationId": "getAssetDuplicates",
5198 "parameters": [],
5199 "responses": {
5200 "200": {
5201 "content": {
5202 "application/json": {
5203 "schema": {
5204 "items": {
5205 "$ref": "#/components/schemas/DuplicateResponseDto"
5206 },
5207 "type": "array"
5208 }
5209 }
5210 },
5211 "description": ""
5212 }
5213 },
5214 "security": [
5215 {
5216 "bearer": []
5217 },
5218 {
5219 "cookie": []
5220 },
5221 {
5222 "api_key": []
5223 }
5224 ],
5225 "summary": "Retrieve duplicates",
5226 "tags": [
5227 "Duplicates"
5228 ],
5229 "x-immich-history": [
5230 {
5231 "version": "v1",
5232 "state": "Added"
5233 },
5234 {
5235 "version": "v1",
5236 "state": "Beta"
5237 },
5238 {
5239 "version": "v2",
5240 "state": "Stable"
5241 }
5242 ],
5243 "x-immich-permission": "duplicate.read",
5244 "x-immich-state": "Stable"
5245 }
5246 },
5247 "/duplicates/{id}": {
5248 "delete": {
5249 "description": "Delete a single duplicate asset specified by its ID.",
5250 "operationId": "deleteDuplicate",
5251 "parameters": [
5252 {
5253 "name": "id",
5254 "required": true,
5255 "in": "path",
5256 "schema": {
5257 "format": "uuid",
5258 "type": "string"
5259 }
5260 }
5261 ],
5262 "responses": {
5263 "204": {
5264 "description": ""
5265 }
5266 },
5267 "security": [
5268 {
5269 "bearer": []
5270 },
5271 {
5272 "cookie": []
5273 },
5274 {
5275 "api_key": []
5276 }
5277 ],
5278 "summary": "Delete a duplicate",
5279 "tags": [
5280 "Duplicates"
5281 ],
5282 "x-immich-history": [
5283 {
5284 "version": "v1",
5285 "state": "Added"
5286 },
5287 {
5288 "version": "v1",
5289 "state": "Beta"
5290 },
5291 {
5292 "version": "v2",
5293 "state": "Stable"
5294 }
5295 ],
5296 "x-immich-permission": "duplicate.delete",
5297 "x-immich-state": "Stable"
5298 }
5299 },
5300 "/faces": {
5301 "get": {
5302 "description": "Retrieve all faces belonging to an asset.",
5303 "operationId": "getFaces",
5304 "parameters": [
5305 {
5306 "name": "id",
5307 "required": true,
5308 "in": "query",
5309 "schema": {
5310 "format": "uuid",
5311 "type": "string"
5312 }
5313 }
5314 ],
5315 "responses": {
5316 "200": {
5317 "content": {
5318 "application/json": {
5319 "schema": {
5320 "items": {
5321 "$ref": "#/components/schemas/AssetFaceResponseDto"
5322 },
5323 "type": "array"
5324 }
5325 }
5326 },
5327 "description": ""
5328 }
5329 },
5330 "security": [
5331 {
5332 "bearer": []
5333 },
5334 {
5335 "cookie": []
5336 },
5337 {
5338 "api_key": []
5339 }
5340 ],
5341 "summary": "Retrieve faces for asset",
5342 "tags": [
5343 "Faces"
5344 ],
5345 "x-immich-history": [
5346 {
5347 "version": "v1",
5348 "state": "Added"
5349 },
5350 {
5351 "version": "v1",
5352 "state": "Beta"
5353 },
5354 {
5355 "version": "v2",
5356 "state": "Stable"
5357 }
5358 ],
5359 "x-immich-permission": "face.read",
5360 "x-immich-state": "Stable"
5361 },
5362 "post": {
5363 "description": "Create a new face that has not been discovered by facial recognition. The content of the bounding box is considered a face.",
5364 "operationId": "createFace",
5365 "parameters": [],
5366 "requestBody": {
5367 "content": {
5368 "application/json": {
5369 "schema": {
5370 "$ref": "#/components/schemas/AssetFaceCreateDto"
5371 }
5372 }
5373 },
5374 "required": true
5375 },
5376 "responses": {
5377 "201": {
5378 "description": ""
5379 }
5380 },
5381 "security": [
5382 {
5383 "bearer": []
5384 },
5385 {
5386 "cookie": []
5387 },
5388 {
5389 "api_key": []
5390 }
5391 ],
5392 "summary": "Create a face",
5393 "tags": [
5394 "Faces"
5395 ],
5396 "x-immich-history": [
5397 {
5398 "version": "v1",
5399 "state": "Added"
5400 },
5401 {
5402 "version": "v1",
5403 "state": "Beta"
5404 },
5405 {
5406 "version": "v2",
5407 "state": "Stable"
5408 }
5409 ],
5410 "x-immich-permission": "face.create",
5411 "x-immich-state": "Stable"
5412 }
5413 },
5414 "/faces/{id}": {
5415 "delete": {
5416 "description": "Delete a face identified by the id. Optionally can be force deleted.",
5417 "operationId": "deleteFace",
5418 "parameters": [
5419 {
5420 "name": "id",
5421 "required": true,
5422 "in": "path",
5423 "schema": {
5424 "format": "uuid",
5425 "type": "string"
5426 }
5427 }
5428 ],
5429 "requestBody": {
5430 "content": {
5431 "application/json": {
5432 "schema": {
5433 "$ref": "#/components/schemas/AssetFaceDeleteDto"
5434 }
5435 }
5436 },
5437 "required": true
5438 },
5439 "responses": {
5440 "204": {
5441 "description": ""
5442 }
5443 },
5444 "security": [
5445 {
5446 "bearer": []
5447 },
5448 {
5449 "cookie": []
5450 },
5451 {
5452 "api_key": []
5453 }
5454 ],
5455 "summary": "Delete a face",
5456 "tags": [
5457 "Faces"
5458 ],
5459 "x-immich-history": [
5460 {
5461 "version": "v1",
5462 "state": "Added"
5463 },
5464 {
5465 "version": "v1",
5466 "state": "Beta"
5467 },
5468 {
5469 "version": "v2",
5470 "state": "Stable"
5471 }
5472 ],
5473 "x-immich-permission": "face.delete",
5474 "x-immich-state": "Stable"
5475 },
5476 "put": {
5477 "description": "Re-assign the face provided in the body to the person identified by the id in the path parameter.",
5478 "operationId": "reassignFacesById",
5479 "parameters": [
5480 {
5481 "name": "id",
5482 "required": true,
5483 "in": "path",
5484 "schema": {
5485 "format": "uuid",
5486 "type": "string"
5487 }
5488 }
5489 ],
5490 "requestBody": {
5491 "content": {
5492 "application/json": {
5493 "schema": {
5494 "$ref": "#/components/schemas/FaceDto"
5495 }
5496 }
5497 },
5498 "required": true
5499 },
5500 "responses": {
5501 "200": {
5502 "content": {
5503 "application/json": {
5504 "schema": {
5505 "$ref": "#/components/schemas/PersonResponseDto"
5506 }
5507 }
5508 },
5509 "description": ""
5510 }
5511 },
5512 "security": [
5513 {
5514 "bearer": []
5515 },
5516 {
5517 "cookie": []
5518 },
5519 {
5520 "api_key": []
5521 }
5522 ],
5523 "summary": "Re-assign a face to another person",
5524 "tags": [
5525 "Faces"
5526 ],
5527 "x-immich-history": [
5528 {
5529 "version": "v1",
5530 "state": "Added"
5531 },
5532 {
5533 "version": "v1",
5534 "state": "Beta"
5535 },
5536 {
5537 "version": "v2",
5538 "state": "Stable"
5539 }
5540 ],
5541 "x-immich-permission": "face.update",
5542 "x-immich-state": "Stable"
5543 }
5544 },
5545 "/jobs": {
5546 "get": {
5547 "deprecated": true,
5548 "description": "Retrieve the counts of the current queue, as well as the current status.",
5549 "operationId": "getQueuesLegacy",
5550 "parameters": [],
5551 "responses": {
5552 "200": {
5553 "content": {
5554 "application/json": {
5555 "schema": {
5556 "$ref": "#/components/schemas/QueuesResponseLegacyDto"
5557 }
5558 }
5559 },
5560 "description": ""
5561 }
5562 },
5563 "security": [
5564 {
5565 "bearer": []
5566 },
5567 {
5568 "cookie": []
5569 },
5570 {
5571 "api_key": []
5572 }
5573 ],
5574 "summary": "Retrieve queue counts and status",
5575 "tags": [
5576 "Jobs",
5577 "Deprecated"
5578 ],
5579 "x-immich-admin-only": true,
5580 "x-immich-history": [
5581 {
5582 "version": "v1",
5583 "state": "Added"
5584 },
5585 {
5586 "version": "v1",
5587 "state": "Beta"
5588 },
5589 {
5590 "version": "v2",
5591 "state": "Stable"
5592 },
5593 {
5594 "version": "v2.4.0",
5595 "state": "Deprecated"
5596 }
5597 ],
5598 "x-immich-permission": "job.read",
5599 "x-immich-state": "Deprecated"
5600 },
5601 "post": {
5602 "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.",
5603 "operationId": "createJob",
5604 "parameters": [],
5605 "requestBody": {
5606 "content": {
5607 "application/json": {
5608 "schema": {
5609 "$ref": "#/components/schemas/JobCreateDto"
5610 }
5611 }
5612 },
5613 "required": true
5614 },
5615 "responses": {
5616 "204": {
5617 "description": ""
5618 }
5619 },
5620 "security": [
5621 {
5622 "bearer": []
5623 },
5624 {
5625 "cookie": []
5626 },
5627 {
5628 "api_key": []
5629 }
5630 ],
5631 "summary": "Create a manual job",
5632 "tags": [
5633 "Jobs"
5634 ],
5635 "x-immich-admin-only": true,
5636 "x-immich-history": [
5637 {
5638 "version": "v1",
5639 "state": "Added"
5640 },
5641 {
5642 "version": "v1",
5643 "state": "Beta"
5644 },
5645 {
5646 "version": "v2",
5647 "state": "Stable"
5648 }
5649 ],
5650 "x-immich-permission": "job.create",
5651 "x-immich-state": "Stable"
5652 }
5653 },
5654 "/jobs/{name}": {
5655 "put": {
5656 "deprecated": true,
5657 "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.",
5658 "operationId": "runQueueCommandLegacy",
5659 "parameters": [
5660 {
5661 "name": "name",
5662 "required": true,
5663 "in": "path",
5664 "schema": {
5665 "$ref": "#/components/schemas/QueueName"
5666 }
5667 }
5668 ],
5669 "requestBody": {
5670 "content": {
5671 "application/json": {
5672 "schema": {
5673 "$ref": "#/components/schemas/QueueCommandDto"
5674 }
5675 }
5676 },
5677 "required": true
5678 },
5679 "responses": {
5680 "200": {
5681 "content": {
5682 "application/json": {
5683 "schema": {
5684 "$ref": "#/components/schemas/QueueResponseLegacyDto"
5685 }
5686 }
5687 },
5688 "description": ""
5689 }
5690 },
5691 "security": [
5692 {
5693 "bearer": []
5694 },
5695 {
5696 "cookie": []
5697 },
5698 {
5699 "api_key": []
5700 }
5701 ],
5702 "summary": "Run jobs",
5703 "tags": [
5704 "Jobs",
5705 "Deprecated"
5706 ],
5707 "x-immich-admin-only": true,
5708 "x-immich-history": [
5709 {
5710 "version": "v1",
5711 "state": "Added"
5712 },
5713 {
5714 "version": "v1",
5715 "state": "Beta"
5716 },
5717 {
5718 "version": "v2",
5719 "state": "Stable"
5720 },
5721 {
5722 "version": "v2.4.0",
5723 "state": "Deprecated"
5724 }
5725 ],
5726 "x-immich-permission": "job.create",
5727 "x-immich-state": "Deprecated"
5728 }
5729 },
5730 "/libraries": {
5731 "get": {
5732 "description": "Retrieve a list of external libraries.",
5733 "operationId": "getAllLibraries",
5734 "parameters": [],
5735 "responses": {
5736 "200": {
5737 "content": {
5738 "application/json": {
5739 "schema": {
5740 "items": {
5741 "$ref": "#/components/schemas/LibraryResponseDto"
5742 },
5743 "type": "array"
5744 }
5745 }
5746 },
5747 "description": ""
5748 }
5749 },
5750 "security": [
5751 {
5752 "bearer": []
5753 },
5754 {
5755 "cookie": []
5756 },
5757 {
5758 "api_key": []
5759 }
5760 ],
5761 "summary": "Retrieve libraries",
5762 "tags": [
5763 "Libraries"
5764 ],
5765 "x-immich-admin-only": true,
5766 "x-immich-history": [
5767 {
5768 "version": "v1",
5769 "state": "Added"
5770 },
5771 {
5772 "version": "v1",
5773 "state": "Beta"
5774 },
5775 {
5776 "version": "v2",
5777 "state": "Stable"
5778 }
5779 ],
5780 "x-immich-permission": "library.read",
5781 "x-immich-state": "Stable"
5782 },
5783 "post": {
5784 "description": "Create a new external library.",
5785 "operationId": "createLibrary",
5786 "parameters": [],
5787 "requestBody": {
5788 "content": {
5789 "application/json": {
5790 "schema": {
5791 "$ref": "#/components/schemas/CreateLibraryDto"
5792 }
5793 }
5794 },
5795 "required": true
5796 },
5797 "responses": {
5798 "201": {
5799 "content": {
5800 "application/json": {
5801 "schema": {
5802 "$ref": "#/components/schemas/LibraryResponseDto"
5803 }
5804 }
5805 },
5806 "description": ""
5807 }
5808 },
5809 "security": [
5810 {
5811 "bearer": []
5812 },
5813 {
5814 "cookie": []
5815 },
5816 {
5817 "api_key": []
5818 }
5819 ],
5820 "summary": "Create a library",
5821 "tags": [
5822 "Libraries"
5823 ],
5824 "x-immich-admin-only": true,
5825 "x-immich-history": [
5826 {
5827 "version": "v1",
5828 "state": "Added"
5829 },
5830 {
5831 "version": "v1",
5832 "state": "Beta"
5833 },
5834 {
5835 "version": "v2",
5836 "state": "Stable"
5837 }
5838 ],
5839 "x-immich-permission": "library.create",
5840 "x-immich-state": "Stable"
5841 }
5842 },
5843 "/libraries/{id}": {
5844 "delete": {
5845 "description": "Delete an external library by its ID.",
5846 "operationId": "deleteLibrary",
5847 "parameters": [
5848 {
5849 "name": "id",
5850 "required": true,
5851 "in": "path",
5852 "schema": {
5853 "format": "uuid",
5854 "type": "string"
5855 }
5856 }
5857 ],
5858 "responses": {
5859 "204": {
5860 "description": ""
5861 }
5862 },
5863 "security": [
5864 {
5865 "bearer": []
5866 },
5867 {
5868 "cookie": []
5869 },
5870 {
5871 "api_key": []
5872 }
5873 ],
5874 "summary": "Delete a library",
5875 "tags": [
5876 "Libraries"
5877 ],
5878 "x-immich-admin-only": true,
5879 "x-immich-history": [
5880 {
5881 "version": "v1",
5882 "state": "Added"
5883 },
5884 {
5885 "version": "v1",
5886 "state": "Beta"
5887 },
5888 {
5889 "version": "v2",
5890 "state": "Stable"
5891 }
5892 ],
5893 "x-immich-permission": "library.delete",
5894 "x-immich-state": "Stable"
5895 },
5896 "get": {
5897 "description": "Retrieve an external library by its ID.",
5898 "operationId": "getLibrary",
5899 "parameters": [
5900 {
5901 "name": "id",
5902 "required": true,
5903 "in": "path",
5904 "schema": {
5905 "format": "uuid",
5906 "type": "string"
5907 }
5908 }
5909 ],
5910 "responses": {
5911 "200": {
5912 "content": {
5913 "application/json": {
5914 "schema": {
5915 "$ref": "#/components/schemas/LibraryResponseDto"
5916 }
5917 }
5918 },
5919 "description": ""
5920 }
5921 },
5922 "security": [
5923 {
5924 "bearer": []
5925 },
5926 {
5927 "cookie": []
5928 },
5929 {
5930 "api_key": []
5931 }
5932 ],
5933 "summary": "Retrieve a library",
5934 "tags": [
5935 "Libraries"
5936 ],
5937 "x-immich-admin-only": true,
5938 "x-immich-history": [
5939 {
5940 "version": "v1",
5941 "state": "Added"
5942 },
5943 {
5944 "version": "v1",
5945 "state": "Beta"
5946 },
5947 {
5948 "version": "v2",
5949 "state": "Stable"
5950 }
5951 ],
5952 "x-immich-permission": "library.read",
5953 "x-immich-state": "Stable"
5954 },
5955 "put": {
5956 "description": "Update an existing external library.",
5957 "operationId": "updateLibrary",
5958 "parameters": [
5959 {
5960 "name": "id",
5961 "required": true,
5962 "in": "path",
5963 "schema": {
5964 "format": "uuid",
5965 "type": "string"
5966 }
5967 }
5968 ],
5969 "requestBody": {
5970 "content": {
5971 "application/json": {
5972 "schema": {
5973 "$ref": "#/components/schemas/UpdateLibraryDto"
5974 }
5975 }
5976 },
5977 "required": true
5978 },
5979 "responses": {
5980 "200": {
5981 "content": {
5982 "application/json": {
5983 "schema": {
5984 "$ref": "#/components/schemas/LibraryResponseDto"
5985 }
5986 }
5987 },
5988 "description": ""
5989 }
5990 },
5991 "security": [
5992 {
5993 "bearer": []
5994 },
5995 {
5996 "cookie": []
5997 },
5998 {
5999 "api_key": []
6000 }
6001 ],
6002 "summary": "Update a library",
6003 "tags": [
6004 "Libraries"
6005 ],
6006 "x-immich-admin-only": true,
6007 "x-immich-history": [
6008 {
6009 "version": "v1",
6010 "state": "Added"
6011 },
6012 {
6013 "version": "v1",
6014 "state": "Beta"
6015 },
6016 {
6017 "version": "v2",
6018 "state": "Stable"
6019 }
6020 ],
6021 "x-immich-permission": "library.update",
6022 "x-immich-state": "Stable"
6023 }
6024 },
6025 "/libraries/{id}/scan": {
6026 "post": {
6027 "description": "Queue a scan for the external library to find and import new assets.",
6028 "operationId": "scanLibrary",
6029 "parameters": [
6030 {
6031 "name": "id",
6032 "required": true,
6033 "in": "path",
6034 "schema": {
6035 "format": "uuid",
6036 "type": "string"
6037 }
6038 }
6039 ],
6040 "responses": {
6041 "204": {
6042 "description": ""
6043 }
6044 },
6045 "security": [
6046 {
6047 "bearer": []
6048 },
6049 {
6050 "cookie": []
6051 },
6052 {
6053 "api_key": []
6054 }
6055 ],
6056 "summary": "Scan a library",
6057 "tags": [
6058 "Libraries"
6059 ],
6060 "x-immich-admin-only": true,
6061 "x-immich-history": [
6062 {
6063 "version": "v1",
6064 "state": "Added"
6065 },
6066 {
6067 "version": "v1",
6068 "state": "Beta"
6069 },
6070 {
6071 "version": "v2",
6072 "state": "Stable"
6073 }
6074 ],
6075 "x-immich-permission": "library.update",
6076 "x-immich-state": "Stable"
6077 }
6078 },
6079 "/libraries/{id}/statistics": {
6080 "get": {
6081 "description": "Retrieve statistics for a specific external library, including number of videos, images, and storage usage.",
6082 "operationId": "getLibraryStatistics",
6083 "parameters": [
6084 {
6085 "name": "id",
6086 "required": true,
6087 "in": "path",
6088 "schema": {
6089 "format": "uuid",
6090 "type": "string"
6091 }
6092 }
6093 ],
6094 "responses": {
6095 "200": {
6096 "content": {
6097 "application/json": {
6098 "schema": {
6099 "$ref": "#/components/schemas/LibraryStatsResponseDto"
6100 }
6101 }
6102 },
6103 "description": ""
6104 }
6105 },
6106 "security": [
6107 {
6108 "bearer": []
6109 },
6110 {
6111 "cookie": []
6112 },
6113 {
6114 "api_key": []
6115 }
6116 ],
6117 "summary": "Retrieve library statistics",
6118 "tags": [
6119 "Libraries"
6120 ],
6121 "x-immich-admin-only": true,
6122 "x-immich-history": [
6123 {
6124 "version": "v1",
6125 "state": "Added"
6126 },
6127 {
6128 "version": "v1",
6129 "state": "Beta"
6130 },
6131 {
6132 "version": "v2",
6133 "state": "Stable"
6134 }
6135 ],
6136 "x-immich-permission": "library.statistics",
6137 "x-immich-state": "Stable"
6138 }
6139 },
6140 "/libraries/{id}/validate": {
6141 "post": {
6142 "description": "Validate the settings of an external library.",
6143 "operationId": "validate",
6144 "parameters": [
6145 {
6146 "name": "id",
6147 "required": true,
6148 "in": "path",
6149 "schema": {
6150 "format": "uuid",
6151 "type": "string"
6152 }
6153 }
6154 ],
6155 "requestBody": {
6156 "content": {
6157 "application/json": {
6158 "schema": {
6159 "$ref": "#/components/schemas/ValidateLibraryDto"
6160 }
6161 }
6162 },
6163 "required": true
6164 },
6165 "responses": {
6166 "200": {
6167 "content": {
6168 "application/json": {
6169 "schema": {
6170 "$ref": "#/components/schemas/ValidateLibraryResponseDto"
6171 }
6172 }
6173 },
6174 "description": ""
6175 }
6176 },
6177 "security": [
6178 {
6179 "bearer": []
6180 },
6181 {
6182 "cookie": []
6183 },
6184 {
6185 "api_key": []
6186 }
6187 ],
6188 "summary": "Validate library settings",
6189 "tags": [
6190 "Libraries"
6191 ],
6192 "x-immich-admin-only": true,
6193 "x-immich-history": [
6194 {
6195 "version": "v1",
6196 "state": "Added"
6197 },
6198 {
6199 "version": "v1",
6200 "state": "Beta"
6201 },
6202 {
6203 "version": "v2",
6204 "state": "Stable"
6205 }
6206 ],
6207 "x-immich-state": "Stable"
6208 }
6209 },
6210 "/map/markers": {
6211 "get": {
6212 "description": "Retrieve a list of latitude and longitude coordinates for every asset with location data.",
6213 "operationId": "getMapMarkers",
6214 "parameters": [
6215 {
6216 "name": "fileCreatedAfter",
6217 "required": false,
6218 "in": "query",
6219 "schema": {
6220 "format": "date-time",
6221 "type": "string"
6222 }
6223 },
6224 {
6225 "name": "fileCreatedBefore",
6226 "required": false,
6227 "in": "query",
6228 "schema": {
6229 "format": "date-time",
6230 "type": "string"
6231 }
6232 },
6233 {
6234 "name": "isArchived",
6235 "required": false,
6236 "in": "query",
6237 "schema": {
6238 "type": "boolean"
6239 }
6240 },
6241 {
6242 "name": "isFavorite",
6243 "required": false,
6244 "in": "query",
6245 "schema": {
6246 "type": "boolean"
6247 }
6248 },
6249 {
6250 "name": "withPartners",
6251 "required": false,
6252 "in": "query",
6253 "schema": {
6254 "type": "boolean"
6255 }
6256 },
6257 {
6258 "name": "withSharedAlbums",
6259 "required": false,
6260 "in": "query",
6261 "schema": {
6262 "type": "boolean"
6263 }
6264 }
6265 ],
6266 "responses": {
6267 "200": {
6268 "content": {
6269 "application/json": {
6270 "schema": {
6271 "items": {
6272 "$ref": "#/components/schemas/MapMarkerResponseDto"
6273 },
6274 "type": "array"
6275 }
6276 }
6277 },
6278 "description": ""
6279 }
6280 },
6281 "security": [
6282 {
6283 "bearer": []
6284 },
6285 {
6286 "cookie": []
6287 },
6288 {
6289 "api_key": []
6290 }
6291 ],
6292 "summary": "Retrieve map markers",
6293 "tags": [
6294 "Map"
6295 ],
6296 "x-immich-history": [
6297 {
6298 "version": "v1",
6299 "state": "Added"
6300 },
6301 {
6302 "version": "v1",
6303 "state": "Beta"
6304 },
6305 {
6306 "version": "v2",
6307 "state": "Stable"
6308 }
6309 ],
6310 "x-immich-permission": "map.read",
6311 "x-immich-state": "Stable"
6312 }
6313 },
6314 "/map/reverse-geocode": {
6315 "get": {
6316 "description": "Retrieve location information (e.g., city, country) for given latitude and longitude coordinates.",
6317 "operationId": "reverseGeocode",
6318 "parameters": [
6319 {
6320 "name": "lat",
6321 "required": true,
6322 "in": "query",
6323 "schema": {
6324 "format": "double",
6325 "type": "number"
6326 }
6327 },
6328 {
6329 "name": "lon",
6330 "required": true,
6331 "in": "query",
6332 "schema": {
6333 "format": "double",
6334 "type": "number"
6335 }
6336 }
6337 ],
6338 "responses": {
6339 "200": {
6340 "content": {
6341 "application/json": {
6342 "schema": {
6343 "items": {
6344 "$ref": "#/components/schemas/MapReverseGeocodeResponseDto"
6345 },
6346 "type": "array"
6347 }
6348 }
6349 },
6350 "description": ""
6351 }
6352 },
6353 "security": [
6354 {
6355 "bearer": []
6356 },
6357 {
6358 "cookie": []
6359 },
6360 {
6361 "api_key": []
6362 }
6363 ],
6364 "summary": "Reverse geocode coordinates",
6365 "tags": [
6366 "Map"
6367 ],
6368 "x-immich-history": [
6369 {
6370 "version": "v1",
6371 "state": "Added"
6372 },
6373 {
6374 "version": "v1",
6375 "state": "Beta"
6376 },
6377 {
6378 "version": "v2",
6379 "state": "Stable"
6380 }
6381 ],
6382 "x-immich-permission": "map.search",
6383 "x-immich-state": "Stable"
6384 }
6385 },
6386 "/memories": {
6387 "get": {
6388 "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.",
6389 "operationId": "searchMemories",
6390 "parameters": [
6391 {
6392 "name": "for",
6393 "required": false,
6394 "in": "query",
6395 "schema": {
6396 "format": "date-time",
6397 "type": "string"
6398 }
6399 },
6400 {
6401 "name": "isSaved",
6402 "required": false,
6403 "in": "query",
6404 "schema": {
6405 "type": "boolean"
6406 }
6407 },
6408 {
6409 "name": "isTrashed",
6410 "required": false,
6411 "in": "query",
6412 "schema": {
6413 "type": "boolean"
6414 }
6415 },
6416 {
6417 "name": "order",
6418 "required": false,
6419 "in": "query",
6420 "schema": {
6421 "$ref": "#/components/schemas/MemorySearchOrder"
6422 }
6423 },
6424 {
6425 "name": "size",
6426 "required": false,
6427 "in": "query",
6428 "description": "Number of memories to return",
6429 "schema": {
6430 "minimum": 1,
6431 "type": "integer"
6432 }
6433 },
6434 {
6435 "name": "type",
6436 "required": false,
6437 "in": "query",
6438 "schema": {
6439 "$ref": "#/components/schemas/MemoryType"
6440 }
6441 }
6442 ],
6443 "responses": {
6444 "200": {
6445 "content": {
6446 "application/json": {
6447 "schema": {
6448 "items": {
6449 "$ref": "#/components/schemas/MemoryResponseDto"
6450 },
6451 "type": "array"
6452 }
6453 }
6454 },
6455 "description": ""
6456 }
6457 },
6458 "security": [
6459 {
6460 "bearer": []
6461 },
6462 {
6463 "cookie": []
6464 },
6465 {
6466 "api_key": []
6467 }
6468 ],
6469 "summary": "Retrieve memories",
6470 "tags": [
6471 "Memories"
6472 ],
6473 "x-immich-history": [
6474 {
6475 "version": "v1",
6476 "state": "Added"
6477 },
6478 {
6479 "version": "v1",
6480 "state": "Beta"
6481 },
6482 {
6483 "version": "v2",
6484 "state": "Stable"
6485 }
6486 ],
6487 "x-immich-permission": "memory.read",
6488 "x-immich-state": "Stable"
6489 },
6490 "post": {
6491 "description": "Create a new memory by providing a name, description, and a list of asset IDs to include in the memory.",
6492 "operationId": "createMemory",
6493 "parameters": [],
6494 "requestBody": {
6495 "content": {
6496 "application/json": {
6497 "schema": {
6498 "$ref": "#/components/schemas/MemoryCreateDto"
6499 }
6500 }
6501 },
6502 "required": true
6503 },
6504 "responses": {
6505 "201": {
6506 "content": {
6507 "application/json": {
6508 "schema": {
6509 "$ref": "#/components/schemas/MemoryResponseDto"
6510 }
6511 }
6512 },
6513 "description": ""
6514 }
6515 },
6516 "security": [
6517 {
6518 "bearer": []
6519 },
6520 {
6521 "cookie": []
6522 },
6523 {
6524 "api_key": []
6525 }
6526 ],
6527 "summary": "Create a memory",
6528 "tags": [
6529 "Memories"
6530 ],
6531 "x-immich-history": [
6532 {
6533 "version": "v1",
6534 "state": "Added"
6535 },
6536 {
6537 "version": "v1",
6538 "state": "Beta"
6539 },
6540 {
6541 "version": "v2",
6542 "state": "Stable"
6543 }
6544 ],
6545 "x-immich-permission": "memory.create",
6546 "x-immich-state": "Stable"
6547 }
6548 },
6549 "/memories/statistics": {
6550 "get": {
6551 "description": "Retrieve statistics about memories, such as total count and other relevant metrics.",
6552 "operationId": "memoriesStatistics",
6553 "parameters": [
6554 {
6555 "name": "for",
6556 "required": false,
6557 "in": "query",
6558 "schema": {
6559 "format": "date-time",
6560 "type": "string"
6561 }
6562 },
6563 {
6564 "name": "isSaved",
6565 "required": false,
6566 "in": "query",
6567 "schema": {
6568 "type": "boolean"
6569 }
6570 },
6571 {
6572 "name": "isTrashed",
6573 "required": false,
6574 "in": "query",
6575 "schema": {
6576 "type": "boolean"
6577 }
6578 },
6579 {
6580 "name": "order",
6581 "required": false,
6582 "in": "query",
6583 "schema": {
6584 "$ref": "#/components/schemas/MemorySearchOrder"
6585 }
6586 },
6587 {
6588 "name": "size",
6589 "required": false,
6590 "in": "query",
6591 "description": "Number of memories to return",
6592 "schema": {
6593 "minimum": 1,
6594 "type": "integer"
6595 }
6596 },
6597 {
6598 "name": "type",
6599 "required": false,
6600 "in": "query",
6601 "schema": {
6602 "$ref": "#/components/schemas/MemoryType"
6603 }
6604 }
6605 ],
6606 "responses": {
6607 "200": {
6608 "content": {
6609 "application/json": {
6610 "schema": {
6611 "$ref": "#/components/schemas/MemoryStatisticsResponseDto"
6612 }
6613 }
6614 },
6615 "description": ""
6616 }
6617 },
6618 "security": [
6619 {
6620 "bearer": []
6621 },
6622 {
6623 "cookie": []
6624 },
6625 {
6626 "api_key": []
6627 }
6628 ],
6629 "summary": "Retrieve memories statistics",
6630 "tags": [
6631 "Memories"
6632 ],
6633 "x-immich-history": [
6634 {
6635 "version": "v1",
6636 "state": "Added"
6637 },
6638 {
6639 "version": "v1",
6640 "state": "Beta"
6641 },
6642 {
6643 "version": "v2",
6644 "state": "Stable"
6645 }
6646 ],
6647 "x-immich-permission": "memory.statistics",
6648 "x-immich-state": "Stable"
6649 }
6650 },
6651 "/memories/{id}": {
6652 "delete": {
6653 "description": "Delete a specific memory by its ID.",
6654 "operationId": "deleteMemory",
6655 "parameters": [
6656 {
6657 "name": "id",
6658 "required": true,
6659 "in": "path",
6660 "schema": {
6661 "format": "uuid",
6662 "type": "string"
6663 }
6664 }
6665 ],
6666 "responses": {
6667 "204": {
6668 "description": ""
6669 }
6670 },
6671 "security": [
6672 {
6673 "bearer": []
6674 },
6675 {
6676 "cookie": []
6677 },
6678 {
6679 "api_key": []
6680 }
6681 ],
6682 "summary": "Delete a memory",
6683 "tags": [
6684 "Memories"
6685 ],
6686 "x-immich-history": [
6687 {
6688 "version": "v1",
6689 "state": "Added"
6690 },
6691 {
6692 "version": "v1",
6693 "state": "Beta"
6694 },
6695 {
6696 "version": "v2",
6697 "state": "Stable"
6698 }
6699 ],
6700 "x-immich-permission": "memory.delete",
6701 "x-immich-state": "Stable"
6702 },
6703 "get": {
6704 "description": "Retrieve a specific memory by its ID.",
6705 "operationId": "getMemory",
6706 "parameters": [
6707 {
6708 "name": "id",
6709 "required": true,
6710 "in": "path",
6711 "schema": {
6712 "format": "uuid",
6713 "type": "string"
6714 }
6715 }
6716 ],
6717 "responses": {
6718 "200": {
6719 "content": {
6720 "application/json": {
6721 "schema": {
6722 "$ref": "#/components/schemas/MemoryResponseDto"
6723 }
6724 }
6725 },
6726 "description": ""
6727 }
6728 },
6729 "security": [
6730 {
6731 "bearer": []
6732 },
6733 {
6734 "cookie": []
6735 },
6736 {
6737 "api_key": []
6738 }
6739 ],
6740 "summary": "Retrieve a memory",
6741 "tags": [
6742 "Memories"
6743 ],
6744 "x-immich-history": [
6745 {
6746 "version": "v1",
6747 "state": "Added"
6748 },
6749 {
6750 "version": "v1",
6751 "state": "Beta"
6752 },
6753 {
6754 "version": "v2",
6755 "state": "Stable"
6756 }
6757 ],
6758 "x-immich-permission": "memory.read",
6759 "x-immich-state": "Stable"
6760 },
6761 "put": {
6762 "description": "Update an existing memory by its ID.",
6763 "operationId": "updateMemory",
6764 "parameters": [
6765 {
6766 "name": "id",
6767 "required": true,
6768 "in": "path",
6769 "schema": {
6770 "format": "uuid",
6771 "type": "string"
6772 }
6773 }
6774 ],
6775 "requestBody": {
6776 "content": {
6777 "application/json": {
6778 "schema": {
6779 "$ref": "#/components/schemas/MemoryUpdateDto"
6780 }
6781 }
6782 },
6783 "required": true
6784 },
6785 "responses": {
6786 "200": {
6787 "content": {
6788 "application/json": {
6789 "schema": {
6790 "$ref": "#/components/schemas/MemoryResponseDto"
6791 }
6792 }
6793 },
6794 "description": ""
6795 }
6796 },
6797 "security": [
6798 {
6799 "bearer": []
6800 },
6801 {
6802 "cookie": []
6803 },
6804 {
6805 "api_key": []
6806 }
6807 ],
6808 "summary": "Update a memory",
6809 "tags": [
6810 "Memories"
6811 ],
6812 "x-immich-history": [
6813 {
6814 "version": "v1",
6815 "state": "Added"
6816 },
6817 {
6818 "version": "v1",
6819 "state": "Beta"
6820 },
6821 {
6822 "version": "v2",
6823 "state": "Stable"
6824 }
6825 ],
6826 "x-immich-permission": "memory.update",
6827 "x-immich-state": "Stable"
6828 }
6829 },
6830 "/memories/{id}/assets": {
6831 "delete": {
6832 "description": "Remove a list of asset IDs from a specific memory.",
6833 "operationId": "removeMemoryAssets",
6834 "parameters": [
6835 {
6836 "name": "id",
6837 "required": true,
6838 "in": "path",
6839 "schema": {
6840 "format": "uuid",
6841 "type": "string"
6842 }
6843 }
6844 ],
6845 "requestBody": {
6846 "content": {
6847 "application/json": {
6848 "schema": {
6849 "$ref": "#/components/schemas/BulkIdsDto"
6850 }
6851 }
6852 },
6853 "required": true
6854 },
6855 "responses": {
6856 "200": {
6857 "content": {
6858 "application/json": {
6859 "schema": {
6860 "items": {
6861 "$ref": "#/components/schemas/BulkIdResponseDto"
6862 },
6863 "type": "array"
6864 }
6865 }
6866 },
6867 "description": ""
6868 }
6869 },
6870 "security": [
6871 {
6872 "bearer": []
6873 },
6874 {
6875 "cookie": []
6876 },
6877 {
6878 "api_key": []
6879 }
6880 ],
6881 "summary": "Remove assets from a memory",
6882 "tags": [
6883 "Memories"
6884 ],
6885 "x-immich-history": [
6886 {
6887 "version": "v1",
6888 "state": "Added"
6889 },
6890 {
6891 "version": "v1",
6892 "state": "Beta"
6893 },
6894 {
6895 "version": "v2",
6896 "state": "Stable"
6897 }
6898 ],
6899 "x-immich-permission": "memoryAsset.delete",
6900 "x-immich-state": "Stable"
6901 },
6902 "put": {
6903 "description": "Add a list of asset IDs to a specific memory.",
6904 "operationId": "addMemoryAssets",
6905 "parameters": [
6906 {
6907 "name": "id",
6908 "required": true,
6909 "in": "path",
6910 "schema": {
6911 "format": "uuid",
6912 "type": "string"
6913 }
6914 }
6915 ],
6916 "requestBody": {
6917 "content": {
6918 "application/json": {
6919 "schema": {
6920 "$ref": "#/components/schemas/BulkIdsDto"
6921 }
6922 }
6923 },
6924 "required": true
6925 },
6926 "responses": {
6927 "200": {
6928 "content": {
6929 "application/json": {
6930 "schema": {
6931 "items": {
6932 "$ref": "#/components/schemas/BulkIdResponseDto"
6933 },
6934 "type": "array"
6935 }
6936 }
6937 },
6938 "description": ""
6939 }
6940 },
6941 "security": [
6942 {
6943 "bearer": []
6944 },
6945 {
6946 "cookie": []
6947 },
6948 {
6949 "api_key": []
6950 }
6951 ],
6952 "summary": "Add assets to a memory",
6953 "tags": [
6954 "Memories"
6955 ],
6956 "x-immich-history": [
6957 {
6958 "version": "v1",
6959 "state": "Added"
6960 },
6961 {
6962 "version": "v1",
6963 "state": "Beta"
6964 },
6965 {
6966 "version": "v2",
6967 "state": "Stable"
6968 }
6969 ],
6970 "x-immich-permission": "memoryAsset.create",
6971 "x-immich-state": "Stable"
6972 }
6973 },
6974 "/notifications": {
6975 "delete": {
6976 "description": "Delete a list of notifications at once.",
6977 "operationId": "deleteNotifications",
6978 "parameters": [],
6979 "requestBody": {
6980 "content": {
6981 "application/json": {
6982 "schema": {
6983 "$ref": "#/components/schemas/NotificationDeleteAllDto"
6984 }
6985 }
6986 },
6987 "required": true
6988 },
6989 "responses": {
6990 "204": {
6991 "description": ""
6992 }
6993 },
6994 "security": [
6995 {
6996 "bearer": []
6997 },
6998 {
6999 "cookie": []
7000 },
7001 {
7002 "api_key": []
7003 }
7004 ],
7005 "summary": "Delete notifications",
7006 "tags": [
7007 "Notifications"
7008 ],
7009 "x-immich-history": [
7010 {
7011 "version": "v1",
7012 "state": "Added"
7013 },
7014 {
7015 "version": "v1",
7016 "state": "Beta"
7017 },
7018 {
7019 "version": "v2",
7020 "state": "Stable"
7021 }
7022 ],
7023 "x-immich-permission": "notification.delete",
7024 "x-immich-state": "Stable"
7025 },
7026 "get": {
7027 "description": "Retrieve a list of notifications.",
7028 "operationId": "getNotifications",
7029 "parameters": [
7030 {
7031 "name": "id",
7032 "required": false,
7033 "in": "query",
7034 "schema": {
7035 "format": "uuid",
7036 "type": "string"
7037 }
7038 },
7039 {
7040 "name": "level",
7041 "required": false,
7042 "in": "query",
7043 "schema": {
7044 "$ref": "#/components/schemas/NotificationLevel"
7045 }
7046 },
7047 {
7048 "name": "type",
7049 "required": false,
7050 "in": "query",
7051 "schema": {
7052 "$ref": "#/components/schemas/NotificationType"
7053 }
7054 },
7055 {
7056 "name": "unread",
7057 "required": false,
7058 "in": "query",
7059 "schema": {
7060 "type": "boolean"
7061 }
7062 }
7063 ],
7064 "responses": {
7065 "200": {
7066 "content": {
7067 "application/json": {
7068 "schema": {
7069 "items": {
7070 "$ref": "#/components/schemas/NotificationDto"
7071 },
7072 "type": "array"
7073 }
7074 }
7075 },
7076 "description": ""
7077 }
7078 },
7079 "security": [
7080 {
7081 "bearer": []
7082 },
7083 {
7084 "cookie": []
7085 },
7086 {
7087 "api_key": []
7088 }
7089 ],
7090 "summary": "Retrieve notifications",
7091 "tags": [
7092 "Notifications"
7093 ],
7094 "x-immich-history": [
7095 {
7096 "version": "v1",
7097 "state": "Added"
7098 },
7099 {
7100 "version": "v1",
7101 "state": "Beta"
7102 },
7103 {
7104 "version": "v2",
7105 "state": "Stable"
7106 }
7107 ],
7108 "x-immich-permission": "notification.read",
7109 "x-immich-state": "Stable"
7110 },
7111 "put": {
7112 "description": "Update a list of notifications. Allows to bulk-set the read status of notifications.",
7113 "operationId": "updateNotifications",
7114 "parameters": [],
7115 "requestBody": {
7116 "content": {
7117 "application/json": {
7118 "schema": {
7119 "$ref": "#/components/schemas/NotificationUpdateAllDto"
7120 }
7121 }
7122 },
7123 "required": true
7124 },
7125 "responses": {
7126 "204": {
7127 "description": ""
7128 }
7129 },
7130 "security": [
7131 {
7132 "bearer": []
7133 },
7134 {
7135 "cookie": []
7136 },
7137 {
7138 "api_key": []
7139 }
7140 ],
7141 "summary": "Update notifications",
7142 "tags": [
7143 "Notifications"
7144 ],
7145 "x-immich-history": [
7146 {
7147 "version": "v1",
7148 "state": "Added"
7149 },
7150 {
7151 "version": "v1",
7152 "state": "Beta"
7153 },
7154 {
7155 "version": "v2",
7156 "state": "Stable"
7157 }
7158 ],
7159 "x-immich-permission": "notification.update",
7160 "x-immich-state": "Stable"
7161 }
7162 },
7163 "/notifications/{id}": {
7164 "delete": {
7165 "description": "Delete a specific notification.",
7166 "operationId": "deleteNotification",
7167 "parameters": [
7168 {
7169 "name": "id",
7170 "required": true,
7171 "in": "path",
7172 "schema": {
7173 "format": "uuid",
7174 "type": "string"
7175 }
7176 }
7177 ],
7178 "responses": {
7179 "204": {
7180 "description": ""
7181 }
7182 },
7183 "security": [
7184 {
7185 "bearer": []
7186 },
7187 {
7188 "cookie": []
7189 },
7190 {
7191 "api_key": []
7192 }
7193 ],
7194 "summary": "Delete a notification",
7195 "tags": [
7196 "Notifications"
7197 ],
7198 "x-immich-history": [
7199 {
7200 "version": "v1",
7201 "state": "Added"
7202 },
7203 {
7204 "version": "v1",
7205 "state": "Beta"
7206 },
7207 {
7208 "version": "v2",
7209 "state": "Stable"
7210 }
7211 ],
7212 "x-immich-permission": "notification.delete",
7213 "x-immich-state": "Stable"
7214 },
7215 "get": {
7216 "description": "Retrieve a specific notification identified by id.",
7217 "operationId": "getNotification",
7218 "parameters": [
7219 {
7220 "name": "id",
7221 "required": true,
7222 "in": "path",
7223 "schema": {
7224 "format": "uuid",
7225 "type": "string"
7226 }
7227 }
7228 ],
7229 "responses": {
7230 "200": {
7231 "content": {
7232 "application/json": {
7233 "schema": {
7234 "$ref": "#/components/schemas/NotificationDto"
7235 }
7236 }
7237 },
7238 "description": ""
7239 }
7240 },
7241 "security": [
7242 {
7243 "bearer": []
7244 },
7245 {
7246 "cookie": []
7247 },
7248 {
7249 "api_key": []
7250 }
7251 ],
7252 "summary": "Get a notification",
7253 "tags": [
7254 "Notifications"
7255 ],
7256 "x-immich-history": [
7257 {
7258 "version": "v1",
7259 "state": "Added"
7260 },
7261 {
7262 "version": "v1",
7263 "state": "Beta"
7264 },
7265 {
7266 "version": "v2",
7267 "state": "Stable"
7268 }
7269 ],
7270 "x-immich-permission": "notification.read",
7271 "x-immich-state": "Stable"
7272 },
7273 "put": {
7274 "description": "Update a specific notification to set its read status.",
7275 "operationId": "updateNotification",
7276 "parameters": [
7277 {
7278 "name": "id",
7279 "required": true,
7280 "in": "path",
7281 "schema": {
7282 "format": "uuid",
7283 "type": "string"
7284 }
7285 }
7286 ],
7287 "requestBody": {
7288 "content": {
7289 "application/json": {
7290 "schema": {
7291 "$ref": "#/components/schemas/NotificationUpdateDto"
7292 }
7293 }
7294 },
7295 "required": true
7296 },
7297 "responses": {
7298 "200": {
7299 "content": {
7300 "application/json": {
7301 "schema": {
7302 "$ref": "#/components/schemas/NotificationDto"
7303 }
7304 }
7305 },
7306 "description": ""
7307 }
7308 },
7309 "security": [
7310 {
7311 "bearer": []
7312 },
7313 {
7314 "cookie": []
7315 },
7316 {
7317 "api_key": []
7318 }
7319 ],
7320 "summary": "Update a notification",
7321 "tags": [
7322 "Notifications"
7323 ],
7324 "x-immich-history": [
7325 {
7326 "version": "v1",
7327 "state": "Added"
7328 },
7329 {
7330 "version": "v1",
7331 "state": "Beta"
7332 },
7333 {
7334 "version": "v2",
7335 "state": "Stable"
7336 }
7337 ],
7338 "x-immich-permission": "notification.update",
7339 "x-immich-state": "Stable"
7340 }
7341 },
7342 "/oauth/authorize": {
7343 "post": {
7344 "description": "Initiate the OAuth authorization process.",
7345 "operationId": "startOAuth",
7346 "parameters": [],
7347 "requestBody": {
7348 "content": {
7349 "application/json": {
7350 "schema": {
7351 "$ref": "#/components/schemas/OAuthConfigDto"
7352 }
7353 }
7354 },
7355 "required": true
7356 },
7357 "responses": {
7358 "201": {
7359 "content": {
7360 "application/json": {
7361 "schema": {
7362 "$ref": "#/components/schemas/OAuthAuthorizeResponseDto"
7363 }
7364 }
7365 },
7366 "description": ""
7367 }
7368 },
7369 "summary": "Start OAuth",
7370 "tags": [
7371 "Authentication"
7372 ],
7373 "x-immich-history": [
7374 {
7375 "version": "v1",
7376 "state": "Added"
7377 },
7378 {
7379 "version": "v1",
7380 "state": "Beta"
7381 },
7382 {
7383 "version": "v2",
7384 "state": "Stable"
7385 }
7386 ],
7387 "x-immich-state": "Stable"
7388 }
7389 },
7390 "/oauth/callback": {
7391 "post": {
7392 "description": "Complete the OAuth authorization process by exchanging the authorization code for a session token.",
7393 "operationId": "finishOAuth",
7394 "parameters": [],
7395 "requestBody": {
7396 "content": {
7397 "application/json": {
7398 "schema": {
7399 "$ref": "#/components/schemas/OAuthCallbackDto"
7400 }
7401 }
7402 },
7403 "required": true
7404 },
7405 "responses": {
7406 "201": {
7407 "content": {
7408 "application/json": {
7409 "schema": {
7410 "$ref": "#/components/schemas/LoginResponseDto"
7411 }
7412 }
7413 },
7414 "description": ""
7415 }
7416 },
7417 "summary": "Finish OAuth",
7418 "tags": [
7419 "Authentication"
7420 ],
7421 "x-immich-history": [
7422 {
7423 "version": "v1",
7424 "state": "Added"
7425 },
7426 {
7427 "version": "v1",
7428 "state": "Beta"
7429 },
7430 {
7431 "version": "v2",
7432 "state": "Stable"
7433 }
7434 ],
7435 "x-immich-state": "Stable"
7436 }
7437 },
7438 "/oauth/link": {
7439 "post": {
7440 "description": "Link an OAuth account to the authenticated user.",
7441 "operationId": "linkOAuthAccount",
7442 "parameters": [],
7443 "requestBody": {
7444 "content": {
7445 "application/json": {
7446 "schema": {
7447 "$ref": "#/components/schemas/OAuthCallbackDto"
7448 }
7449 }
7450 },
7451 "required": true
7452 },
7453 "responses": {
7454 "200": {
7455 "content": {
7456 "application/json": {
7457 "schema": {
7458 "$ref": "#/components/schemas/UserAdminResponseDto"
7459 }
7460 }
7461 },
7462 "description": ""
7463 }
7464 },
7465 "security": [
7466 {
7467 "bearer": []
7468 },
7469 {
7470 "cookie": []
7471 },
7472 {
7473 "api_key": []
7474 }
7475 ],
7476 "summary": "Link OAuth account",
7477 "tags": [
7478 "Authentication"
7479 ],
7480 "x-immich-history": [
7481 {
7482 "version": "v1",
7483 "state": "Added"
7484 },
7485 {
7486 "version": "v1",
7487 "state": "Beta"
7488 },
7489 {
7490 "version": "v2",
7491 "state": "Stable"
7492 }
7493 ],
7494 "x-immich-state": "Stable"
7495 }
7496 },
7497 "/oauth/mobile-redirect": {
7498 "get": {
7499 "description": "Requests to this URL are automatically forwarded to the mobile app, and is used in some cases for OAuth redirecting.",
7500 "operationId": "redirectOAuthToMobile",
7501 "parameters": [],
7502 "responses": {
7503 "200": {
7504 "description": ""
7505 }
7506 },
7507 "summary": "Redirect OAuth to mobile",
7508 "tags": [
7509 "Authentication"
7510 ],
7511 "x-immich-history": [
7512 {
7513 "version": "v1",
7514 "state": "Added"
7515 },
7516 {
7517 "version": "v1",
7518 "state": "Beta"
7519 },
7520 {
7521 "version": "v2",
7522 "state": "Stable"
7523 }
7524 ],
7525 "x-immich-state": "Stable"
7526 }
7527 },
7528 "/oauth/unlink": {
7529 "post": {
7530 "description": "Unlink the OAuth account from the authenticated user.",
7531 "operationId": "unlinkOAuthAccount",
7532 "parameters": [],
7533 "responses": {
7534 "200": {
7535 "content": {
7536 "application/json": {
7537 "schema": {
7538 "$ref": "#/components/schemas/UserAdminResponseDto"
7539 }
7540 }
7541 },
7542 "description": ""
7543 }
7544 },
7545 "security": [
7546 {
7547 "bearer": []
7548 },
7549 {
7550 "cookie": []
7551 },
7552 {
7553 "api_key": []
7554 }
7555 ],
7556 "summary": "Unlink OAuth account",
7557 "tags": [
7558 "Authentication"
7559 ],
7560 "x-immich-history": [
7561 {
7562 "version": "v1",
7563 "state": "Added"
7564 },
7565 {
7566 "version": "v1",
7567 "state": "Beta"
7568 },
7569 {
7570 "version": "v2",
7571 "state": "Stable"
7572 }
7573 ],
7574 "x-immich-state": "Stable"
7575 }
7576 },
7577 "/partners": {
7578 "get": {
7579 "description": "Retrieve a list of partners with whom assets are shared.",
7580 "operationId": "getPartners",
7581 "parameters": [
7582 {
7583 "name": "direction",
7584 "required": true,
7585 "in": "query",
7586 "schema": {
7587 "$ref": "#/components/schemas/PartnerDirection"
7588 }
7589 }
7590 ],
7591 "responses": {
7592 "200": {
7593 "content": {
7594 "application/json": {
7595 "schema": {
7596 "items": {
7597 "$ref": "#/components/schemas/PartnerResponseDto"
7598 },
7599 "type": "array"
7600 }
7601 }
7602 },
7603 "description": ""
7604 }
7605 },
7606 "security": [
7607 {
7608 "bearer": []
7609 },
7610 {
7611 "cookie": []
7612 },
7613 {
7614 "api_key": []
7615 }
7616 ],
7617 "summary": "Retrieve partners",
7618 "tags": [
7619 "Partners"
7620 ],
7621 "x-immich-history": [
7622 {
7623 "version": "v1",
7624 "state": "Added"
7625 },
7626 {
7627 "version": "v1",
7628 "state": "Beta"
7629 },
7630 {
7631 "version": "v2",
7632 "state": "Stable"
7633 }
7634 ],
7635 "x-immich-permission": "partner.read",
7636 "x-immich-state": "Stable"
7637 },
7638 "post": {
7639 "description": "Create a new partner to share assets with.",
7640 "operationId": "createPartner",
7641 "parameters": [],
7642 "requestBody": {
7643 "content": {
7644 "application/json": {
7645 "schema": {
7646 "$ref": "#/components/schemas/PartnerCreateDto"
7647 }
7648 }
7649 },
7650 "required": true
7651 },
7652 "responses": {
7653 "201": {
7654 "content": {
7655 "application/json": {
7656 "schema": {
7657 "$ref": "#/components/schemas/PartnerResponseDto"
7658 }
7659 }
7660 },
7661 "description": ""
7662 }
7663 },
7664 "security": [
7665 {
7666 "bearer": []
7667 },
7668 {
7669 "cookie": []
7670 },
7671 {
7672 "api_key": []
7673 }
7674 ],
7675 "summary": "Create a partner",
7676 "tags": [
7677 "Partners"
7678 ],
7679 "x-immich-history": [
7680 {
7681 "version": "v1",
7682 "state": "Added"
7683 },
7684 {
7685 "version": "v1",
7686 "state": "Beta"
7687 },
7688 {
7689 "version": "v2",
7690 "state": "Stable"
7691 }
7692 ],
7693 "x-immich-permission": "partner.create",
7694 "x-immich-state": "Stable"
7695 }
7696 },
7697 "/partners/{id}": {
7698 "delete": {
7699 "description": "Stop sharing assets with a partner.",
7700 "operationId": "removePartner",
7701 "parameters": [
7702 {
7703 "name": "id",
7704 "required": true,
7705 "in": "path",
7706 "schema": {
7707 "format": "uuid",
7708 "type": "string"
7709 }
7710 }
7711 ],
7712 "responses": {
7713 "204": {
7714 "description": ""
7715 }
7716 },
7717 "security": [
7718 {
7719 "bearer": []
7720 },
7721 {
7722 "cookie": []
7723 },
7724 {
7725 "api_key": []
7726 }
7727 ],
7728 "summary": "Remove a partner",
7729 "tags": [
7730 "Partners"
7731 ],
7732 "x-immich-history": [
7733 {
7734 "version": "v1",
7735 "state": "Added"
7736 },
7737 {
7738 "version": "v1",
7739 "state": "Beta"
7740 },
7741 {
7742 "version": "v2",
7743 "state": "Stable"
7744 }
7745 ],
7746 "x-immich-permission": "partner.delete",
7747 "x-immich-state": "Stable"
7748 },
7749 "post": {
7750 "deprecated": true,
7751 "description": "Create a new partner to share assets with.",
7752 "operationId": "createPartnerDeprecated",
7753 "parameters": [
7754 {
7755 "name": "id",
7756 "required": true,
7757 "in": "path",
7758 "schema": {
7759 "format": "uuid",
7760 "type": "string"
7761 }
7762 }
7763 ],
7764 "responses": {
7765 "201": {
7766 "content": {
7767 "application/json": {
7768 "schema": {
7769 "$ref": "#/components/schemas/PartnerResponseDto"
7770 }
7771 }
7772 },
7773 "description": ""
7774 }
7775 },
7776 "security": [
7777 {
7778 "bearer": []
7779 },
7780 {
7781 "cookie": []
7782 },
7783 {
7784 "api_key": []
7785 }
7786 ],
7787 "summary": "Create a partner",
7788 "tags": [
7789 "Partners",
7790 "Deprecated"
7791 ],
7792 "x-immich-history": [
7793 {
7794 "version": "v1",
7795 "state": "Added"
7796 },
7797 {
7798 "version": "v1",
7799 "state": "Deprecated",
7800 "replacementId": "createPartner"
7801 }
7802 ],
7803 "x-immich-permission": "partner.create",
7804 "x-immich-state": "Deprecated"
7805 },
7806 "put": {
7807 "description": "Specify whether a partner's assets should appear in the user's timeline.",
7808 "operationId": "updatePartner",
7809 "parameters": [
7810 {
7811 "name": "id",
7812 "required": true,
7813 "in": "path",
7814 "schema": {
7815 "format": "uuid",
7816 "type": "string"
7817 }
7818 }
7819 ],
7820 "requestBody": {
7821 "content": {
7822 "application/json": {
7823 "schema": {
7824 "$ref": "#/components/schemas/PartnerUpdateDto"
7825 }
7826 }
7827 },
7828 "required": true
7829 },
7830 "responses": {
7831 "200": {
7832 "content": {
7833 "application/json": {
7834 "schema": {
7835 "$ref": "#/components/schemas/PartnerResponseDto"
7836 }
7837 }
7838 },
7839 "description": ""
7840 }
7841 },
7842 "security": [
7843 {
7844 "bearer": []
7845 },
7846 {
7847 "cookie": []
7848 },
7849 {
7850 "api_key": []
7851 }
7852 ],
7853 "summary": "Update a partner",
7854 "tags": [
7855 "Partners"
7856 ],
7857 "x-immich-history": [
7858 {
7859 "version": "v1",
7860 "state": "Added"
7861 },
7862 {
7863 "version": "v1",
7864 "state": "Beta"
7865 },
7866 {
7867 "version": "v2",
7868 "state": "Stable"
7869 }
7870 ],
7871 "x-immich-permission": "partner.update",
7872 "x-immich-state": "Stable"
7873 }
7874 },
7875 "/people": {
7876 "delete": {
7877 "description": "Bulk delete a list of people at once.",
7878 "operationId": "deletePeople",
7879 "parameters": [],
7880 "requestBody": {
7881 "content": {
7882 "application/json": {
7883 "schema": {
7884 "$ref": "#/components/schemas/BulkIdsDto"
7885 }
7886 }
7887 },
7888 "required": true
7889 },
7890 "responses": {
7891 "204": {
7892 "description": ""
7893 }
7894 },
7895 "security": [
7896 {
7897 "bearer": []
7898 },
7899 {
7900 "cookie": []
7901 },
7902 {
7903 "api_key": []
7904 }
7905 ],
7906 "summary": "Delete people",
7907 "tags": [
7908 "People"
7909 ],
7910 "x-immich-history": [
7911 {
7912 "version": "v1",
7913 "state": "Added"
7914 },
7915 {
7916 "version": "v1",
7917 "state": "Beta"
7918 },
7919 {
7920 "version": "v2",
7921 "state": "Stable"
7922 }
7923 ],
7924 "x-immich-permission": "person.delete",
7925 "x-immich-state": "Stable"
7926 },
7927 "get": {
7928 "description": "Retrieve a list of all people.",
7929 "operationId": "getAllPeople",
7930 "parameters": [
7931 {
7932 "name": "closestAssetId",
7933 "required": false,
7934 "in": "query",
7935 "schema": {
7936 "format": "uuid",
7937 "type": "string"
7938 }
7939 },
7940 {
7941 "name": "closestPersonId",
7942 "required": false,
7943 "in": "query",
7944 "schema": {
7945 "format": "uuid",
7946 "type": "string"
7947 }
7948 },
7949 {
7950 "name": "page",
7951 "required": false,
7952 "in": "query",
7953 "description": "Page number for pagination",
7954 "schema": {
7955 "minimum": 1,
7956 "default": 1,
7957 "type": "number"
7958 }
7959 },
7960 {
7961 "name": "size",
7962 "required": false,
7963 "in": "query",
7964 "description": "Number of items per page",
7965 "schema": {
7966 "minimum": 1,
7967 "maximum": 1000,
7968 "default": 500,
7969 "type": "number"
7970 }
7971 },
7972 {
7973 "name": "withHidden",
7974 "required": false,
7975 "in": "query",
7976 "schema": {
7977 "type": "boolean"
7978 }
7979 }
7980 ],
7981 "responses": {
7982 "200": {
7983 "content": {
7984 "application/json": {
7985 "schema": {
7986 "$ref": "#/components/schemas/PeopleResponseDto"
7987 }
7988 }
7989 },
7990 "description": ""
7991 }
7992 },
7993 "security": [
7994 {
7995 "bearer": []
7996 },
7997 {
7998 "cookie": []
7999 },
8000 {
8001 "api_key": []
8002 }
8003 ],
8004 "summary": "Get all people",
8005 "tags": [
8006 "People"
8007 ],
8008 "x-immich-history": [
8009 {
8010 "version": "v1",
8011 "state": "Added"
8012 },
8013 {
8014 "version": "v1",
8015 "state": "Beta"
8016 },
8017 {
8018 "version": "v2",
8019 "state": "Stable"
8020 }
8021 ],
8022 "x-immich-permission": "person.read",
8023 "x-immich-state": "Stable"
8024 },
8025 "post": {
8026 "description": "Create a new person that can have multiple faces assigned to them.",
8027 "operationId": "createPerson",
8028 "parameters": [],
8029 "requestBody": {
8030 "content": {
8031 "application/json": {
8032 "schema": {
8033 "$ref": "#/components/schemas/PersonCreateDto"
8034 }
8035 }
8036 },
8037 "required": true
8038 },
8039 "responses": {
8040 "201": {
8041 "content": {
8042 "application/json": {
8043 "schema": {
8044 "$ref": "#/components/schemas/PersonResponseDto"
8045 }
8046 }
8047 },
8048 "description": ""
8049 }
8050 },
8051 "security": [
8052 {
8053 "bearer": []
8054 },
8055 {
8056 "cookie": []
8057 },
8058 {
8059 "api_key": []
8060 }
8061 ],
8062 "summary": "Create a person",
8063 "tags": [
8064 "People"
8065 ],
8066 "x-immich-history": [
8067 {
8068 "version": "v1",
8069 "state": "Added"
8070 },
8071 {
8072 "version": "v1",
8073 "state": "Beta"
8074 },
8075 {
8076 "version": "v2",
8077 "state": "Stable"
8078 }
8079 ],
8080 "x-immich-permission": "person.create",
8081 "x-immich-state": "Stable"
8082 },
8083 "put": {
8084 "description": "Bulk update multiple people at once.",
8085 "operationId": "updatePeople",
8086 "parameters": [],
8087 "requestBody": {
8088 "content": {
8089 "application/json": {
8090 "schema": {
8091 "$ref": "#/components/schemas/PeopleUpdateDto"
8092 }
8093 }
8094 },
8095 "required": true
8096 },
8097 "responses": {
8098 "200": {
8099 "content": {
8100 "application/json": {
8101 "schema": {
8102 "items": {
8103 "$ref": "#/components/schemas/BulkIdResponseDto"
8104 },
8105 "type": "array"
8106 }
8107 }
8108 },
8109 "description": ""
8110 }
8111 },
8112 "security": [
8113 {
8114 "bearer": []
8115 },
8116 {
8117 "cookie": []
8118 },
8119 {
8120 "api_key": []
8121 }
8122 ],
8123 "summary": "Update people",
8124 "tags": [
8125 "People"
8126 ],
8127 "x-immich-history": [
8128 {
8129 "version": "v1",
8130 "state": "Added"
8131 },
8132 {
8133 "version": "v1",
8134 "state": "Beta"
8135 },
8136 {
8137 "version": "v2",
8138 "state": "Stable"
8139 }
8140 ],
8141 "x-immich-permission": "person.update",
8142 "x-immich-state": "Stable"
8143 }
8144 },
8145 "/people/{id}": {
8146 "delete": {
8147 "description": "Delete an individual person.",
8148 "operationId": "deletePerson",
8149 "parameters": [
8150 {
8151 "name": "id",
8152 "required": true,
8153 "in": "path",
8154 "schema": {
8155 "format": "uuid",
8156 "type": "string"
8157 }
8158 }
8159 ],
8160 "responses": {
8161 "204": {
8162 "description": ""
8163 }
8164 },
8165 "security": [
8166 {
8167 "bearer": []
8168 },
8169 {
8170 "cookie": []
8171 },
8172 {
8173 "api_key": []
8174 }
8175 ],
8176 "summary": "Delete person",
8177 "tags": [
8178 "People"
8179 ],
8180 "x-immich-history": [
8181 {
8182 "version": "v1",
8183 "state": "Added"
8184 },
8185 {
8186 "version": "v1",
8187 "state": "Beta"
8188 },
8189 {
8190 "version": "v2",
8191 "state": "Stable"
8192 }
8193 ],
8194 "x-immich-permission": "person.delete",
8195 "x-immich-state": "Stable"
8196 },
8197 "get": {
8198 "description": "Retrieve a person by id.",
8199 "operationId": "getPerson",
8200 "parameters": [
8201 {
8202 "name": "id",
8203 "required": true,
8204 "in": "path",
8205 "schema": {
8206 "format": "uuid",
8207 "type": "string"
8208 }
8209 }
8210 ],
8211 "responses": {
8212 "200": {
8213 "content": {
8214 "application/json": {
8215 "schema": {
8216 "$ref": "#/components/schemas/PersonResponseDto"
8217 }
8218 }
8219 },
8220 "description": ""
8221 }
8222 },
8223 "security": [
8224 {
8225 "bearer": []
8226 },
8227 {
8228 "cookie": []
8229 },
8230 {
8231 "api_key": []
8232 }
8233 ],
8234 "summary": "Get a person",
8235 "tags": [
8236 "People"
8237 ],
8238 "x-immich-history": [
8239 {
8240 "version": "v1",
8241 "state": "Added"
8242 },
8243 {
8244 "version": "v1",
8245 "state": "Beta"
8246 },
8247 {
8248 "version": "v2",
8249 "state": "Stable"
8250 }
8251 ],
8252 "x-immich-permission": "person.read",
8253 "x-immich-state": "Stable"
8254 },
8255 "put": {
8256 "description": "Update an individual person.",
8257 "operationId": "updatePerson",
8258 "parameters": [
8259 {
8260 "name": "id",
8261 "required": true,
8262 "in": "path",
8263 "schema": {
8264 "format": "uuid",
8265 "type": "string"
8266 }
8267 }
8268 ],
8269 "requestBody": {
8270 "content": {
8271 "application/json": {
8272 "schema": {
8273 "$ref": "#/components/schemas/PersonUpdateDto"
8274 }
8275 }
8276 },
8277 "required": true
8278 },
8279 "responses": {
8280 "200": {
8281 "content": {
8282 "application/json": {
8283 "schema": {
8284 "$ref": "#/components/schemas/PersonResponseDto"
8285 }
8286 }
8287 },
8288 "description": ""
8289 }
8290 },
8291 "security": [
8292 {
8293 "bearer": []
8294 },
8295 {
8296 "cookie": []
8297 },
8298 {
8299 "api_key": []
8300 }
8301 ],
8302 "summary": "Update person",
8303 "tags": [
8304 "People"
8305 ],
8306 "x-immich-history": [
8307 {
8308 "version": "v1",
8309 "state": "Added"
8310 },
8311 {
8312 "version": "v1",
8313 "state": "Beta"
8314 },
8315 {
8316 "version": "v2",
8317 "state": "Stable"
8318 }
8319 ],
8320 "x-immich-permission": "person.update",
8321 "x-immich-state": "Stable"
8322 }
8323 },
8324 "/people/{id}/merge": {
8325 "post": {
8326 "description": "Merge a list of people into the person specified in the path parameter.",
8327 "operationId": "mergePerson",
8328 "parameters": [
8329 {
8330 "name": "id",
8331 "required": true,
8332 "in": "path",
8333 "schema": {
8334 "format": "uuid",
8335 "type": "string"
8336 }
8337 }
8338 ],
8339 "requestBody": {
8340 "content": {
8341 "application/json": {
8342 "schema": {
8343 "$ref": "#/components/schemas/MergePersonDto"
8344 }
8345 }
8346 },
8347 "required": true
8348 },
8349 "responses": {
8350 "200": {
8351 "content": {
8352 "application/json": {
8353 "schema": {
8354 "items": {
8355 "$ref": "#/components/schemas/BulkIdResponseDto"
8356 },
8357 "type": "array"
8358 }
8359 }
8360 },
8361 "description": ""
8362 }
8363 },
8364 "security": [
8365 {
8366 "bearer": []
8367 },
8368 {
8369 "cookie": []
8370 },
8371 {
8372 "api_key": []
8373 }
8374 ],
8375 "summary": "Merge people",
8376 "tags": [
8377 "People"
8378 ],
8379 "x-immich-history": [
8380 {
8381 "version": "v1",
8382 "state": "Added"
8383 },
8384 {
8385 "version": "v1",
8386 "state": "Beta"
8387 },
8388 {
8389 "version": "v2",
8390 "state": "Stable"
8391 }
8392 ],
8393 "x-immich-permission": "person.merge",
8394 "x-immich-state": "Stable"
8395 }
8396 },
8397 "/people/{id}/reassign": {
8398 "put": {
8399 "description": "Bulk reassign a list of faces to a different person.",
8400 "operationId": "reassignFaces",
8401 "parameters": [
8402 {
8403 "name": "id",
8404 "required": true,
8405 "in": "path",
8406 "schema": {
8407 "format": "uuid",
8408 "type": "string"
8409 }
8410 }
8411 ],
8412 "requestBody": {
8413 "content": {
8414 "application/json": {
8415 "schema": {
8416 "$ref": "#/components/schemas/AssetFaceUpdateDto"
8417 }
8418 }
8419 },
8420 "required": true
8421 },
8422 "responses": {
8423 "200": {
8424 "content": {
8425 "application/json": {
8426 "schema": {
8427 "items": {
8428 "$ref": "#/components/schemas/PersonResponseDto"
8429 },
8430 "type": "array"
8431 }
8432 }
8433 },
8434 "description": ""
8435 }
8436 },
8437 "security": [
8438 {
8439 "bearer": []
8440 },
8441 {
8442 "cookie": []
8443 },
8444 {
8445 "api_key": []
8446 }
8447 ],
8448 "summary": "Reassign faces",
8449 "tags": [
8450 "People"
8451 ],
8452 "x-immich-history": [
8453 {
8454 "version": "v1",
8455 "state": "Added"
8456 },
8457 {
8458 "version": "v1",
8459 "state": "Beta"
8460 },
8461 {
8462 "version": "v2",
8463 "state": "Stable"
8464 }
8465 ],
8466 "x-immich-permission": "person.reassign",
8467 "x-immich-state": "Stable"
8468 }
8469 },
8470 "/people/{id}/statistics": {
8471 "get": {
8472 "description": "Retrieve statistics about a specific person.",
8473 "operationId": "getPersonStatistics",
8474 "parameters": [
8475 {
8476 "name": "id",
8477 "required": true,
8478 "in": "path",
8479 "schema": {
8480 "format": "uuid",
8481 "type": "string"
8482 }
8483 }
8484 ],
8485 "responses": {
8486 "200": {
8487 "content": {
8488 "application/json": {
8489 "schema": {
8490 "$ref": "#/components/schemas/PersonStatisticsResponseDto"
8491 }
8492 }
8493 },
8494 "description": ""
8495 }
8496 },
8497 "security": [
8498 {
8499 "bearer": []
8500 },
8501 {
8502 "cookie": []
8503 },
8504 {
8505 "api_key": []
8506 }
8507 ],
8508 "summary": "Get person statistics",
8509 "tags": [
8510 "People"
8511 ],
8512 "x-immich-history": [
8513 {
8514 "version": "v1",
8515 "state": "Added"
8516 },
8517 {
8518 "version": "v1",
8519 "state": "Beta"
8520 },
8521 {
8522 "version": "v2",
8523 "state": "Stable"
8524 }
8525 ],
8526 "x-immich-permission": "person.statistics",
8527 "x-immich-state": "Stable"
8528 }
8529 },
8530 "/people/{id}/thumbnail": {
8531 "get": {
8532 "description": "Retrieve the thumbnail file for a person.",
8533 "operationId": "getPersonThumbnail",
8534 "parameters": [
8535 {
8536 "name": "id",
8537 "required": true,
8538 "in": "path",
8539 "schema": {
8540 "format": "uuid",
8541 "type": "string"
8542 }
8543 }
8544 ],
8545 "responses": {
8546 "200": {
8547 "content": {
8548 "application/octet-stream": {
8549 "schema": {
8550 "format": "binary",
8551 "type": "string"
8552 }
8553 }
8554 },
8555 "description": ""
8556 }
8557 },
8558 "security": [
8559 {
8560 "bearer": []
8561 },
8562 {
8563 "cookie": []
8564 },
8565 {
8566 "api_key": []
8567 }
8568 ],
8569 "summary": "Get person thumbnail",
8570 "tags": [
8571 "People"
8572 ],
8573 "x-immich-history": [
8574 {
8575 "version": "v1",
8576 "state": "Added"
8577 },
8578 {
8579 "version": "v1",
8580 "state": "Beta"
8581 },
8582 {
8583 "version": "v2",
8584 "state": "Stable"
8585 }
8586 ],
8587 "x-immich-permission": "person.read",
8588 "x-immich-state": "Stable"
8589 }
8590 },
8591 "/plugins": {
8592 "get": {
8593 "description": "Retrieve a list of plugins available to the authenticated user.",
8594 "operationId": "getPlugins",
8595 "parameters": [],
8596 "responses": {
8597 "200": {
8598 "content": {
8599 "application/json": {
8600 "schema": {
8601 "items": {
8602 "$ref": "#/components/schemas/PluginResponseDto"
8603 },
8604 "type": "array"
8605 }
8606 }
8607 },
8608 "description": ""
8609 }
8610 },
8611 "security": [
8612 {
8613 "bearer": []
8614 },
8615 {
8616 "cookie": []
8617 },
8618 {
8619 "api_key": []
8620 }
8621 ],
8622 "summary": "List all plugins",
8623 "tags": [
8624 "Plugins"
8625 ],
8626 "x-immich-history": [
8627 {
8628 "version": "v2.3.0",
8629 "state": "Added"
8630 },
8631 {
8632 "version": "v2.3.0",
8633 "state": "Alpha"
8634 }
8635 ],
8636 "x-immich-permission": "plugin.read",
8637 "x-immich-state": "Alpha"
8638 }
8639 },
8640 "/plugins/triggers": {
8641 "get": {
8642 "description": "Retrieve a list of all available plugin triggers.",
8643 "operationId": "getPluginTriggers",
8644 "parameters": [],
8645 "responses": {
8646 "200": {
8647 "content": {
8648 "application/json": {
8649 "schema": {
8650 "items": {
8651 "$ref": "#/components/schemas/PluginTriggerResponseDto"
8652 },
8653 "type": "array"
8654 }
8655 }
8656 },
8657 "description": ""
8658 }
8659 },
8660 "security": [
8661 {
8662 "bearer": []
8663 },
8664 {
8665 "cookie": []
8666 },
8667 {
8668 "api_key": []
8669 }
8670 ],
8671 "summary": "List all plugin triggers",
8672 "tags": [
8673 "Plugins"
8674 ],
8675 "x-immich-history": [
8676 {
8677 "version": "v2.3.0",
8678 "state": "Added"
8679 },
8680 {
8681 "version": "v2.3.0",
8682 "state": "Alpha"
8683 }
8684 ],
8685 "x-immich-permission": "plugin.read",
8686 "x-immich-state": "Alpha"
8687 }
8688 },
8689 "/plugins/{id}": {
8690 "get": {
8691 "description": "Retrieve information about a specific plugin by its ID.",
8692 "operationId": "getPlugin",
8693 "parameters": [
8694 {
8695 "name": "id",
8696 "required": true,
8697 "in": "path",
8698 "schema": {
8699 "format": "uuid",
8700 "type": "string"
8701 }
8702 }
8703 ],
8704 "responses": {
8705 "200": {
8706 "content": {
8707 "application/json": {
8708 "schema": {
8709 "$ref": "#/components/schemas/PluginResponseDto"
8710 }
8711 }
8712 },
8713 "description": ""
8714 }
8715 },
8716 "security": [
8717 {
8718 "bearer": []
8719 },
8720 {
8721 "cookie": []
8722 },
8723 {
8724 "api_key": []
8725 }
8726 ],
8727 "summary": "Retrieve a plugin",
8728 "tags": [
8729 "Plugins"
8730 ],
8731 "x-immich-history": [
8732 {
8733 "version": "v2.3.0",
8734 "state": "Added"
8735 },
8736 {
8737 "version": "v2.3.0",
8738 "state": "Alpha"
8739 }
8740 ],
8741 "x-immich-permission": "plugin.read",
8742 "x-immich-state": "Alpha"
8743 }
8744 },
8745 "/queues": {
8746 "get": {
8747 "description": "Retrieves a list of queues.",
8748 "operationId": "getQueues",
8749 "parameters": [],
8750 "responses": {
8751 "200": {
8752 "content": {
8753 "application/json": {
8754 "schema": {
8755 "items": {
8756 "$ref": "#/components/schemas/QueueResponseDto"
8757 },
8758 "type": "array"
8759 }
8760 }
8761 },
8762 "description": ""
8763 }
8764 },
8765 "security": [
8766 {
8767 "bearer": []
8768 },
8769 {
8770 "cookie": []
8771 },
8772 {
8773 "api_key": []
8774 }
8775 ],
8776 "summary": "List all queues",
8777 "tags": [
8778 "Queues"
8779 ],
8780 "x-immich-admin-only": true,
8781 "x-immich-history": [
8782 {
8783 "version": "v2.4.0",
8784 "state": "Added"
8785 },
8786 {
8787 "version": "v2.4.0",
8788 "state": "Alpha"
8789 }
8790 ],
8791 "x-immich-permission": "queue.read",
8792 "x-immich-state": "Alpha"
8793 }
8794 },
8795 "/queues/{name}": {
8796 "get": {
8797 "description": "Retrieves a specific queue by its name.",
8798 "operationId": "getQueue",
8799 "parameters": [
8800 {
8801 "name": "name",
8802 "required": true,
8803 "in": "path",
8804 "schema": {
8805 "$ref": "#/components/schemas/QueueName"
8806 }
8807 }
8808 ],
8809 "responses": {
8810 "200": {
8811 "content": {
8812 "application/json": {
8813 "schema": {
8814 "$ref": "#/components/schemas/QueueResponseDto"
8815 }
8816 }
8817 },
8818 "description": ""
8819 }
8820 },
8821 "security": [
8822 {
8823 "bearer": []
8824 },
8825 {
8826 "cookie": []
8827 },
8828 {
8829 "api_key": []
8830 }
8831 ],
8832 "summary": "Retrieve a queue",
8833 "tags": [
8834 "Queues"
8835 ],
8836 "x-immich-admin-only": true,
8837 "x-immich-history": [
8838 {
8839 "version": "v2.4.0",
8840 "state": "Added"
8841 },
8842 {
8843 "version": "v2.4.0",
8844 "state": "Alpha"
8845 }
8846 ],
8847 "x-immich-permission": "queue.read",
8848 "x-immich-state": "Alpha"
8849 },
8850 "put": {
8851 "description": "Change the paused status of a specific queue.",
8852 "operationId": "updateQueue",
8853 "parameters": [
8854 {
8855 "name": "name",
8856 "required": true,
8857 "in": "path",
8858 "schema": {
8859 "$ref": "#/components/schemas/QueueName"
8860 }
8861 }
8862 ],
8863 "requestBody": {
8864 "content": {
8865 "application/json": {
8866 "schema": {
8867 "$ref": "#/components/schemas/QueueUpdateDto"
8868 }
8869 }
8870 },
8871 "required": true
8872 },
8873 "responses": {
8874 "200": {
8875 "content": {
8876 "application/json": {
8877 "schema": {
8878 "$ref": "#/components/schemas/QueueResponseDto"
8879 }
8880 }
8881 },
8882 "description": ""
8883 }
8884 },
8885 "security": [
8886 {
8887 "bearer": []
8888 },
8889 {
8890 "cookie": []
8891 },
8892 {
8893 "api_key": []
8894 }
8895 ],
8896 "summary": "Update a queue",
8897 "tags": [
8898 "Queues"
8899 ],
8900 "x-immich-admin-only": true,
8901 "x-immich-history": [
8902 {
8903 "version": "v2.4.0",
8904 "state": "Added"
8905 },
8906 {
8907 "version": "v2.4.0",
8908 "state": "Alpha"
8909 }
8910 ],
8911 "x-immich-permission": "queue.update",
8912 "x-immich-state": "Alpha"
8913 }
8914 },
8915 "/queues/{name}/jobs": {
8916 "delete": {
8917 "description": "Removes all jobs from the specified queue.",
8918 "operationId": "emptyQueue",
8919 "parameters": [
8920 {
8921 "name": "name",
8922 "required": true,
8923 "in": "path",
8924 "schema": {
8925 "$ref": "#/components/schemas/QueueName"
8926 }
8927 }
8928 ],
8929 "requestBody": {
8930 "content": {
8931 "application/json": {
8932 "schema": {
8933 "$ref": "#/components/schemas/QueueDeleteDto"
8934 }
8935 }
8936 },
8937 "required": true
8938 },
8939 "responses": {
8940 "204": {
8941 "description": ""
8942 }
8943 },
8944 "security": [
8945 {
8946 "bearer": []
8947 },
8948 {
8949 "cookie": []
8950 },
8951 {
8952 "api_key": []
8953 }
8954 ],
8955 "summary": "Empty a queue",
8956 "tags": [
8957 "Queues"
8958 ],
8959 "x-immich-admin-only": true,
8960 "x-immich-history": [
8961 {
8962 "version": "v2.4.0",
8963 "state": "Added"
8964 },
8965 {
8966 "version": "v2.4.0",
8967 "state": "Alpha"
8968 }
8969 ],
8970 "x-immich-permission": "queueJob.delete",
8971 "x-immich-state": "Alpha"
8972 },
8973 "get": {
8974 "description": "Retrieves a list of queue jobs from the specified queue.",
8975 "operationId": "getQueueJobs",
8976 "parameters": [
8977 {
8978 "name": "name",
8979 "required": true,
8980 "in": "path",
8981 "schema": {
8982 "$ref": "#/components/schemas/QueueName"
8983 }
8984 },
8985 {
8986 "name": "status",
8987 "required": false,
8988 "in": "query",
8989 "schema": {
8990 "type": "array",
8991 "items": {
8992 "$ref": "#/components/schemas/QueueJobStatus"
8993 }
8994 }
8995 }
8996 ],
8997 "responses": {
8998 "200": {
8999 "content": {
9000 "application/json": {
9001 "schema": {
9002 "items": {
9003 "$ref": "#/components/schemas/QueueJobResponseDto"
9004 },
9005 "type": "array"
9006 }
9007 }
9008 },
9009 "description": ""
9010 }
9011 },
9012 "security": [
9013 {
9014 "bearer": []
9015 },
9016 {
9017 "cookie": []
9018 },
9019 {
9020 "api_key": []
9021 }
9022 ],
9023 "summary": "Retrieve queue jobs",
9024 "tags": [
9025 "Queues"
9026 ],
9027 "x-immich-admin-only": true,
9028 "x-immich-history": [
9029 {
9030 "version": "v2.4.0",
9031 "state": "Added"
9032 },
9033 {
9034 "version": "v2.4.0",
9035 "state": "Alpha"
9036 }
9037 ],
9038 "x-immich-permission": "queueJob.read",
9039 "x-immich-state": "Alpha"
9040 }
9041 },
9042 "/search/cities": {
9043 "get": {
9044 "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.",
9045 "operationId": "getAssetsByCity",
9046 "parameters": [],
9047 "responses": {
9048 "200": {
9049 "content": {
9050 "application/json": {
9051 "schema": {
9052 "items": {
9053 "$ref": "#/components/schemas/AssetResponseDto"
9054 },
9055 "type": "array"
9056 }
9057 }
9058 },
9059 "description": ""
9060 }
9061 },
9062 "security": [
9063 {
9064 "bearer": []
9065 },
9066 {
9067 "cookie": []
9068 },
9069 {
9070 "api_key": []
9071 }
9072 ],
9073 "summary": "Retrieve assets by city",
9074 "tags": [
9075 "Search"
9076 ],
9077 "x-immich-history": [
9078 {
9079 "version": "v1",
9080 "state": "Added"
9081 },
9082 {
9083 "version": "v1",
9084 "state": "Beta"
9085 },
9086 {
9087 "version": "v2",
9088 "state": "Stable"
9089 }
9090 ],
9091 "x-immich-permission": "asset.read",
9092 "x-immich-state": "Stable"
9093 }
9094 },
9095 "/search/explore": {
9096 "get": {
9097 "description": "Retrieve data for the explore section, such as popular people and places.",
9098 "operationId": "getExploreData",
9099 "parameters": [],
9100 "responses": {
9101 "200": {
9102 "content": {
9103 "application/json": {
9104 "schema": {
9105 "items": {
9106 "$ref": "#/components/schemas/SearchExploreResponseDto"
9107 },
9108 "type": "array"
9109 }
9110 }
9111 },
9112 "description": ""
9113 }
9114 },
9115 "security": [
9116 {
9117 "bearer": []
9118 },
9119 {
9120 "cookie": []
9121 },
9122 {
9123 "api_key": []
9124 }
9125 ],
9126 "summary": "Retrieve explore data",
9127 "tags": [
9128 "Search"
9129 ],
9130 "x-immich-history": [
9131 {
9132 "version": "v1",
9133 "state": "Added"
9134 },
9135 {
9136 "version": "v1",
9137 "state": "Beta"
9138 },
9139 {
9140 "version": "v2",
9141 "state": "Stable"
9142 }
9143 ],
9144 "x-immich-permission": "asset.read",
9145 "x-immich-state": "Stable"
9146 }
9147 },
9148 "/search/large-assets": {
9149 "post": {
9150 "description": "Search for assets that are considered large based on specified criteria.",
9151 "operationId": "searchLargeAssets",
9152 "parameters": [
9153 {
9154 "name": "albumIds",
9155 "required": false,
9156 "in": "query",
9157 "schema": {
9158 "type": "array",
9159 "items": {
9160 "type": "string",
9161 "format": "uuid"
9162 }
9163 }
9164 },
9165 {
9166 "name": "city",
9167 "required": false,
9168 "in": "query",
9169 "schema": {
9170 "nullable": true,
9171 "type": "string"
9172 }
9173 },
9174 {
9175 "name": "country",
9176 "required": false,
9177 "in": "query",
9178 "schema": {
9179 "nullable": true,
9180 "type": "string"
9181 }
9182 },
9183 {
9184 "name": "createdAfter",
9185 "required": false,
9186 "in": "query",
9187 "schema": {
9188 "format": "date-time",
9189 "type": "string"
9190 }
9191 },
9192 {
9193 "name": "createdBefore",
9194 "required": false,
9195 "in": "query",
9196 "schema": {
9197 "format": "date-time",
9198 "type": "string"
9199 }
9200 },
9201 {
9202 "name": "deviceId",
9203 "required": false,
9204 "in": "query",
9205 "schema": {
9206 "type": "string"
9207 }
9208 },
9209 {
9210 "name": "isEncoded",
9211 "required": false,
9212 "in": "query",
9213 "schema": {
9214 "type": "boolean"
9215 }
9216 },
9217 {
9218 "name": "isFavorite",
9219 "required": false,
9220 "in": "query",
9221 "schema": {
9222 "type": "boolean"
9223 }
9224 },
9225 {
9226 "name": "isMotion",
9227 "required": false,
9228 "in": "query",
9229 "schema": {
9230 "type": "boolean"
9231 }
9232 },
9233 {
9234 "name": "isNotInAlbum",
9235 "required": false,
9236 "in": "query",
9237 "schema": {
9238 "type": "boolean"
9239 }
9240 },
9241 {
9242 "name": "isOffline",
9243 "required": false,
9244 "in": "query",
9245 "schema": {
9246 "type": "boolean"
9247 }
9248 },
9249 {
9250 "name": "lensModel",
9251 "required": false,
9252 "in": "query",
9253 "schema": {
9254 "nullable": true,
9255 "type": "string"
9256 }
9257 },
9258 {
9259 "name": "libraryId",
9260 "required": false,
9261 "in": "query",
9262 "schema": {
9263 "format": "uuid",
9264 "nullable": true,
9265 "type": "string"
9266 }
9267 },
9268 {
9269 "name": "make",
9270 "required": false,
9271 "in": "query",
9272 "schema": {
9273 "type": "string"
9274 }
9275 },
9276 {
9277 "name": "minFileSize",
9278 "required": false,
9279 "in": "query",
9280 "schema": {
9281 "minimum": 0,
9282 "type": "integer"
9283 }
9284 },
9285 {
9286 "name": "model",
9287 "required": false,
9288 "in": "query",
9289 "schema": {
9290 "nullable": true,
9291 "type": "string"
9292 }
9293 },
9294 {
9295 "name": "ocr",
9296 "required": false,
9297 "in": "query",
9298 "schema": {
9299 "type": "string"
9300 }
9301 },
9302 {
9303 "name": "personIds",
9304 "required": false,
9305 "in": "query",
9306 "schema": {
9307 "type": "array",
9308 "items": {
9309 "type": "string",
9310 "format": "uuid"
9311 }
9312 }
9313 },
9314 {
9315 "name": "rating",
9316 "required": false,
9317 "in": "query",
9318 "schema": {
9319 "minimum": -1,
9320 "maximum": 5,
9321 "type": "number"
9322 }
9323 },
9324 {
9325 "name": "size",
9326 "required": false,
9327 "in": "query",
9328 "schema": {
9329 "minimum": 1,
9330 "maximum": 1000,
9331 "type": "number"
9332 }
9333 },
9334 {
9335 "name": "state",
9336 "required": false,
9337 "in": "query",
9338 "schema": {
9339 "nullable": true,
9340 "type": "string"
9341 }
9342 },
9343 {
9344 "name": "tagIds",
9345 "required": false,
9346 "in": "query",
9347 "schema": {
9348 "nullable": true,
9349 "type": "array",
9350 "items": {
9351 "type": "string",
9352 "format": "uuid"
9353 }
9354 }
9355 },
9356 {
9357 "name": "takenAfter",
9358 "required": false,
9359 "in": "query",
9360 "schema": {
9361 "format": "date-time",
9362 "type": "string"
9363 }
9364 },
9365 {
9366 "name": "takenBefore",
9367 "required": false,
9368 "in": "query",
9369 "schema": {
9370 "format": "date-time",
9371 "type": "string"
9372 }
9373 },
9374 {
9375 "name": "trashedAfter",
9376 "required": false,
9377 "in": "query",
9378 "schema": {
9379 "format": "date-time",
9380 "type": "string"
9381 }
9382 },
9383 {
9384 "name": "trashedBefore",
9385 "required": false,
9386 "in": "query",
9387 "schema": {
9388 "format": "date-time",
9389 "type": "string"
9390 }
9391 },
9392 {
9393 "name": "type",
9394 "required": false,
9395 "in": "query",
9396 "schema": {
9397 "$ref": "#/components/schemas/AssetTypeEnum"
9398 }
9399 },
9400 {
9401 "name": "updatedAfter",
9402 "required": false,
9403 "in": "query",
9404 "schema": {
9405 "format": "date-time",
9406 "type": "string"
9407 }
9408 },
9409 {
9410 "name": "updatedBefore",
9411 "required": false,
9412 "in": "query",
9413 "schema": {
9414 "format": "date-time",
9415 "type": "string"
9416 }
9417 },
9418 {
9419 "name": "visibility",
9420 "required": false,
9421 "in": "query",
9422 "schema": {
9423 "$ref": "#/components/schemas/AssetVisibility"
9424 }
9425 },
9426 {
9427 "name": "withDeleted",
9428 "required": false,
9429 "in": "query",
9430 "schema": {
9431 "type": "boolean"
9432 }
9433 },
9434 {
9435 "name": "withExif",
9436 "required": false,
9437 "in": "query",
9438 "schema": {
9439 "type": "boolean"
9440 }
9441 }
9442 ],
9443 "responses": {
9444 "200": {
9445 "content": {
9446 "application/json": {
9447 "schema": {
9448 "items": {
9449 "$ref": "#/components/schemas/AssetResponseDto"
9450 },
9451 "type": "array"
9452 }
9453 }
9454 },
9455 "description": ""
9456 }
9457 },
9458 "security": [
9459 {
9460 "bearer": []
9461 },
9462 {
9463 "cookie": []
9464 },
9465 {
9466 "api_key": []
9467 }
9468 ],
9469 "summary": "Search large assets",
9470 "tags": [
9471 "Search"
9472 ],
9473 "x-immich-history": [
9474 {
9475 "version": "v1",
9476 "state": "Added"
9477 },
9478 {
9479 "version": "v1",
9480 "state": "Beta"
9481 },
9482 {
9483 "version": "v2",
9484 "state": "Stable"
9485 }
9486 ],
9487 "x-immich-permission": "asset.read",
9488 "x-immich-state": "Stable"
9489 }
9490 },
9491 "/search/metadata": {
9492 "post": {
9493 "description": "Search for assets based on various metadata criteria.",
9494 "operationId": "searchAssets",
9495 "parameters": [],
9496 "requestBody": {
9497 "content": {
9498 "application/json": {
9499 "schema": {
9500 "$ref": "#/components/schemas/MetadataSearchDto"
9501 }
9502 }
9503 },
9504 "required": true
9505 },
9506 "responses": {
9507 "200": {
9508 "content": {
9509 "application/json": {
9510 "schema": {
9511 "$ref": "#/components/schemas/SearchResponseDto"
9512 }
9513 }
9514 },
9515 "description": ""
9516 }
9517 },
9518 "security": [
9519 {
9520 "bearer": []
9521 },
9522 {
9523 "cookie": []
9524 },
9525 {
9526 "api_key": []
9527 }
9528 ],
9529 "summary": "Search assets by metadata",
9530 "tags": [
9531 "Search"
9532 ],
9533 "x-immich-history": [
9534 {
9535 "version": "v1",
9536 "state": "Added"
9537 },
9538 {
9539 "version": "v1",
9540 "state": "Beta"
9541 },
9542 {
9543 "version": "v2",
9544 "state": "Stable"
9545 }
9546 ],
9547 "x-immich-permission": "asset.read",
9548 "x-immich-state": "Stable"
9549 }
9550 },
9551 "/search/person": {
9552 "get": {
9553 "description": "Search for people by name.",
9554 "operationId": "searchPerson",
9555 "parameters": [
9556 {
9557 "name": "name",
9558 "required": true,
9559 "in": "query",
9560 "schema": {
9561 "type": "string"
9562 }
9563 },
9564 {
9565 "name": "withHidden",
9566 "required": false,
9567 "in": "query",
9568 "schema": {
9569 "type": "boolean"
9570 }
9571 }
9572 ],
9573 "responses": {
9574 "200": {
9575 "content": {
9576 "application/json": {
9577 "schema": {
9578 "items": {
9579 "$ref": "#/components/schemas/PersonResponseDto"
9580 },
9581 "type": "array"
9582 }
9583 }
9584 },
9585 "description": ""
9586 }
9587 },
9588 "security": [
9589 {
9590 "bearer": []
9591 },
9592 {
9593 "cookie": []
9594 },
9595 {
9596 "api_key": []
9597 }
9598 ],
9599 "summary": "Search people",
9600 "tags": [
9601 "Search"
9602 ],
9603 "x-immich-history": [
9604 {
9605 "version": "v1",
9606 "state": "Added"
9607 },
9608 {
9609 "version": "v1",
9610 "state": "Beta"
9611 },
9612 {
9613 "version": "v2",
9614 "state": "Stable"
9615 }
9616 ],
9617 "x-immich-permission": "person.read",
9618 "x-immich-state": "Stable"
9619 }
9620 },
9621 "/search/places": {
9622 "get": {
9623 "description": "Search for places by name.",
9624 "operationId": "searchPlaces",
9625 "parameters": [
9626 {
9627 "name": "name",
9628 "required": true,
9629 "in": "query",
9630 "schema": {
9631 "type": "string"
9632 }
9633 }
9634 ],
9635 "responses": {
9636 "200": {
9637 "content": {
9638 "application/json": {
9639 "schema": {
9640 "items": {
9641 "$ref": "#/components/schemas/PlacesResponseDto"
9642 },
9643 "type": "array"
9644 }
9645 }
9646 },
9647 "description": ""
9648 }
9649 },
9650 "security": [
9651 {
9652 "bearer": []
9653 },
9654 {
9655 "cookie": []
9656 },
9657 {
9658 "api_key": []
9659 }
9660 ],
9661 "summary": "Search places",
9662 "tags": [
9663 "Search"
9664 ],
9665 "x-immich-history": [
9666 {
9667 "version": "v1",
9668 "state": "Added"
9669 },
9670 {
9671 "version": "v1",
9672 "state": "Beta"
9673 },
9674 {
9675 "version": "v2",
9676 "state": "Stable"
9677 }
9678 ],
9679 "x-immich-permission": "asset.read",
9680 "x-immich-state": "Stable"
9681 }
9682 },
9683 "/search/random": {
9684 "post": {
9685 "description": "Retrieve a random selection of assets based on the provided criteria.",
9686 "operationId": "searchRandom",
9687 "parameters": [],
9688 "requestBody": {
9689 "content": {
9690 "application/json": {
9691 "schema": {
9692 "$ref": "#/components/schemas/RandomSearchDto"
9693 }
9694 }
9695 },
9696 "required": true
9697 },
9698 "responses": {
9699 "200": {
9700 "content": {
9701 "application/json": {
9702 "schema": {
9703 "items": {
9704 "$ref": "#/components/schemas/AssetResponseDto"
9705 },
9706 "type": "array"
9707 }
9708 }
9709 },
9710 "description": ""
9711 }
9712 },
9713 "security": [
9714 {
9715 "bearer": []
9716 },
9717 {
9718 "cookie": []
9719 },
9720 {
9721 "api_key": []
9722 }
9723 ],
9724 "summary": "Search random assets",
9725 "tags": [
9726 "Search"
9727 ],
9728 "x-immich-history": [
9729 {
9730 "version": "v1",
9731 "state": "Added"
9732 },
9733 {
9734 "version": "v1",
9735 "state": "Beta"
9736 },
9737 {
9738 "version": "v2",
9739 "state": "Stable"
9740 }
9741 ],
9742 "x-immich-permission": "asset.read",
9743 "x-immich-state": "Stable"
9744 }
9745 },
9746 "/search/smart": {
9747 "post": {
9748 "description": "Perform a smart search for assets by using machine learning vectors to determine relevance.",
9749 "operationId": "searchSmart",
9750 "parameters": [],
9751 "requestBody": {
9752 "content": {
9753 "application/json": {
9754 "schema": {
9755 "$ref": "#/components/schemas/SmartSearchDto"
9756 }
9757 }
9758 },
9759 "required": true
9760 },
9761 "responses": {
9762 "200": {
9763 "content": {
9764 "application/json": {
9765 "schema": {
9766 "$ref": "#/components/schemas/SearchResponseDto"
9767 }
9768 }
9769 },
9770 "description": ""
9771 }
9772 },
9773 "security": [
9774 {
9775 "bearer": []
9776 },
9777 {
9778 "cookie": []
9779 },
9780 {
9781 "api_key": []
9782 }
9783 ],
9784 "summary": "Smart asset search",
9785 "tags": [
9786 "Search"
9787 ],
9788 "x-immich-history": [
9789 {
9790 "version": "v1",
9791 "state": "Added"
9792 },
9793 {
9794 "version": "v1",
9795 "state": "Beta"
9796 },
9797 {
9798 "version": "v2",
9799 "state": "Stable"
9800 }
9801 ],
9802 "x-immich-permission": "asset.read",
9803 "x-immich-state": "Stable"
9804 }
9805 },
9806 "/search/statistics": {
9807 "post": {
9808 "description": "Retrieve statistical data about assets based on search criteria, such as the total matching count.",
9809 "operationId": "searchAssetStatistics",
9810 "parameters": [],
9811 "requestBody": {
9812 "content": {
9813 "application/json": {
9814 "schema": {
9815 "$ref": "#/components/schemas/StatisticsSearchDto"
9816 }
9817 }
9818 },
9819 "required": true
9820 },
9821 "responses": {
9822 "200": {
9823 "content": {
9824 "application/json": {
9825 "schema": {
9826 "$ref": "#/components/schemas/SearchStatisticsResponseDto"
9827 }
9828 }
9829 },
9830 "description": ""
9831 }
9832 },
9833 "security": [
9834 {
9835 "bearer": []
9836 },
9837 {
9838 "cookie": []
9839 },
9840 {
9841 "api_key": []
9842 }
9843 ],
9844 "summary": "Search asset statistics",
9845 "tags": [
9846 "Search"
9847 ],
9848 "x-immich-history": [
9849 {
9850 "version": "v1",
9851 "state": "Added"
9852 },
9853 {
9854 "version": "v1",
9855 "state": "Beta"
9856 },
9857 {
9858 "version": "v2",
9859 "state": "Stable"
9860 }
9861 ],
9862 "x-immich-permission": "asset.statistics",
9863 "x-immich-state": "Stable"
9864 }
9865 },
9866 "/search/suggestions": {
9867 "get": {
9868 "description": "Retrieve search suggestions based on partial input. This endpoint is used for typeahead search features.",
9869 "operationId": "getSearchSuggestions",
9870 "parameters": [
9871 {
9872 "name": "country",
9873 "required": false,
9874 "in": "query",
9875 "schema": {
9876 "type": "string"
9877 }
9878 },
9879 {
9880 "name": "includeNull",
9881 "required": false,
9882 "in": "query",
9883 "x-immich-history": [
9884 {
9885 "version": "v1.111.0",
9886 "state": "Added"
9887 },
9888 {
9889 "version": "v2",
9890 "state": "Stable"
9891 }
9892 ],
9893 "x-immich-state": "Stable",
9894 "schema": {
9895 "type": "boolean"
9896 }
9897 },
9898 {
9899 "name": "lensModel",
9900 "required": false,
9901 "in": "query",
9902 "schema": {
9903 "type": "string"
9904 }
9905 },
9906 {
9907 "name": "make",
9908 "required": false,
9909 "in": "query",
9910 "schema": {
9911 "type": "string"
9912 }
9913 },
9914 {
9915 "name": "model",
9916 "required": false,
9917 "in": "query",
9918 "schema": {
9919 "type": "string"
9920 }
9921 },
9922 {
9923 "name": "state",
9924 "required": false,
9925 "in": "query",
9926 "schema": {
9927 "type": "string"
9928 }
9929 },
9930 {
9931 "name": "type",
9932 "required": true,
9933 "in": "query",
9934 "schema": {
9935 "$ref": "#/components/schemas/SearchSuggestionType"
9936 }
9937 }
9938 ],
9939 "responses": {
9940 "200": {
9941 "content": {
9942 "application/json": {
9943 "schema": {
9944 "items": {
9945 "type": "string"
9946 },
9947 "type": "array"
9948 }
9949 }
9950 },
9951 "description": ""
9952 }
9953 },
9954 "security": [
9955 {
9956 "bearer": []
9957 },
9958 {
9959 "cookie": []
9960 },
9961 {
9962 "api_key": []
9963 }
9964 ],
9965 "summary": "Retrieve search suggestions",
9966 "tags": [
9967 "Search"
9968 ],
9969 "x-immich-history": [
9970 {
9971 "version": "v1",
9972 "state": "Added"
9973 },
9974 {
9975 "version": "v1",
9976 "state": "Beta"
9977 },
9978 {
9979 "version": "v2",
9980 "state": "Stable"
9981 }
9982 ],
9983 "x-immich-permission": "asset.read",
9984 "x-immich-state": "Stable"
9985 }
9986 },
9987 "/server/about": {
9988 "get": {
9989 "description": "Retrieve a list of information about the server.",
9990 "operationId": "getAboutInfo",
9991 "parameters": [],
9992 "responses": {
9993 "200": {
9994 "content": {
9995 "application/json": {
9996 "schema": {
9997 "$ref": "#/components/schemas/ServerAboutResponseDto"
9998 }
9999 }
10000 },
10001 "description": ""
10002 }
10003 },
10004 "security": [
10005 {
10006 "bearer": []
10007 },
10008 {
10009 "cookie": []
10010 },
10011 {
10012 "api_key": []
10013 }
10014 ],
10015 "summary": "Get server information",
10016 "tags": [
10017 "Server"
10018 ],
10019 "x-immich-history": [
10020 {
10021 "version": "v1",
10022 "state": "Added"
10023 },
10024 {
10025 "version": "v1",
10026 "state": "Beta"
10027 },
10028 {
10029 "version": "v2",
10030 "state": "Stable"
10031 }
10032 ],
10033 "x-immich-permission": "server.about",
10034 "x-immich-state": "Stable"
10035 }
10036 },
10037 "/server/apk-links": {
10038 "get": {
10039 "description": "Retrieve links to the APKs for the current server version.",
10040 "operationId": "getApkLinks",
10041 "parameters": [],
10042 "responses": {
10043 "200": {
10044 "content": {
10045 "application/json": {
10046 "schema": {
10047 "$ref": "#/components/schemas/ServerApkLinksDto"
10048 }
10049 }
10050 },
10051 "description": ""
10052 }
10053 },
10054 "security": [
10055 {
10056 "bearer": []
10057 },
10058 {
10059 "cookie": []
10060 },
10061 {
10062 "api_key": []
10063 }
10064 ],
10065 "summary": "Get APK links",
10066 "tags": [
10067 "Server"
10068 ],
10069 "x-immich-history": [
10070 {
10071 "version": "v1",
10072 "state": "Added"
10073 },
10074 {
10075 "version": "v1",
10076 "state": "Beta"
10077 },
10078 {
10079 "version": "v2",
10080 "state": "Stable"
10081 }
10082 ],
10083 "x-immich-permission": "server.apkLinks",
10084 "x-immich-state": "Stable"
10085 }
10086 },
10087 "/server/config": {
10088 "get": {
10089 "description": "Retrieve the current server configuration.",
10090 "operationId": "getServerConfig",
10091 "parameters": [],
10092 "responses": {
10093 "200": {
10094 "content": {
10095 "application/json": {
10096 "schema": {
10097 "$ref": "#/components/schemas/ServerConfigDto"
10098 }
10099 }
10100 },
10101 "description": ""
10102 }
10103 },
10104 "summary": "Get config",
10105 "tags": [
10106 "Server"
10107 ],
10108 "x-immich-history": [
10109 {
10110 "version": "v1",
10111 "state": "Added"
10112 },
10113 {
10114 "version": "v1",
10115 "state": "Beta"
10116 },
10117 {
10118 "version": "v2",
10119 "state": "Stable"
10120 }
10121 ],
10122 "x-immich-state": "Stable"
10123 }
10124 },
10125 "/server/features": {
10126 "get": {
10127 "description": "Retrieve available features supported by this server.",
10128 "operationId": "getServerFeatures",
10129 "parameters": [],
10130 "responses": {
10131 "200": {
10132 "content": {
10133 "application/json": {
10134 "schema": {
10135 "$ref": "#/components/schemas/ServerFeaturesDto"
10136 }
10137 }
10138 },
10139 "description": ""
10140 }
10141 },
10142 "summary": "Get features",
10143 "tags": [
10144 "Server"
10145 ],
10146 "x-immich-history": [
10147 {
10148 "version": "v1",
10149 "state": "Added"
10150 },
10151 {
10152 "version": "v1",
10153 "state": "Beta"
10154 },
10155 {
10156 "version": "v2",
10157 "state": "Stable"
10158 }
10159 ],
10160 "x-immich-state": "Stable"
10161 }
10162 },
10163 "/server/license": {
10164 "delete": {
10165 "description": "Delete the currently set server product key.",
10166 "operationId": "deleteServerLicense",
10167 "parameters": [],
10168 "responses": {
10169 "204": {
10170 "description": ""
10171 }
10172 },
10173 "security": [
10174 {
10175 "bearer": []
10176 },
10177 {
10178 "cookie": []
10179 },
10180 {
10181 "api_key": []
10182 }
10183 ],
10184 "summary": "Delete server product key",
10185 "tags": [
10186 "Server"
10187 ],
10188 "x-immich-admin-only": true,
10189 "x-immich-history": [
10190 {
10191 "version": "v1",
10192 "state": "Added"
10193 },
10194 {
10195 "version": "v1",
10196 "state": "Beta"
10197 },
10198 {
10199 "version": "v2",
10200 "state": "Stable"
10201 }
10202 ],
10203 "x-immich-permission": "serverLicense.delete",
10204 "x-immich-state": "Stable"
10205 },
10206 "get": {
10207 "description": "Retrieve information about whether the server currently has a product key registered.",
10208 "operationId": "getServerLicense",
10209 "parameters": [],
10210 "responses": {
10211 "200": {
10212 "content": {
10213 "application/json": {
10214 "schema": {
10215 "$ref": "#/components/schemas/LicenseResponseDto"
10216 }
10217 }
10218 },
10219 "description": ""
10220 },
10221 "404": {
10222 "description": ""
10223 }
10224 },
10225 "security": [
10226 {
10227 "bearer": []
10228 },
10229 {
10230 "cookie": []
10231 },
10232 {
10233 "api_key": []
10234 }
10235 ],
10236 "summary": "Get product key",
10237 "tags": [
10238 "Server"
10239 ],
10240 "x-immich-admin-only": true,
10241 "x-immich-history": [
10242 {
10243 "version": "v1",
10244 "state": "Added"
10245 },
10246 {
10247 "version": "v1",
10248 "state": "Beta"
10249 },
10250 {
10251 "version": "v2",
10252 "state": "Stable"
10253 }
10254 ],
10255 "x-immich-permission": "serverLicense.read",
10256 "x-immich-state": "Stable"
10257 },
10258 "put": {
10259 "description": "Validate and set the server product key if successful.",
10260 "operationId": "setServerLicense",
10261 "parameters": [],
10262 "requestBody": {
10263 "content": {
10264 "application/json": {
10265 "schema": {
10266 "$ref": "#/components/schemas/LicenseKeyDto"
10267 }
10268 }
10269 },
10270 "required": true
10271 },
10272 "responses": {
10273 "200": {
10274 "content": {
10275 "application/json": {
10276 "schema": {
10277 "$ref": "#/components/schemas/LicenseResponseDto"
10278 }
10279 }
10280 },
10281 "description": ""
10282 }
10283 },
10284 "security": [
10285 {
10286 "bearer": []
10287 },
10288 {
10289 "cookie": []
10290 },
10291 {
10292 "api_key": []
10293 }
10294 ],
10295 "summary": "Set server product key",
10296 "tags": [
10297 "Server"
10298 ],
10299 "x-immich-admin-only": true,
10300 "x-immich-history": [
10301 {
10302 "version": "v1",
10303 "state": "Added"
10304 },
10305 {
10306 "version": "v1",
10307 "state": "Beta"
10308 },
10309 {
10310 "version": "v2",
10311 "state": "Stable"
10312 }
10313 ],
10314 "x-immich-permission": "serverLicense.update",
10315 "x-immich-state": "Stable"
10316 }
10317 },
10318 "/server/media-types": {
10319 "get": {
10320 "description": "Retrieve all media types supported by the server.",
10321 "operationId": "getSupportedMediaTypes",
10322 "parameters": [],
10323 "responses": {
10324 "200": {
10325 "content": {
10326 "application/json": {
10327 "schema": {
10328 "$ref": "#/components/schemas/ServerMediaTypesResponseDto"
10329 }
10330 }
10331 },
10332 "description": ""
10333 }
10334 },
10335 "summary": "Get supported media types",
10336 "tags": [
10337 "Server"
10338 ],
10339 "x-immich-history": [
10340 {
10341 "version": "v1",
10342 "state": "Added"
10343 },
10344 {
10345 "version": "v1",
10346 "state": "Beta"
10347 },
10348 {
10349 "version": "v2",
10350 "state": "Stable"
10351 }
10352 ],
10353 "x-immich-state": "Stable"
10354 }
10355 },
10356 "/server/ping": {
10357 "get": {
10358 "description": "Pong",
10359 "operationId": "pingServer",
10360 "parameters": [],
10361 "responses": {
10362 "200": {
10363 "content": {
10364 "application/json": {
10365 "schema": {
10366 "$ref": "#/components/schemas/ServerPingResponse"
10367 }
10368 }
10369 },
10370 "description": ""
10371 }
10372 },
10373 "summary": "Ping",
10374 "tags": [
10375 "Server"
10376 ],
10377 "x-immich-history": [
10378 {
10379 "version": "v1",
10380 "state": "Added"
10381 },
10382 {
10383 "version": "v1",
10384 "state": "Beta"
10385 },
10386 {
10387 "version": "v2",
10388 "state": "Stable"
10389 }
10390 ],
10391 "x-immich-state": "Stable"
10392 }
10393 },
10394 "/server/statistics": {
10395 "get": {
10396 "description": "Retrieve statistics about the entire Immich instance such as asset counts.",
10397 "operationId": "getServerStatistics",
10398 "parameters": [],
10399 "responses": {
10400 "200": {
10401 "content": {
10402 "application/json": {
10403 "schema": {
10404 "$ref": "#/components/schemas/ServerStatsResponseDto"
10405 }
10406 }
10407 },
10408 "description": ""
10409 }
10410 },
10411 "security": [
10412 {
10413 "bearer": []
10414 },
10415 {
10416 "cookie": []
10417 },
10418 {
10419 "api_key": []
10420 }
10421 ],
10422 "summary": "Get statistics",
10423 "tags": [
10424 "Server"
10425 ],
10426 "x-immich-admin-only": true,
10427 "x-immich-history": [
10428 {
10429 "version": "v1",
10430 "state": "Added"
10431 },
10432 {
10433 "version": "v1",
10434 "state": "Beta"
10435 },
10436 {
10437 "version": "v2",
10438 "state": "Stable"
10439 }
10440 ],
10441 "x-immich-permission": "server.statistics",
10442 "x-immich-state": "Stable"
10443 }
10444 },
10445 "/server/storage": {
10446 "get": {
10447 "description": "Retrieve the current storage utilization information of the server.",
10448 "operationId": "getStorage",
10449 "parameters": [],
10450 "responses": {
10451 "200": {
10452 "content": {
10453 "application/json": {
10454 "schema": {
10455 "$ref": "#/components/schemas/ServerStorageResponseDto"
10456 }
10457 }
10458 },
10459 "description": ""
10460 }
10461 },
10462 "security": [
10463 {
10464 "bearer": []
10465 },
10466 {
10467 "cookie": []
10468 },
10469 {
10470 "api_key": []
10471 }
10472 ],
10473 "summary": "Get storage",
10474 "tags": [
10475 "Server"
10476 ],
10477 "x-immich-history": [
10478 {
10479 "version": "v1",
10480 "state": "Added"
10481 },
10482 {
10483 "version": "v1",
10484 "state": "Beta"
10485 },
10486 {
10487 "version": "v2",
10488 "state": "Stable"
10489 }
10490 ],
10491 "x-immich-permission": "server.storage",
10492 "x-immich-state": "Stable"
10493 }
10494 },
10495 "/server/theme": {
10496 "get": {
10497 "description": "Retrieve the custom CSS, if existent.",
10498 "operationId": "getTheme",
10499 "parameters": [],
10500 "responses": {
10501 "200": {
10502 "content": {
10503 "application/json": {
10504 "schema": {
10505 "$ref": "#/components/schemas/ServerThemeDto"
10506 }
10507 }
10508 },
10509 "description": ""
10510 }
10511 },
10512 "summary": "Get theme",
10513 "tags": [
10514 "Server"
10515 ],
10516 "x-immich-history": [
10517 {
10518 "version": "v1",
10519 "state": "Added"
10520 },
10521 {
10522 "version": "v1",
10523 "state": "Beta"
10524 },
10525 {
10526 "version": "v2",
10527 "state": "Stable"
10528 }
10529 ],
10530 "x-immich-state": "Stable"
10531 }
10532 },
10533 "/server/version": {
10534 "get": {
10535 "description": "Retrieve the current server version in semantic versioning (semver) format.",
10536 "operationId": "getServerVersion",
10537 "parameters": [],
10538 "responses": {
10539 "200": {
10540 "content": {
10541 "application/json": {
10542 "schema": {
10543 "$ref": "#/components/schemas/ServerVersionResponseDto"
10544 }
10545 }
10546 },
10547 "description": ""
10548 }
10549 },
10550 "summary": "Get server version",
10551 "tags": [
10552 "Server"
10553 ],
10554 "x-immich-history": [
10555 {
10556 "version": "v1",
10557 "state": "Added"
10558 },
10559 {
10560 "version": "v1",
10561 "state": "Beta"
10562 },
10563 {
10564 "version": "v2",
10565 "state": "Stable"
10566 }
10567 ],
10568 "x-immich-state": "Stable"
10569 }
10570 },
10571 "/server/version-check": {
10572 "get": {
10573 "description": "Retrieve information about the last time the version check ran.",
10574 "operationId": "getVersionCheck",
10575 "parameters": [],
10576 "responses": {
10577 "200": {
10578 "content": {
10579 "application/json": {
10580 "schema": {
10581 "$ref": "#/components/schemas/VersionCheckStateResponseDto"
10582 }
10583 }
10584 },
10585 "description": ""
10586 }
10587 },
10588 "security": [
10589 {
10590 "bearer": []
10591 },
10592 {
10593 "cookie": []
10594 },
10595 {
10596 "api_key": []
10597 }
10598 ],
10599 "summary": "Get version check status",
10600 "tags": [
10601 "Server"
10602 ],
10603 "x-immich-history": [
10604 {
10605 "version": "v1",
10606 "state": "Added"
10607 },
10608 {
10609 "version": "v1",
10610 "state": "Beta"
10611 },
10612 {
10613 "version": "v2",
10614 "state": "Stable"
10615 }
10616 ],
10617 "x-immich-permission": "server.versionCheck",
10618 "x-immich-state": "Stable"
10619 }
10620 },
10621 "/server/version-history": {
10622 "get": {
10623 "description": "Retrieve a list of past versions the server has been on.",
10624 "operationId": "getVersionHistory",
10625 "parameters": [],
10626 "responses": {
10627 "200": {
10628 "content": {
10629 "application/json": {
10630 "schema": {
10631 "items": {
10632 "$ref": "#/components/schemas/ServerVersionHistoryResponseDto"
10633 },
10634 "type": "array"
10635 }
10636 }
10637 },
10638 "description": ""
10639 }
10640 },
10641 "summary": "Get version history",
10642 "tags": [
10643 "Server"
10644 ],
10645 "x-immich-history": [
10646 {
10647 "version": "v1",
10648 "state": "Added"
10649 },
10650 {
10651 "version": "v1",
10652 "state": "Beta"
10653 },
10654 {
10655 "version": "v2",
10656 "state": "Stable"
10657 }
10658 ],
10659 "x-immich-state": "Stable"
10660 }
10661 },
10662 "/sessions": {
10663 "delete": {
10664 "description": "Delete all sessions for the user. This will not delete the current session.",
10665 "operationId": "deleteAllSessions",
10666 "parameters": [],
10667 "responses": {
10668 "204": {
10669 "description": ""
10670 }
10671 },
10672 "security": [
10673 {
10674 "bearer": []
10675 },
10676 {
10677 "cookie": []
10678 },
10679 {
10680 "api_key": []
10681 }
10682 ],
10683 "summary": "Delete all sessions",
10684 "tags": [
10685 "Sessions"
10686 ],
10687 "x-immich-history": [
10688 {
10689 "version": "v1",
10690 "state": "Added"
10691 },
10692 {
10693 "version": "v1",
10694 "state": "Beta"
10695 },
10696 {
10697 "version": "v2",
10698 "state": "Stable"
10699 }
10700 ],
10701 "x-immich-permission": "session.delete",
10702 "x-immich-state": "Stable"
10703 },
10704 "get": {
10705 "description": "Retrieve a list of sessions for the user.",
10706 "operationId": "getSessions",
10707 "parameters": [],
10708 "responses": {
10709 "200": {
10710 "content": {
10711 "application/json": {
10712 "schema": {
10713 "items": {
10714 "$ref": "#/components/schemas/SessionResponseDto"
10715 },
10716 "type": "array"
10717 }
10718 }
10719 },
10720 "description": ""
10721 }
10722 },
10723 "security": [
10724 {
10725 "bearer": []
10726 },
10727 {
10728 "cookie": []
10729 },
10730 {
10731 "api_key": []
10732 }
10733 ],
10734 "summary": "Retrieve sessions",
10735 "tags": [
10736 "Sessions"
10737 ],
10738 "x-immich-history": [
10739 {
10740 "version": "v1",
10741 "state": "Added"
10742 },
10743 {
10744 "version": "v1",
10745 "state": "Beta"
10746 },
10747 {
10748 "version": "v2",
10749 "state": "Stable"
10750 }
10751 ],
10752 "x-immich-permission": "session.read",
10753 "x-immich-state": "Stable"
10754 },
10755 "post": {
10756 "description": "Create a session as a child to the current session. This endpoint is used for casting.",
10757 "operationId": "createSession",
10758 "parameters": [],
10759 "requestBody": {
10760 "content": {
10761 "application/json": {
10762 "schema": {
10763 "$ref": "#/components/schemas/SessionCreateDto"
10764 }
10765 }
10766 },
10767 "required": true
10768 },
10769 "responses": {
10770 "201": {
10771 "content": {
10772 "application/json": {
10773 "schema": {
10774 "$ref": "#/components/schemas/SessionCreateResponseDto"
10775 }
10776 }
10777 },
10778 "description": ""
10779 }
10780 },
10781 "security": [
10782 {
10783 "bearer": []
10784 },
10785 {
10786 "cookie": []
10787 },
10788 {
10789 "api_key": []
10790 }
10791 ],
10792 "summary": "Create a session",
10793 "tags": [
10794 "Sessions"
10795 ],
10796 "x-immich-history": [
10797 {
10798 "version": "v1",
10799 "state": "Added"
10800 },
10801 {
10802 "version": "v1",
10803 "state": "Beta"
10804 },
10805 {
10806 "version": "v2",
10807 "state": "Stable"
10808 }
10809 ],
10810 "x-immich-permission": "session.create",
10811 "x-immich-state": "Stable"
10812 }
10813 },
10814 "/sessions/{id}": {
10815 "delete": {
10816 "description": "Delete a specific session by id.",
10817 "operationId": "deleteSession",
10818 "parameters": [
10819 {
10820 "name": "id",
10821 "required": true,
10822 "in": "path",
10823 "schema": {
10824 "format": "uuid",
10825 "type": "string"
10826 }
10827 }
10828 ],
10829 "responses": {
10830 "204": {
10831 "description": ""
10832 }
10833 },
10834 "security": [
10835 {
10836 "bearer": []
10837 },
10838 {
10839 "cookie": []
10840 },
10841 {
10842 "api_key": []
10843 }
10844 ],
10845 "summary": "Delete a session",
10846 "tags": [
10847 "Sessions"
10848 ],
10849 "x-immich-history": [
10850 {
10851 "version": "v1",
10852 "state": "Added"
10853 },
10854 {
10855 "version": "v1",
10856 "state": "Beta"
10857 },
10858 {
10859 "version": "v2",
10860 "state": "Stable"
10861 }
10862 ],
10863 "x-immich-permission": "session.delete",
10864 "x-immich-state": "Stable"
10865 },
10866 "put": {
10867 "description": "Update a specific session identified by id.",
10868 "operationId": "updateSession",
10869 "parameters": [
10870 {
10871 "name": "id",
10872 "required": true,
10873 "in": "path",
10874 "schema": {
10875 "format": "uuid",
10876 "type": "string"
10877 }
10878 }
10879 ],
10880 "requestBody": {
10881 "content": {
10882 "application/json": {
10883 "schema": {
10884 "$ref": "#/components/schemas/SessionUpdateDto"
10885 }
10886 }
10887 },
10888 "required": true
10889 },
10890 "responses": {
10891 "200": {
10892 "content": {
10893 "application/json": {
10894 "schema": {
10895 "$ref": "#/components/schemas/SessionResponseDto"
10896 }
10897 }
10898 },
10899 "description": ""
10900 }
10901 },
10902 "security": [
10903 {
10904 "bearer": []
10905 },
10906 {
10907 "cookie": []
10908 },
10909 {
10910 "api_key": []
10911 }
10912 ],
10913 "summary": "Update a session",
10914 "tags": [
10915 "Sessions"
10916 ],
10917 "x-immich-history": [
10918 {
10919 "version": "v1",
10920 "state": "Added"
10921 },
10922 {
10923 "version": "v1",
10924 "state": "Beta"
10925 },
10926 {
10927 "version": "v2",
10928 "state": "Stable"
10929 }
10930 ],
10931 "x-immich-permission": "session.update",
10932 "x-immich-state": "Stable"
10933 }
10934 },
10935 "/sessions/{id}/lock": {
10936 "post": {
10937 "description": "Lock a specific session by id.",
10938 "operationId": "lockSession",
10939 "parameters": [
10940 {
10941 "name": "id",
10942 "required": true,
10943 "in": "path",
10944 "schema": {
10945 "format": "uuid",
10946 "type": "string"
10947 }
10948 }
10949 ],
10950 "responses": {
10951 "204": {
10952 "description": ""
10953 }
10954 },
10955 "security": [
10956 {
10957 "bearer": []
10958 },
10959 {
10960 "cookie": []
10961 },
10962 {
10963 "api_key": []
10964 }
10965 ],
10966 "summary": "Lock a session",
10967 "tags": [
10968 "Sessions"
10969 ],
10970 "x-immich-history": [
10971 {
10972 "version": "v1",
10973 "state": "Added"
10974 },
10975 {
10976 "version": "v1",
10977 "state": "Beta"
10978 },
10979 {
10980 "version": "v2",
10981 "state": "Stable"
10982 }
10983 ],
10984 "x-immich-permission": "session.lock",
10985 "x-immich-state": "Stable"
10986 }
10987 },
10988 "/shared-links": {
10989 "get": {
10990 "description": "Retrieve a list of all shared links.",
10991 "operationId": "getAllSharedLinks",
10992 "parameters": [
10993 {
10994 "name": "albumId",
10995 "required": false,
10996 "in": "query",
10997 "schema": {
10998 "format": "uuid",
10999 "type": "string"
11000 }
11001 },
11002 {
11003 "name": "id",
11004 "required": false,
11005 "in": "query",
11006 "x-immich-history": [
11007 {
11008 "version": "v2.5.0",
11009 "state": "Added"
11010 }
11011 ],
11012 "schema": {
11013 "format": "uuid",
11014 "type": "string"
11015 }
11016 }
11017 ],
11018 "responses": {
11019 "200": {
11020 "content": {
11021 "application/json": {
11022 "schema": {
11023 "items": {
11024 "$ref": "#/components/schemas/SharedLinkResponseDto"
11025 },
11026 "type": "array"
11027 }
11028 }
11029 },
11030 "description": ""
11031 }
11032 },
11033 "security": [
11034 {
11035 "bearer": []
11036 },
11037 {
11038 "cookie": []
11039 },
11040 {
11041 "api_key": []
11042 }
11043 ],
11044 "summary": "Retrieve all shared links",
11045 "tags": [
11046 "Shared links"
11047 ],
11048 "x-immich-history": [
11049 {
11050 "version": "v1",
11051 "state": "Added"
11052 },
11053 {
11054 "version": "v1",
11055 "state": "Beta"
11056 },
11057 {
11058 "version": "v2",
11059 "state": "Stable"
11060 }
11061 ],
11062 "x-immich-permission": "sharedLink.read",
11063 "x-immich-state": "Stable"
11064 },
11065 "post": {
11066 "description": "Create a new shared link.",
11067 "operationId": "createSharedLink",
11068 "parameters": [],
11069 "requestBody": {
11070 "content": {
11071 "application/json": {
11072 "schema": {
11073 "$ref": "#/components/schemas/SharedLinkCreateDto"
11074 }
11075 }
11076 },
11077 "required": true
11078 },
11079 "responses": {
11080 "201": {
11081 "content": {
11082 "application/json": {
11083 "schema": {
11084 "$ref": "#/components/schemas/SharedLinkResponseDto"
11085 }
11086 }
11087 },
11088 "description": ""
11089 }
11090 },
11091 "security": [
11092 {
11093 "bearer": []
11094 },
11095 {
11096 "cookie": []
11097 },
11098 {
11099 "api_key": []
11100 }
11101 ],
11102 "summary": "Create a shared link",
11103 "tags": [
11104 "Shared links"
11105 ],
11106 "x-immich-history": [
11107 {
11108 "version": "v1",
11109 "state": "Added"
11110 },
11111 {
11112 "version": "v1",
11113 "state": "Beta"
11114 },
11115 {
11116 "version": "v2",
11117 "state": "Stable"
11118 }
11119 ],
11120 "x-immich-permission": "sharedLink.create",
11121 "x-immich-state": "Stable"
11122 }
11123 },
11124 "/shared-links/me": {
11125 "get": {
11126 "description": "Retrieve the current shared link associated with authentication method.",
11127 "operationId": "getMySharedLink",
11128 "parameters": [
11129 {
11130 "name": "key",
11131 "required": false,
11132 "in": "query",
11133 "schema": {
11134 "type": "string"
11135 }
11136 },
11137 {
11138 "name": "password",
11139 "required": false,
11140 "in": "query",
11141 "schema": {
11142 "example": "password",
11143 "type": "string"
11144 }
11145 },
11146 {
11147 "name": "slug",
11148 "required": false,
11149 "in": "query",
11150 "schema": {
11151 "type": "string"
11152 }
11153 },
11154 {
11155 "name": "token",
11156 "required": false,
11157 "in": "query",
11158 "schema": {
11159 "type": "string"
11160 }
11161 }
11162 ],
11163 "responses": {
11164 "200": {
11165 "content": {
11166 "application/json": {
11167 "schema": {
11168 "$ref": "#/components/schemas/SharedLinkResponseDto"
11169 }
11170 }
11171 },
11172 "description": ""
11173 }
11174 },
11175 "security": [
11176 {
11177 "bearer": []
11178 },
11179 {
11180 "cookie": []
11181 },
11182 {
11183 "api_key": []
11184 }
11185 ],
11186 "summary": "Retrieve current shared link",
11187 "tags": [
11188 "Shared links"
11189 ],
11190 "x-immich-history": [
11191 {
11192 "version": "v1",
11193 "state": "Added"
11194 },
11195 {
11196 "version": "v1",
11197 "state": "Beta"
11198 },
11199 {
11200 "version": "v2",
11201 "state": "Stable"
11202 }
11203 ],
11204 "x-immich-state": "Stable"
11205 }
11206 },
11207 "/shared-links/{id}": {
11208 "delete": {
11209 "description": "Delete a specific shared link by its ID.",
11210 "operationId": "removeSharedLink",
11211 "parameters": [
11212 {
11213 "name": "id",
11214 "required": true,
11215 "in": "path",
11216 "schema": {
11217 "format": "uuid",
11218 "type": "string"
11219 }
11220 }
11221 ],
11222 "responses": {
11223 "204": {
11224 "description": ""
11225 }
11226 },
11227 "security": [
11228 {
11229 "bearer": []
11230 },
11231 {
11232 "cookie": []
11233 },
11234 {
11235 "api_key": []
11236 }
11237 ],
11238 "summary": "Delete a shared link",
11239 "tags": [
11240 "Shared links"
11241 ],
11242 "x-immich-history": [
11243 {
11244 "version": "v1",
11245 "state": "Added"
11246 },
11247 {
11248 "version": "v1",
11249 "state": "Beta"
11250 },
11251 {
11252 "version": "v2",
11253 "state": "Stable"
11254 }
11255 ],
11256 "x-immich-permission": "sharedLink.delete",
11257 "x-immich-state": "Stable"
11258 },
11259 "get": {
11260 "description": "Retrieve a specific shared link by its ID.",
11261 "operationId": "getSharedLinkById",
11262 "parameters": [
11263 {
11264 "name": "id",
11265 "required": true,
11266 "in": "path",
11267 "schema": {
11268 "format": "uuid",
11269 "type": "string"
11270 }
11271 }
11272 ],
11273 "responses": {
11274 "200": {
11275 "content": {
11276 "application/json": {
11277 "schema": {
11278 "$ref": "#/components/schemas/SharedLinkResponseDto"
11279 }
11280 }
11281 },
11282 "description": ""
11283 }
11284 },
11285 "security": [
11286 {
11287 "bearer": []
11288 },
11289 {
11290 "cookie": []
11291 },
11292 {
11293 "api_key": []
11294 }
11295 ],
11296 "summary": "Retrieve a shared link",
11297 "tags": [
11298 "Shared links"
11299 ],
11300 "x-immich-history": [
11301 {
11302 "version": "v1",
11303 "state": "Added"
11304 },
11305 {
11306 "version": "v1",
11307 "state": "Beta"
11308 },
11309 {
11310 "version": "v2",
11311 "state": "Stable"
11312 }
11313 ],
11314 "x-immich-permission": "sharedLink.read",
11315 "x-immich-state": "Stable"
11316 },
11317 "patch": {
11318 "description": "Update an existing shared link by its ID.",
11319 "operationId": "updateSharedLink",
11320 "parameters": [
11321 {
11322 "name": "id",
11323 "required": true,
11324 "in": "path",
11325 "schema": {
11326 "format": "uuid",
11327 "type": "string"
11328 }
11329 }
11330 ],
11331 "requestBody": {
11332 "content": {
11333 "application/json": {
11334 "schema": {
11335 "$ref": "#/components/schemas/SharedLinkEditDto"
11336 }
11337 }
11338 },
11339 "required": true
11340 },
11341 "responses": {
11342 "200": {
11343 "content": {
11344 "application/json": {
11345 "schema": {
11346 "$ref": "#/components/schemas/SharedLinkResponseDto"
11347 }
11348 }
11349 },
11350 "description": ""
11351 }
11352 },
11353 "security": [
11354 {
11355 "bearer": []
11356 },
11357 {
11358 "cookie": []
11359 },
11360 {
11361 "api_key": []
11362 }
11363 ],
11364 "summary": "Update a shared link",
11365 "tags": [
11366 "Shared links"
11367 ],
11368 "x-immich-history": [
11369 {
11370 "version": "v1",
11371 "state": "Added"
11372 },
11373 {
11374 "version": "v1",
11375 "state": "Beta"
11376 },
11377 {
11378 "version": "v2",
11379 "state": "Stable"
11380 }
11381 ],
11382 "x-immich-permission": "sharedLink.update",
11383 "x-immich-state": "Stable"
11384 }
11385 },
11386 "/shared-links/{id}/assets": {
11387 "delete": {
11388 "description": "Remove assets from a specific shared link by its ID. This endpoint is only relevant for shared link of type individual.",
11389 "operationId": "removeSharedLinkAssets",
11390 "parameters": [
11391 {
11392 "name": "id",
11393 "required": true,
11394 "in": "path",
11395 "schema": {
11396 "format": "uuid",
11397 "type": "string"
11398 }
11399 },
11400 {
11401 "name": "key",
11402 "required": false,
11403 "in": "query",
11404 "schema": {
11405 "type": "string"
11406 }
11407 },
11408 {
11409 "name": "slug",
11410 "required": false,
11411 "in": "query",
11412 "schema": {
11413 "type": "string"
11414 }
11415 }
11416 ],
11417 "requestBody": {
11418 "content": {
11419 "application/json": {
11420 "schema": {
11421 "$ref": "#/components/schemas/AssetIdsDto"
11422 }
11423 }
11424 },
11425 "required": true
11426 },
11427 "responses": {
11428 "200": {
11429 "content": {
11430 "application/json": {
11431 "schema": {
11432 "items": {
11433 "$ref": "#/components/schemas/AssetIdsResponseDto"
11434 },
11435 "type": "array"
11436 }
11437 }
11438 },
11439 "description": ""
11440 }
11441 },
11442 "security": [
11443 {
11444 "bearer": []
11445 },
11446 {
11447 "cookie": []
11448 },
11449 {
11450 "api_key": []
11451 }
11452 ],
11453 "summary": "Remove assets from a shared link",
11454 "tags": [
11455 "Shared links"
11456 ],
11457 "x-immich-history": [
11458 {
11459 "version": "v1",
11460 "state": "Added"
11461 },
11462 {
11463 "version": "v1",
11464 "state": "Beta"
11465 },
11466 {
11467 "version": "v2",
11468 "state": "Stable"
11469 }
11470 ],
11471 "x-immich-state": "Stable"
11472 },
11473 "put": {
11474 "description": "Add assets to a specific shared link by its ID. This endpoint is only relevant for shared link of type individual.",
11475 "operationId": "addSharedLinkAssets",
11476 "parameters": [
11477 {
11478 "name": "id",
11479 "required": true,
11480 "in": "path",
11481 "schema": {
11482 "format": "uuid",
11483 "type": "string"
11484 }
11485 },
11486 {
11487 "name": "key",
11488 "required": false,
11489 "in": "query",
11490 "schema": {
11491 "type": "string"
11492 }
11493 },
11494 {
11495 "name": "slug",
11496 "required": false,
11497 "in": "query",
11498 "schema": {
11499 "type": "string"
11500 }
11501 }
11502 ],
11503 "requestBody": {
11504 "content": {
11505 "application/json": {
11506 "schema": {
11507 "$ref": "#/components/schemas/AssetIdsDto"
11508 }
11509 }
11510 },
11511 "required": true
11512 },
11513 "responses": {
11514 "200": {
11515 "content": {
11516 "application/json": {
11517 "schema": {
11518 "items": {
11519 "$ref": "#/components/schemas/AssetIdsResponseDto"
11520 },
11521 "type": "array"
11522 }
11523 }
11524 },
11525 "description": ""
11526 }
11527 },
11528 "security": [
11529 {
11530 "bearer": []
11531 },
11532 {
11533 "cookie": []
11534 },
11535 {
11536 "api_key": []
11537 }
11538 ],
11539 "summary": "Add assets to a shared link",
11540 "tags": [
11541 "Shared links"
11542 ],
11543 "x-immich-history": [
11544 {
11545 "version": "v1",
11546 "state": "Added"
11547 },
11548 {
11549 "version": "v1",
11550 "state": "Beta"
11551 },
11552 {
11553 "version": "v2",
11554 "state": "Stable"
11555 }
11556 ],
11557 "x-immich-state": "Stable"
11558 }
11559 },
11560 "/stacks": {
11561 "delete": {
11562 "description": "Delete multiple stacks by providing a list of stack IDs.",
11563 "operationId": "deleteStacks",
11564 "parameters": [],
11565 "requestBody": {
11566 "content": {
11567 "application/json": {
11568 "schema": {
11569 "$ref": "#/components/schemas/BulkIdsDto"
11570 }
11571 }
11572 },
11573 "required": true
11574 },
11575 "responses": {
11576 "204": {
11577 "description": ""
11578 }
11579 },
11580 "security": [
11581 {
11582 "bearer": []
11583 },
11584 {
11585 "cookie": []
11586 },
11587 {
11588 "api_key": []
11589 }
11590 ],
11591 "summary": "Delete stacks",
11592 "tags": [
11593 "Stacks"
11594 ],
11595 "x-immich-history": [
11596 {
11597 "version": "v1",
11598 "state": "Added"
11599 },
11600 {
11601 "version": "v1",
11602 "state": "Beta"
11603 },
11604 {
11605 "version": "v2",
11606 "state": "Stable"
11607 }
11608 ],
11609 "x-immich-permission": "stack.delete",
11610 "x-immich-state": "Stable"
11611 },
11612 "get": {
11613 "description": "Retrieve a list of stacks.",
11614 "operationId": "searchStacks",
11615 "parameters": [
11616 {
11617 "name": "primaryAssetId",
11618 "required": false,
11619 "in": "query",
11620 "schema": {
11621 "format": "uuid",
11622 "type": "string"
11623 }
11624 }
11625 ],
11626 "responses": {
11627 "200": {
11628 "content": {
11629 "application/json": {
11630 "schema": {
11631 "items": {
11632 "$ref": "#/components/schemas/StackResponseDto"
11633 },
11634 "type": "array"
11635 }
11636 }
11637 },
11638 "description": ""
11639 }
11640 },
11641 "security": [
11642 {
11643 "bearer": []
11644 },
11645 {
11646 "cookie": []
11647 },
11648 {
11649 "api_key": []
11650 }
11651 ],
11652 "summary": "Retrieve stacks",
11653 "tags": [
11654 "Stacks"
11655 ],
11656 "x-immich-history": [
11657 {
11658 "version": "v1",
11659 "state": "Added"
11660 },
11661 {
11662 "version": "v1",
11663 "state": "Beta"
11664 },
11665 {
11666 "version": "v2",
11667 "state": "Stable"
11668 }
11669 ],
11670 "x-immich-permission": "stack.read",
11671 "x-immich-state": "Stable"
11672 },
11673 "post": {
11674 "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.",
11675 "operationId": "createStack",
11676 "parameters": [],
11677 "requestBody": {
11678 "content": {
11679 "application/json": {
11680 "schema": {
11681 "$ref": "#/components/schemas/StackCreateDto"
11682 }
11683 }
11684 },
11685 "required": true
11686 },
11687 "responses": {
11688 "201": {
11689 "content": {
11690 "application/json": {
11691 "schema": {
11692 "$ref": "#/components/schemas/StackResponseDto"
11693 }
11694 }
11695 },
11696 "description": ""
11697 }
11698 },
11699 "security": [
11700 {
11701 "bearer": []
11702 },
11703 {
11704 "cookie": []
11705 },
11706 {
11707 "api_key": []
11708 }
11709 ],
11710 "summary": "Create a stack",
11711 "tags": [
11712 "Stacks"
11713 ],
11714 "x-immich-history": [
11715 {
11716 "version": "v1",
11717 "state": "Added"
11718 },
11719 {
11720 "version": "v1",
11721 "state": "Beta"
11722 },
11723 {
11724 "version": "v2",
11725 "state": "Stable"
11726 }
11727 ],
11728 "x-immich-permission": "stack.create",
11729 "x-immich-state": "Stable"
11730 }
11731 },
11732 "/stacks/{id}": {
11733 "delete": {
11734 "description": "Delete a specific stack by its ID.",
11735 "operationId": "deleteStack",
11736 "parameters": [
11737 {
11738 "name": "id",
11739 "required": true,
11740 "in": "path",
11741 "schema": {
11742 "format": "uuid",
11743 "type": "string"
11744 }
11745 }
11746 ],
11747 "responses": {
11748 "204": {
11749 "description": ""
11750 }
11751 },
11752 "security": [
11753 {
11754 "bearer": []
11755 },
11756 {
11757 "cookie": []
11758 },
11759 {
11760 "api_key": []
11761 }
11762 ],
11763 "summary": "Delete a stack",
11764 "tags": [
11765 "Stacks"
11766 ],
11767 "x-immich-history": [
11768 {
11769 "version": "v1",
11770 "state": "Added"
11771 },
11772 {
11773 "version": "v1",
11774 "state": "Beta"
11775 },
11776 {
11777 "version": "v2",
11778 "state": "Stable"
11779 }
11780 ],
11781 "x-immich-permission": "stack.delete",
11782 "x-immich-state": "Stable"
11783 },
11784 "get": {
11785 "description": "Retrieve a specific stack by its ID.",
11786 "operationId": "getStack",
11787 "parameters": [
11788 {
11789 "name": "id",
11790 "required": true,
11791 "in": "path",
11792 "schema": {
11793 "format": "uuid",
11794 "type": "string"
11795 }
11796 }
11797 ],
11798 "responses": {
11799 "200": {
11800 "content": {
11801 "application/json": {
11802 "schema": {
11803 "$ref": "#/components/schemas/StackResponseDto"
11804 }
11805 }
11806 },
11807 "description": ""
11808 }
11809 },
11810 "security": [
11811 {
11812 "bearer": []
11813 },
11814 {
11815 "cookie": []
11816 },
11817 {
11818 "api_key": []
11819 }
11820 ],
11821 "summary": "Retrieve a stack",
11822 "tags": [
11823 "Stacks"
11824 ],
11825 "x-immich-history": [
11826 {
11827 "version": "v1",
11828 "state": "Added"
11829 },
11830 {
11831 "version": "v1",
11832 "state": "Beta"
11833 },
11834 {
11835 "version": "v2",
11836 "state": "Stable"
11837 }
11838 ],
11839 "x-immich-permission": "stack.read",
11840 "x-immich-state": "Stable"
11841 },
11842 "put": {
11843 "description": "Update an existing stack by its ID.",
11844 "operationId": "updateStack",
11845 "parameters": [
11846 {
11847 "name": "id",
11848 "required": true,
11849 "in": "path",
11850 "schema": {
11851 "format": "uuid",
11852 "type": "string"
11853 }
11854 }
11855 ],
11856 "requestBody": {
11857 "content": {
11858 "application/json": {
11859 "schema": {
11860 "$ref": "#/components/schemas/StackUpdateDto"
11861 }
11862 }
11863 },
11864 "required": true
11865 },
11866 "responses": {
11867 "200": {
11868 "content": {
11869 "application/json": {
11870 "schema": {
11871 "$ref": "#/components/schemas/StackResponseDto"
11872 }
11873 }
11874 },
11875 "description": ""
11876 }
11877 },
11878 "security": [
11879 {
11880 "bearer": []
11881 },
11882 {
11883 "cookie": []
11884 },
11885 {
11886 "api_key": []
11887 }
11888 ],
11889 "summary": "Update a stack",
11890 "tags": [
11891 "Stacks"
11892 ],
11893 "x-immich-history": [
11894 {
11895 "version": "v1",
11896 "state": "Added"
11897 },
11898 {
11899 "version": "v1",
11900 "state": "Beta"
11901 },
11902 {
11903 "version": "v2",
11904 "state": "Stable"
11905 }
11906 ],
11907 "x-immich-permission": "stack.update",
11908 "x-immich-state": "Stable"
11909 }
11910 },
11911 "/stacks/{id}/assets/{assetId}": {
11912 "delete": {
11913 "description": "Remove a specific asset from a stack by providing the stack ID and asset ID.",
11914 "operationId": "removeAssetFromStack",
11915 "parameters": [
11916 {
11917 "name": "assetId",
11918 "required": true,
11919 "in": "path",
11920 "schema": {
11921 "format": "uuid",
11922 "type": "string"
11923 }
11924 },
11925 {
11926 "name": "id",
11927 "required": true,
11928 "in": "path",
11929 "schema": {
11930 "format": "uuid",
11931 "type": "string"
11932 }
11933 }
11934 ],
11935 "responses": {
11936 "204": {
11937 "description": ""
11938 }
11939 },
11940 "security": [
11941 {
11942 "bearer": []
11943 },
11944 {
11945 "cookie": []
11946 },
11947 {
11948 "api_key": []
11949 }
11950 ],
11951 "summary": "Remove an asset from a stack",
11952 "tags": [
11953 "Stacks"
11954 ],
11955 "x-immich-history": [
11956 {
11957 "version": "v1",
11958 "state": "Added"
11959 },
11960 {
11961 "version": "v1",
11962 "state": "Beta"
11963 },
11964 {
11965 "version": "v2",
11966 "state": "Stable"
11967 }
11968 ],
11969 "x-immich-permission": "stack.update",
11970 "x-immich-state": "Stable"
11971 }
11972 },
11973 "/sync/ack": {
11974 "delete": {
11975 "description": "Delete specific synchronization acknowledgments.",
11976 "operationId": "deleteSyncAck",
11977 "parameters": [],
11978 "requestBody": {
11979 "content": {
11980 "application/json": {
11981 "schema": {
11982 "$ref": "#/components/schemas/SyncAckDeleteDto"
11983 }
11984 }
11985 },
11986 "required": true
11987 },
11988 "responses": {
11989 "204": {
11990 "description": ""
11991 }
11992 },
11993 "security": [
11994 {
11995 "bearer": []
11996 },
11997 {
11998 "cookie": []
11999 },
12000 {
12001 "api_key": []
12002 }
12003 ],
12004 "summary": "Delete acknowledgements",
12005 "tags": [
12006 "Sync"
12007 ],
12008 "x-immich-history": [
12009 {
12010 "version": "v1",
12011 "state": "Added"
12012 },
12013 {
12014 "version": "v1",
12015 "state": "Beta"
12016 },
12017 {
12018 "version": "v2",
12019 "state": "Stable"
12020 }
12021 ],
12022 "x-immich-permission": "syncCheckpoint.delete",
12023 "x-immich-state": "Stable"
12024 },
12025 "get": {
12026 "description": "Retrieve the synchronization acknowledgments for the current session.",
12027 "operationId": "getSyncAck",
12028 "parameters": [],
12029 "responses": {
12030 "200": {
12031 "content": {
12032 "application/json": {
12033 "schema": {
12034 "items": {
12035 "$ref": "#/components/schemas/SyncAckDto"
12036 },
12037 "type": "array"
12038 }
12039 }
12040 },
12041 "description": ""
12042 }
12043 },
12044 "security": [
12045 {
12046 "bearer": []
12047 },
12048 {
12049 "cookie": []
12050 },
12051 {
12052 "api_key": []
12053 }
12054 ],
12055 "summary": "Retrieve acknowledgements",
12056 "tags": [
12057 "Sync"
12058 ],
12059 "x-immich-history": [
12060 {
12061 "version": "v1",
12062 "state": "Added"
12063 },
12064 {
12065 "version": "v1",
12066 "state": "Beta"
12067 },
12068 {
12069 "version": "v2",
12070 "state": "Stable"
12071 }
12072 ],
12073 "x-immich-permission": "syncCheckpoint.read",
12074 "x-immich-state": "Stable"
12075 },
12076 "post": {
12077 "description": "Send a list of synchronization acknowledgements to confirm that the latest changes have been received.",
12078 "operationId": "sendSyncAck",
12079 "parameters": [],
12080 "requestBody": {
12081 "content": {
12082 "application/json": {
12083 "schema": {
12084 "$ref": "#/components/schemas/SyncAckSetDto"
12085 }
12086 }
12087 },
12088 "required": true
12089 },
12090 "responses": {
12091 "204": {
12092 "description": ""
12093 }
12094 },
12095 "security": [
12096 {
12097 "bearer": []
12098 },
12099 {
12100 "cookie": []
12101 },
12102 {
12103 "api_key": []
12104 }
12105 ],
12106 "summary": "Acknowledge changes",
12107 "tags": [
12108 "Sync"
12109 ],
12110 "x-immich-history": [
12111 {
12112 "version": "v1",
12113 "state": "Added"
12114 },
12115 {
12116 "version": "v1",
12117 "state": "Beta"
12118 },
12119 {
12120 "version": "v2",
12121 "state": "Stable"
12122 }
12123 ],
12124 "x-immich-permission": "syncCheckpoint.update",
12125 "x-immich-state": "Stable"
12126 }
12127 },
12128 "/sync/delta-sync": {
12129 "post": {
12130 "deprecated": true,
12131 "description": "Retrieve changed assets since the last sync for the authenticated user.",
12132 "operationId": "getDeltaSync",
12133 "parameters": [],
12134 "requestBody": {
12135 "content": {
12136 "application/json": {
12137 "schema": {
12138 "$ref": "#/components/schemas/AssetDeltaSyncDto"
12139 }
12140 }
12141 },
12142 "required": true
12143 },
12144 "responses": {
12145 "200": {
12146 "content": {
12147 "application/json": {
12148 "schema": {
12149 "$ref": "#/components/schemas/AssetDeltaSyncResponseDto"
12150 }
12151 }
12152 },
12153 "description": ""
12154 }
12155 },
12156 "security": [
12157 {
12158 "bearer": []
12159 },
12160 {
12161 "cookie": []
12162 },
12163 {
12164 "api_key": []
12165 }
12166 ],
12167 "summary": "Get delta sync for user",
12168 "tags": [
12169 "Sync",
12170 "Deprecated"
12171 ],
12172 "x-immich-history": [
12173 {
12174 "version": "v1",
12175 "state": "Added"
12176 },
12177 {
12178 "version": "v2",
12179 "state": "Deprecated"
12180 }
12181 ],
12182 "x-immich-state": "Deprecated"
12183 }
12184 },
12185 "/sync/full-sync": {
12186 "post": {
12187 "deprecated": true,
12188 "description": "Retrieve all assets for a full synchronization for the authenticated user.",
12189 "operationId": "getFullSyncForUser",
12190 "parameters": [],
12191 "requestBody": {
12192 "content": {
12193 "application/json": {
12194 "schema": {
12195 "$ref": "#/components/schemas/AssetFullSyncDto"
12196 }
12197 }
12198 },
12199 "required": true
12200 },
12201 "responses": {
12202 "200": {
12203 "content": {
12204 "application/json": {
12205 "schema": {
12206 "items": {
12207 "$ref": "#/components/schemas/AssetResponseDto"
12208 },
12209 "type": "array"
12210 }
12211 }
12212 },
12213 "description": ""
12214 }
12215 },
12216 "security": [
12217 {
12218 "bearer": []
12219 },
12220 {
12221 "cookie": []
12222 },
12223 {
12224 "api_key": []
12225 }
12226 ],
12227 "summary": "Get full sync for user",
12228 "tags": [
12229 "Sync",
12230 "Deprecated"
12231 ],
12232 "x-immich-history": [
12233 {
12234 "version": "v1",
12235 "state": "Added"
12236 },
12237 {
12238 "version": "v2",
12239 "state": "Deprecated"
12240 }
12241 ],
12242 "x-immich-state": "Deprecated"
12243 }
12244 },
12245 "/sync/stream": {
12246 "post": {
12247 "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.",
12248 "operationId": "getSyncStream",
12249 "parameters": [],
12250 "requestBody": {
12251 "content": {
12252 "application/json": {
12253 "schema": {
12254 "$ref": "#/components/schemas/SyncStreamDto"
12255 }
12256 }
12257 },
12258 "required": true
12259 },
12260 "responses": {
12261 "200": {
12262 "description": ""
12263 }
12264 },
12265 "security": [
12266 {
12267 "bearer": []
12268 },
12269 {
12270 "cookie": []
12271 },
12272 {
12273 "api_key": []
12274 }
12275 ],
12276 "summary": "Stream sync changes",
12277 "tags": [
12278 "Sync"
12279 ],
12280 "x-immich-history": [
12281 {
12282 "version": "v1",
12283 "state": "Added"
12284 },
12285 {
12286 "version": "v1",
12287 "state": "Beta"
12288 },
12289 {
12290 "version": "v2",
12291 "state": "Stable"
12292 }
12293 ],
12294 "x-immich-permission": "sync.stream",
12295 "x-immich-state": "Stable"
12296 }
12297 },
12298 "/system-config": {
12299 "get": {
12300 "description": "Retrieve the current system configuration.",
12301 "operationId": "getConfig",
12302 "parameters": [],
12303 "responses": {
12304 "200": {
12305 "content": {
12306 "application/json": {
12307 "schema": {
12308 "$ref": "#/components/schemas/SystemConfigDto"
12309 }
12310 }
12311 },
12312 "description": ""
12313 }
12314 },
12315 "security": [
12316 {
12317 "bearer": []
12318 },
12319 {
12320 "cookie": []
12321 },
12322 {
12323 "api_key": []
12324 }
12325 ],
12326 "summary": "Get system configuration",
12327 "tags": [
12328 "System config"
12329 ],
12330 "x-immich-admin-only": true,
12331 "x-immich-history": [
12332 {
12333 "version": "v1",
12334 "state": "Added"
12335 },
12336 {
12337 "version": "v1",
12338 "state": "Beta"
12339 },
12340 {
12341 "version": "v2",
12342 "state": "Stable"
12343 }
12344 ],
12345 "x-immich-permission": "systemConfig.read",
12346 "x-immich-state": "Stable"
12347 },
12348 "put": {
12349 "description": "Update the system configuration with a new system configuration.",
12350 "operationId": "updateConfig",
12351 "parameters": [],
12352 "requestBody": {
12353 "content": {
12354 "application/json": {
12355 "schema": {
12356 "$ref": "#/components/schemas/SystemConfigDto"
12357 }
12358 }
12359 },
12360 "required": true
12361 },
12362 "responses": {
12363 "200": {
12364 "content": {
12365 "application/json": {
12366 "schema": {
12367 "$ref": "#/components/schemas/SystemConfigDto"
12368 }
12369 }
12370 },
12371 "description": ""
12372 }
12373 },
12374 "security": [
12375 {
12376 "bearer": []
12377 },
12378 {
12379 "cookie": []
12380 },
12381 {
12382 "api_key": []
12383 }
12384 ],
12385 "summary": "Update system configuration",
12386 "tags": [
12387 "System config"
12388 ],
12389 "x-immich-admin-only": true,
12390 "x-immich-history": [
12391 {
12392 "version": "v1",
12393 "state": "Added"
12394 },
12395 {
12396 "version": "v1",
12397 "state": "Beta"
12398 },
12399 {
12400 "version": "v2",
12401 "state": "Stable"
12402 }
12403 ],
12404 "x-immich-permission": "systemConfig.update",
12405 "x-immich-state": "Stable"
12406 }
12407 },
12408 "/system-config/defaults": {
12409 "get": {
12410 "description": "Retrieve the default values for the system configuration.",
12411 "operationId": "getConfigDefaults",
12412 "parameters": [],
12413 "responses": {
12414 "200": {
12415 "content": {
12416 "application/json": {
12417 "schema": {
12418 "$ref": "#/components/schemas/SystemConfigDto"
12419 }
12420 }
12421 },
12422 "description": ""
12423 }
12424 },
12425 "security": [
12426 {
12427 "bearer": []
12428 },
12429 {
12430 "cookie": []
12431 },
12432 {
12433 "api_key": []
12434 }
12435 ],
12436 "summary": "Get system configuration defaults",
12437 "tags": [
12438 "System config"
12439 ],
12440 "x-immich-admin-only": true,
12441 "x-immich-history": [
12442 {
12443 "version": "v1",
12444 "state": "Added"
12445 },
12446 {
12447 "version": "v1",
12448 "state": "Beta"
12449 },
12450 {
12451 "version": "v2",
12452 "state": "Stable"
12453 }
12454 ],
12455 "x-immich-permission": "systemConfig.read",
12456 "x-immich-state": "Stable"
12457 }
12458 },
12459 "/system-config/storage-template-options": {
12460 "get": {
12461 "description": "Retrieve exemplary storage template options.",
12462 "operationId": "getStorageTemplateOptions",
12463 "parameters": [],
12464 "responses": {
12465 "200": {
12466 "content": {
12467 "application/json": {
12468 "schema": {
12469 "$ref": "#/components/schemas/SystemConfigTemplateStorageOptionDto"
12470 }
12471 }
12472 },
12473 "description": ""
12474 }
12475 },
12476 "security": [
12477 {
12478 "bearer": []
12479 },
12480 {
12481 "cookie": []
12482 },
12483 {
12484 "api_key": []
12485 }
12486 ],
12487 "summary": "Get storage template options",
12488 "tags": [
12489 "System config"
12490 ],
12491 "x-immich-admin-only": true,
12492 "x-immich-history": [
12493 {
12494 "version": "v1",
12495 "state": "Added"
12496 },
12497 {
12498 "version": "v1",
12499 "state": "Beta"
12500 },
12501 {
12502 "version": "v2",
12503 "state": "Stable"
12504 }
12505 ],
12506 "x-immich-permission": "systemConfig.read",
12507 "x-immich-state": "Stable"
12508 }
12509 },
12510 "/system-metadata/admin-onboarding": {
12511 "get": {
12512 "description": "Retrieve the current admin onboarding status.",
12513 "operationId": "getAdminOnboarding",
12514 "parameters": [],
12515 "responses": {
12516 "200": {
12517 "content": {
12518 "application/json": {
12519 "schema": {
12520 "$ref": "#/components/schemas/AdminOnboardingUpdateDto"
12521 }
12522 }
12523 },
12524 "description": ""
12525 }
12526 },
12527 "security": [
12528 {
12529 "bearer": []
12530 },
12531 {
12532 "cookie": []
12533 },
12534 {
12535 "api_key": []
12536 }
12537 ],
12538 "summary": "Retrieve admin onboarding",
12539 "tags": [
12540 "System metadata"
12541 ],
12542 "x-immich-admin-only": true,
12543 "x-immich-history": [
12544 {
12545 "version": "v1",
12546 "state": "Added"
12547 },
12548 {
12549 "version": "v1",
12550 "state": "Beta"
12551 },
12552 {
12553 "version": "v2",
12554 "state": "Stable"
12555 }
12556 ],
12557 "x-immich-permission": "systemMetadata.read",
12558 "x-immich-state": "Stable"
12559 },
12560 "post": {
12561 "description": "Update the admin onboarding status.",
12562 "operationId": "updateAdminOnboarding",
12563 "parameters": [],
12564 "requestBody": {
12565 "content": {
12566 "application/json": {
12567 "schema": {
12568 "$ref": "#/components/schemas/AdminOnboardingUpdateDto"
12569 }
12570 }
12571 },
12572 "required": true
12573 },
12574 "responses": {
12575 "204": {
12576 "description": ""
12577 }
12578 },
12579 "security": [
12580 {
12581 "bearer": []
12582 },
12583 {
12584 "cookie": []
12585 },
12586 {
12587 "api_key": []
12588 }
12589 ],
12590 "summary": "Update admin onboarding",
12591 "tags": [
12592 "System metadata"
12593 ],
12594 "x-immich-admin-only": true,
12595 "x-immich-history": [
12596 {
12597 "version": "v1",
12598 "state": "Added"
12599 },
12600 {
12601 "version": "v1",
12602 "state": "Beta"
12603 },
12604 {
12605 "version": "v2",
12606 "state": "Stable"
12607 }
12608 ],
12609 "x-immich-permission": "systemMetadata.update",
12610 "x-immich-state": "Stable"
12611 }
12612 },
12613 "/system-metadata/reverse-geocoding-state": {
12614 "get": {
12615 "description": "Retrieve the current state of the reverse geocoding import.",
12616 "operationId": "getReverseGeocodingState",
12617 "parameters": [],
12618 "responses": {
12619 "200": {
12620 "content": {
12621 "application/json": {
12622 "schema": {
12623 "$ref": "#/components/schemas/ReverseGeocodingStateResponseDto"
12624 }
12625 }
12626 },
12627 "description": ""
12628 }
12629 },
12630 "security": [
12631 {
12632 "bearer": []
12633 },
12634 {
12635 "cookie": []
12636 },
12637 {
12638 "api_key": []
12639 }
12640 ],
12641 "summary": "Retrieve reverse geocoding state",
12642 "tags": [
12643 "System metadata"
12644 ],
12645 "x-immich-admin-only": true,
12646 "x-immich-history": [
12647 {
12648 "version": "v1",
12649 "state": "Added"
12650 },
12651 {
12652 "version": "v1",
12653 "state": "Beta"
12654 },
12655 {
12656 "version": "v2",
12657 "state": "Stable"
12658 }
12659 ],
12660 "x-immich-permission": "systemMetadata.read",
12661 "x-immich-state": "Stable"
12662 }
12663 },
12664 "/system-metadata/version-check-state": {
12665 "get": {
12666 "description": "Retrieve the current state of the version check process.",
12667 "operationId": "getVersionCheckState",
12668 "parameters": [],
12669 "responses": {
12670 "200": {
12671 "content": {
12672 "application/json": {
12673 "schema": {
12674 "$ref": "#/components/schemas/VersionCheckStateResponseDto"
12675 }
12676 }
12677 },
12678 "description": ""
12679 }
12680 },
12681 "security": [
12682 {
12683 "bearer": []
12684 },
12685 {
12686 "cookie": []
12687 },
12688 {
12689 "api_key": []
12690 }
12691 ],
12692 "summary": "Retrieve version check state",
12693 "tags": [
12694 "System metadata"
12695 ],
12696 "x-immich-admin-only": true,
12697 "x-immich-history": [
12698 {
12699 "version": "v1",
12700 "state": "Added"
12701 },
12702 {
12703 "version": "v1",
12704 "state": "Beta"
12705 },
12706 {
12707 "version": "v2",
12708 "state": "Stable"
12709 }
12710 ],
12711 "x-immich-permission": "systemMetadata.read",
12712 "x-immich-state": "Stable"
12713 }
12714 },
12715 "/tags": {
12716 "get": {
12717 "description": "Retrieve a list of all tags.",
12718 "operationId": "getAllTags",
12719 "parameters": [],
12720 "responses": {
12721 "200": {
12722 "content": {
12723 "application/json": {
12724 "schema": {
12725 "items": {
12726 "$ref": "#/components/schemas/TagResponseDto"
12727 },
12728 "type": "array"
12729 }
12730 }
12731 },
12732 "description": ""
12733 }
12734 },
12735 "security": [
12736 {
12737 "bearer": []
12738 },
12739 {
12740 "cookie": []
12741 },
12742 {
12743 "api_key": []
12744 }
12745 ],
12746 "summary": "Retrieve tags",
12747 "tags": [
12748 "Tags"
12749 ],
12750 "x-immich-history": [
12751 {
12752 "version": "v1",
12753 "state": "Added"
12754 },
12755 {
12756 "version": "v1",
12757 "state": "Beta"
12758 },
12759 {
12760 "version": "v2",
12761 "state": "Stable"
12762 }
12763 ],
12764 "x-immich-permission": "tag.read",
12765 "x-immich-state": "Stable"
12766 },
12767 "post": {
12768 "description": "Create a new tag by providing a name and optional color.",
12769 "operationId": "createTag",
12770 "parameters": [],
12771 "requestBody": {
12772 "content": {
12773 "application/json": {
12774 "schema": {
12775 "$ref": "#/components/schemas/TagCreateDto"
12776 }
12777 }
12778 },
12779 "required": true
12780 },
12781 "responses": {
12782 "201": {
12783 "content": {
12784 "application/json": {
12785 "schema": {
12786 "$ref": "#/components/schemas/TagResponseDto"
12787 }
12788 }
12789 },
12790 "description": ""
12791 }
12792 },
12793 "security": [
12794 {
12795 "bearer": []
12796 },
12797 {
12798 "cookie": []
12799 },
12800 {
12801 "api_key": []
12802 }
12803 ],
12804 "summary": "Create a tag",
12805 "tags": [
12806 "Tags"
12807 ],
12808 "x-immich-history": [
12809 {
12810 "version": "v1",
12811 "state": "Added"
12812 },
12813 {
12814 "version": "v1",
12815 "state": "Beta"
12816 },
12817 {
12818 "version": "v2",
12819 "state": "Stable"
12820 }
12821 ],
12822 "x-immich-permission": "tag.create",
12823 "x-immich-state": "Stable"
12824 },
12825 "put": {
12826 "description": "Create or update multiple tags in a single request.",
12827 "operationId": "upsertTags",
12828 "parameters": [],
12829 "requestBody": {
12830 "content": {
12831 "application/json": {
12832 "schema": {
12833 "$ref": "#/components/schemas/TagUpsertDto"
12834 }
12835 }
12836 },
12837 "required": true
12838 },
12839 "responses": {
12840 "200": {
12841 "content": {
12842 "application/json": {
12843 "schema": {
12844 "items": {
12845 "$ref": "#/components/schemas/TagResponseDto"
12846 },
12847 "type": "array"
12848 }
12849 }
12850 },
12851 "description": ""
12852 }
12853 },
12854 "security": [
12855 {
12856 "bearer": []
12857 },
12858 {
12859 "cookie": []
12860 },
12861 {
12862 "api_key": []
12863 }
12864 ],
12865 "summary": "Upsert tags",
12866 "tags": [
12867 "Tags"
12868 ],
12869 "x-immich-history": [
12870 {
12871 "version": "v1",
12872 "state": "Added"
12873 },
12874 {
12875 "version": "v1",
12876 "state": "Beta"
12877 },
12878 {
12879 "version": "v2",
12880 "state": "Stable"
12881 }
12882 ],
12883 "x-immich-permission": "tag.create",
12884 "x-immich-state": "Stable"
12885 }
12886 },
12887 "/tags/assets": {
12888 "put": {
12889 "description": "Add multiple tags to multiple assets in a single request.",
12890 "operationId": "bulkTagAssets",
12891 "parameters": [],
12892 "requestBody": {
12893 "content": {
12894 "application/json": {
12895 "schema": {
12896 "$ref": "#/components/schemas/TagBulkAssetsDto"
12897 }
12898 }
12899 },
12900 "required": true
12901 },
12902 "responses": {
12903 "200": {
12904 "content": {
12905 "application/json": {
12906 "schema": {
12907 "$ref": "#/components/schemas/TagBulkAssetsResponseDto"
12908 }
12909 }
12910 },
12911 "description": ""
12912 }
12913 },
12914 "security": [
12915 {
12916 "bearer": []
12917 },
12918 {
12919 "cookie": []
12920 },
12921 {
12922 "api_key": []
12923 }
12924 ],
12925 "summary": "Tag assets",
12926 "tags": [
12927 "Tags"
12928 ],
12929 "x-immich-history": [
12930 {
12931 "version": "v1",
12932 "state": "Added"
12933 },
12934 {
12935 "version": "v1",
12936 "state": "Beta"
12937 },
12938 {
12939 "version": "v2",
12940 "state": "Stable"
12941 }
12942 ],
12943 "x-immich-permission": "tag.asset",
12944 "x-immich-state": "Stable"
12945 }
12946 },
12947 "/tags/{id}": {
12948 "delete": {
12949 "description": "Delete a specific tag by its ID.",
12950 "operationId": "deleteTag",
12951 "parameters": [
12952 {
12953 "name": "id",
12954 "required": true,
12955 "in": "path",
12956 "schema": {
12957 "format": "uuid",
12958 "type": "string"
12959 }
12960 }
12961 ],
12962 "responses": {
12963 "204": {
12964 "description": ""
12965 }
12966 },
12967 "security": [
12968 {
12969 "bearer": []
12970 },
12971 {
12972 "cookie": []
12973 },
12974 {
12975 "api_key": []
12976 }
12977 ],
12978 "summary": "Delete a tag",
12979 "tags": [
12980 "Tags"
12981 ],
12982 "x-immich-history": [
12983 {
12984 "version": "v1",
12985 "state": "Added"
12986 },
12987 {
12988 "version": "v1",
12989 "state": "Beta"
12990 },
12991 {
12992 "version": "v2",
12993 "state": "Stable"
12994 }
12995 ],
12996 "x-immich-permission": "tag.delete",
12997 "x-immich-state": "Stable"
12998 },
12999 "get": {
13000 "description": "Retrieve a specific tag by its ID.",
13001 "operationId": "getTagById",
13002 "parameters": [
13003 {
13004 "name": "id",
13005 "required": true,
13006 "in": "path",
13007 "schema": {
13008 "format": "uuid",
13009 "type": "string"
13010 }
13011 }
13012 ],
13013 "responses": {
13014 "200": {
13015 "content": {
13016 "application/json": {
13017 "schema": {
13018 "$ref": "#/components/schemas/TagResponseDto"
13019 }
13020 }
13021 },
13022 "description": ""
13023 }
13024 },
13025 "security": [
13026 {
13027 "bearer": []
13028 },
13029 {
13030 "cookie": []
13031 },
13032 {
13033 "api_key": []
13034 }
13035 ],
13036 "summary": "Retrieve a tag",
13037 "tags": [
13038 "Tags"
13039 ],
13040 "x-immich-history": [
13041 {
13042 "version": "v1",
13043 "state": "Added"
13044 },
13045 {
13046 "version": "v1",
13047 "state": "Beta"
13048 },
13049 {
13050 "version": "v2",
13051 "state": "Stable"
13052 }
13053 ],
13054 "x-immich-permission": "tag.read",
13055 "x-immich-state": "Stable"
13056 },
13057 "put": {
13058 "description": "Update an existing tag identified by its ID.",
13059 "operationId": "updateTag",
13060 "parameters": [
13061 {
13062 "name": "id",
13063 "required": true,
13064 "in": "path",
13065 "schema": {
13066 "format": "uuid",
13067 "type": "string"
13068 }
13069 }
13070 ],
13071 "requestBody": {
13072 "content": {
13073 "application/json": {
13074 "schema": {
13075 "$ref": "#/components/schemas/TagUpdateDto"
13076 }
13077 }
13078 },
13079 "required": true
13080 },
13081 "responses": {
13082 "200": {
13083 "content": {
13084 "application/json": {
13085 "schema": {
13086 "$ref": "#/components/schemas/TagResponseDto"
13087 }
13088 }
13089 },
13090 "description": ""
13091 }
13092 },
13093 "security": [
13094 {
13095 "bearer": []
13096 },
13097 {
13098 "cookie": []
13099 },
13100 {
13101 "api_key": []
13102 }
13103 ],
13104 "summary": "Update a tag",
13105 "tags": [
13106 "Tags"
13107 ],
13108 "x-immich-history": [
13109 {
13110 "version": "v1",
13111 "state": "Added"
13112 },
13113 {
13114 "version": "v1",
13115 "state": "Beta"
13116 },
13117 {
13118 "version": "v2",
13119 "state": "Stable"
13120 }
13121 ],
13122 "x-immich-permission": "tag.update",
13123 "x-immich-state": "Stable"
13124 }
13125 },
13126 "/tags/{id}/assets": {
13127 "delete": {
13128 "description": "Remove a tag from all the specified assets.",
13129 "operationId": "untagAssets",
13130 "parameters": [
13131 {
13132 "name": "id",
13133 "required": true,
13134 "in": "path",
13135 "schema": {
13136 "format": "uuid",
13137 "type": "string"
13138 }
13139 }
13140 ],
13141 "requestBody": {
13142 "content": {
13143 "application/json": {
13144 "schema": {
13145 "$ref": "#/components/schemas/BulkIdsDto"
13146 }
13147 }
13148 },
13149 "required": true
13150 },
13151 "responses": {
13152 "200": {
13153 "content": {
13154 "application/json": {
13155 "schema": {
13156 "items": {
13157 "$ref": "#/components/schemas/BulkIdResponseDto"
13158 },
13159 "type": "array"
13160 }
13161 }
13162 },
13163 "description": ""
13164 }
13165 },
13166 "security": [
13167 {
13168 "bearer": []
13169 },
13170 {
13171 "cookie": []
13172 },
13173 {
13174 "api_key": []
13175 }
13176 ],
13177 "summary": "Untag assets",
13178 "tags": [
13179 "Tags"
13180 ],
13181 "x-immich-history": [
13182 {
13183 "version": "v1",
13184 "state": "Added"
13185 },
13186 {
13187 "version": "v1",
13188 "state": "Beta"
13189 },
13190 {
13191 "version": "v2",
13192 "state": "Stable"
13193 }
13194 ],
13195 "x-immich-permission": "tag.asset",
13196 "x-immich-state": "Stable"
13197 },
13198 "put": {
13199 "description": "Add a tag to all the specified assets.",
13200 "operationId": "tagAssets",
13201 "parameters": [
13202 {
13203 "name": "id",
13204 "required": true,
13205 "in": "path",
13206 "schema": {
13207 "format": "uuid",
13208 "type": "string"
13209 }
13210 }
13211 ],
13212 "requestBody": {
13213 "content": {
13214 "application/json": {
13215 "schema": {
13216 "$ref": "#/components/schemas/BulkIdsDto"
13217 }
13218 }
13219 },
13220 "required": true
13221 },
13222 "responses": {
13223 "200": {
13224 "content": {
13225 "application/json": {
13226 "schema": {
13227 "items": {
13228 "$ref": "#/components/schemas/BulkIdResponseDto"
13229 },
13230 "type": "array"
13231 }
13232 }
13233 },
13234 "description": ""
13235 }
13236 },
13237 "security": [
13238 {
13239 "bearer": []
13240 },
13241 {
13242 "cookie": []
13243 },
13244 {
13245 "api_key": []
13246 }
13247 ],
13248 "summary": "Tag assets",
13249 "tags": [
13250 "Tags"
13251 ],
13252 "x-immich-history": [
13253 {
13254 "version": "v1",
13255 "state": "Added"
13256 },
13257 {
13258 "version": "v1",
13259 "state": "Beta"
13260 },
13261 {
13262 "version": "v2",
13263 "state": "Stable"
13264 }
13265 ],
13266 "x-immich-permission": "tag.asset",
13267 "x-immich-state": "Stable"
13268 }
13269 },
13270 "/timeline/bucket": {
13271 "get": {
13272 "description": "Retrieve a string of all asset ids in a given time bucket.",
13273 "operationId": "getTimeBucket",
13274 "parameters": [
13275 {
13276 "name": "albumId",
13277 "required": false,
13278 "in": "query",
13279 "description": "Filter assets belonging to a specific album",
13280 "schema": {
13281 "format": "uuid",
13282 "type": "string"
13283 }
13284 },
13285 {
13286 "name": "isFavorite",
13287 "required": false,
13288 "in": "query",
13289 "description": "Filter by favorite status (true for favorites only, false for non-favorites only)",
13290 "schema": {
13291 "type": "boolean"
13292 }
13293 },
13294 {
13295 "name": "isTrashed",
13296 "required": false,
13297 "in": "query",
13298 "description": "Filter by trash status (true for trashed assets only, false for non-trashed only)",
13299 "schema": {
13300 "type": "boolean"
13301 }
13302 },
13303 {
13304 "name": "key",
13305 "required": false,
13306 "in": "query",
13307 "schema": {
13308 "type": "string"
13309 }
13310 },
13311 {
13312 "name": "order",
13313 "required": false,
13314 "in": "query",
13315 "description": "Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)",
13316 "schema": {
13317 "$ref": "#/components/schemas/AssetOrder"
13318 }
13319 },
13320 {
13321 "name": "personId",
13322 "required": false,
13323 "in": "query",
13324 "description": "Filter assets containing a specific person (face recognition)",
13325 "schema": {
13326 "format": "uuid",
13327 "type": "string"
13328 }
13329 },
13330 {
13331 "name": "slug",
13332 "required": false,
13333 "in": "query",
13334 "schema": {
13335 "type": "string"
13336 }
13337 },
13338 {
13339 "name": "tagId",
13340 "required": false,
13341 "in": "query",
13342 "description": "Filter assets with a specific tag",
13343 "schema": {
13344 "format": "uuid",
13345 "type": "string"
13346 }
13347 },
13348 {
13349 "name": "timeBucket",
13350 "required": true,
13351 "in": "query",
13352 "description": "Time bucket identifier in YYYY-MM-DD format (e.g., \"2024-01-01\" for January 2024)",
13353 "schema": {
13354 "example": "2024-01-01",
13355 "type": "string"
13356 }
13357 },
13358 {
13359 "name": "userId",
13360 "required": false,
13361 "in": "query",
13362 "description": "Filter assets by specific user ID",
13363 "schema": {
13364 "format": "uuid",
13365 "type": "string"
13366 }
13367 },
13368 {
13369 "name": "visibility",
13370 "required": false,
13371 "in": "query",
13372 "description": "Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)",
13373 "schema": {
13374 "$ref": "#/components/schemas/AssetVisibility"
13375 }
13376 },
13377 {
13378 "name": "withCoordinates",
13379 "required": false,
13380 "in": "query",
13381 "description": "Include location data in the response",
13382 "schema": {
13383 "type": "boolean"
13384 }
13385 },
13386 {
13387 "name": "withPartners",
13388 "required": false,
13389 "in": "query",
13390 "description": "Include assets shared by partners",
13391 "schema": {
13392 "type": "boolean"
13393 }
13394 },
13395 {
13396 "name": "withStacked",
13397 "required": false,
13398 "in": "query",
13399 "description": "Include stacked assets in the response. When true, only primary assets from stacks are returned.",
13400 "schema": {
13401 "type": "boolean"
13402 }
13403 }
13404 ],
13405 "responses": {
13406 "200": {
13407 "content": {
13408 "application/json": {
13409 "schema": {
13410 "$ref": "#/components/schemas/TimeBucketAssetResponseDto"
13411 }
13412 }
13413 },
13414 "description": ""
13415 }
13416 },
13417 "security": [
13418 {
13419 "bearer": []
13420 },
13421 {
13422 "cookie": []
13423 },
13424 {
13425 "api_key": []
13426 }
13427 ],
13428 "summary": "Get time bucket",
13429 "tags": [
13430 "Timeline"
13431 ],
13432 "x-immich-history": [
13433 {
13434 "version": "v1",
13435 "state": "Added"
13436 },
13437 {
13438 "version": "v1",
13439 "state": "Internal"
13440 }
13441 ],
13442 "x-immich-permission": "asset.read",
13443 "x-immich-state": "Internal"
13444 }
13445 },
13446 "/timeline/buckets": {
13447 "get": {
13448 "description": "Retrieve a list of all minimal time buckets.",
13449 "operationId": "getTimeBuckets",
13450 "parameters": [
13451 {
13452 "name": "albumId",
13453 "required": false,
13454 "in": "query",
13455 "description": "Filter assets belonging to a specific album",
13456 "schema": {
13457 "format": "uuid",
13458 "type": "string"
13459 }
13460 },
13461 {
13462 "name": "isFavorite",
13463 "required": false,
13464 "in": "query",
13465 "description": "Filter by favorite status (true for favorites only, false for non-favorites only)",
13466 "schema": {
13467 "type": "boolean"
13468 }
13469 },
13470 {
13471 "name": "isTrashed",
13472 "required": false,
13473 "in": "query",
13474 "description": "Filter by trash status (true for trashed assets only, false for non-trashed only)",
13475 "schema": {
13476 "type": "boolean"
13477 }
13478 },
13479 {
13480 "name": "key",
13481 "required": false,
13482 "in": "query",
13483 "schema": {
13484 "type": "string"
13485 }
13486 },
13487 {
13488 "name": "order",
13489 "required": false,
13490 "in": "query",
13491 "description": "Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)",
13492 "schema": {
13493 "$ref": "#/components/schemas/AssetOrder"
13494 }
13495 },
13496 {
13497 "name": "personId",
13498 "required": false,
13499 "in": "query",
13500 "description": "Filter assets containing a specific person (face recognition)",
13501 "schema": {
13502 "format": "uuid",
13503 "type": "string"
13504 }
13505 },
13506 {
13507 "name": "slug",
13508 "required": false,
13509 "in": "query",
13510 "schema": {
13511 "type": "string"
13512 }
13513 },
13514 {
13515 "name": "tagId",
13516 "required": false,
13517 "in": "query",
13518 "description": "Filter assets with a specific tag",
13519 "schema": {
13520 "format": "uuid",
13521 "type": "string"
13522 }
13523 },
13524 {
13525 "name": "userId",
13526 "required": false,
13527 "in": "query",
13528 "description": "Filter assets by specific user ID",
13529 "schema": {
13530 "format": "uuid",
13531 "type": "string"
13532 }
13533 },
13534 {
13535 "name": "visibility",
13536 "required": false,
13537 "in": "query",
13538 "description": "Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)",
13539 "schema": {
13540 "$ref": "#/components/schemas/AssetVisibility"
13541 }
13542 },
13543 {
13544 "name": "withCoordinates",
13545 "required": false,
13546 "in": "query",
13547 "description": "Include location data in the response",
13548 "schema": {
13549 "type": "boolean"
13550 }
13551 },
13552 {
13553 "name": "withPartners",
13554 "required": false,
13555 "in": "query",
13556 "description": "Include assets shared by partners",
13557 "schema": {
13558 "type": "boolean"
13559 }
13560 },
13561 {
13562 "name": "withStacked",
13563 "required": false,
13564 "in": "query",
13565 "description": "Include stacked assets in the response. When true, only primary assets from stacks are returned.",
13566 "schema": {
13567 "type": "boolean"
13568 }
13569 }
13570 ],
13571 "responses": {
13572 "200": {
13573 "content": {
13574 "application/json": {
13575 "schema": {
13576 "items": {
13577 "$ref": "#/components/schemas/TimeBucketsResponseDto"
13578 },
13579 "type": "array"
13580 }
13581 }
13582 },
13583 "description": ""
13584 }
13585 },
13586 "security": [
13587 {
13588 "bearer": []
13589 },
13590 {
13591 "cookie": []
13592 },
13593 {
13594 "api_key": []
13595 }
13596 ],
13597 "summary": "Get time buckets",
13598 "tags": [
13599 "Timeline"
13600 ],
13601 "x-immich-history": [
13602 {
13603 "version": "v1",
13604 "state": "Added"
13605 },
13606 {
13607 "version": "v1",
13608 "state": "Internal"
13609 }
13610 ],
13611 "x-immich-permission": "asset.read",
13612 "x-immich-state": "Internal"
13613 }
13614 },
13615 "/trash/empty": {
13616 "post": {
13617 "description": "Permanently delete all items in the trash.",
13618 "operationId": "emptyTrash",
13619 "parameters": [],
13620 "responses": {
13621 "200": {
13622 "content": {
13623 "application/json": {
13624 "schema": {
13625 "$ref": "#/components/schemas/TrashResponseDto"
13626 }
13627 }
13628 },
13629 "description": ""
13630 }
13631 },
13632 "security": [
13633 {
13634 "bearer": []
13635 },
13636 {
13637 "cookie": []
13638 },
13639 {
13640 "api_key": []
13641 }
13642 ],
13643 "summary": "Empty trash",
13644 "tags": [
13645 "Trash"
13646 ],
13647 "x-immich-history": [
13648 {
13649 "version": "v1",
13650 "state": "Added"
13651 },
13652 {
13653 "version": "v1",
13654 "state": "Beta"
13655 },
13656 {
13657 "version": "v2",
13658 "state": "Stable"
13659 }
13660 ],
13661 "x-immich-permission": "asset.delete",
13662 "x-immich-state": "Stable"
13663 }
13664 },
13665 "/trash/restore": {
13666 "post": {
13667 "description": "Restore all items in the trash.",
13668 "operationId": "restoreTrash",
13669 "parameters": [],
13670 "responses": {
13671 "200": {
13672 "content": {
13673 "application/json": {
13674 "schema": {
13675 "$ref": "#/components/schemas/TrashResponseDto"
13676 }
13677 }
13678 },
13679 "description": ""
13680 }
13681 },
13682 "security": [
13683 {
13684 "bearer": []
13685 },
13686 {
13687 "cookie": []
13688 },
13689 {
13690 "api_key": []
13691 }
13692 ],
13693 "summary": "Restore trash",
13694 "tags": [
13695 "Trash"
13696 ],
13697 "x-immich-history": [
13698 {
13699 "version": "v1",
13700 "state": "Added"
13701 },
13702 {
13703 "version": "v1",
13704 "state": "Beta"
13705 },
13706 {
13707 "version": "v2",
13708 "state": "Stable"
13709 }
13710 ],
13711 "x-immich-permission": "asset.delete",
13712 "x-immich-state": "Stable"
13713 }
13714 },
13715 "/trash/restore/assets": {
13716 "post": {
13717 "description": "Restore specific assets from the trash.",
13718 "operationId": "restoreAssets",
13719 "parameters": [],
13720 "requestBody": {
13721 "content": {
13722 "application/json": {
13723 "schema": {
13724 "$ref": "#/components/schemas/BulkIdsDto"
13725 }
13726 }
13727 },
13728 "required": true
13729 },
13730 "responses": {
13731 "200": {
13732 "content": {
13733 "application/json": {
13734 "schema": {
13735 "$ref": "#/components/schemas/TrashResponseDto"
13736 }
13737 }
13738 },
13739 "description": ""
13740 }
13741 },
13742 "security": [
13743 {
13744 "bearer": []
13745 },
13746 {
13747 "cookie": []
13748 },
13749 {
13750 "api_key": []
13751 }
13752 ],
13753 "summary": "Restore assets",
13754 "tags": [
13755 "Trash"
13756 ],
13757 "x-immich-history": [
13758 {
13759 "version": "v1",
13760 "state": "Added"
13761 },
13762 {
13763 "version": "v1",
13764 "state": "Beta"
13765 },
13766 {
13767 "version": "v2",
13768 "state": "Stable"
13769 }
13770 ],
13771 "x-immich-permission": "asset.delete",
13772 "x-immich-state": "Stable"
13773 }
13774 },
13775 "/users": {
13776 "get": {
13777 "description": "Retrieve a list of all users on the server.",
13778 "operationId": "searchUsers",
13779 "parameters": [],
13780 "responses": {
13781 "200": {
13782 "content": {
13783 "application/json": {
13784 "schema": {
13785 "items": {
13786 "$ref": "#/components/schemas/UserResponseDto"
13787 },
13788 "type": "array"
13789 }
13790 }
13791 },
13792 "description": ""
13793 }
13794 },
13795 "security": [
13796 {
13797 "bearer": []
13798 },
13799 {
13800 "cookie": []
13801 },
13802 {
13803 "api_key": []
13804 }
13805 ],
13806 "summary": "Get all users",
13807 "tags": [
13808 "Users"
13809 ],
13810 "x-immich-history": [
13811 {
13812 "version": "v1",
13813 "state": "Added"
13814 },
13815 {
13816 "version": "v1",
13817 "state": "Beta"
13818 },
13819 {
13820 "version": "v2",
13821 "state": "Stable"
13822 }
13823 ],
13824 "x-immich-permission": "user.read",
13825 "x-immich-state": "Stable"
13826 }
13827 },
13828 "/users/me": {
13829 "get": {
13830 "description": "Retrieve information about the user making the API request.",
13831 "operationId": "getMyUser",
13832 "parameters": [],
13833 "responses": {
13834 "200": {
13835 "content": {
13836 "application/json": {
13837 "schema": {
13838 "$ref": "#/components/schemas/UserAdminResponseDto"
13839 }
13840 }
13841 },
13842 "description": ""
13843 }
13844 },
13845 "security": [
13846 {
13847 "bearer": []
13848 },
13849 {
13850 "cookie": []
13851 },
13852 {
13853 "api_key": []
13854 }
13855 ],
13856 "summary": "Get current user",
13857 "tags": [
13858 "Users"
13859 ],
13860 "x-immich-history": [
13861 {
13862 "version": "v1",
13863 "state": "Added"
13864 },
13865 {
13866 "version": "v1",
13867 "state": "Beta"
13868 },
13869 {
13870 "version": "v2",
13871 "state": "Stable"
13872 }
13873 ],
13874 "x-immich-permission": "user.read",
13875 "x-immich-state": "Stable"
13876 },
13877 "put": {
13878 "description": "Update the current user making teh API request.",
13879 "operationId": "updateMyUser",
13880 "parameters": [],
13881 "requestBody": {
13882 "content": {
13883 "application/json": {
13884 "schema": {
13885 "$ref": "#/components/schemas/UserUpdateMeDto"
13886 }
13887 }
13888 },
13889 "required": true
13890 },
13891 "responses": {
13892 "200": {
13893 "content": {
13894 "application/json": {
13895 "schema": {
13896 "$ref": "#/components/schemas/UserAdminResponseDto"
13897 }
13898 }
13899 },
13900 "description": ""
13901 }
13902 },
13903 "security": [
13904 {
13905 "bearer": []
13906 },
13907 {
13908 "cookie": []
13909 },
13910 {
13911 "api_key": []
13912 }
13913 ],
13914 "summary": "Update current user",
13915 "tags": [
13916 "Users"
13917 ],
13918 "x-immich-history": [
13919 {
13920 "version": "v1",
13921 "state": "Added"
13922 },
13923 {
13924 "version": "v1",
13925 "state": "Beta"
13926 },
13927 {
13928 "version": "v2",
13929 "state": "Stable"
13930 }
13931 ],
13932 "x-immich-permission": "user.update",
13933 "x-immich-state": "Stable"
13934 }
13935 },
13936 "/users/me/license": {
13937 "delete": {
13938 "description": "Delete the registered product key for the current user.",
13939 "operationId": "deleteUserLicense",
13940 "parameters": [],
13941 "responses": {
13942 "204": {
13943 "description": ""
13944 }
13945 },
13946 "security": [
13947 {
13948 "bearer": []
13949 },
13950 {
13951 "cookie": []
13952 },
13953 {
13954 "api_key": []
13955 }
13956 ],
13957 "summary": "Delete user product key",
13958 "tags": [
13959 "Users"
13960 ],
13961 "x-immich-history": [
13962 {
13963 "version": "v1",
13964 "state": "Added"
13965 },
13966 {
13967 "version": "v1",
13968 "state": "Beta"
13969 },
13970 {
13971 "version": "v2",
13972 "state": "Stable"
13973 }
13974 ],
13975 "x-immich-permission": "userLicense.delete",
13976 "x-immich-state": "Stable"
13977 },
13978 "get": {
13979 "description": "Retrieve information about whether the current user has a registered product key.",
13980 "operationId": "getUserLicense",
13981 "parameters": [],
13982 "responses": {
13983 "200": {
13984 "content": {
13985 "application/json": {
13986 "schema": {
13987 "$ref": "#/components/schemas/LicenseResponseDto"
13988 }
13989 }
13990 },
13991 "description": ""
13992 }
13993 },
13994 "security": [
13995 {
13996 "bearer": []
13997 },
13998 {
13999 "cookie": []
14000 },
14001 {
14002 "api_key": []
14003 }
14004 ],
14005 "summary": "Retrieve user product key",
14006 "tags": [
14007 "Users"
14008 ],
14009 "x-immich-history": [
14010 {
14011 "version": "v1",
14012 "state": "Added"
14013 },
14014 {
14015 "version": "v1",
14016 "state": "Beta"
14017 },
14018 {
14019 "version": "v2",
14020 "state": "Stable"
14021 }
14022 ],
14023 "x-immich-permission": "userLicense.read",
14024 "x-immich-state": "Stable"
14025 },
14026 "put": {
14027 "description": "Register a product key for the current user.",
14028 "operationId": "setUserLicense",
14029 "parameters": [],
14030 "requestBody": {
14031 "content": {
14032 "application/json": {
14033 "schema": {
14034 "$ref": "#/components/schemas/LicenseKeyDto"
14035 }
14036 }
14037 },
14038 "required": true
14039 },
14040 "responses": {
14041 "200": {
14042 "content": {
14043 "application/json": {
14044 "schema": {
14045 "$ref": "#/components/schemas/LicenseResponseDto"
14046 }
14047 }
14048 },
14049 "description": ""
14050 }
14051 },
14052 "security": [
14053 {
14054 "bearer": []
14055 },
14056 {
14057 "cookie": []
14058 },
14059 {
14060 "api_key": []
14061 }
14062 ],
14063 "summary": "Set user product key",
14064 "tags": [
14065 "Users"
14066 ],
14067 "x-immich-history": [
14068 {
14069 "version": "v1",
14070 "state": "Added"
14071 },
14072 {
14073 "version": "v1",
14074 "state": "Beta"
14075 },
14076 {
14077 "version": "v2",
14078 "state": "Stable"
14079 }
14080 ],
14081 "x-immich-permission": "userLicense.update",
14082 "x-immich-state": "Stable"
14083 }
14084 },
14085 "/users/me/onboarding": {
14086 "delete": {
14087 "description": "Delete the onboarding status of the current user.",
14088 "operationId": "deleteUserOnboarding",
14089 "parameters": [],
14090 "responses": {
14091 "204": {
14092 "description": ""
14093 }
14094 },
14095 "security": [
14096 {
14097 "bearer": []
14098 },
14099 {
14100 "cookie": []
14101 },
14102 {
14103 "api_key": []
14104 }
14105 ],
14106 "summary": "Delete user onboarding",
14107 "tags": [
14108 "Users"
14109 ],
14110 "x-immich-history": [
14111 {
14112 "version": "v1",
14113 "state": "Added"
14114 },
14115 {
14116 "version": "v1",
14117 "state": "Beta"
14118 },
14119 {
14120 "version": "v2",
14121 "state": "Stable"
14122 }
14123 ],
14124 "x-immich-permission": "userOnboarding.delete",
14125 "x-immich-state": "Stable"
14126 },
14127 "get": {
14128 "description": "Retrieve the onboarding status of the current user.",
14129 "operationId": "getUserOnboarding",
14130 "parameters": [],
14131 "responses": {
14132 "200": {
14133 "content": {
14134 "application/json": {
14135 "schema": {
14136 "$ref": "#/components/schemas/OnboardingResponseDto"
14137 }
14138 }
14139 },
14140 "description": ""
14141 }
14142 },
14143 "security": [
14144 {
14145 "bearer": []
14146 },
14147 {
14148 "cookie": []
14149 },
14150 {
14151 "api_key": []
14152 }
14153 ],
14154 "summary": "Retrieve user onboarding",
14155 "tags": [
14156 "Users"
14157 ],
14158 "x-immich-history": [
14159 {
14160 "version": "v1",
14161 "state": "Added"
14162 },
14163 {
14164 "version": "v1",
14165 "state": "Beta"
14166 },
14167 {
14168 "version": "v2",
14169 "state": "Stable"
14170 }
14171 ],
14172 "x-immich-permission": "userOnboarding.read",
14173 "x-immich-state": "Stable"
14174 },
14175 "put": {
14176 "description": "Update the onboarding status of the current user.",
14177 "operationId": "setUserOnboarding",
14178 "parameters": [],
14179 "requestBody": {
14180 "content": {
14181 "application/json": {
14182 "schema": {
14183 "$ref": "#/components/schemas/OnboardingDto"
14184 }
14185 }
14186 },
14187 "required": true
14188 },
14189 "responses": {
14190 "200": {
14191 "content": {
14192 "application/json": {
14193 "schema": {
14194 "$ref": "#/components/schemas/OnboardingResponseDto"
14195 }
14196 }
14197 },
14198 "description": ""
14199 }
14200 },
14201 "security": [
14202 {
14203 "bearer": []
14204 },
14205 {
14206 "cookie": []
14207 },
14208 {
14209 "api_key": []
14210 }
14211 ],
14212 "summary": "Update user onboarding",
14213 "tags": [
14214 "Users"
14215 ],
14216 "x-immich-history": [
14217 {
14218 "version": "v1",
14219 "state": "Added"
14220 },
14221 {
14222 "version": "v1",
14223 "state": "Beta"
14224 },
14225 {
14226 "version": "v2",
14227 "state": "Stable"
14228 }
14229 ],
14230 "x-immich-permission": "userOnboarding.update",
14231 "x-immich-state": "Stable"
14232 }
14233 },
14234 "/users/me/preferences": {
14235 "get": {
14236 "description": "Retrieve the preferences for the current user.",
14237 "operationId": "getMyPreferences",
14238 "parameters": [],
14239 "responses": {
14240 "200": {
14241 "content": {
14242 "application/json": {
14243 "schema": {
14244 "$ref": "#/components/schemas/UserPreferencesResponseDto"
14245 }
14246 }
14247 },
14248 "description": ""
14249 }
14250 },
14251 "security": [
14252 {
14253 "bearer": []
14254 },
14255 {
14256 "cookie": []
14257 },
14258 {
14259 "api_key": []
14260 }
14261 ],
14262 "summary": "Get my preferences",
14263 "tags": [
14264 "Users"
14265 ],
14266 "x-immich-history": [
14267 {
14268 "version": "v1",
14269 "state": "Added"
14270 },
14271 {
14272 "version": "v1",
14273 "state": "Beta"
14274 },
14275 {
14276 "version": "v2",
14277 "state": "Stable"
14278 }
14279 ],
14280 "x-immich-permission": "userPreference.read",
14281 "x-immich-state": "Stable"
14282 },
14283 "put": {
14284 "description": "Update the preferences of the current user.",
14285 "operationId": "updateMyPreferences",
14286 "parameters": [],
14287 "requestBody": {
14288 "content": {
14289 "application/json": {
14290 "schema": {
14291 "$ref": "#/components/schemas/UserPreferencesUpdateDto"
14292 }
14293 }
14294 },
14295 "required": true
14296 },
14297 "responses": {
14298 "200": {
14299 "content": {
14300 "application/json": {
14301 "schema": {
14302 "$ref": "#/components/schemas/UserPreferencesResponseDto"
14303 }
14304 }
14305 },
14306 "description": ""
14307 }
14308 },
14309 "security": [
14310 {
14311 "bearer": []
14312 },
14313 {
14314 "cookie": []
14315 },
14316 {
14317 "api_key": []
14318 }
14319 ],
14320 "summary": "Update my preferences",
14321 "tags": [
14322 "Users"
14323 ],
14324 "x-immich-history": [
14325 {
14326 "version": "v1",
14327 "state": "Added"
14328 },
14329 {
14330 "version": "v1",
14331 "state": "Beta"
14332 },
14333 {
14334 "version": "v2",
14335 "state": "Stable"
14336 }
14337 ],
14338 "x-immich-permission": "userPreference.update",
14339 "x-immich-state": "Stable"
14340 }
14341 },
14342 "/users/profile-image": {
14343 "delete": {
14344 "description": "Delete the profile image of the current user.",
14345 "operationId": "deleteProfileImage",
14346 "parameters": [],
14347 "responses": {
14348 "204": {
14349 "description": ""
14350 }
14351 },
14352 "security": [
14353 {
14354 "bearer": []
14355 },
14356 {
14357 "cookie": []
14358 },
14359 {
14360 "api_key": []
14361 }
14362 ],
14363 "summary": "Delete user profile image",
14364 "tags": [
14365 "Users"
14366 ],
14367 "x-immich-history": [
14368 {
14369 "version": "v1",
14370 "state": "Added"
14371 },
14372 {
14373 "version": "v1",
14374 "state": "Beta"
14375 },
14376 {
14377 "version": "v2",
14378 "state": "Stable"
14379 }
14380 ],
14381 "x-immich-permission": "userProfileImage.delete",
14382 "x-immich-state": "Stable"
14383 },
14384 "post": {
14385 "description": "Upload and set a new profile image for the current user.",
14386 "operationId": "createProfileImage",
14387 "parameters": [],
14388 "requestBody": {
14389 "content": {
14390 "multipart/form-data": {
14391 "schema": {
14392 "$ref": "#/components/schemas/CreateProfileImageDto"
14393 }
14394 }
14395 },
14396 "description": "A new avatar for the user",
14397 "required": true
14398 },
14399 "responses": {
14400 "201": {
14401 "content": {
14402 "application/json": {
14403 "schema": {
14404 "$ref": "#/components/schemas/CreateProfileImageResponseDto"
14405 }
14406 }
14407 },
14408 "description": ""
14409 }
14410 },
14411 "security": [
14412 {
14413 "bearer": []
14414 },
14415 {
14416 "cookie": []
14417 },
14418 {
14419 "api_key": []
14420 }
14421 ],
14422 "summary": "Create user profile image",
14423 "tags": [
14424 "Users"
14425 ],
14426 "x-immich-history": [
14427 {
14428 "version": "v1",
14429 "state": "Added"
14430 },
14431 {
14432 "version": "v1",
14433 "state": "Beta"
14434 },
14435 {
14436 "version": "v2",
14437 "state": "Stable"
14438 }
14439 ],
14440 "x-immich-permission": "userProfileImage.update",
14441 "x-immich-state": "Stable"
14442 }
14443 },
14444 "/users/{id}": {
14445 "get": {
14446 "description": "Retrieve a specific user by their ID.",
14447 "operationId": "getUser",
14448 "parameters": [
14449 {
14450 "name": "id",
14451 "required": true,
14452 "in": "path",
14453 "schema": {
14454 "format": "uuid",
14455 "type": "string"
14456 }
14457 }
14458 ],
14459 "responses": {
14460 "200": {
14461 "content": {
14462 "application/json": {
14463 "schema": {
14464 "$ref": "#/components/schemas/UserResponseDto"
14465 }
14466 }
14467 },
14468 "description": ""
14469 }
14470 },
14471 "security": [
14472 {
14473 "bearer": []
14474 },
14475 {
14476 "cookie": []
14477 },
14478 {
14479 "api_key": []
14480 }
14481 ],
14482 "summary": "Retrieve a user",
14483 "tags": [
14484 "Users"
14485 ],
14486 "x-immich-history": [
14487 {
14488 "version": "v1",
14489 "state": "Added"
14490 },
14491 {
14492 "version": "v1",
14493 "state": "Beta"
14494 },
14495 {
14496 "version": "v2",
14497 "state": "Stable"
14498 }
14499 ],
14500 "x-immich-permission": "user.read",
14501 "x-immich-state": "Stable"
14502 }
14503 },
14504 "/users/{id}/profile-image": {
14505 "get": {
14506 "description": "Retrieve the profile image file for a user.",
14507 "operationId": "getProfileImage",
14508 "parameters": [
14509 {
14510 "name": "id",
14511 "required": true,
14512 "in": "path",
14513 "schema": {
14514 "format": "uuid",
14515 "type": "string"
14516 }
14517 }
14518 ],
14519 "responses": {
14520 "200": {
14521 "content": {
14522 "application/octet-stream": {
14523 "schema": {
14524 "format": "binary",
14525 "type": "string"
14526 }
14527 }
14528 },
14529 "description": ""
14530 }
14531 },
14532 "security": [
14533 {
14534 "bearer": []
14535 },
14536 {
14537 "cookie": []
14538 },
14539 {
14540 "api_key": []
14541 }
14542 ],
14543 "summary": "Retrieve user profile image",
14544 "tags": [
14545 "Users"
14546 ],
14547 "x-immich-history": [
14548 {
14549 "version": "v1",
14550 "state": "Added"
14551 },
14552 {
14553 "version": "v1",
14554 "state": "Beta"
14555 },
14556 {
14557 "version": "v2",
14558 "state": "Stable"
14559 }
14560 ],
14561 "x-immich-permission": "userProfileImage.read",
14562 "x-immich-state": "Stable"
14563 }
14564 },
14565 "/view/folder": {
14566 "get": {
14567 "description": "Retrieve assets that are children of a specific folder.",
14568 "operationId": "getAssetsByOriginalPath",
14569 "parameters": [
14570 {
14571 "name": "path",
14572 "required": true,
14573 "in": "query",
14574 "schema": {
14575 "type": "string"
14576 }
14577 }
14578 ],
14579 "responses": {
14580 "200": {
14581 "content": {
14582 "application/json": {
14583 "schema": {
14584 "items": {
14585 "$ref": "#/components/schemas/AssetResponseDto"
14586 },
14587 "type": "array"
14588 }
14589 }
14590 },
14591 "description": ""
14592 }
14593 },
14594 "security": [
14595 {
14596 "bearer": []
14597 },
14598 {
14599 "cookie": []
14600 },
14601 {
14602 "api_key": []
14603 }
14604 ],
14605 "summary": "Retrieve assets by original path",
14606 "tags": [
14607 "Views"
14608 ],
14609 "x-immich-history": [
14610 {
14611 "version": "v1",
14612 "state": "Added"
14613 },
14614 {
14615 "version": "v1",
14616 "state": "Beta"
14617 },
14618 {
14619 "version": "v2",
14620 "state": "Stable"
14621 }
14622 ],
14623 "x-immich-permission": "folder.read",
14624 "x-immich-state": "Stable"
14625 }
14626 },
14627 "/view/folder/unique-paths": {
14628 "get": {
14629 "description": "Retrieve a list of unique folder paths from asset original paths.",
14630 "operationId": "getUniqueOriginalPaths",
14631 "parameters": [],
14632 "responses": {
14633 "200": {
14634 "content": {
14635 "application/json": {
14636 "schema": {
14637 "items": {
14638 "type": "string"
14639 },
14640 "type": "array"
14641 }
14642 }
14643 },
14644 "description": ""
14645 }
14646 },
14647 "security": [
14648 {
14649 "bearer": []
14650 },
14651 {
14652 "cookie": []
14653 },
14654 {
14655 "api_key": []
14656 }
14657 ],
14658 "summary": "Retrieve unique paths",
14659 "tags": [
14660 "Views"
14661 ],
14662 "x-immich-history": [
14663 {
14664 "version": "v1",
14665 "state": "Added"
14666 },
14667 {
14668 "version": "v1",
14669 "state": "Beta"
14670 },
14671 {
14672 "version": "v2",
14673 "state": "Stable"
14674 }
14675 ],
14676 "x-immich-permission": "folder.read",
14677 "x-immich-state": "Stable"
14678 }
14679 },
14680 "/workflows": {
14681 "get": {
14682 "description": "Retrieve a list of workflows available to the authenticated user.",
14683 "operationId": "getWorkflows",
14684 "parameters": [],
14685 "responses": {
14686 "200": {
14687 "content": {
14688 "application/json": {
14689 "schema": {
14690 "items": {
14691 "$ref": "#/components/schemas/WorkflowResponseDto"
14692 },
14693 "type": "array"
14694 }
14695 }
14696 },
14697 "description": ""
14698 }
14699 },
14700 "security": [
14701 {
14702 "bearer": []
14703 },
14704 {
14705 "cookie": []
14706 },
14707 {
14708 "api_key": []
14709 }
14710 ],
14711 "summary": "List all workflows",
14712 "tags": [
14713 "Workflows"
14714 ],
14715 "x-immich-history": [
14716 {
14717 "version": "v2.3.0",
14718 "state": "Added"
14719 },
14720 {
14721 "version": "v2.3.0",
14722 "state": "Alpha"
14723 }
14724 ],
14725 "x-immich-permission": "workflow.read",
14726 "x-immich-state": "Alpha"
14727 },
14728 "post": {
14729 "description": "Create a new workflow, the workflow can also be created with empty filters and actions.",
14730 "operationId": "createWorkflow",
14731 "parameters": [],
14732 "requestBody": {
14733 "content": {
14734 "application/json": {
14735 "schema": {
14736 "$ref": "#/components/schemas/WorkflowCreateDto"
14737 }
14738 }
14739 },
14740 "required": true
14741 },
14742 "responses": {
14743 "201": {
14744 "content": {
14745 "application/json": {
14746 "schema": {
14747 "$ref": "#/components/schemas/WorkflowResponseDto"
14748 }
14749 }
14750 },
14751 "description": ""
14752 }
14753 },
14754 "security": [
14755 {
14756 "bearer": []
14757 },
14758 {
14759 "cookie": []
14760 },
14761 {
14762 "api_key": []
14763 }
14764 ],
14765 "summary": "Create a workflow",
14766 "tags": [
14767 "Workflows"
14768 ],
14769 "x-immich-history": [
14770 {
14771 "version": "v2.3.0",
14772 "state": "Added"
14773 },
14774 {
14775 "version": "v2.3.0",
14776 "state": "Alpha"
14777 }
14778 ],
14779 "x-immich-permission": "workflow.create",
14780 "x-immich-state": "Alpha"
14781 }
14782 },
14783 "/workflows/{id}": {
14784 "delete": {
14785 "description": "Delete a workflow by its ID.",
14786 "operationId": "deleteWorkflow",
14787 "parameters": [
14788 {
14789 "name": "id",
14790 "required": true,
14791 "in": "path",
14792 "schema": {
14793 "format": "uuid",
14794 "type": "string"
14795 }
14796 }
14797 ],
14798 "responses": {
14799 "204": {
14800 "description": ""
14801 }
14802 },
14803 "security": [
14804 {
14805 "bearer": []
14806 },
14807 {
14808 "cookie": []
14809 },
14810 {
14811 "api_key": []
14812 }
14813 ],
14814 "summary": "Delete a workflow",
14815 "tags": [
14816 "Workflows"
14817 ],
14818 "x-immich-history": [
14819 {
14820 "version": "v2.3.0",
14821 "state": "Added"
14822 },
14823 {
14824 "version": "v2.3.0",
14825 "state": "Alpha"
14826 }
14827 ],
14828 "x-immich-permission": "workflow.delete",
14829 "x-immich-state": "Alpha"
14830 },
14831 "get": {
14832 "description": "Retrieve information about a specific workflow by its ID.",
14833 "operationId": "getWorkflow",
14834 "parameters": [
14835 {
14836 "name": "id",
14837 "required": true,
14838 "in": "path",
14839 "schema": {
14840 "format": "uuid",
14841 "type": "string"
14842 }
14843 }
14844 ],
14845 "responses": {
14846 "200": {
14847 "content": {
14848 "application/json": {
14849 "schema": {
14850 "$ref": "#/components/schemas/WorkflowResponseDto"
14851 }
14852 }
14853 },
14854 "description": ""
14855 }
14856 },
14857 "security": [
14858 {
14859 "bearer": []
14860 },
14861 {
14862 "cookie": []
14863 },
14864 {
14865 "api_key": []
14866 }
14867 ],
14868 "summary": "Retrieve a workflow",
14869 "tags": [
14870 "Workflows"
14871 ],
14872 "x-immich-history": [
14873 {
14874 "version": "v2.3.0",
14875 "state": "Added"
14876 },
14877 {
14878 "version": "v2.3.0",
14879 "state": "Alpha"
14880 }
14881 ],
14882 "x-immich-permission": "workflow.read",
14883 "x-immich-state": "Alpha"
14884 },
14885 "put": {
14886 "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.",
14887 "operationId": "updateWorkflow",
14888 "parameters": [
14889 {
14890 "name": "id",
14891 "required": true,
14892 "in": "path",
14893 "schema": {
14894 "format": "uuid",
14895 "type": "string"
14896 }
14897 }
14898 ],
14899 "requestBody": {
14900 "content": {
14901 "application/json": {
14902 "schema": {
14903 "$ref": "#/components/schemas/WorkflowUpdateDto"
14904 }
14905 }
14906 },
14907 "required": true
14908 },
14909 "responses": {
14910 "200": {
14911 "content": {
14912 "application/json": {
14913 "schema": {
14914 "$ref": "#/components/schemas/WorkflowResponseDto"
14915 }
14916 }
14917 },
14918 "description": ""
14919 }
14920 },
14921 "security": [
14922 {
14923 "bearer": []
14924 },
14925 {
14926 "cookie": []
14927 },
14928 {
14929 "api_key": []
14930 }
14931 ],
14932 "summary": "Update a workflow",
14933 "tags": [
14934 "Workflows"
14935 ],
14936 "x-immich-history": [
14937 {
14938 "version": "v2.3.0",
14939 "state": "Added"
14940 },
14941 {
14942 "version": "v2.3.0",
14943 "state": "Alpha"
14944 }
14945 ],
14946 "x-immich-permission": "workflow.update",
14947 "x-immich-state": "Alpha"
14948 }
14949 }
14950 },
14951 "info": {
14952 "title": "Immich",
14953 "description": "Immich API",
14954 "version": "2.4.1",
14955 "contact": {}
14956 },
14957 "tags": [
14958 {
14959 "name": "Activities",
14960 "description": "An activity is a like or a comment made by a user on an asset or album."
14961 },
14962 {
14963 "name": "Albums",
14964 "description": "An album is a collection of assets that can be shared with other users or via shared links."
14965 },
14966 {
14967 "name": "API keys",
14968 "description": "An api key can be used to programmatically access the Immich API."
14969 },
14970 {
14971 "name": "Assets",
14972 "description": "An asset is an image or video that has been uploaded to Immich."
14973 },
14974 {
14975 "name": "Authentication",
14976 "description": "Endpoints related to user authentication, including OAuth."
14977 },
14978 {
14979 "name": "Authentication (admin)",
14980 "description": "Administrative endpoints related to authentication."
14981 },
14982 {
14983 "name": "Database Backups (admin)",
14984 "description": "Manage backups of the Immich database."
14985 },
14986 {
14987 "name": "Deprecated",
14988 "description": "Deprecated endpoints that are planned for removal in the next major release."
14989 },
14990 {
14991 "name": "Download",
14992 "description": "Endpoints for downloading assets or collections of assets."
14993 },
14994 {
14995 "name": "Duplicates",
14996 "description": "Endpoints for managing and identifying duplicate assets."
14997 },
14998 {
14999 "name": "Faces",
15000 "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."
15001 },
15002 {
15003 "name": "Jobs",
15004 "description": "Queues and background jobs are used for processing tasks asynchronously. Queues can be paused and resumed as needed."
15005 },
15006 {
15007 "name": "Libraries",
15008 "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."
15009 },
15010 {
15011 "name": "Maintenance (admin)",
15012 "description": "Maintenance mode allows you to put Immich in a read-only state to perform various operations."
15013 },
15014 {
15015 "name": "Map",
15016 "description": "Map endpoints include supplemental functionality related to geolocation, such as reverse geocoding and retrieving map markers for assets with geolocation data."
15017 },
15018 {
15019 "name": "Memories",
15020 "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."
15021 },
15022 {
15023 "name": "Notifications",
15024 "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."
15025 },
15026 {
15027 "name": "Notifications (admin)",
15028 "description": "Notification administrative endpoints."
15029 },
15030 {
15031 "name": "Partners",
15032 "description": "A partner is a link with another user that allows sharing of assets between two users."
15033 },
15034 {
15035 "name": "People",
15036 "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."
15037 },
15038 {
15039 "name": "Plugins",
15040 "description": "A plugin is an installed module that makes filters and actions available for the workflow feature."
15041 },
15042 {
15043 "name": "Queues",
15044 "description": "Queues and background jobs are used for processing tasks asynchronously. Queues can be paused and resumed as needed."
15045 },
15046 {
15047 "name": "Search",
15048 "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."
15049 },
15050 {
15051 "name": "Server",
15052 "description": "Information about the current server deployment, including version and build information, available features, supported media types, and more."
15053 },
15054 {
15055 "name": "Sessions",
15056 "description": "A session represents an authenticated login session for a user. Sessions also appear in the web application as \"Authorized devices\"."
15057 },
15058 {
15059 "name": "Shared links",
15060 "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."
15061 },
15062 {
15063 "name": "Stacks",
15064 "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."
15065 },
15066 {
15067 "name": "Sync",
15068 "description": "A collection of endpoints for the new mobile synchronization implementation."
15069 },
15070 {
15071 "name": "System config",
15072 "description": "Endpoints to view, modify, and validate the system configuration settings."
15073 },
15074 {
15075 "name": "System metadata",
15076 "description": "Endpoints to view, modify, and validate the system metadata, which includes information about things like admin onboarding status."
15077 },
15078 {
15079 "name": "Tags",
15080 "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."
15081 },
15082 {
15083 "name": "Timeline",
15084 "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."
15085 },
15086 {
15087 "name": "Trash",
15088 "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."
15089 },
15090 {
15091 "name": "Users (admin)",
15092 "description": "Administrative endpoints for managing users, including creating, updating, deleting, and restoring users. Also includes endpoints for resetting passwords and PIN codes."
15093 },
15094 {
15095 "name": "Users",
15096 "description": "Endpoints for viewing and updating the current users, including product key information, profile picture data, onboarding progress, and more."
15097 },
15098 {
15099 "name": "Views",
15100 "description": "Endpoints for specialized views, such as the folder view."
15101 },
15102 {
15103 "name": "Workflows",
15104 "description": "A workflow is a set of actions that run whenever a triggering event occurs. Workflows also can include filters to further limit execution."
15105 }
15106 ],
15107 "servers": [
15108 {
15109 "url": "/api"
15110 }
15111 ],
15112 "components": {
15113 "securitySchemes": {
15114 "bearer": {
15115 "scheme": "Bearer",
15116 "bearerFormat": "JWT",
15117 "type": "http",
15118 "in": "header"
15119 },
15120 "cookie": {
15121 "type": "apiKey",
15122 "in": "cookie",
15123 "name": "immich_access_token"
15124 },
15125 "api_key": {
15126 "type": "apiKey",
15127 "in": "header",
15128 "name": "x-api-key"
15129 }
15130 },
15131 "schemas": {
15132 "APIKeyCreateDto": {
15133 "properties": {
15134 "name": {
15135 "type": "string"
15136 },
15137 "permissions": {
15138 "items": {
15139 "$ref": "#/components/schemas/Permission"
15140 },
15141 "minItems": 1,
15142 "type": "array"
15143 }
15144 },
15145 "required": [
15146 "permissions"
15147 ],
15148 "type": "object"
15149 },
15150 "APIKeyCreateResponseDto": {
15151 "properties": {
15152 "apiKey": {
15153 "$ref": "#/components/schemas/APIKeyResponseDto"
15154 },
15155 "secret": {
15156 "type": "string"
15157 }
15158 },
15159 "required": [
15160 "apiKey",
15161 "secret"
15162 ],
15163 "type": "object"
15164 },
15165 "APIKeyResponseDto": {
15166 "properties": {
15167 "createdAt": {
15168 "format": "date-time",
15169 "type": "string"
15170 },
15171 "id": {
15172 "type": "string"
15173 },
15174 "name": {
15175 "type": "string"
15176 },
15177 "permissions": {
15178 "items": {
15179 "$ref": "#/components/schemas/Permission"
15180 },
15181 "type": "array"
15182 },
15183 "updatedAt": {
15184 "format": "date-time",
15185 "type": "string"
15186 }
15187 },
15188 "required": [
15189 "createdAt",
15190 "id",
15191 "name",
15192 "permissions",
15193 "updatedAt"
15194 ],
15195 "type": "object"
15196 },
15197 "APIKeyUpdateDto": {
15198 "properties": {
15199 "name": {
15200 "type": "string"
15201 },
15202 "permissions": {
15203 "items": {
15204 "$ref": "#/components/schemas/Permission"
15205 },
15206 "minItems": 1,
15207 "type": "array"
15208 }
15209 },
15210 "type": "object"
15211 },
15212 "ActivityCreateDto": {
15213 "properties": {
15214 "albumId": {
15215 "format": "uuid",
15216 "type": "string"
15217 },
15218 "assetId": {
15219 "format": "uuid",
15220 "type": "string"
15221 },
15222 "comment": {
15223 "type": "string"
15224 },
15225 "type": {
15226 "allOf": [
15227 {
15228 "$ref": "#/components/schemas/ReactionType"
15229 }
15230 ]
15231 }
15232 },
15233 "required": [
15234 "albumId",
15235 "type"
15236 ],
15237 "type": "object"
15238 },
15239 "ActivityResponseDto": {
15240 "properties": {
15241 "assetId": {
15242 "nullable": true,
15243 "type": "string"
15244 },
15245 "comment": {
15246 "nullable": true,
15247 "type": "string"
15248 },
15249 "createdAt": {
15250 "format": "date-time",
15251 "type": "string"
15252 },
15253 "id": {
15254 "type": "string"
15255 },
15256 "type": {
15257 "allOf": [
15258 {
15259 "$ref": "#/components/schemas/ReactionType"
15260 }
15261 ]
15262 },
15263 "user": {
15264 "$ref": "#/components/schemas/UserResponseDto"
15265 }
15266 },
15267 "required": [
15268 "assetId",
15269 "createdAt",
15270 "id",
15271 "type",
15272 "user"
15273 ],
15274 "type": "object"
15275 },
15276 "ActivityStatisticsResponseDto": {
15277 "properties": {
15278 "comments": {
15279 "type": "integer"
15280 },
15281 "likes": {
15282 "type": "integer"
15283 }
15284 },
15285 "required": [
15286 "comments",
15287 "likes"
15288 ],
15289 "type": "object"
15290 },
15291 "AddUsersDto": {
15292 "properties": {
15293 "albumUsers": {
15294 "items": {
15295 "$ref": "#/components/schemas/AlbumUserAddDto"
15296 },
15297 "minItems": 1,
15298 "type": "array"
15299 }
15300 },
15301 "required": [
15302 "albumUsers"
15303 ],
15304 "type": "object"
15305 },
15306 "AdminOnboardingUpdateDto": {
15307 "properties": {
15308 "isOnboarded": {
15309 "type": "boolean"
15310 }
15311 },
15312 "required": [
15313 "isOnboarded"
15314 ],
15315 "type": "object"
15316 },
15317 "AlbumResponseDto": {
15318 "properties": {
15319 "albumName": {
15320 "type": "string"
15321 },
15322 "albumThumbnailAssetId": {
15323 "nullable": true,
15324 "type": "string"
15325 },
15326 "albumUsers": {
15327 "items": {
15328 "$ref": "#/components/schemas/AlbumUserResponseDto"
15329 },
15330 "type": "array"
15331 },
15332 "assetCount": {
15333 "type": "integer"
15334 },
15335 "assets": {
15336 "items": {
15337 "$ref": "#/components/schemas/AssetResponseDto"
15338 },
15339 "type": "array"
15340 },
15341 "contributorCounts": {
15342 "items": {
15343 "$ref": "#/components/schemas/ContributorCountResponseDto"
15344 },
15345 "type": "array"
15346 },
15347 "createdAt": {
15348 "format": "date-time",
15349 "type": "string"
15350 },
15351 "description": {
15352 "type": "string"
15353 },
15354 "endDate": {
15355 "format": "date-time",
15356 "type": "string"
15357 },
15358 "hasSharedLink": {
15359 "type": "boolean"
15360 },
15361 "id": {
15362 "type": "string"
15363 },
15364 "isActivityEnabled": {
15365 "type": "boolean"
15366 },
15367 "lastModifiedAssetTimestamp": {
15368 "format": "date-time",
15369 "type": "string"
15370 },
15371 "order": {
15372 "allOf": [
15373 {
15374 "$ref": "#/components/schemas/AssetOrder"
15375 }
15376 ]
15377 },
15378 "owner": {
15379 "$ref": "#/components/schemas/UserResponseDto"
15380 },
15381 "ownerId": {
15382 "type": "string"
15383 },
15384 "shared": {
15385 "type": "boolean"
15386 },
15387 "startDate": {
15388 "format": "date-time",
15389 "type": "string"
15390 },
15391 "updatedAt": {
15392 "format": "date-time",
15393 "type": "string"
15394 }
15395 },
15396 "required": [
15397 "albumName",
15398 "albumThumbnailAssetId",
15399 "albumUsers",
15400 "assetCount",
15401 "assets",
15402 "createdAt",
15403 "description",
15404 "hasSharedLink",
15405 "id",
15406 "isActivityEnabled",
15407 "owner",
15408 "ownerId",
15409 "shared",
15410 "updatedAt"
15411 ],
15412 "type": "object"
15413 },
15414 "AlbumStatisticsResponseDto": {
15415 "properties": {
15416 "notShared": {
15417 "type": "integer"
15418 },
15419 "owned": {
15420 "type": "integer"
15421 },
15422 "shared": {
15423 "type": "integer"
15424 }
15425 },
15426 "required": [
15427 "notShared",
15428 "owned",
15429 "shared"
15430 ],
15431 "type": "object"
15432 },
15433 "AlbumUserAddDto": {
15434 "properties": {
15435 "role": {
15436 "allOf": [
15437 {
15438 "$ref": "#/components/schemas/AlbumUserRole"
15439 }
15440 ],
15441 "default": "editor"
15442 },
15443 "userId": {
15444 "format": "uuid",
15445 "type": "string"
15446 }
15447 },
15448 "required": [
15449 "userId"
15450 ],
15451 "type": "object"
15452 },
15453 "AlbumUserCreateDto": {
15454 "properties": {
15455 "role": {
15456 "allOf": [
15457 {
15458 "$ref": "#/components/schemas/AlbumUserRole"
15459 }
15460 ]
15461 },
15462 "userId": {
15463 "format": "uuid",
15464 "type": "string"
15465 }
15466 },
15467 "required": [
15468 "role",
15469 "userId"
15470 ],
15471 "type": "object"
15472 },
15473 "AlbumUserResponseDto": {
15474 "properties": {
15475 "role": {
15476 "allOf": [
15477 {
15478 "$ref": "#/components/schemas/AlbumUserRole"
15479 }
15480 ]
15481 },
15482 "user": {
15483 "$ref": "#/components/schemas/UserResponseDto"
15484 }
15485 },
15486 "required": [
15487 "role",
15488 "user"
15489 ],
15490 "type": "object"
15491 },
15492 "AlbumUserRole": {
15493 "enum": [
15494 "editor",
15495 "viewer"
15496 ],
15497 "type": "string"
15498 },
15499 "AlbumsAddAssetsDto": {
15500 "properties": {
15501 "albumIds": {
15502 "items": {
15503 "format": "uuid",
15504 "type": "string"
15505 },
15506 "type": "array"
15507 },
15508 "assetIds": {
15509 "items": {
15510 "format": "uuid",
15511 "type": "string"
15512 },
15513 "type": "array"
15514 }
15515 },
15516 "required": [
15517 "albumIds",
15518 "assetIds"
15519 ],
15520 "type": "object"
15521 },
15522 "AlbumsAddAssetsResponseDto": {
15523 "properties": {
15524 "error": {
15525 "allOf": [
15526 {
15527 "$ref": "#/components/schemas/BulkIdErrorReason"
15528 }
15529 ]
15530 },
15531 "success": {
15532 "type": "boolean"
15533 }
15534 },
15535 "required": [
15536 "success"
15537 ],
15538 "type": "object"
15539 },
15540 "AlbumsResponse": {
15541 "properties": {
15542 "defaultAssetOrder": {
15543 "allOf": [
15544 {
15545 "$ref": "#/components/schemas/AssetOrder"
15546 }
15547 ],
15548 "default": "desc"
15549 }
15550 },
15551 "required": [
15552 "defaultAssetOrder"
15553 ],
15554 "type": "object"
15555 },
15556 "AlbumsUpdate": {
15557 "properties": {
15558 "defaultAssetOrder": {
15559 "allOf": [
15560 {
15561 "$ref": "#/components/schemas/AssetOrder"
15562 }
15563 ]
15564 }
15565 },
15566 "type": "object"
15567 },
15568 "AssetBulkDeleteDto": {
15569 "properties": {
15570 "force": {
15571 "type": "boolean"
15572 },
15573 "ids": {
15574 "items": {
15575 "format": "uuid",
15576 "type": "string"
15577 },
15578 "type": "array"
15579 }
15580 },
15581 "required": [
15582 "ids"
15583 ],
15584 "type": "object"
15585 },
15586 "AssetBulkUpdateDto": {
15587 "properties": {
15588 "dateTimeOriginal": {
15589 "type": "string"
15590 },
15591 "dateTimeRelative": {
15592 "type": "number"
15593 },
15594 "description": {
15595 "type": "string"
15596 },
15597 "duplicateId": {
15598 "nullable": true,
15599 "type": "string"
15600 },
15601 "ids": {
15602 "items": {
15603 "format": "uuid",
15604 "type": "string"
15605 },
15606 "type": "array"
15607 },
15608 "isFavorite": {
15609 "type": "boolean"
15610 },
15611 "latitude": {
15612 "type": "number"
15613 },
15614 "longitude": {
15615 "type": "number"
15616 },
15617 "rating": {
15618 "maximum": 5,
15619 "minimum": -1,
15620 "type": "number"
15621 },
15622 "timeZone": {
15623 "type": "string"
15624 },
15625 "visibility": {
15626 "allOf": [
15627 {
15628 "$ref": "#/components/schemas/AssetVisibility"
15629 }
15630 ]
15631 }
15632 },
15633 "required": [
15634 "ids"
15635 ],
15636 "type": "object"
15637 },
15638 "AssetBulkUploadCheckDto": {
15639 "properties": {
15640 "assets": {
15641 "items": {
15642 "$ref": "#/components/schemas/AssetBulkUploadCheckItem"
15643 },
15644 "type": "array"
15645 }
15646 },
15647 "required": [
15648 "assets"
15649 ],
15650 "type": "object"
15651 },
15652 "AssetBulkUploadCheckItem": {
15653 "properties": {
15654 "checksum": {
15655 "description": "base64 or hex encoded sha1 hash",
15656 "type": "string"
15657 },
15658 "id": {
15659 "type": "string"
15660 }
15661 },
15662 "required": [
15663 "checksum",
15664 "id"
15665 ],
15666 "type": "object"
15667 },
15668 "AssetBulkUploadCheckResponseDto": {
15669 "properties": {
15670 "results": {
15671 "items": {
15672 "$ref": "#/components/schemas/AssetBulkUploadCheckResult"
15673 },
15674 "type": "array"
15675 }
15676 },
15677 "required": [
15678 "results"
15679 ],
15680 "type": "object"
15681 },
15682 "AssetBulkUploadCheckResult": {
15683 "properties": {
15684 "action": {
15685 "enum": [
15686 "accept",
15687 "reject"
15688 ],
15689 "type": "string"
15690 },
15691 "assetId": {
15692 "type": "string"
15693 },
15694 "id": {
15695 "type": "string"
15696 },
15697 "isTrashed": {
15698 "type": "boolean"
15699 },
15700 "reason": {
15701 "enum": [
15702 "duplicate",
15703 "unsupported-format"
15704 ],
15705 "type": "string"
15706 }
15707 },
15708 "required": [
15709 "action",
15710 "id"
15711 ],
15712 "type": "object"
15713 },
15714 "AssetCopyDto": {
15715 "properties": {
15716 "albums": {
15717 "default": true,
15718 "type": "boolean"
15719 },
15720 "favorite": {
15721 "default": true,
15722 "type": "boolean"
15723 },
15724 "sharedLinks": {
15725 "default": true,
15726 "type": "boolean"
15727 },
15728 "sidecar": {
15729 "default": true,
15730 "type": "boolean"
15731 },
15732 "sourceId": {
15733 "format": "uuid",
15734 "type": "string"
15735 },
15736 "stack": {
15737 "default": true,
15738 "type": "boolean"
15739 },
15740 "targetId": {
15741 "format": "uuid",
15742 "type": "string"
15743 }
15744 },
15745 "required": [
15746 "sourceId",
15747 "targetId"
15748 ],
15749 "type": "object"
15750 },
15751 "AssetDeltaSyncDto": {
15752 "properties": {
15753 "updatedAfter": {
15754 "format": "date-time",
15755 "type": "string"
15756 },
15757 "userIds": {
15758 "items": {
15759 "format": "uuid",
15760 "type": "string"
15761 },
15762 "type": "array"
15763 }
15764 },
15765 "required": [
15766 "updatedAfter",
15767 "userIds"
15768 ],
15769 "type": "object"
15770 },
15771 "AssetDeltaSyncResponseDto": {
15772 "properties": {
15773 "deleted": {
15774 "items": {
15775 "type": "string"
15776 },
15777 "type": "array"
15778 },
15779 "needsFullSync": {
15780 "type": "boolean"
15781 },
15782 "upserted": {
15783 "items": {
15784 "$ref": "#/components/schemas/AssetResponseDto"
15785 },
15786 "type": "array"
15787 }
15788 },
15789 "required": [
15790 "deleted",
15791 "needsFullSync",
15792 "upserted"
15793 ],
15794 "type": "object"
15795 },
15796 "AssetEditAction": {
15797 "enum": [
15798 "crop",
15799 "rotate",
15800 "mirror"
15801 ],
15802 "type": "string"
15803 },
15804 "AssetEditActionCrop": {
15805 "properties": {
15806 "action": {
15807 "allOf": [
15808 {
15809 "$ref": "#/components/schemas/AssetEditAction"
15810 }
15811 ]
15812 },
15813 "parameters": {
15814 "$ref": "#/components/schemas/CropParameters"
15815 }
15816 },
15817 "required": [
15818 "action",
15819 "parameters"
15820 ],
15821 "type": "object"
15822 },
15823 "AssetEditActionListDto": {
15824 "properties": {
15825 "edits": {
15826 "description": "list of edits",
15827 "items": {
15828 "anyOf": [
15829 {
15830 "$ref": "#/components/schemas/AssetEditActionCrop"
15831 },
15832 {
15833 "$ref": "#/components/schemas/AssetEditActionRotate"
15834 },
15835 {
15836 "$ref": "#/components/schemas/AssetEditActionMirror"
15837 }
15838 ]
15839 },
15840 "minItems": 1,
15841 "type": "array"
15842 }
15843 },
15844 "required": [
15845 "edits"
15846 ],
15847 "type": "object"
15848 },
15849 "AssetEditActionMirror": {
15850 "properties": {
15851 "action": {
15852 "allOf": [
15853 {
15854 "$ref": "#/components/schemas/AssetEditAction"
15855 }
15856 ]
15857 },
15858 "parameters": {
15859 "$ref": "#/components/schemas/MirrorParameters"
15860 }
15861 },
15862 "required": [
15863 "action",
15864 "parameters"
15865 ],
15866 "type": "object"
15867 },
15868 "AssetEditActionRotate": {
15869 "properties": {
15870 "action": {
15871 "allOf": [
15872 {
15873 "$ref": "#/components/schemas/AssetEditAction"
15874 }
15875 ]
15876 },
15877 "parameters": {
15878 "$ref": "#/components/schemas/RotateParameters"
15879 }
15880 },
15881 "required": [
15882 "action",
15883 "parameters"
15884 ],
15885 "type": "object"
15886 },
15887 "AssetEditsDto": {
15888 "properties": {
15889 "assetId": {
15890 "format": "uuid",
15891 "type": "string"
15892 },
15893 "edits": {
15894 "description": "list of edits",
15895 "items": {
15896 "anyOf": [
15897 {
15898 "$ref": "#/components/schemas/AssetEditActionCrop"
15899 },
15900 {
15901 "$ref": "#/components/schemas/AssetEditActionRotate"
15902 },
15903 {
15904 "$ref": "#/components/schemas/AssetEditActionMirror"
15905 }
15906 ]
15907 },
15908 "minItems": 1,
15909 "type": "array"
15910 }
15911 },
15912 "required": [
15913 "assetId",
15914 "edits"
15915 ],
15916 "type": "object"
15917 },
15918 "AssetFaceCreateDto": {
15919 "properties": {
15920 "assetId": {
15921 "format": "uuid",
15922 "type": "string"
15923 },
15924 "height": {
15925 "type": "integer"
15926 },
15927 "imageHeight": {
15928 "type": "integer"
15929 },
15930 "imageWidth": {
15931 "type": "integer"
15932 },
15933 "personId": {
15934 "format": "uuid",
15935 "type": "string"
15936 },
15937 "width": {
15938 "type": "integer"
15939 },
15940 "x": {
15941 "type": "integer"
15942 },
15943 "y": {
15944 "type": "integer"
15945 }
15946 },
15947 "required": [
15948 "assetId",
15949 "height",
15950 "imageHeight",
15951 "imageWidth",
15952 "personId",
15953 "width",
15954 "x",
15955 "y"
15956 ],
15957 "type": "object"
15958 },
15959 "AssetFaceDeleteDto": {
15960 "properties": {
15961 "force": {
15962 "type": "boolean"
15963 }
15964 },
15965 "required": [
15966 "force"
15967 ],
15968 "type": "object"
15969 },
15970 "AssetFaceResponseDto": {
15971 "properties": {
15972 "boundingBoxX1": {
15973 "type": "integer"
15974 },
15975 "boundingBoxX2": {
15976 "type": "integer"
15977 },
15978 "boundingBoxY1": {
15979 "type": "integer"
15980 },
15981 "boundingBoxY2": {
15982 "type": "integer"
15983 },
15984 "id": {
15985 "format": "uuid",
15986 "type": "string"
15987 },
15988 "imageHeight": {
15989 "type": "integer"
15990 },
15991 "imageWidth": {
15992 "type": "integer"
15993 },
15994 "person": {
15995 "allOf": [
15996 {
15997 "$ref": "#/components/schemas/PersonResponseDto"
15998 }
15999 ],
16000 "nullable": true
16001 },
16002 "sourceType": {
16003 "allOf": [
16004 {
16005 "$ref": "#/components/schemas/SourceType"
16006 }
16007 ]
16008 }
16009 },
16010 "required": [
16011 "boundingBoxX1",
16012 "boundingBoxX2",
16013 "boundingBoxY1",
16014 "boundingBoxY2",
16015 "id",
16016 "imageHeight",
16017 "imageWidth",
16018 "person"
16019 ],
16020 "type": "object"
16021 },
16022 "AssetFaceUpdateDto": {
16023 "properties": {
16024 "data": {
16025 "items": {
16026 "$ref": "#/components/schemas/AssetFaceUpdateItem"
16027 },
16028 "type": "array"
16029 }
16030 },
16031 "required": [
16032 "data"
16033 ],
16034 "type": "object"
16035 },
16036 "AssetFaceUpdateItem": {
16037 "properties": {
16038 "assetId": {
16039 "format": "uuid",
16040 "type": "string"
16041 },
16042 "personId": {
16043 "format": "uuid",
16044 "type": "string"
16045 }
16046 },
16047 "required": [
16048 "assetId",
16049 "personId"
16050 ],
16051 "type": "object"
16052 },
16053 "AssetFaceWithoutPersonResponseDto": {
16054 "properties": {
16055 "boundingBoxX1": {
16056 "type": "integer"
16057 },
16058 "boundingBoxX2": {
16059 "type": "integer"
16060 },
16061 "boundingBoxY1": {
16062 "type": "integer"
16063 },
16064 "boundingBoxY2": {
16065 "type": "integer"
16066 },
16067 "id": {
16068 "format": "uuid",
16069 "type": "string"
16070 },
16071 "imageHeight": {
16072 "type": "integer"
16073 },
16074 "imageWidth": {
16075 "type": "integer"
16076 },
16077 "sourceType": {
16078 "allOf": [
16079 {
16080 "$ref": "#/components/schemas/SourceType"
16081 }
16082 ]
16083 }
16084 },
16085 "required": [
16086 "boundingBoxX1",
16087 "boundingBoxX2",
16088 "boundingBoxY1",
16089 "boundingBoxY2",
16090 "id",
16091 "imageHeight",
16092 "imageWidth"
16093 ],
16094 "type": "object"
16095 },
16096 "AssetFullSyncDto": {
16097 "properties": {
16098 "lastId": {
16099 "format": "uuid",
16100 "type": "string"
16101 },
16102 "limit": {
16103 "minimum": 1,
16104 "type": "integer"
16105 },
16106 "updatedUntil": {
16107 "format": "date-time",
16108 "type": "string"
16109 },
16110 "userId": {
16111 "format": "uuid",
16112 "type": "string"
16113 }
16114 },
16115 "required": [
16116 "limit",
16117 "updatedUntil"
16118 ],
16119 "type": "object"
16120 },
16121 "AssetIdsDto": {
16122 "properties": {
16123 "assetIds": {
16124 "items": {
16125 "format": "uuid",
16126 "type": "string"
16127 },
16128 "type": "array"
16129 }
16130 },
16131 "required": [
16132 "assetIds"
16133 ],
16134 "type": "object"
16135 },
16136 "AssetIdsResponseDto": {
16137 "properties": {
16138 "assetId": {
16139 "type": "string"
16140 },
16141 "error": {
16142 "enum": [
16143 "duplicate",
16144 "no_permission",
16145 "not_found"
16146 ],
16147 "type": "string"
16148 },
16149 "success": {
16150 "type": "boolean"
16151 }
16152 },
16153 "required": [
16154 "assetId",
16155 "success"
16156 ],
16157 "type": "object"
16158 },
16159 "AssetJobName": {
16160 "enum": [
16161 "refresh-faces",
16162 "refresh-metadata",
16163 "regenerate-thumbnail",
16164 "transcode-video"
16165 ],
16166 "type": "string"
16167 },
16168 "AssetJobsDto": {
16169 "properties": {
16170 "assetIds": {
16171 "items": {
16172 "format": "uuid",
16173 "type": "string"
16174 },
16175 "type": "array"
16176 },
16177 "name": {
16178 "allOf": [
16179 {
16180 "$ref": "#/components/schemas/AssetJobName"
16181 }
16182 ]
16183 }
16184 },
16185 "required": [
16186 "assetIds",
16187 "name"
16188 ],
16189 "type": "object"
16190 },
16191 "AssetMediaCreateDto": {
16192 "properties": {
16193 "assetData": {
16194 "format": "binary",
16195 "type": "string"
16196 },
16197 "deviceAssetId": {
16198 "type": "string"
16199 },
16200 "deviceId": {
16201 "type": "string"
16202 },
16203 "duration": {
16204 "type": "string"
16205 },
16206 "fileCreatedAt": {
16207 "format": "date-time",
16208 "type": "string"
16209 },
16210 "fileModifiedAt": {
16211 "format": "date-time",
16212 "type": "string"
16213 },
16214 "filename": {
16215 "type": "string"
16216 },
16217 "isFavorite": {
16218 "type": "boolean"
16219 },
16220 "livePhotoVideoId": {
16221 "format": "uuid",
16222 "type": "string"
16223 },
16224 "metadata": {
16225 "items": {
16226 "$ref": "#/components/schemas/AssetMetadataUpsertItemDto"
16227 },
16228 "type": "array"
16229 },
16230 "sidecarData": {
16231 "format": "binary",
16232 "type": "string"
16233 },
16234 "visibility": {
16235 "allOf": [
16236 {
16237 "$ref": "#/components/schemas/AssetVisibility"
16238 }
16239 ]
16240 }
16241 },
16242 "required": [
16243 "assetData",
16244 "deviceAssetId",
16245 "deviceId",
16246 "fileCreatedAt",
16247 "fileModifiedAt"
16248 ],
16249 "type": "object"
16250 },
16251 "AssetMediaReplaceDto": {
16252 "properties": {
16253 "assetData": {
16254 "format": "binary",
16255 "type": "string"
16256 },
16257 "deviceAssetId": {
16258 "type": "string"
16259 },
16260 "deviceId": {
16261 "type": "string"
16262 },
16263 "duration": {
16264 "type": "string"
16265 },
16266 "fileCreatedAt": {
16267 "format": "date-time",
16268 "type": "string"
16269 },
16270 "fileModifiedAt": {
16271 "format": "date-time",
16272 "type": "string"
16273 },
16274 "filename": {
16275 "type": "string"
16276 }
16277 },
16278 "required": [
16279 "assetData",
16280 "deviceAssetId",
16281 "deviceId",
16282 "fileCreatedAt",
16283 "fileModifiedAt"
16284 ],
16285 "type": "object"
16286 },
16287 "AssetMediaResponseDto": {
16288 "properties": {
16289 "id": {
16290 "type": "string"
16291 },
16292 "status": {
16293 "allOf": [
16294 {
16295 "$ref": "#/components/schemas/AssetMediaStatus"
16296 }
16297 ]
16298 }
16299 },
16300 "required": [
16301 "id",
16302 "status"
16303 ],
16304 "type": "object"
16305 },
16306 "AssetMediaSize": {
16307 "enum": [
16308 "original",
16309 "fullsize",
16310 "preview",
16311 "thumbnail"
16312 ],
16313 "type": "string"
16314 },
16315 "AssetMediaStatus": {
16316 "enum": [
16317 "created",
16318 "replaced",
16319 "duplicate"
16320 ],
16321 "type": "string"
16322 },
16323 "AssetMetadataBulkDeleteDto": {
16324 "properties": {
16325 "items": {
16326 "items": {
16327 "$ref": "#/components/schemas/AssetMetadataBulkDeleteItemDto"
16328 },
16329 "type": "array"
16330 }
16331 },
16332 "required": [
16333 "items"
16334 ],
16335 "type": "object"
16336 },
16337 "AssetMetadataBulkDeleteItemDto": {
16338 "properties": {
16339 "assetId": {
16340 "format": "uuid",
16341 "type": "string"
16342 },
16343 "key": {
16344 "type": "string"
16345 }
16346 },
16347 "required": [
16348 "assetId",
16349 "key"
16350 ],
16351 "type": "object"
16352 },
16353 "AssetMetadataBulkResponseDto": {
16354 "properties": {
16355 "assetId": {
16356 "type": "string"
16357 },
16358 "key": {
16359 "type": "string"
16360 },
16361 "updatedAt": {
16362 "format": "date-time",
16363 "type": "string"
16364 },
16365 "value": {
16366 "type": "object"
16367 }
16368 },
16369 "required": [
16370 "assetId",
16371 "key",
16372 "updatedAt",
16373 "value"
16374 ],
16375 "type": "object"
16376 },
16377 "AssetMetadataBulkUpsertDto": {
16378 "properties": {
16379 "items": {
16380 "items": {
16381 "$ref": "#/components/schemas/AssetMetadataBulkUpsertItemDto"
16382 },
16383 "type": "array"
16384 }
16385 },
16386 "required": [
16387 "items"
16388 ],
16389 "type": "object"
16390 },
16391 "AssetMetadataBulkUpsertItemDto": {
16392 "properties": {
16393 "assetId": {
16394 "format": "uuid",
16395 "type": "string"
16396 },
16397 "key": {
16398 "type": "string"
16399 },
16400 "value": {
16401 "type": "object"
16402 }
16403 },
16404 "required": [
16405 "assetId",
16406 "key",
16407 "value"
16408 ],
16409 "type": "object"
16410 },
16411 "AssetMetadataResponseDto": {
16412 "properties": {
16413 "key": {
16414 "type": "string"
16415 },
16416 "updatedAt": {
16417 "format": "date-time",
16418 "type": "string"
16419 },
16420 "value": {
16421 "type": "object"
16422 }
16423 },
16424 "required": [
16425 "key",
16426 "updatedAt",
16427 "value"
16428 ],
16429 "type": "object"
16430 },
16431 "AssetMetadataUpsertDto": {
16432 "properties": {
16433 "items": {
16434 "items": {
16435 "$ref": "#/components/schemas/AssetMetadataUpsertItemDto"
16436 },
16437 "type": "array"
16438 }
16439 },
16440 "required": [
16441 "items"
16442 ],
16443 "type": "object"
16444 },
16445 "AssetMetadataUpsertItemDto": {
16446 "properties": {
16447 "key": {
16448 "type": "string"
16449 },
16450 "value": {
16451 "type": "object"
16452 }
16453 },
16454 "required": [
16455 "key",
16456 "value"
16457 ],
16458 "type": "object"
16459 },
16460 "AssetOcrResponseDto": {
16461 "properties": {
16462 "assetId": {
16463 "format": "uuid",
16464 "type": "string"
16465 },
16466 "boxScore": {
16467 "description": "Confidence score for text detection box",
16468 "format": "double",
16469 "type": "number"
16470 },
16471 "id": {
16472 "format": "uuid",
16473 "type": "string"
16474 },
16475 "text": {
16476 "description": "Recognized text",
16477 "type": "string"
16478 },
16479 "textScore": {
16480 "description": "Confidence score for text recognition",
16481 "format": "double",
16482 "type": "number"
16483 },
16484 "x1": {
16485 "description": "Normalized x coordinate of box corner 1 (0-1)",
16486 "format": "double",
16487 "type": "number"
16488 },
16489 "x2": {
16490 "description": "Normalized x coordinate of box corner 2 (0-1)",
16491 "format": "double",
16492 "type": "number"
16493 },
16494 "x3": {
16495 "description": "Normalized x coordinate of box corner 3 (0-1)",
16496 "format": "double",
16497 "type": "number"
16498 },
16499 "x4": {
16500 "description": "Normalized x coordinate of box corner 4 (0-1)",
16501 "format": "double",
16502 "type": "number"
16503 },
16504 "y1": {
16505 "description": "Normalized y coordinate of box corner 1 (0-1)",
16506 "format": "double",
16507 "type": "number"
16508 },
16509 "y2": {
16510 "description": "Normalized y coordinate of box corner 2 (0-1)",
16511 "format": "double",
16512 "type": "number"
16513 },
16514 "y3": {
16515 "description": "Normalized y coordinate of box corner 3 (0-1)",
16516 "format": "double",
16517 "type": "number"
16518 },
16519 "y4": {
16520 "description": "Normalized y coordinate of box corner 4 (0-1)",
16521 "format": "double",
16522 "type": "number"
16523 }
16524 },
16525 "required": [
16526 "assetId",
16527 "boxScore",
16528 "id",
16529 "text",
16530 "textScore",
16531 "x1",
16532 "x2",
16533 "x3",
16534 "x4",
16535 "y1",
16536 "y2",
16537 "y3",
16538 "y4"
16539 ],
16540 "type": "object"
16541 },
16542 "AssetOrder": {
16543 "enum": [
16544 "asc",
16545 "desc"
16546 ],
16547 "type": "string"
16548 },
16549 "AssetResponseDto": {
16550 "properties": {
16551 "checksum": {
16552 "description": "base64 encoded sha1 hash",
16553 "type": "string"
16554 },
16555 "createdAt": {
16556 "description": "The UTC timestamp when the asset was originally uploaded to Immich.",
16557 "example": "2024-01-15T20:30:00.000Z",
16558 "format": "date-time",
16559 "type": "string"
16560 },
16561 "deviceAssetId": {
16562 "type": "string"
16563 },
16564 "deviceId": {
16565 "type": "string"
16566 },
16567 "duplicateId": {
16568 "nullable": true,
16569 "type": "string"
16570 },
16571 "duration": {
16572 "type": "string"
16573 },
16574 "exifInfo": {
16575 "$ref": "#/components/schemas/ExifResponseDto"
16576 },
16577 "fileCreatedAt": {
16578 "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.",
16579 "example": "2024-01-15T19:30:00.000Z",
16580 "format": "date-time",
16581 "type": "string"
16582 },
16583 "fileModifiedAt": {
16584 "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.",
16585 "example": "2024-01-16T10:15:00.000Z",
16586 "format": "date-time",
16587 "type": "string"
16588 },
16589 "hasMetadata": {
16590 "type": "boolean"
16591 },
16592 "height": {
16593 "nullable": true,
16594 "type": "number"
16595 },
16596 "id": {
16597 "type": "string"
16598 },
16599 "isArchived": {
16600 "type": "boolean"
16601 },
16602 "isEdited": {
16603 "type": "boolean",
16604 "x-immich-history": [
16605 {
16606 "version": "v2.5.0",
16607 "state": "Added"
16608 },
16609 {
16610 "version": "v2.5.0",
16611 "state": "Beta"
16612 }
16613 ],
16614 "x-immich-state": "Beta"
16615 },
16616 "isFavorite": {
16617 "type": "boolean"
16618 },
16619 "isOffline": {
16620 "type": "boolean"
16621 },
16622 "isTrashed": {
16623 "type": "boolean"
16624 },
16625 "libraryId": {
16626 "deprecated": true,
16627 "nullable": true,
16628 "type": "string",
16629 "x-immich-history": [
16630 {
16631 "version": "v1",
16632 "state": "Added"
16633 },
16634 {
16635 "version": "v1",
16636 "state": "Deprecated"
16637 }
16638 ],
16639 "x-immich-state": "Deprecated"
16640 },
16641 "livePhotoVideoId": {
16642 "nullable": true,
16643 "type": "string"
16644 },
16645 "localDateTime": {
16646 "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.",
16647 "example": "2024-01-15T14:30:00.000Z",
16648 "format": "date-time",
16649 "type": "string"
16650 },
16651 "originalFileName": {
16652 "type": "string"
16653 },
16654 "originalMimeType": {
16655 "type": "string"
16656 },
16657 "originalPath": {
16658 "type": "string"
16659 },
16660 "owner": {
16661 "$ref": "#/components/schemas/UserResponseDto"
16662 },
16663 "ownerId": {
16664 "type": "string"
16665 },
16666 "people": {
16667 "items": {
16668 "$ref": "#/components/schemas/PersonWithFacesResponseDto"
16669 },
16670 "type": "array"
16671 },
16672 "resized": {
16673 "deprecated": true,
16674 "type": "boolean",
16675 "x-immich-history": [
16676 {
16677 "version": "v1",
16678 "state": "Added"
16679 },
16680 {
16681 "version": "v1.113.0",
16682 "state": "Deprecated"
16683 }
16684 ],
16685 "x-immich-state": "Deprecated"
16686 },
16687 "stack": {
16688 "allOf": [
16689 {
16690 "$ref": "#/components/schemas/AssetStackResponseDto"
16691 }
16692 ],
16693 "nullable": true
16694 },
16695 "tags": {
16696 "items": {
16697 "$ref": "#/components/schemas/TagResponseDto"
16698 },
16699 "type": "array"
16700 },
16701 "thumbhash": {
16702 "nullable": true,
16703 "type": "string"
16704 },
16705 "type": {
16706 "allOf": [
16707 {
16708 "$ref": "#/components/schemas/AssetTypeEnum"
16709 }
16710 ]
16711 },
16712 "unassignedFaces": {
16713 "items": {
16714 "$ref": "#/components/schemas/AssetFaceWithoutPersonResponseDto"
16715 },
16716 "type": "array"
16717 },
16718 "updatedAt": {
16719 "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.",
16720 "example": "2024-01-16T12:45:30.000Z",
16721 "format": "date-time",
16722 "type": "string"
16723 },
16724 "visibility": {
16725 "allOf": [
16726 {
16727 "$ref": "#/components/schemas/AssetVisibility"
16728 }
16729 ]
16730 },
16731 "width": {
16732 "nullable": true,
16733 "type": "number"
16734 }
16735 },
16736 "required": [
16737 "checksum",
16738 "createdAt",
16739 "deviceAssetId",
16740 "deviceId",
16741 "duration",
16742 "fileCreatedAt",
16743 "fileModifiedAt",
16744 "hasMetadata",
16745 "height",
16746 "id",
16747 "isArchived",
16748 "isEdited",
16749 "isFavorite",
16750 "isOffline",
16751 "isTrashed",
16752 "localDateTime",
16753 "originalFileName",
16754 "originalPath",
16755 "ownerId",
16756 "thumbhash",
16757 "type",
16758 "updatedAt",
16759 "visibility",
16760 "width"
16761 ],
16762 "type": "object"
16763 },
16764 "AssetStackResponseDto": {
16765 "properties": {
16766 "assetCount": {
16767 "type": "integer"
16768 },
16769 "id": {
16770 "type": "string"
16771 },
16772 "primaryAssetId": {
16773 "type": "string"
16774 }
16775 },
16776 "required": [
16777 "assetCount",
16778 "id",
16779 "primaryAssetId"
16780 ],
16781 "type": "object"
16782 },
16783 "AssetStatsResponseDto": {
16784 "properties": {
16785 "images": {
16786 "type": "integer"
16787 },
16788 "total": {
16789 "type": "integer"
16790 },
16791 "videos": {
16792 "type": "integer"
16793 }
16794 },
16795 "required": [
16796 "images",
16797 "total",
16798 "videos"
16799 ],
16800 "type": "object"
16801 },
16802 "AssetTypeEnum": {
16803 "enum": [
16804 "IMAGE",
16805 "VIDEO",
16806 "AUDIO",
16807 "OTHER"
16808 ],
16809 "type": "string"
16810 },
16811 "AssetVisibility": {
16812 "enum": [
16813 "archive",
16814 "timeline",
16815 "hidden",
16816 "locked"
16817 ],
16818 "type": "string"
16819 },
16820 "AudioCodec": {
16821 "enum": [
16822 "mp3",
16823 "aac",
16824 "libopus",
16825 "pcm_s16le"
16826 ],
16827 "type": "string"
16828 },
16829 "AuthStatusResponseDto": {
16830 "properties": {
16831 "expiresAt": {
16832 "type": "string"
16833 },
16834 "isElevated": {
16835 "type": "boolean"
16836 },
16837 "password": {
16838 "type": "boolean"
16839 },
16840 "pinCode": {
16841 "type": "boolean"
16842 },
16843 "pinExpiresAt": {
16844 "type": "string"
16845 }
16846 },
16847 "required": [
16848 "isElevated",
16849 "password",
16850 "pinCode"
16851 ],
16852 "type": "object"
16853 },
16854 "AvatarUpdate": {
16855 "properties": {
16856 "color": {
16857 "allOf": [
16858 {
16859 "$ref": "#/components/schemas/UserAvatarColor"
16860 }
16861 ]
16862 }
16863 },
16864 "type": "object"
16865 },
16866 "BulkIdErrorReason": {
16867 "enum": [
16868 "duplicate",
16869 "no_permission",
16870 "not_found",
16871 "unknown"
16872 ],
16873 "type": "string"
16874 },
16875 "BulkIdResponseDto": {
16876 "properties": {
16877 "error": {
16878 "enum": [
16879 "duplicate",
16880 "no_permission",
16881 "not_found",
16882 "unknown"
16883 ],
16884 "type": "string"
16885 },
16886 "id": {
16887 "type": "string"
16888 },
16889 "success": {
16890 "type": "boolean"
16891 }
16892 },
16893 "required": [
16894 "id",
16895 "success"
16896 ],
16897 "type": "object"
16898 },
16899 "BulkIdsDto": {
16900 "properties": {
16901 "ids": {
16902 "items": {
16903 "format": "uuid",
16904 "type": "string"
16905 },
16906 "type": "array"
16907 }
16908 },
16909 "required": [
16910 "ids"
16911 ],
16912 "type": "object"
16913 },
16914 "CLIPConfig": {
16915 "properties": {
16916 "enabled": {
16917 "type": "boolean"
16918 },
16919 "modelName": {
16920 "type": "string"
16921 }
16922 },
16923 "required": [
16924 "enabled",
16925 "modelName"
16926 ],
16927 "type": "object"
16928 },
16929 "CQMode": {
16930 "enum": [
16931 "auto",
16932 "cqp",
16933 "icq"
16934 ],
16935 "type": "string"
16936 },
16937 "CastResponse": {
16938 "properties": {
16939 "gCastEnabled": {
16940 "default": false,
16941 "type": "boolean"
16942 }
16943 },
16944 "required": [
16945 "gCastEnabled"
16946 ],
16947 "type": "object"
16948 },
16949 "CastUpdate": {
16950 "properties": {
16951 "gCastEnabled": {
16952 "type": "boolean"
16953 }
16954 },
16955 "type": "object"
16956 },
16957 "ChangePasswordDto": {
16958 "properties": {
16959 "invalidateSessions": {
16960 "default": false,
16961 "type": "boolean"
16962 },
16963 "newPassword": {
16964 "example": "password",
16965 "minLength": 8,
16966 "type": "string"
16967 },
16968 "password": {
16969 "example": "password",
16970 "type": "string"
16971 }
16972 },
16973 "required": [
16974 "newPassword",
16975 "password"
16976 ],
16977 "type": "object"
16978 },
16979 "CheckExistingAssetsDto": {
16980 "properties": {
16981 "deviceAssetIds": {
16982 "items": {
16983 "type": "string"
16984 },
16985 "minItems": 1,
16986 "type": "array"
16987 },
16988 "deviceId": {
16989 "type": "string"
16990 }
16991 },
16992 "required": [
16993 "deviceAssetIds",
16994 "deviceId"
16995 ],
16996 "type": "object"
16997 },
16998 "CheckExistingAssetsResponseDto": {
16999 "properties": {
17000 "existingIds": {
17001 "items": {
17002 "type": "string"
17003 },
17004 "type": "array"
17005 }
17006 },
17007 "required": [
17008 "existingIds"
17009 ],
17010 "type": "object"
17011 },
17012 "Colorspace": {
17013 "enum": [
17014 "srgb",
17015 "p3"
17016 ],
17017 "type": "string"
17018 },
17019 "ContributorCountResponseDto": {
17020 "properties": {
17021 "assetCount": {
17022 "type": "integer"
17023 },
17024 "userId": {
17025 "type": "string"
17026 }
17027 },
17028 "required": [
17029 "assetCount",
17030 "userId"
17031 ],
17032 "type": "object"
17033 },
17034 "CreateAlbumDto": {
17035 "properties": {
17036 "albumName": {
17037 "type": "string"
17038 },
17039 "albumUsers": {
17040 "items": {
17041 "$ref": "#/components/schemas/AlbumUserCreateDto"
17042 },
17043 "type": "array"
17044 },
17045 "assetIds": {
17046 "items": {
17047 "format": "uuid",
17048 "type": "string"
17049 },
17050 "type": "array"
17051 },
17052 "description": {
17053 "type": "string"
17054 }
17055 },
17056 "required": [
17057 "albumName"
17058 ],
17059 "type": "object"
17060 },
17061 "CreateLibraryDto": {
17062 "properties": {
17063 "exclusionPatterns": {
17064 "items": {
17065 "type": "string"
17066 },
17067 "maxItems": 128,
17068 "type": "array",
17069 "uniqueItems": true
17070 },
17071 "importPaths": {
17072 "items": {
17073 "type": "string"
17074 },
17075 "maxItems": 128,
17076 "type": "array",
17077 "uniqueItems": true
17078 },
17079 "name": {
17080 "type": "string"
17081 },
17082 "ownerId": {
17083 "format": "uuid",
17084 "type": "string"
17085 }
17086 },
17087 "required": [
17088 "ownerId"
17089 ],
17090 "type": "object"
17091 },
17092 "CreateProfileImageDto": {
17093 "properties": {
17094 "file": {
17095 "format": "binary",
17096 "type": "string"
17097 }
17098 },
17099 "required": [
17100 "file"
17101 ],
17102 "type": "object"
17103 },
17104 "CreateProfileImageResponseDto": {
17105 "properties": {
17106 "profileChangedAt": {
17107 "format": "date-time",
17108 "type": "string"
17109 },
17110 "profileImagePath": {
17111 "type": "string"
17112 },
17113 "userId": {
17114 "type": "string"
17115 }
17116 },
17117 "required": [
17118 "profileChangedAt",
17119 "profileImagePath",
17120 "userId"
17121 ],
17122 "type": "object"
17123 },
17124 "CropParameters": {
17125 "properties": {
17126 "height": {
17127 "description": "Height of the crop",
17128 "minimum": 1,
17129 "type": "number"
17130 },
17131 "width": {
17132 "description": "Width of the crop",
17133 "minimum": 1,
17134 "type": "number"
17135 },
17136 "x": {
17137 "description": "Top-Left X coordinate of crop",
17138 "minimum": 0,
17139 "type": "number"
17140 },
17141 "y": {
17142 "description": "Top-Left Y coordinate of crop",
17143 "minimum": 0,
17144 "type": "number"
17145 }
17146 },
17147 "required": [
17148 "height",
17149 "width",
17150 "x",
17151 "y"
17152 ],
17153 "type": "object"
17154 },
17155 "DatabaseBackupConfig": {
17156 "properties": {
17157 "cronExpression": {
17158 "type": "string"
17159 },
17160 "enabled": {
17161 "type": "boolean"
17162 },
17163 "keepLastAmount": {
17164 "minimum": 1,
17165 "type": "number"
17166 }
17167 },
17168 "required": [
17169 "cronExpression",
17170 "enabled",
17171 "keepLastAmount"
17172 ],
17173 "type": "object"
17174 },
17175 "DatabaseBackupDeleteDto": {
17176 "properties": {
17177 "backups": {
17178 "items": {
17179 "type": "string"
17180 },
17181 "type": "array"
17182 }
17183 },
17184 "required": [
17185 "backups"
17186 ],
17187 "type": "object"
17188 },
17189 "DatabaseBackupDto": {
17190 "properties": {
17191 "filename": {
17192 "type": "string"
17193 },
17194 "filesize": {
17195 "type": "number"
17196 }
17197 },
17198 "required": [
17199 "filename",
17200 "filesize"
17201 ],
17202 "type": "object"
17203 },
17204 "DatabaseBackupListResponseDto": {
17205 "properties": {
17206 "backups": {
17207 "items": {
17208 "$ref": "#/components/schemas/DatabaseBackupDto"
17209 },
17210 "type": "array"
17211 }
17212 },
17213 "required": [
17214 "backups"
17215 ],
17216 "type": "object"
17217 },
17218 "DatabaseBackupUploadDto": {
17219 "properties": {
17220 "file": {
17221 "format": "binary",
17222 "type": "string"
17223 }
17224 },
17225 "type": "object"
17226 },
17227 "DownloadArchiveInfo": {
17228 "properties": {
17229 "assetIds": {
17230 "items": {
17231 "type": "string"
17232 },
17233 "type": "array"
17234 },
17235 "size": {
17236 "type": "integer"
17237 }
17238 },
17239 "required": [
17240 "assetIds",
17241 "size"
17242 ],
17243 "type": "object"
17244 },
17245 "DownloadInfoDto": {
17246 "properties": {
17247 "albumId": {
17248 "format": "uuid",
17249 "type": "string"
17250 },
17251 "archiveSize": {
17252 "minimum": 1,
17253 "type": "integer"
17254 },
17255 "assetIds": {
17256 "items": {
17257 "format": "uuid",
17258 "type": "string"
17259 },
17260 "type": "array"
17261 },
17262 "userId": {
17263 "format": "uuid",
17264 "type": "string"
17265 }
17266 },
17267 "type": "object"
17268 },
17269 "DownloadResponse": {
17270 "properties": {
17271 "archiveSize": {
17272 "type": "integer"
17273 },
17274 "includeEmbeddedVideos": {
17275 "default": false,
17276 "type": "boolean"
17277 }
17278 },
17279 "required": [
17280 "archiveSize",
17281 "includeEmbeddedVideos"
17282 ],
17283 "type": "object"
17284 },
17285 "DownloadResponseDto": {
17286 "properties": {
17287 "archives": {
17288 "items": {
17289 "$ref": "#/components/schemas/DownloadArchiveInfo"
17290 },
17291 "type": "array"
17292 },
17293 "totalSize": {
17294 "type": "integer"
17295 }
17296 },
17297 "required": [
17298 "archives",
17299 "totalSize"
17300 ],
17301 "type": "object"
17302 },
17303 "DownloadUpdate": {
17304 "properties": {
17305 "archiveSize": {
17306 "minimum": 1,
17307 "type": "integer"
17308 },
17309 "includeEmbeddedVideos": {
17310 "type": "boolean"
17311 }
17312 },
17313 "type": "object"
17314 },
17315 "DuplicateDetectionConfig": {
17316 "properties": {
17317 "enabled": {
17318 "type": "boolean"
17319 },
17320 "maxDistance": {
17321 "format": "double",
17322 "maximum": 0.1,
17323 "minimum": 0.001,
17324 "type": "number"
17325 }
17326 },
17327 "required": [
17328 "enabled",
17329 "maxDistance"
17330 ],
17331 "type": "object"
17332 },
17333 "DuplicateResponseDto": {
17334 "properties": {
17335 "assets": {
17336 "items": {
17337 "$ref": "#/components/schemas/AssetResponseDto"
17338 },
17339 "type": "array"
17340 },
17341 "duplicateId": {
17342 "type": "string"
17343 }
17344 },
17345 "required": [
17346 "assets",
17347 "duplicateId"
17348 ],
17349 "type": "object"
17350 },
17351 "EmailNotificationsResponse": {
17352 "properties": {
17353 "albumInvite": {
17354 "type": "boolean"
17355 },
17356 "albumUpdate": {
17357 "type": "boolean"
17358 },
17359 "enabled": {
17360 "type": "boolean"
17361 }
17362 },
17363 "required": [
17364 "albumInvite",
17365 "albumUpdate",
17366 "enabled"
17367 ],
17368 "type": "object"
17369 },
17370 "EmailNotificationsUpdate": {
17371 "properties": {
17372 "albumInvite": {
17373 "type": "boolean"
17374 },
17375 "albumUpdate": {
17376 "type": "boolean"
17377 },
17378 "enabled": {
17379 "type": "boolean"
17380 }
17381 },
17382 "type": "object"
17383 },
17384 "ExifResponseDto": {
17385 "properties": {
17386 "city": {
17387 "default": null,
17388 "nullable": true,
17389 "type": "string"
17390 },
17391 "country": {
17392 "default": null,
17393 "nullable": true,
17394 "type": "string"
17395 },
17396 "dateTimeOriginal": {
17397 "default": null,
17398 "format": "date-time",
17399 "nullable": true,
17400 "type": "string"
17401 },
17402 "description": {
17403 "default": null,
17404 "nullable": true,
17405 "type": "string"
17406 },
17407 "exifImageHeight": {
17408 "default": null,
17409 "nullable": true,
17410 "type": "number"
17411 },
17412 "exifImageWidth": {
17413 "default": null,
17414 "nullable": true,
17415 "type": "number"
17416 },
17417 "exposureTime": {
17418 "default": null,
17419 "nullable": true,
17420 "type": "string"
17421 },
17422 "fNumber": {
17423 "default": null,
17424 "nullable": true,
17425 "type": "number"
17426 },
17427 "fileSizeInByte": {
17428 "default": null,
17429 "format": "int64",
17430 "nullable": true,
17431 "type": "integer"
17432 },
17433 "focalLength": {
17434 "default": null,
17435 "nullable": true,
17436 "type": "number"
17437 },
17438 "iso": {
17439 "default": null,
17440 "nullable": true,
17441 "type": "number"
17442 },
17443 "latitude": {
17444 "default": null,
17445 "nullable": true,
17446 "type": "number"
17447 },
17448 "lensModel": {
17449 "default": null,
17450 "nullable": true,
17451 "type": "string"
17452 },
17453 "longitude": {
17454 "default": null,
17455 "nullable": true,
17456 "type": "number"
17457 },
17458 "make": {
17459 "default": null,
17460 "nullable": true,
17461 "type": "string"
17462 },
17463 "model": {
17464 "default": null,
17465 "nullable": true,
17466 "type": "string"
17467 },
17468 "modifyDate": {
17469 "default": null,
17470 "format": "date-time",
17471 "nullable": true,
17472 "type": "string"
17473 },
17474 "orientation": {
17475 "default": null,
17476 "nullable": true,
17477 "type": "string"
17478 },
17479 "projectionType": {
17480 "default": null,
17481 "nullable": true,
17482 "type": "string"
17483 },
17484 "rating": {
17485 "default": null,
17486 "nullable": true,
17487 "type": "number"
17488 },
17489 "state": {
17490 "default": null,
17491 "nullable": true,
17492 "type": "string"
17493 },
17494 "timeZone": {
17495 "default": null,
17496 "nullable": true,
17497 "type": "string"
17498 }
17499 },
17500 "type": "object"
17501 },
17502 "FaceDto": {
17503 "properties": {
17504 "id": {
17505 "format": "uuid",
17506 "type": "string"
17507 }
17508 },
17509 "required": [
17510 "id"
17511 ],
17512 "type": "object"
17513 },
17514 "FacialRecognitionConfig": {
17515 "properties": {
17516 "enabled": {
17517 "type": "boolean"
17518 },
17519 "maxDistance": {
17520 "format": "double",
17521 "maximum": 2,
17522 "minimum": 0.1,
17523 "type": "number"
17524 },
17525 "minFaces": {
17526 "minimum": 1,
17527 "type": "integer"
17528 },
17529 "minScore": {
17530 "format": "double",
17531 "maximum": 1,
17532 "minimum": 0.1,
17533 "type": "number"
17534 },
17535 "modelName": {
17536 "type": "string"
17537 }
17538 },
17539 "required": [
17540 "enabled",
17541 "maxDistance",
17542 "minFaces",
17543 "minScore",
17544 "modelName"
17545 ],
17546 "type": "object"
17547 },
17548 "FoldersResponse": {
17549 "properties": {
17550 "enabled": {
17551 "default": false,
17552 "type": "boolean"
17553 },
17554 "sidebarWeb": {
17555 "default": false,
17556 "type": "boolean"
17557 }
17558 },
17559 "required": [
17560 "enabled",
17561 "sidebarWeb"
17562 ],
17563 "type": "object"
17564 },
17565 "FoldersUpdate": {
17566 "properties": {
17567 "enabled": {
17568 "type": "boolean"
17569 },
17570 "sidebarWeb": {
17571 "type": "boolean"
17572 }
17573 },
17574 "type": "object"
17575 },
17576 "ImageFormat": {
17577 "enum": [
17578 "jpeg",
17579 "webp"
17580 ],
17581 "type": "string"
17582 },
17583 "JobCreateDto": {
17584 "properties": {
17585 "name": {
17586 "allOf": [
17587 {
17588 "$ref": "#/components/schemas/ManualJobName"
17589 }
17590 ]
17591 }
17592 },
17593 "required": [
17594 "name"
17595 ],
17596 "type": "object"
17597 },
17598 "JobName": {
17599 "enum": [
17600 "AssetDelete",
17601 "AssetDeleteCheck",
17602 "AssetDetectFacesQueueAll",
17603 "AssetDetectFaces",
17604 "AssetDetectDuplicatesQueueAll",
17605 "AssetDetectDuplicates",
17606 "AssetEditThumbnailGeneration",
17607 "AssetEncodeVideoQueueAll",
17608 "AssetEncodeVideo",
17609 "AssetEmptyTrash",
17610 "AssetExtractMetadataQueueAll",
17611 "AssetExtractMetadata",
17612 "AssetFileMigration",
17613 "AssetGenerateThumbnailsQueueAll",
17614 "AssetGenerateThumbnails",
17615 "AuditLogCleanup",
17616 "AuditTableCleanup",
17617 "DatabaseBackup",
17618 "FacialRecognitionQueueAll",
17619 "FacialRecognition",
17620 "FileDelete",
17621 "FileMigrationQueueAll",
17622 "LibraryDeleteCheck",
17623 "LibraryDelete",
17624 "LibraryRemoveAsset",
17625 "LibraryScanAssetsQueueAll",
17626 "LibrarySyncAssets",
17627 "LibrarySyncFilesQueueAll",
17628 "LibrarySyncFiles",
17629 "LibraryScanQueueAll",
17630 "MemoryCleanup",
17631 "MemoryGenerate",
17632 "NotificationsCleanup",
17633 "NotifyUserSignup",
17634 "NotifyAlbumInvite",
17635 "NotifyAlbumUpdate",
17636 "UserDelete",
17637 "UserDeleteCheck",
17638 "UserSyncUsage",
17639 "PersonCleanup",
17640 "PersonFileMigration",
17641 "PersonGenerateThumbnail",
17642 "SessionCleanup",
17643 "SendMail",
17644 "SidecarQueueAll",
17645 "SidecarCheck",
17646 "SidecarWrite",
17647 "SmartSearchQueueAll",
17648 "SmartSearch",
17649 "StorageTemplateMigration",
17650 "StorageTemplateMigrationSingle",
17651 "TagCleanup",
17652 "VersionCheck",
17653 "OcrQueueAll",
17654 "Ocr",
17655 "WorkflowRun"
17656 ],
17657 "type": "string"
17658 },
17659 "JobSettingsDto": {
17660 "properties": {
17661 "concurrency": {
17662 "minimum": 1,
17663 "type": "integer"
17664 }
17665 },
17666 "required": [
17667 "concurrency"
17668 ],
17669 "type": "object"
17670 },
17671 "LibraryResponseDto": {
17672 "properties": {
17673 "assetCount": {
17674 "type": "integer"
17675 },
17676 "createdAt": {
17677 "format": "date-time",
17678 "type": "string"
17679 },
17680 "exclusionPatterns": {
17681 "items": {
17682 "type": "string"
17683 },
17684 "type": "array"
17685 },
17686 "id": {
17687 "type": "string"
17688 },
17689 "importPaths": {
17690 "items": {
17691 "type": "string"
17692 },
17693 "type": "array"
17694 },
17695 "name": {
17696 "type": "string"
17697 },
17698 "ownerId": {
17699 "type": "string"
17700 },
17701 "refreshedAt": {
17702 "format": "date-time",
17703 "nullable": true,
17704 "type": "string"
17705 },
17706 "updatedAt": {
17707 "format": "date-time",
17708 "type": "string"
17709 }
17710 },
17711 "required": [
17712 "assetCount",
17713 "createdAt",
17714 "exclusionPatterns",
17715 "id",
17716 "importPaths",
17717 "name",
17718 "ownerId",
17719 "refreshedAt",
17720 "updatedAt"
17721 ],
17722 "type": "object"
17723 },
17724 "LibraryStatsResponseDto": {
17725 "properties": {
17726 "photos": {
17727 "default": 0,
17728 "type": "integer"
17729 },
17730 "total": {
17731 "default": 0,
17732 "type": "integer"
17733 },
17734 "usage": {
17735 "default": 0,
17736 "format": "int64",
17737 "type": "integer"
17738 },
17739 "videos": {
17740 "default": 0,
17741 "type": "integer"
17742 }
17743 },
17744 "required": [
17745 "photos",
17746 "total",
17747 "usage",
17748 "videos"
17749 ],
17750 "type": "object"
17751 },
17752 "LicenseKeyDto": {
17753 "properties": {
17754 "activationKey": {
17755 "type": "string"
17756 },
17757 "licenseKey": {
17758 "pattern": "/IM(SV|CL)(-[\\dA-Za-z]{4}){8}/",
17759 "type": "string"
17760 }
17761 },
17762 "required": [
17763 "activationKey",
17764 "licenseKey"
17765 ],
17766 "type": "object"
17767 },
17768 "LicenseResponseDto": {
17769 "properties": {
17770 "activatedAt": {
17771 "format": "date-time",
17772 "type": "string"
17773 },
17774 "activationKey": {
17775 "type": "string"
17776 },
17777 "licenseKey": {
17778 "pattern": "/IM(SV|CL)(-[\\dA-Za-z]{4}){8}/",
17779 "type": "string"
17780 }
17781 },
17782 "required": [
17783 "activatedAt",
17784 "activationKey",
17785 "licenseKey"
17786 ],
17787 "type": "object"
17788 },
17789 "LogLevel": {
17790 "enum": [
17791 "verbose",
17792 "debug",
17793 "log",
17794 "warn",
17795 "error",
17796 "fatal"
17797 ],
17798 "type": "string"
17799 },
17800 "LoginCredentialDto": {
17801 "properties": {
17802 "email": {
17803 "example": "testuser@email.com",
17804 "format": "email",
17805 "type": "string"
17806 },
17807 "password": {
17808 "example": "password",
17809 "type": "string"
17810 }
17811 },
17812 "required": [
17813 "email",
17814 "password"
17815 ],
17816 "type": "object"
17817 },
17818 "LoginResponseDto": {
17819 "properties": {
17820 "accessToken": {
17821 "type": "string"
17822 },
17823 "isAdmin": {
17824 "type": "boolean"
17825 },
17826 "isOnboarded": {
17827 "type": "boolean"
17828 },
17829 "name": {
17830 "type": "string"
17831 },
17832 "profileImagePath": {
17833 "type": "string"
17834 },
17835 "shouldChangePassword": {
17836 "type": "boolean"
17837 },
17838 "userEmail": {
17839 "type": "string"
17840 },
17841 "userId": {
17842 "type": "string"
17843 }
17844 },
17845 "required": [
17846 "accessToken",
17847 "isAdmin",
17848 "isOnboarded",
17849 "name",
17850 "profileImagePath",
17851 "shouldChangePassword",
17852 "userEmail",
17853 "userId"
17854 ],
17855 "type": "object"
17856 },
17857 "LogoutResponseDto": {
17858 "properties": {
17859 "redirectUri": {
17860 "type": "string"
17861 },
17862 "successful": {
17863 "type": "boolean"
17864 }
17865 },
17866 "required": [
17867 "redirectUri",
17868 "successful"
17869 ],
17870 "type": "object"
17871 },
17872 "MachineLearningAvailabilityChecksDto": {
17873 "properties": {
17874 "enabled": {
17875 "type": "boolean"
17876 },
17877 "interval": {
17878 "type": "number"
17879 },
17880 "timeout": {
17881 "type": "number"
17882 }
17883 },
17884 "required": [
17885 "enabled",
17886 "interval",
17887 "timeout"
17888 ],
17889 "type": "object"
17890 },
17891 "MaintenanceAction": {
17892 "enum": [
17893 "start",
17894 "end",
17895 "select_database_restore",
17896 "restore_database"
17897 ],
17898 "type": "string"
17899 },
17900 "MaintenanceAuthDto": {
17901 "properties": {
17902 "username": {
17903 "type": "string"
17904 }
17905 },
17906 "required": [
17907 "username"
17908 ],
17909 "type": "object"
17910 },
17911 "MaintenanceDetectInstallResponseDto": {
17912 "properties": {
17913 "storage": {
17914 "items": {
17915 "$ref": "#/components/schemas/MaintenanceDetectInstallStorageFolderDto"
17916 },
17917 "type": "array"
17918 }
17919 },
17920 "required": [
17921 "storage"
17922 ],
17923 "type": "object"
17924 },
17925 "MaintenanceDetectInstallStorageFolderDto": {
17926 "properties": {
17927 "files": {
17928 "type": "number"
17929 },
17930 "folder": {
17931 "allOf": [
17932 {
17933 "$ref": "#/components/schemas/StorageFolder"
17934 }
17935 ]
17936 },
17937 "readable": {
17938 "type": "boolean"
17939 },
17940 "writable": {
17941 "type": "boolean"
17942 }
17943 },
17944 "required": [
17945 "files",
17946 "folder",
17947 "readable",
17948 "writable"
17949 ],
17950 "type": "object"
17951 },
17952 "MaintenanceLoginDto": {
17953 "properties": {
17954 "token": {
17955 "type": "string"
17956 }
17957 },
17958 "type": "object"
17959 },
17960 "MaintenanceStatusResponseDto": {
17961 "properties": {
17962 "action": {
17963 "allOf": [
17964 {
17965 "$ref": "#/components/schemas/MaintenanceAction"
17966 }
17967 ]
17968 },
17969 "active": {
17970 "type": "boolean"
17971 },
17972 "error": {
17973 "type": "string"
17974 },
17975 "progress": {
17976 "type": "number"
17977 },
17978 "task": {
17979 "type": "string"
17980 }
17981 },
17982 "required": [
17983 "action",
17984 "active"
17985 ],
17986 "type": "object"
17987 },
17988 "ManualJobName": {
17989 "enum": [
17990 "person-cleanup",
17991 "tag-cleanup",
17992 "user-cleanup",
17993 "memory-cleanup",
17994 "memory-create",
17995 "backup-database"
17996 ],
17997 "type": "string"
17998 },
17999 "MapMarkerResponseDto": {
18000 "properties": {
18001 "city": {
18002 "nullable": true,
18003 "type": "string"
18004 },
18005 "country": {
18006 "nullable": true,
18007 "type": "string"
18008 },
18009 "id": {
18010 "type": "string"
18011 },
18012 "lat": {
18013 "format": "double",
18014 "type": "number"
18015 },
18016 "lon": {
18017 "format": "double",
18018 "type": "number"
18019 },
18020 "state": {
18021 "nullable": true,
18022 "type": "string"
18023 }
18024 },
18025 "required": [
18026 "city",
18027 "country",
18028 "id",
18029 "lat",
18030 "lon",
18031 "state"
18032 ],
18033 "type": "object"
18034 },
18035 "MapReverseGeocodeResponseDto": {
18036 "properties": {
18037 "city": {
18038 "nullable": true,
18039 "type": "string"
18040 },
18041 "country": {
18042 "nullable": true,
18043 "type": "string"
18044 },
18045 "state": {
18046 "nullable": true,
18047 "type": "string"
18048 }
18049 },
18050 "required": [
18051 "city",
18052 "country",
18053 "state"
18054 ],
18055 "type": "object"
18056 },
18057 "MemoriesResponse": {
18058 "properties": {
18059 "duration": {
18060 "default": 5,
18061 "type": "integer"
18062 },
18063 "enabled": {
18064 "default": true,
18065 "type": "boolean"
18066 }
18067 },
18068 "required": [
18069 "duration",
18070 "enabled"
18071 ],
18072 "type": "object"
18073 },
18074 "MemoriesUpdate": {
18075 "properties": {
18076 "duration": {
18077 "minimum": 1,
18078 "type": "integer"
18079 },
18080 "enabled": {
18081 "type": "boolean"
18082 }
18083 },
18084 "type": "object"
18085 },
18086 "MemoryCreateDto": {
18087 "properties": {
18088 "assetIds": {
18089 "items": {
18090 "format": "uuid",
18091 "type": "string"
18092 },
18093 "type": "array"
18094 },
18095 "data": {
18096 "$ref": "#/components/schemas/OnThisDayDto"
18097 },
18098 "isSaved": {
18099 "type": "boolean"
18100 },
18101 "memoryAt": {
18102 "format": "date-time",
18103 "type": "string"
18104 },
18105 "seenAt": {
18106 "format": "date-time",
18107 "type": "string"
18108 },
18109 "type": {
18110 "allOf": [
18111 {
18112 "$ref": "#/components/schemas/MemoryType"
18113 }
18114 ]
18115 }
18116 },
18117 "required": [
18118 "data",
18119 "memoryAt",
18120 "type"
18121 ],
18122 "type": "object"
18123 },
18124 "MemoryResponseDto": {
18125 "properties": {
18126 "assets": {
18127 "items": {
18128 "$ref": "#/components/schemas/AssetResponseDto"
18129 },
18130 "type": "array"
18131 },
18132 "createdAt": {
18133 "format": "date-time",
18134 "type": "string"
18135 },
18136 "data": {
18137 "$ref": "#/components/schemas/OnThisDayDto"
18138 },
18139 "deletedAt": {
18140 "format": "date-time",
18141 "type": "string"
18142 },
18143 "hideAt": {
18144 "format": "date-time",
18145 "type": "string"
18146 },
18147 "id": {
18148 "type": "string"
18149 },
18150 "isSaved": {
18151 "type": "boolean"
18152 },
18153 "memoryAt": {
18154 "format": "date-time",
18155 "type": "string"
18156 },
18157 "ownerId": {
18158 "type": "string"
18159 },
18160 "seenAt": {
18161 "format": "date-time",
18162 "type": "string"
18163 },
18164 "showAt": {
18165 "format": "date-time",
18166 "type": "string"
18167 },
18168 "type": {
18169 "allOf": [
18170 {
18171 "$ref": "#/components/schemas/MemoryType"
18172 }
18173 ]
18174 },
18175 "updatedAt": {
18176 "format": "date-time",
18177 "type": "string"
18178 }
18179 },
18180 "required": [
18181 "assets",
18182 "createdAt",
18183 "data",
18184 "id",
18185 "isSaved",
18186 "memoryAt",
18187 "ownerId",
18188 "type",
18189 "updatedAt"
18190 ],
18191 "type": "object"
18192 },
18193 "MemorySearchOrder": {
18194 "enum": [
18195 "asc",
18196 "desc",
18197 "random"
18198 ],
18199 "type": "string"
18200 },
18201 "MemoryStatisticsResponseDto": {
18202 "properties": {
18203 "total": {
18204 "type": "integer"
18205 }
18206 },
18207 "required": [
18208 "total"
18209 ],
18210 "type": "object"
18211 },
18212 "MemoryType": {
18213 "enum": [
18214 "on_this_day"
18215 ],
18216 "type": "string"
18217 },
18218 "MemoryUpdateDto": {
18219 "properties": {
18220 "isSaved": {
18221 "type": "boolean"
18222 },
18223 "memoryAt": {
18224 "format": "date-time",
18225 "type": "string"
18226 },
18227 "seenAt": {
18228 "format": "date-time",
18229 "type": "string"
18230 }
18231 },
18232 "type": "object"
18233 },
18234 "MergePersonDto": {
18235 "properties": {
18236 "ids": {
18237 "items": {
18238 "format": "uuid",
18239 "type": "string"
18240 },
18241 "type": "array"
18242 }
18243 },
18244 "required": [
18245 "ids"
18246 ],
18247 "type": "object"
18248 },
18249 "MetadataSearchDto": {
18250 "properties": {
18251 "albumIds": {
18252 "items": {
18253 "format": "uuid",
18254 "type": "string"
18255 },
18256 "type": "array"
18257 },
18258 "checksum": {
18259 "type": "string"
18260 },
18261 "city": {
18262 "nullable": true,
18263 "type": "string"
18264 },
18265 "country": {
18266 "nullable": true,
18267 "type": "string"
18268 },
18269 "createdAfter": {
18270 "format": "date-time",
18271 "type": "string"
18272 },
18273 "createdBefore": {
18274 "format": "date-time",
18275 "type": "string"
18276 },
18277 "description": {
18278 "type": "string"
18279 },
18280 "deviceAssetId": {
18281 "type": "string"
18282 },
18283 "deviceId": {
18284 "type": "string"
18285 },
18286 "encodedVideoPath": {
18287 "type": "string"
18288 },
18289 "id": {
18290 "format": "uuid",
18291 "type": "string"
18292 },
18293 "isEncoded": {
18294 "type": "boolean"
18295 },
18296 "isFavorite": {
18297 "type": "boolean"
18298 },
18299 "isMotion": {
18300 "type": "boolean"
18301 },
18302 "isNotInAlbum": {
18303 "type": "boolean"
18304 },
18305 "isOffline": {
18306 "type": "boolean"
18307 },
18308 "lensModel": {
18309 "nullable": true,
18310 "type": "string"
18311 },
18312 "libraryId": {
18313 "format": "uuid",
18314 "nullable": true,
18315 "type": "string"
18316 },
18317 "make": {
18318 "type": "string"
18319 },
18320 "model": {
18321 "nullable": true,
18322 "type": "string"
18323 },
18324 "ocr": {
18325 "type": "string"
18326 },
18327 "order": {
18328 "allOf": [
18329 {
18330 "$ref": "#/components/schemas/AssetOrder"
18331 }
18332 ],
18333 "default": "desc"
18334 },
18335 "originalFileName": {
18336 "type": "string"
18337 },
18338 "originalPath": {
18339 "type": "string"
18340 },
18341 "page": {
18342 "minimum": 1,
18343 "type": "number"
18344 },
18345 "personIds": {
18346 "items": {
18347 "format": "uuid",
18348 "type": "string"
18349 },
18350 "type": "array"
18351 },
18352 "previewPath": {
18353 "type": "string"
18354 },
18355 "rating": {
18356 "maximum": 5,
18357 "minimum": -1,
18358 "type": "number"
18359 },
18360 "size": {
18361 "maximum": 1000,
18362 "minimum": 1,
18363 "type": "number"
18364 },
18365 "state": {
18366 "nullable": true,
18367 "type": "string"
18368 },
18369 "tagIds": {
18370 "items": {
18371 "format": "uuid",
18372 "type": "string"
18373 },
18374 "nullable": true,
18375 "type": "array"
18376 },
18377 "takenAfter": {
18378 "format": "date-time",
18379 "type": "string"
18380 },
18381 "takenBefore": {
18382 "format": "date-time",
18383 "type": "string"
18384 },
18385 "thumbnailPath": {
18386 "type": "string"
18387 },
18388 "trashedAfter": {
18389 "format": "date-time",
18390 "type": "string"
18391 },
18392 "trashedBefore": {
18393 "format": "date-time",
18394 "type": "string"
18395 },
18396 "type": {
18397 "allOf": [
18398 {
18399 "$ref": "#/components/schemas/AssetTypeEnum"
18400 }
18401 ]
18402 },
18403 "updatedAfter": {
18404 "format": "date-time",
18405 "type": "string"
18406 },
18407 "updatedBefore": {
18408 "format": "date-time",
18409 "type": "string"
18410 },
18411 "visibility": {
18412 "allOf": [
18413 {
18414 "$ref": "#/components/schemas/AssetVisibility"
18415 }
18416 ]
18417 },
18418 "withDeleted": {
18419 "type": "boolean"
18420 },
18421 "withExif": {
18422 "type": "boolean"
18423 },
18424 "withPeople": {
18425 "type": "boolean"
18426 },
18427 "withStacked": {
18428 "type": "boolean"
18429 }
18430 },
18431 "type": "object"
18432 },
18433 "MirrorAxis": {
18434 "description": "Axis to mirror along",
18435 "enum": [
18436 "horizontal",
18437 "vertical"
18438 ],
18439 "type": "string"
18440 },
18441 "MirrorParameters": {
18442 "properties": {
18443 "axis": {
18444 "allOf": [
18445 {
18446 "$ref": "#/components/schemas/MirrorAxis"
18447 }
18448 ],
18449 "description": "Axis to mirror along"
18450 }
18451 },
18452 "required": [
18453 "axis"
18454 ],
18455 "type": "object"
18456 },
18457 "NotificationCreateDto": {
18458 "properties": {
18459 "data": {
18460 "type": "object"
18461 },
18462 "description": {
18463 "nullable": true,
18464 "type": "string"
18465 },
18466 "level": {
18467 "allOf": [
18468 {
18469 "$ref": "#/components/schemas/NotificationLevel"
18470 }
18471 ]
18472 },
18473 "readAt": {
18474 "format": "date-time",
18475 "nullable": true,
18476 "type": "string"
18477 },
18478 "title": {
18479 "type": "string"
18480 },
18481 "type": {
18482 "allOf": [
18483 {
18484 "$ref": "#/components/schemas/NotificationType"
18485 }
18486 ]
18487 },
18488 "userId": {
18489 "format": "uuid",
18490 "type": "string"
18491 }
18492 },
18493 "required": [
18494 "title",
18495 "userId"
18496 ],
18497 "type": "object"
18498 },
18499 "NotificationDeleteAllDto": {
18500 "properties": {
18501 "ids": {
18502 "items": {
18503 "format": "uuid",
18504 "type": "string"
18505 },
18506 "type": "array"
18507 }
18508 },
18509 "required": [
18510 "ids"
18511 ],
18512 "type": "object"
18513 },
18514 "NotificationDto": {
18515 "properties": {
18516 "createdAt": {
18517 "format": "date-time",
18518 "type": "string"
18519 },
18520 "data": {
18521 "type": "object"
18522 },
18523 "description": {
18524 "type": "string"
18525 },
18526 "id": {
18527 "type": "string"
18528 },
18529 "level": {
18530 "allOf": [
18531 {
18532 "$ref": "#/components/schemas/NotificationLevel"
18533 }
18534 ]
18535 },
18536 "readAt": {
18537 "format": "date-time",
18538 "type": "string"
18539 },
18540 "title": {
18541 "type": "string"
18542 },
18543 "type": {
18544 "allOf": [
18545 {
18546 "$ref": "#/components/schemas/NotificationType"
18547 }
18548 ]
18549 }
18550 },
18551 "required": [
18552 "createdAt",
18553 "id",
18554 "level",
18555 "title",
18556 "type"
18557 ],
18558 "type": "object"
18559 },
18560 "NotificationLevel": {
18561 "enum": [
18562 "success",
18563 "error",
18564 "warning",
18565 "info"
18566 ],
18567 "type": "string"
18568 },
18569 "NotificationType": {
18570 "enum": [
18571 "JobFailed",
18572 "BackupFailed",
18573 "SystemMessage",
18574 "AlbumInvite",
18575 "AlbumUpdate",
18576 "Custom"
18577 ],
18578 "type": "string"
18579 },
18580 "NotificationUpdateAllDto": {
18581 "properties": {
18582 "ids": {
18583 "items": {
18584 "format": "uuid",
18585 "type": "string"
18586 },
18587 "type": "array"
18588 },
18589 "readAt": {
18590 "format": "date-time",
18591 "nullable": true,
18592 "type": "string"
18593 }
18594 },
18595 "required": [
18596 "ids"
18597 ],
18598 "type": "object"
18599 },
18600 "NotificationUpdateDto": {
18601 "properties": {
18602 "readAt": {
18603 "format": "date-time",
18604 "nullable": true,
18605 "type": "string"
18606 }
18607 },
18608 "type": "object"
18609 },
18610 "OAuthAuthorizeResponseDto": {
18611 "properties": {
18612 "url": {
18613 "type": "string"
18614 }
18615 },
18616 "required": [
18617 "url"
18618 ],
18619 "type": "object"
18620 },
18621 "OAuthCallbackDto": {
18622 "properties": {
18623 "codeVerifier": {
18624 "type": "string"
18625 },
18626 "state": {
18627 "type": "string"
18628 },
18629 "url": {
18630 "type": "string"
18631 }
18632 },
18633 "required": [
18634 "url"
18635 ],
18636 "type": "object"
18637 },
18638 "OAuthConfigDto": {
18639 "properties": {
18640 "codeChallenge": {
18641 "type": "string"
18642 },
18643 "redirectUri": {
18644 "type": "string"
18645 },
18646 "state": {
18647 "type": "string"
18648 }
18649 },
18650 "required": [
18651 "redirectUri"
18652 ],
18653 "type": "object"
18654 },
18655 "OAuthTokenEndpointAuthMethod": {
18656 "enum": [
18657 "client_secret_post",
18658 "client_secret_basic"
18659 ],
18660 "type": "string"
18661 },
18662 "OcrConfig": {
18663 "properties": {
18664 "enabled": {
18665 "type": "boolean"
18666 },
18667 "maxResolution": {
18668 "minimum": 1,
18669 "type": "integer"
18670 },
18671 "minDetectionScore": {
18672 "format": "double",
18673 "maximum": 1,
18674 "minimum": 0.1,
18675 "type": "number"
18676 },
18677 "minRecognitionScore": {
18678 "format": "double",
18679 "maximum": 1,
18680 "minimum": 0.1,
18681 "type": "number"
18682 },
18683 "modelName": {
18684 "type": "string"
18685 }
18686 },
18687 "required": [
18688 "enabled",
18689 "maxResolution",
18690 "minDetectionScore",
18691 "minRecognitionScore",
18692 "modelName"
18693 ],
18694 "type": "object"
18695 },
18696 "OnThisDayDto": {
18697 "properties": {
18698 "year": {
18699 "minimum": 1,
18700 "type": "number"
18701 }
18702 },
18703 "required": [
18704 "year"
18705 ],
18706 "type": "object"
18707 },
18708 "OnboardingDto": {
18709 "properties": {
18710 "isOnboarded": {
18711 "type": "boolean"
18712 }
18713 },
18714 "required": [
18715 "isOnboarded"
18716 ],
18717 "type": "object"
18718 },
18719 "OnboardingResponseDto": {
18720 "properties": {
18721 "isOnboarded": {
18722 "type": "boolean"
18723 }
18724 },
18725 "required": [
18726 "isOnboarded"
18727 ],
18728 "type": "object"
18729 },
18730 "PartnerCreateDto": {
18731 "properties": {
18732 "sharedWithId": {
18733 "format": "uuid",
18734 "type": "string"
18735 }
18736 },
18737 "required": [
18738 "sharedWithId"
18739 ],
18740 "type": "object"
18741 },
18742 "PartnerDirection": {
18743 "enum": [
18744 "shared-by",
18745 "shared-with"
18746 ],
18747 "type": "string"
18748 },
18749 "PartnerResponseDto": {
18750 "properties": {
18751 "avatarColor": {
18752 "allOf": [
18753 {
18754 "$ref": "#/components/schemas/UserAvatarColor"
18755 }
18756 ]
18757 },
18758 "email": {
18759 "type": "string"
18760 },
18761 "id": {
18762 "type": "string"
18763 },
18764 "inTimeline": {
18765 "type": "boolean"
18766 },
18767 "name": {
18768 "type": "string"
18769 },
18770 "profileChangedAt": {
18771 "format": "date-time",
18772 "type": "string"
18773 },
18774 "profileImagePath": {
18775 "type": "string"
18776 }
18777 },
18778 "required": [
18779 "avatarColor",
18780 "email",
18781 "id",
18782 "name",
18783 "profileChangedAt",
18784 "profileImagePath"
18785 ],
18786 "type": "object"
18787 },
18788 "PartnerUpdateDto": {
18789 "properties": {
18790 "inTimeline": {
18791 "type": "boolean"
18792 }
18793 },
18794 "required": [
18795 "inTimeline"
18796 ],
18797 "type": "object"
18798 },
18799 "PeopleResponse": {
18800 "properties": {
18801 "enabled": {
18802 "default": true,
18803 "type": "boolean"
18804 },
18805 "sidebarWeb": {
18806 "default": false,
18807 "type": "boolean"
18808 }
18809 },
18810 "required": [
18811 "enabled",
18812 "sidebarWeb"
18813 ],
18814 "type": "object"
18815 },
18816 "PeopleResponseDto": {
18817 "properties": {
18818 "hasNextPage": {
18819 "type": "boolean",
18820 "x-immich-history": [
18821 {
18822 "version": "v1.110.0",
18823 "state": "Added"
18824 },
18825 {
18826 "version": "v2",
18827 "state": "Stable"
18828 }
18829 ],
18830 "x-immich-state": "Stable"
18831 },
18832 "hidden": {
18833 "type": "integer"
18834 },
18835 "people": {
18836 "items": {
18837 "$ref": "#/components/schemas/PersonResponseDto"
18838 },
18839 "type": "array"
18840 },
18841 "total": {
18842 "type": "integer"
18843 }
18844 },
18845 "required": [
18846 "hidden",
18847 "people",
18848 "total"
18849 ],
18850 "type": "object"
18851 },
18852 "PeopleUpdate": {
18853 "properties": {
18854 "enabled": {
18855 "type": "boolean"
18856 },
18857 "sidebarWeb": {
18858 "type": "boolean"
18859 }
18860 },
18861 "type": "object"
18862 },
18863 "PeopleUpdateDto": {
18864 "properties": {
18865 "people": {
18866 "items": {
18867 "$ref": "#/components/schemas/PeopleUpdateItem"
18868 },
18869 "type": "array"
18870 }
18871 },
18872 "required": [
18873 "people"
18874 ],
18875 "type": "object"
18876 },
18877 "PeopleUpdateItem": {
18878 "properties": {
18879 "birthDate": {
18880 "description": "Person date of birth.\nNote: the mobile app cannot currently set the birth date to null.",
18881 "format": "date",
18882 "nullable": true,
18883 "type": "string"
18884 },
18885 "color": {
18886 "nullable": true,
18887 "type": "string"
18888 },
18889 "featureFaceAssetId": {
18890 "description": "Asset is used to get the feature face thumbnail.",
18891 "format": "uuid",
18892 "type": "string"
18893 },
18894 "id": {
18895 "description": "Person id.",
18896 "type": "string"
18897 },
18898 "isFavorite": {
18899 "type": "boolean"
18900 },
18901 "isHidden": {
18902 "description": "Person visibility",
18903 "type": "boolean"
18904 },
18905 "name": {
18906 "description": "Person name.",
18907 "type": "string"
18908 }
18909 },
18910 "required": [
18911 "id"
18912 ],
18913 "type": "object"
18914 },
18915 "Permission": {
18916 "enum": [
18917 "all",
18918 "activity.create",
18919 "activity.read",
18920 "activity.update",
18921 "activity.delete",
18922 "activity.statistics",
18923 "apiKey.create",
18924 "apiKey.read",
18925 "apiKey.update",
18926 "apiKey.delete",
18927 "asset.read",
18928 "asset.update",
18929 "asset.delete",
18930 "asset.statistics",
18931 "asset.share",
18932 "asset.view",
18933 "asset.download",
18934 "asset.upload",
18935 "asset.replace",
18936 "asset.copy",
18937 "asset.derive",
18938 "asset.edit.get",
18939 "asset.edit.create",
18940 "asset.edit.delete",
18941 "album.create",
18942 "album.read",
18943 "album.update",
18944 "album.delete",
18945 "album.statistics",
18946 "album.share",
18947 "album.download",
18948 "albumAsset.create",
18949 "albumAsset.delete",
18950 "albumUser.create",
18951 "albumUser.update",
18952 "albumUser.delete",
18953 "auth.changePassword",
18954 "authDevice.delete",
18955 "archive.read",
18956 "backup.list",
18957 "backup.download",
18958 "backup.upload",
18959 "backup.delete",
18960 "duplicate.read",
18961 "duplicate.delete",
18962 "face.create",
18963 "face.read",
18964 "face.update",
18965 "face.delete",
18966 "folder.read",
18967 "job.create",
18968 "job.read",
18969 "library.create",
18970 "library.read",
18971 "library.update",
18972 "library.delete",
18973 "library.statistics",
18974 "timeline.read",
18975 "timeline.download",
18976 "maintenance",
18977 "map.read",
18978 "map.search",
18979 "memory.create",
18980 "memory.read",
18981 "memory.update",
18982 "memory.delete",
18983 "memory.statistics",
18984 "memoryAsset.create",
18985 "memoryAsset.delete",
18986 "notification.create",
18987 "notification.read",
18988 "notification.update",
18989 "notification.delete",
18990 "partner.create",
18991 "partner.read",
18992 "partner.update",
18993 "partner.delete",
18994 "person.create",
18995 "person.read",
18996 "person.update",
18997 "person.delete",
18998 "person.statistics",
18999 "person.merge",
19000 "person.reassign",
19001 "pinCode.create",
19002 "pinCode.update",
19003 "pinCode.delete",
19004 "plugin.create",
19005 "plugin.read",
19006 "plugin.update",
19007 "plugin.delete",
19008 "server.about",
19009 "server.apkLinks",
19010 "server.storage",
19011 "server.statistics",
19012 "server.versionCheck",
19013 "serverLicense.read",
19014 "serverLicense.update",
19015 "serverLicense.delete",
19016 "session.create",
19017 "session.read",
19018 "session.update",
19019 "session.delete",
19020 "session.lock",
19021 "sharedLink.create",
19022 "sharedLink.read",
19023 "sharedLink.update",
19024 "sharedLink.delete",
19025 "stack.create",
19026 "stack.read",
19027 "stack.update",
19028 "stack.delete",
19029 "sync.stream",
19030 "syncCheckpoint.read",
19031 "syncCheckpoint.update",
19032 "syncCheckpoint.delete",
19033 "systemConfig.read",
19034 "systemConfig.update",
19035 "systemMetadata.read",
19036 "systemMetadata.update",
19037 "tag.create",
19038 "tag.read",
19039 "tag.update",
19040 "tag.delete",
19041 "tag.asset",
19042 "user.read",
19043 "user.update",
19044 "userLicense.create",
19045 "userLicense.read",
19046 "userLicense.update",
19047 "userLicense.delete",
19048 "userOnboarding.read",
19049 "userOnboarding.update",
19050 "userOnboarding.delete",
19051 "userPreference.read",
19052 "userPreference.update",
19053 "userProfileImage.create",
19054 "userProfileImage.read",
19055 "userProfileImage.update",
19056 "userProfileImage.delete",
19057 "queue.read",
19058 "queue.update",
19059 "queueJob.create",
19060 "queueJob.read",
19061 "queueJob.update",
19062 "queueJob.delete",
19063 "workflow.create",
19064 "workflow.read",
19065 "workflow.update",
19066 "workflow.delete",
19067 "adminUser.create",
19068 "adminUser.read",
19069 "adminUser.update",
19070 "adminUser.delete",
19071 "adminSession.read",
19072 "adminAuth.unlinkAll"
19073 ],
19074 "type": "string"
19075 },
19076 "PersonCreateDto": {
19077 "properties": {
19078 "birthDate": {
19079 "description": "Person date of birth.\nNote: the mobile app cannot currently set the birth date to null.",
19080 "format": "date",
19081 "nullable": true,
19082 "type": "string"
19083 },
19084 "color": {
19085 "nullable": true,
19086 "type": "string"
19087 },
19088 "isFavorite": {
19089 "type": "boolean"
19090 },
19091 "isHidden": {
19092 "description": "Person visibility",
19093 "type": "boolean"
19094 },
19095 "name": {
19096 "description": "Person name.",
19097 "type": "string"
19098 }
19099 },
19100 "type": "object"
19101 },
19102 "PersonResponseDto": {
19103 "properties": {
19104 "birthDate": {
19105 "format": "date",
19106 "nullable": true,
19107 "type": "string"
19108 },
19109 "color": {
19110 "type": "string",
19111 "x-immich-history": [
19112 {
19113 "version": "v1.126.0",
19114 "state": "Added"
19115 },
19116 {
19117 "version": "v2",
19118 "state": "Stable"
19119 }
19120 ],
19121 "x-immich-state": "Stable"
19122 },
19123 "id": {
19124 "type": "string"
19125 },
19126 "isFavorite": {
19127 "type": "boolean",
19128 "x-immich-history": [
19129 {
19130 "version": "v1.126.0",
19131 "state": "Added"
19132 },
19133 {
19134 "version": "v2",
19135 "state": "Stable"
19136 }
19137 ],
19138 "x-immich-state": "Stable"
19139 },
19140 "isHidden": {
19141 "type": "boolean"
19142 },
19143 "name": {
19144 "type": "string"
19145 },
19146 "thumbnailPath": {
19147 "type": "string"
19148 },
19149 "updatedAt": {
19150 "format": "date-time",
19151 "type": "string",
19152 "x-immich-history": [
19153 {
19154 "version": "v1.107.0",
19155 "state": "Added"
19156 },
19157 {
19158 "version": "v2",
19159 "state": "Stable"
19160 }
19161 ],
19162 "x-immich-state": "Stable"
19163 }
19164 },
19165 "required": [
19166 "birthDate",
19167 "id",
19168 "isHidden",
19169 "name",
19170 "thumbnailPath"
19171 ],
19172 "type": "object"
19173 },
19174 "PersonStatisticsResponseDto": {
19175 "properties": {
19176 "assets": {
19177 "type": "integer"
19178 }
19179 },
19180 "required": [
19181 "assets"
19182 ],
19183 "type": "object"
19184 },
19185 "PersonUpdateDto": {
19186 "properties": {
19187 "birthDate": {
19188 "description": "Person date of birth.\nNote: the mobile app cannot currently set the birth date to null.",
19189 "format": "date",
19190 "nullable": true,
19191 "type": "string"
19192 },
19193 "color": {
19194 "nullable": true,
19195 "type": "string"
19196 },
19197 "featureFaceAssetId": {
19198 "description": "Asset is used to get the feature face thumbnail.",
19199 "format": "uuid",
19200 "type": "string"
19201 },
19202 "isFavorite": {
19203 "type": "boolean"
19204 },
19205 "isHidden": {
19206 "description": "Person visibility",
19207 "type": "boolean"
19208 },
19209 "name": {
19210 "description": "Person name.",
19211 "type": "string"
19212 }
19213 },
19214 "type": "object"
19215 },
19216 "PersonWithFacesResponseDto": {
19217 "properties": {
19218 "birthDate": {
19219 "format": "date",
19220 "nullable": true,
19221 "type": "string"
19222 },
19223 "color": {
19224 "type": "string",
19225 "x-immich-history": [
19226 {
19227 "version": "v1.126.0",
19228 "state": "Added"
19229 },
19230 {
19231 "version": "v2",
19232 "state": "Stable"
19233 }
19234 ],
19235 "x-immich-state": "Stable"
19236 },
19237 "faces": {
19238 "items": {
19239 "$ref": "#/components/schemas/AssetFaceWithoutPersonResponseDto"
19240 },
19241 "type": "array"
19242 },
19243 "id": {
19244 "type": "string"
19245 },
19246 "isFavorite": {
19247 "type": "boolean",
19248 "x-immich-history": [
19249 {
19250 "version": "v1.126.0",
19251 "state": "Added"
19252 },
19253 {
19254 "version": "v2",
19255 "state": "Stable"
19256 }
19257 ],
19258 "x-immich-state": "Stable"
19259 },
19260 "isHidden": {
19261 "type": "boolean"
19262 },
19263 "name": {
19264 "type": "string"
19265 },
19266 "thumbnailPath": {
19267 "type": "string"
19268 },
19269 "updatedAt": {
19270 "format": "date-time",
19271 "type": "string",
19272 "x-immich-history": [
19273 {
19274 "version": "v1.107.0",
19275 "state": "Added"
19276 },
19277 {
19278 "version": "v2",
19279 "state": "Stable"
19280 }
19281 ],
19282 "x-immich-state": "Stable"
19283 }
19284 },
19285 "required": [
19286 "birthDate",
19287 "faces",
19288 "id",
19289 "isHidden",
19290 "name",
19291 "thumbnailPath"
19292 ],
19293 "type": "object"
19294 },
19295 "PinCodeChangeDto": {
19296 "properties": {
19297 "newPinCode": {
19298 "example": "123456",
19299 "type": "string"
19300 },
19301 "password": {
19302 "type": "string"
19303 },
19304 "pinCode": {
19305 "example": "123456",
19306 "type": "string"
19307 }
19308 },
19309 "required": [
19310 "newPinCode"
19311 ],
19312 "type": "object"
19313 },
19314 "PinCodeResetDto": {
19315 "properties": {
19316 "password": {
19317 "type": "string"
19318 },
19319 "pinCode": {
19320 "example": "123456",
19321 "type": "string"
19322 }
19323 },
19324 "type": "object"
19325 },
19326 "PinCodeSetupDto": {
19327 "properties": {
19328 "pinCode": {
19329 "example": "123456",
19330 "type": "string"
19331 }
19332 },
19333 "required": [
19334 "pinCode"
19335 ],
19336 "type": "object"
19337 },
19338 "PlacesResponseDto": {
19339 "properties": {
19340 "admin1name": {
19341 "type": "string"
19342 },
19343 "admin2name": {
19344 "type": "string"
19345 },
19346 "latitude": {
19347 "type": "number"
19348 },
19349 "longitude": {
19350 "type": "number"
19351 },
19352 "name": {
19353 "type": "string"
19354 }
19355 },
19356 "required": [
19357 "latitude",
19358 "longitude",
19359 "name"
19360 ],
19361 "type": "object"
19362 },
19363 "PluginActionResponseDto": {
19364 "properties": {
19365 "description": {
19366 "type": "string"
19367 },
19368 "id": {
19369 "type": "string"
19370 },
19371 "methodName": {
19372 "type": "string"
19373 },
19374 "pluginId": {
19375 "type": "string"
19376 },
19377 "schema": {
19378 "nullable": true,
19379 "type": "object"
19380 },
19381 "supportedContexts": {
19382 "items": {
19383 "$ref": "#/components/schemas/PluginContextType"
19384 },
19385 "type": "array"
19386 },
19387 "title": {
19388 "type": "string"
19389 }
19390 },
19391 "required": [
19392 "description",
19393 "id",
19394 "methodName",
19395 "pluginId",
19396 "schema",
19397 "supportedContexts",
19398 "title"
19399 ],
19400 "type": "object"
19401 },
19402 "PluginContextType": {
19403 "enum": [
19404 "asset",
19405 "album",
19406 "person"
19407 ],
19408 "type": "string"
19409 },
19410 "PluginFilterResponseDto": {
19411 "properties": {
19412 "description": {
19413 "type": "string"
19414 },
19415 "id": {
19416 "type": "string"
19417 },
19418 "methodName": {
19419 "type": "string"
19420 },
19421 "pluginId": {
19422 "type": "string"
19423 },
19424 "schema": {
19425 "nullable": true,
19426 "type": "object"
19427 },
19428 "supportedContexts": {
19429 "items": {
19430 "$ref": "#/components/schemas/PluginContextType"
19431 },
19432 "type": "array"
19433 },
19434 "title": {
19435 "type": "string"
19436 }
19437 },
19438 "required": [
19439 "description",
19440 "id",
19441 "methodName",
19442 "pluginId",
19443 "schema",
19444 "supportedContexts",
19445 "title"
19446 ],
19447 "type": "object"
19448 },
19449 "PluginResponseDto": {
19450 "properties": {
19451 "actions": {
19452 "items": {
19453 "$ref": "#/components/schemas/PluginActionResponseDto"
19454 },
19455 "type": "array"
19456 },
19457 "author": {
19458 "type": "string"
19459 },
19460 "createdAt": {
19461 "type": "string"
19462 },
19463 "description": {
19464 "type": "string"
19465 },
19466 "filters": {
19467 "items": {
19468 "$ref": "#/components/schemas/PluginFilterResponseDto"
19469 },
19470 "type": "array"
19471 },
19472 "id": {
19473 "type": "string"
19474 },
19475 "name": {
19476 "type": "string"
19477 },
19478 "title": {
19479 "type": "string"
19480 },
19481 "updatedAt": {
19482 "type": "string"
19483 },
19484 "version": {
19485 "type": "string"
19486 }
19487 },
19488 "required": [
19489 "actions",
19490 "author",
19491 "createdAt",
19492 "description",
19493 "filters",
19494 "id",
19495 "name",
19496 "title",
19497 "updatedAt",
19498 "version"
19499 ],
19500 "type": "object"
19501 },
19502 "PluginTriggerResponseDto": {
19503 "properties": {
19504 "contextType": {
19505 "allOf": [
19506 {
19507 "$ref": "#/components/schemas/PluginContextType"
19508 }
19509 ]
19510 },
19511 "type": {
19512 "allOf": [
19513 {
19514 "$ref": "#/components/schemas/PluginTriggerType"
19515 }
19516 ]
19517 }
19518 },
19519 "required": [
19520 "contextType",
19521 "type"
19522 ],
19523 "type": "object"
19524 },
19525 "PluginTriggerType": {
19526 "enum": [
19527 "AssetCreate",
19528 "PersonRecognized"
19529 ],
19530 "type": "string"
19531 },
19532 "PurchaseResponse": {
19533 "properties": {
19534 "hideBuyButtonUntil": {
19535 "type": "string"
19536 },
19537 "showSupportBadge": {
19538 "type": "boolean"
19539 }
19540 },
19541 "required": [
19542 "hideBuyButtonUntil",
19543 "showSupportBadge"
19544 ],
19545 "type": "object"
19546 },
19547 "PurchaseUpdate": {
19548 "properties": {
19549 "hideBuyButtonUntil": {
19550 "type": "string"
19551 },
19552 "showSupportBadge": {
19553 "type": "boolean"
19554 }
19555 },
19556 "type": "object"
19557 },
19558 "QueueCommand": {
19559 "enum": [
19560 "start",
19561 "pause",
19562 "resume",
19563 "empty",
19564 "clear-failed"
19565 ],
19566 "type": "string"
19567 },
19568 "QueueCommandDto": {
19569 "properties": {
19570 "command": {
19571 "allOf": [
19572 {
19573 "$ref": "#/components/schemas/QueueCommand"
19574 }
19575 ]
19576 },
19577 "force": {
19578 "type": "boolean"
19579 }
19580 },
19581 "required": [
19582 "command"
19583 ],
19584 "type": "object"
19585 },
19586 "QueueDeleteDto": {
19587 "properties": {
19588 "failed": {
19589 "description": "If true, will also remove failed jobs from the queue.",
19590 "type": "boolean",
19591 "x-immich-history": [
19592 {
19593 "version": "v2.4.0",
19594 "state": "Added"
19595 },
19596 {
19597 "version": "v2.4.0",
19598 "state": "Alpha"
19599 }
19600 ],
19601 "x-immich-state": "Alpha"
19602 }
19603 },
19604 "type": "object"
19605 },
19606 "QueueJobResponseDto": {
19607 "properties": {
19608 "data": {
19609 "type": "object"
19610 },
19611 "id": {
19612 "type": "string"
19613 },
19614 "name": {
19615 "allOf": [
19616 {
19617 "$ref": "#/components/schemas/JobName"
19618 }
19619 ]
19620 },
19621 "timestamp": {
19622 "type": "integer"
19623 }
19624 },
19625 "required": [
19626 "data",
19627 "name",
19628 "timestamp"
19629 ],
19630 "type": "object"
19631 },
19632 "QueueJobStatus": {
19633 "enum": [
19634 "active",
19635 "failed",
19636 "completed",
19637 "delayed",
19638 "waiting",
19639 "paused"
19640 ],
19641 "type": "string"
19642 },
19643 "QueueName": {
19644 "enum": [
19645 "thumbnailGeneration",
19646 "metadataExtraction",
19647 "videoConversion",
19648 "faceDetection",
19649 "facialRecognition",
19650 "smartSearch",
19651 "duplicateDetection",
19652 "backgroundTask",
19653 "storageTemplateMigration",
19654 "migration",
19655 "search",
19656 "sidecar",
19657 "library",
19658 "notifications",
19659 "backupDatabase",
19660 "ocr",
19661 "workflow",
19662 "editor"
19663 ],
19664 "type": "string"
19665 },
19666 "QueueResponseDto": {
19667 "properties": {
19668 "isPaused": {
19669 "type": "boolean"
19670 },
19671 "name": {
19672 "allOf": [
19673 {
19674 "$ref": "#/components/schemas/QueueName"
19675 }
19676 ]
19677 },
19678 "statistics": {
19679 "$ref": "#/components/schemas/QueueStatisticsDto"
19680 }
19681 },
19682 "required": [
19683 "isPaused",
19684 "name",
19685 "statistics"
19686 ],
19687 "type": "object"
19688 },
19689 "QueueResponseLegacyDto": {
19690 "properties": {
19691 "jobCounts": {
19692 "$ref": "#/components/schemas/QueueStatisticsDto"
19693 },
19694 "queueStatus": {
19695 "$ref": "#/components/schemas/QueueStatusLegacyDto"
19696 }
19697 },
19698 "required": [
19699 "jobCounts",
19700 "queueStatus"
19701 ],
19702 "type": "object"
19703 },
19704 "QueueStatisticsDto": {
19705 "properties": {
19706 "active": {
19707 "type": "integer"
19708 },
19709 "completed": {
19710 "type": "integer"
19711 },
19712 "delayed": {
19713 "type": "integer"
19714 },
19715 "failed": {
19716 "type": "integer"
19717 },
19718 "paused": {
19719 "type": "integer"
19720 },
19721 "waiting": {
19722 "type": "integer"
19723 }
19724 },
19725 "required": [
19726 "active",
19727 "completed",
19728 "delayed",
19729 "failed",
19730 "paused",
19731 "waiting"
19732 ],
19733 "type": "object"
19734 },
19735 "QueueStatusLegacyDto": {
19736 "properties": {
19737 "isActive": {
19738 "type": "boolean"
19739 },
19740 "isPaused": {
19741 "type": "boolean"
19742 }
19743 },
19744 "required": [
19745 "isActive",
19746 "isPaused"
19747 ],
19748 "type": "object"
19749 },
19750 "QueueUpdateDto": {
19751 "properties": {
19752 "isPaused": {
19753 "type": "boolean"
19754 }
19755 },
19756 "type": "object"
19757 },
19758 "QueuesResponseLegacyDto": {
19759 "properties": {
19760 "backgroundTask": {
19761 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19762 },
19763 "backupDatabase": {
19764 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19765 },
19766 "duplicateDetection": {
19767 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19768 },
19769 "editor": {
19770 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19771 },
19772 "faceDetection": {
19773 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19774 },
19775 "facialRecognition": {
19776 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19777 },
19778 "library": {
19779 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19780 },
19781 "metadataExtraction": {
19782 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19783 },
19784 "migration": {
19785 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19786 },
19787 "notifications": {
19788 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19789 },
19790 "ocr": {
19791 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19792 },
19793 "search": {
19794 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19795 },
19796 "sidecar": {
19797 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19798 },
19799 "smartSearch": {
19800 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19801 },
19802 "storageTemplateMigration": {
19803 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19804 },
19805 "thumbnailGeneration": {
19806 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19807 },
19808 "videoConversion": {
19809 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19810 },
19811 "workflow": {
19812 "$ref": "#/components/schemas/QueueResponseLegacyDto"
19813 }
19814 },
19815 "required": [
19816 "backgroundTask",
19817 "backupDatabase",
19818 "duplicateDetection",
19819 "editor",
19820 "faceDetection",
19821 "facialRecognition",
19822 "library",
19823 "metadataExtraction",
19824 "migration",
19825 "notifications",
19826 "ocr",
19827 "search",
19828 "sidecar",
19829 "smartSearch",
19830 "storageTemplateMigration",
19831 "thumbnailGeneration",
19832 "videoConversion",
19833 "workflow"
19834 ],
19835 "type": "object"
19836 },
19837 "RandomSearchDto": {
19838 "properties": {
19839 "albumIds": {
19840 "items": {
19841 "format": "uuid",
19842 "type": "string"
19843 },
19844 "type": "array"
19845 },
19846 "city": {
19847 "nullable": true,
19848 "type": "string"
19849 },
19850 "country": {
19851 "nullable": true,
19852 "type": "string"
19853 },
19854 "createdAfter": {
19855 "format": "date-time",
19856 "type": "string"
19857 },
19858 "createdBefore": {
19859 "format": "date-time",
19860 "type": "string"
19861 },
19862 "deviceId": {
19863 "type": "string"
19864 },
19865 "isEncoded": {
19866 "type": "boolean"
19867 },
19868 "isFavorite": {
19869 "type": "boolean"
19870 },
19871 "isMotion": {
19872 "type": "boolean"
19873 },
19874 "isNotInAlbum": {
19875 "type": "boolean"
19876 },
19877 "isOffline": {
19878 "type": "boolean"
19879 },
19880 "lensModel": {
19881 "nullable": true,
19882 "type": "string"
19883 },
19884 "libraryId": {
19885 "format": "uuid",
19886 "nullable": true,
19887 "type": "string"
19888 },
19889 "make": {
19890 "type": "string"
19891 },
19892 "model": {
19893 "nullable": true,
19894 "type": "string"
19895 },
19896 "ocr": {
19897 "type": "string"
19898 },
19899 "personIds": {
19900 "items": {
19901 "format": "uuid",
19902 "type": "string"
19903 },
19904 "type": "array"
19905 },
19906 "rating": {
19907 "maximum": 5,
19908 "minimum": -1,
19909 "type": "number"
19910 },
19911 "size": {
19912 "maximum": 1000,
19913 "minimum": 1,
19914 "type": "number"
19915 },
19916 "state": {
19917 "nullable": true,
19918 "type": "string"
19919 },
19920 "tagIds": {
19921 "items": {
19922 "format": "uuid",
19923 "type": "string"
19924 },
19925 "nullable": true,
19926 "type": "array"
19927 },
19928 "takenAfter": {
19929 "format": "date-time",
19930 "type": "string"
19931 },
19932 "takenBefore": {
19933 "format": "date-time",
19934 "type": "string"
19935 },
19936 "trashedAfter": {
19937 "format": "date-time",
19938 "type": "string"
19939 },
19940 "trashedBefore": {
19941 "format": "date-time",
19942 "type": "string"
19943 },
19944 "type": {
19945 "allOf": [
19946 {
19947 "$ref": "#/components/schemas/AssetTypeEnum"
19948 }
19949 ]
19950 },
19951 "updatedAfter": {
19952 "format": "date-time",
19953 "type": "string"
19954 },
19955 "updatedBefore": {
19956 "format": "date-time",
19957 "type": "string"
19958 },
19959 "visibility": {
19960 "allOf": [
19961 {
19962 "$ref": "#/components/schemas/AssetVisibility"
19963 }
19964 ]
19965 },
19966 "withDeleted": {
19967 "type": "boolean"
19968 },
19969 "withExif": {
19970 "type": "boolean"
19971 },
19972 "withPeople": {
19973 "type": "boolean"
19974 },
19975 "withStacked": {
19976 "type": "boolean"
19977 }
19978 },
19979 "type": "object"
19980 },
19981 "RatingsResponse": {
19982 "properties": {
19983 "enabled": {
19984 "default": false,
19985 "type": "boolean"
19986 }
19987 },
19988 "required": [
19989 "enabled"
19990 ],
19991 "type": "object"
19992 },
19993 "RatingsUpdate": {
19994 "properties": {
19995 "enabled": {
19996 "type": "boolean"
19997 }
19998 },
19999 "type": "object"
20000 },
20001 "ReactionLevel": {
20002 "enum": [
20003 "album",
20004 "asset"
20005 ],
20006 "type": "string"
20007 },
20008 "ReactionType": {
20009 "enum": [
20010 "comment",
20011 "like"
20012 ],
20013 "type": "string"
20014 },
20015 "ReverseGeocodingStateResponseDto": {
20016 "properties": {
20017 "lastImportFileName": {
20018 "nullable": true,
20019 "type": "string"
20020 },
20021 "lastUpdate": {
20022 "nullable": true,
20023 "type": "string"
20024 }
20025 },
20026 "required": [
20027 "lastImportFileName",
20028 "lastUpdate"
20029 ],
20030 "type": "object"
20031 },
20032 "RotateParameters": {
20033 "properties": {
20034 "angle": {
20035 "description": "Rotation angle in degrees",
20036 "type": "number"
20037 }
20038 },
20039 "required": [
20040 "angle"
20041 ],
20042 "type": "object"
20043 },
20044 "SearchAlbumResponseDto": {
20045 "properties": {
20046 "count": {
20047 "type": "integer"
20048 },
20049 "facets": {
20050 "items": {
20051 "$ref": "#/components/schemas/SearchFacetResponseDto"
20052 },
20053 "type": "array"
20054 },
20055 "items": {
20056 "items": {
20057 "$ref": "#/components/schemas/AlbumResponseDto"
20058 },
20059 "type": "array"
20060 },
20061 "total": {
20062 "type": "integer"
20063 }
20064 },
20065 "required": [
20066 "count",
20067 "facets",
20068 "items",
20069 "total"
20070 ],
20071 "type": "object"
20072 },
20073 "SearchAssetResponseDto": {
20074 "properties": {
20075 "count": {
20076 "type": "integer"
20077 },
20078 "facets": {
20079 "items": {
20080 "$ref": "#/components/schemas/SearchFacetResponseDto"
20081 },
20082 "type": "array"
20083 },
20084 "items": {
20085 "items": {
20086 "$ref": "#/components/schemas/AssetResponseDto"
20087 },
20088 "type": "array"
20089 },
20090 "nextPage": {
20091 "nullable": true,
20092 "type": "string"
20093 },
20094 "total": {
20095 "type": "integer"
20096 }
20097 },
20098 "required": [
20099 "count",
20100 "facets",
20101 "items",
20102 "nextPage",
20103 "total"
20104 ],
20105 "type": "object"
20106 },
20107 "SearchExploreItem": {
20108 "properties": {
20109 "data": {
20110 "$ref": "#/components/schemas/AssetResponseDto"
20111 },
20112 "value": {
20113 "type": "string"
20114 }
20115 },
20116 "required": [
20117 "data",
20118 "value"
20119 ],
20120 "type": "object"
20121 },
20122 "SearchExploreResponseDto": {
20123 "properties": {
20124 "fieldName": {
20125 "type": "string"
20126 },
20127 "items": {
20128 "items": {
20129 "$ref": "#/components/schemas/SearchExploreItem"
20130 },
20131 "type": "array"
20132 }
20133 },
20134 "required": [
20135 "fieldName",
20136 "items"
20137 ],
20138 "type": "object"
20139 },
20140 "SearchFacetCountResponseDto": {
20141 "properties": {
20142 "count": {
20143 "type": "integer"
20144 },
20145 "value": {
20146 "type": "string"
20147 }
20148 },
20149 "required": [
20150 "count",
20151 "value"
20152 ],
20153 "type": "object"
20154 },
20155 "SearchFacetResponseDto": {
20156 "properties": {
20157 "counts": {
20158 "items": {
20159 "$ref": "#/components/schemas/SearchFacetCountResponseDto"
20160 },
20161 "type": "array"
20162 },
20163 "fieldName": {
20164 "type": "string"
20165 }
20166 },
20167 "required": [
20168 "counts",
20169 "fieldName"
20170 ],
20171 "type": "object"
20172 },
20173 "SearchResponseDto": {
20174 "properties": {
20175 "albums": {
20176 "$ref": "#/components/schemas/SearchAlbumResponseDto"
20177 },
20178 "assets": {
20179 "$ref": "#/components/schemas/SearchAssetResponseDto"
20180 }
20181 },
20182 "required": [
20183 "albums",
20184 "assets"
20185 ],
20186 "type": "object"
20187 },
20188 "SearchStatisticsResponseDto": {
20189 "properties": {
20190 "total": {
20191 "type": "integer"
20192 }
20193 },
20194 "required": [
20195 "total"
20196 ],
20197 "type": "object"
20198 },
20199 "SearchSuggestionType": {
20200 "enum": [
20201 "country",
20202 "state",
20203 "city",
20204 "camera-make",
20205 "camera-model",
20206 "camera-lens-model"
20207 ],
20208 "type": "string"
20209 },
20210 "ServerAboutResponseDto": {
20211 "properties": {
20212 "build": {
20213 "type": "string"
20214 },
20215 "buildImage": {
20216 "type": "string"
20217 },
20218 "buildImageUrl": {
20219 "type": "string"
20220 },
20221 "buildUrl": {
20222 "type": "string"
20223 },
20224 "exiftool": {
20225 "type": "string"
20226 },
20227 "ffmpeg": {
20228 "type": "string"
20229 },
20230 "imagemagick": {
20231 "type": "string"
20232 },
20233 "libvips": {
20234 "type": "string"
20235 },
20236 "licensed": {
20237 "type": "boolean"
20238 },
20239 "nodejs": {
20240 "type": "string"
20241 },
20242 "repository": {
20243 "type": "string"
20244 },
20245 "repositoryUrl": {
20246 "type": "string"
20247 },
20248 "sourceCommit": {
20249 "type": "string"
20250 },
20251 "sourceRef": {
20252 "type": "string"
20253 },
20254 "sourceUrl": {
20255 "type": "string"
20256 },
20257 "thirdPartyBugFeatureUrl": {
20258 "type": "string"
20259 },
20260 "thirdPartyDocumentationUrl": {
20261 "type": "string"
20262 },
20263 "thirdPartySourceUrl": {
20264 "type": "string"
20265 },
20266 "thirdPartySupportUrl": {
20267 "type": "string"
20268 },
20269 "version": {
20270 "type": "string"
20271 },
20272 "versionUrl": {
20273 "type": "string"
20274 }
20275 },
20276 "required": [
20277 "licensed",
20278 "version",
20279 "versionUrl"
20280 ],
20281 "type": "object"
20282 },
20283 "ServerApkLinksDto": {
20284 "properties": {
20285 "arm64v8a": {
20286 "type": "string"
20287 },
20288 "armeabiv7a": {
20289 "type": "string"
20290 },
20291 "universal": {
20292 "type": "string"
20293 },
20294 "x86_64": {
20295 "type": "string"
20296 }
20297 },
20298 "required": [
20299 "arm64v8a",
20300 "armeabiv7a",
20301 "universal",
20302 "x86_64"
20303 ],
20304 "type": "object"
20305 },
20306 "ServerConfigDto": {
20307 "properties": {
20308 "externalDomain": {
20309 "type": "string"
20310 },
20311 "isInitialized": {
20312 "type": "boolean"
20313 },
20314 "isOnboarded": {
20315 "type": "boolean"
20316 },
20317 "loginPageMessage": {
20318 "type": "string"
20319 },
20320 "maintenanceMode": {
20321 "type": "boolean"
20322 },
20323 "mapDarkStyleUrl": {
20324 "type": "string"
20325 },
20326 "mapLightStyleUrl": {
20327 "type": "string"
20328 },
20329 "oauthButtonText": {
20330 "type": "string"
20331 },
20332 "publicUsers": {
20333 "type": "boolean"
20334 },
20335 "trashDays": {
20336 "type": "integer"
20337 },
20338 "userDeleteDelay": {
20339 "type": "integer"
20340 }
20341 },
20342 "required": [
20343 "externalDomain",
20344 "isInitialized",
20345 "isOnboarded",
20346 "loginPageMessage",
20347 "maintenanceMode",
20348 "mapDarkStyleUrl",
20349 "mapLightStyleUrl",
20350 "oauthButtonText",
20351 "publicUsers",
20352 "trashDays",
20353 "userDeleteDelay"
20354 ],
20355 "type": "object"
20356 },
20357 "ServerFeaturesDto": {
20358 "properties": {
20359 "configFile": {
20360 "type": "boolean"
20361 },
20362 "duplicateDetection": {
20363 "type": "boolean"
20364 },
20365 "email": {
20366 "type": "boolean"
20367 },
20368 "facialRecognition": {
20369 "type": "boolean"
20370 },
20371 "importFaces": {
20372 "type": "boolean"
20373 },
20374 "map": {
20375 "type": "boolean"
20376 },
20377 "oauth": {
20378 "type": "boolean"
20379 },
20380 "oauthAutoLaunch": {
20381 "type": "boolean"
20382 },
20383 "ocr": {
20384 "type": "boolean"
20385 },
20386 "passwordLogin": {
20387 "type": "boolean"
20388 },
20389 "reverseGeocoding": {
20390 "type": "boolean"
20391 },
20392 "search": {
20393 "type": "boolean"
20394 },
20395 "sidecar": {
20396 "type": "boolean"
20397 },
20398 "smartSearch": {
20399 "type": "boolean"
20400 },
20401 "trash": {
20402 "type": "boolean"
20403 }
20404 },
20405 "required": [
20406 "configFile",
20407 "duplicateDetection",
20408 "email",
20409 "facialRecognition",
20410 "importFaces",
20411 "map",
20412 "oauth",
20413 "oauthAutoLaunch",
20414 "ocr",
20415 "passwordLogin",
20416 "reverseGeocoding",
20417 "search",
20418 "sidecar",
20419 "smartSearch",
20420 "trash"
20421 ],
20422 "type": "object"
20423 },
20424 "ServerMediaTypesResponseDto": {
20425 "properties": {
20426 "image": {
20427 "items": {
20428 "type": "string"
20429 },
20430 "type": "array"
20431 },
20432 "sidecar": {
20433 "items": {
20434 "type": "string"
20435 },
20436 "type": "array"
20437 },
20438 "video": {
20439 "items": {
20440 "type": "string"
20441 },
20442 "type": "array"
20443 }
20444 },
20445 "required": [
20446 "image",
20447 "sidecar",
20448 "video"
20449 ],
20450 "type": "object"
20451 },
20452 "ServerPingResponse": {
20453 "properties": {
20454 "res": {
20455 "example": "pong",
20456 "readOnly": true,
20457 "type": "string"
20458 }
20459 },
20460 "required": [
20461 "res"
20462 ],
20463 "type": "object"
20464 },
20465 "ServerStatsResponseDto": {
20466 "properties": {
20467 "photos": {
20468 "default": 0,
20469 "type": "integer"
20470 },
20471 "usage": {
20472 "default": 0,
20473 "format": "int64",
20474 "type": "integer"
20475 },
20476 "usageByUser": {
20477 "default": [],
20478 "example": [
20479 {
20480 "photos": 1,
20481 "videos": 1,
20482 "diskUsageRaw": 2,
20483 "usagePhotos": 1,
20484 "usageVideos": 1
20485 }
20486 ],
20487 "items": {
20488 "$ref": "#/components/schemas/UsageByUserDto"
20489 },
20490 "title": "Array of usage for each user",
20491 "type": "array"
20492 },
20493 "usagePhotos": {
20494 "default": 0,
20495 "format": "int64",
20496 "type": "integer"
20497 },
20498 "usageVideos": {
20499 "default": 0,
20500 "format": "int64",
20501 "type": "integer"
20502 },
20503 "videos": {
20504 "default": 0,
20505 "type": "integer"
20506 }
20507 },
20508 "required": [
20509 "photos",
20510 "usage",
20511 "usageByUser",
20512 "usagePhotos",
20513 "usageVideos",
20514 "videos"
20515 ],
20516 "type": "object"
20517 },
20518 "ServerStorageResponseDto": {
20519 "properties": {
20520 "diskAvailable": {
20521 "type": "string"
20522 },
20523 "diskAvailableRaw": {
20524 "format": "int64",
20525 "type": "integer"
20526 },
20527 "diskSize": {
20528 "type": "string"
20529 },
20530 "diskSizeRaw": {
20531 "format": "int64",
20532 "type": "integer"
20533 },
20534 "diskUsagePercentage": {
20535 "format": "double",
20536 "type": "number"
20537 },
20538 "diskUse": {
20539 "type": "string"
20540 },
20541 "diskUseRaw": {
20542 "format": "int64",
20543 "type": "integer"
20544 }
20545 },
20546 "required": [
20547 "diskAvailable",
20548 "diskAvailableRaw",
20549 "diskSize",
20550 "diskSizeRaw",
20551 "diskUsagePercentage",
20552 "diskUse",
20553 "diskUseRaw"
20554 ],
20555 "type": "object"
20556 },
20557 "ServerThemeDto": {
20558 "properties": {
20559 "customCss": {
20560 "type": "string"
20561 }
20562 },
20563 "required": [
20564 "customCss"
20565 ],
20566 "type": "object"
20567 },
20568 "ServerVersionHistoryResponseDto": {
20569 "properties": {
20570 "createdAt": {
20571 "format": "date-time",
20572 "type": "string"
20573 },
20574 "id": {
20575 "type": "string"
20576 },
20577 "version": {
20578 "type": "string"
20579 }
20580 },
20581 "required": [
20582 "createdAt",
20583 "id",
20584 "version"
20585 ],
20586 "type": "object"
20587 },
20588 "ServerVersionResponseDto": {
20589 "properties": {
20590 "major": {
20591 "type": "integer"
20592 },
20593 "minor": {
20594 "type": "integer"
20595 },
20596 "patch": {
20597 "type": "integer"
20598 }
20599 },
20600 "required": [
20601 "major",
20602 "minor",
20603 "patch"
20604 ],
20605 "type": "object"
20606 },
20607 "SessionCreateDto": {
20608 "properties": {
20609 "deviceOS": {
20610 "type": "string"
20611 },
20612 "deviceType": {
20613 "type": "string"
20614 },
20615 "duration": {
20616 "description": "session duration, in seconds",
20617 "minimum": 1,
20618 "type": "number"
20619 }
20620 },
20621 "type": "object"
20622 },
20623 "SessionCreateResponseDto": {
20624 "properties": {
20625 "appVersion": {
20626 "nullable": true,
20627 "type": "string"
20628 },
20629 "createdAt": {
20630 "type": "string"
20631 },
20632 "current": {
20633 "type": "boolean"
20634 },
20635 "deviceOS": {
20636 "type": "string"
20637 },
20638 "deviceType": {
20639 "type": "string"
20640 },
20641 "expiresAt": {
20642 "type": "string"
20643 },
20644 "id": {
20645 "type": "string"
20646 },
20647 "isPendingSyncReset": {
20648 "type": "boolean"
20649 },
20650 "token": {
20651 "type": "string"
20652 },
20653 "updatedAt": {
20654 "type": "string"
20655 }
20656 },
20657 "required": [
20658 "appVersion",
20659 "createdAt",
20660 "current",
20661 "deviceOS",
20662 "deviceType",
20663 "id",
20664 "isPendingSyncReset",
20665 "token",
20666 "updatedAt"
20667 ],
20668 "type": "object"
20669 },
20670 "SessionResponseDto": {
20671 "properties": {
20672 "appVersion": {
20673 "nullable": true,
20674 "type": "string"
20675 },
20676 "createdAt": {
20677 "type": "string"
20678 },
20679 "current": {
20680 "type": "boolean"
20681 },
20682 "deviceOS": {
20683 "type": "string"
20684 },
20685 "deviceType": {
20686 "type": "string"
20687 },
20688 "expiresAt": {
20689 "type": "string"
20690 },
20691 "id": {
20692 "type": "string"
20693 },
20694 "isPendingSyncReset": {
20695 "type": "boolean"
20696 },
20697 "updatedAt": {
20698 "type": "string"
20699 }
20700 },
20701 "required": [
20702 "appVersion",
20703 "createdAt",
20704 "current",
20705 "deviceOS",
20706 "deviceType",
20707 "id",
20708 "isPendingSyncReset",
20709 "updatedAt"
20710 ],
20711 "type": "object"
20712 },
20713 "SessionUnlockDto": {
20714 "properties": {
20715 "password": {
20716 "type": "string"
20717 },
20718 "pinCode": {
20719 "example": "123456",
20720 "type": "string"
20721 }
20722 },
20723 "type": "object"
20724 },
20725 "SessionUpdateDto": {
20726 "properties": {
20727 "isPendingSyncReset": {
20728 "type": "boolean"
20729 }
20730 },
20731 "type": "object"
20732 },
20733 "SetMaintenanceModeDto": {
20734 "properties": {
20735 "action": {
20736 "allOf": [
20737 {
20738 "$ref": "#/components/schemas/MaintenanceAction"
20739 }
20740 ]
20741 },
20742 "restoreBackupFilename": {
20743 "type": "string"
20744 }
20745 },
20746 "required": [
20747 "action"
20748 ],
20749 "type": "object"
20750 },
20751 "SharedLinkCreateDto": {
20752 "properties": {
20753 "albumId": {
20754 "format": "uuid",
20755 "type": "string"
20756 },
20757 "allowDownload": {
20758 "default": true,
20759 "type": "boolean"
20760 },
20761 "allowUpload": {
20762 "type": "boolean"
20763 },
20764 "assetIds": {
20765 "items": {
20766 "format": "uuid",
20767 "type": "string"
20768 },
20769 "type": "array"
20770 },
20771 "description": {
20772 "nullable": true,
20773 "type": "string"
20774 },
20775 "expiresAt": {
20776 "default": null,
20777 "format": "date-time",
20778 "nullable": true,
20779 "type": "string"
20780 },
20781 "password": {
20782 "nullable": true,
20783 "type": "string"
20784 },
20785 "showMetadata": {
20786 "default": true,
20787 "type": "boolean"
20788 },
20789 "slug": {
20790 "nullable": true,
20791 "type": "string"
20792 },
20793 "type": {
20794 "allOf": [
20795 {
20796 "$ref": "#/components/schemas/SharedLinkType"
20797 }
20798 ]
20799 }
20800 },
20801 "required": [
20802 "type"
20803 ],
20804 "type": "object"
20805 },
20806 "SharedLinkEditDto": {
20807 "properties": {
20808 "allowDownload": {
20809 "type": "boolean"
20810 },
20811 "allowUpload": {
20812 "type": "boolean"
20813 },
20814 "changeExpiryTime": {
20815 "description": "Few clients cannot send null to set the expiryTime to never.\nSetting this flag and not sending expiryAt is considered as null instead.\nClients that can send null values can ignore this.",
20816 "type": "boolean"
20817 },
20818 "description": {
20819 "nullable": true,
20820 "type": "string"
20821 },
20822 "expiresAt": {
20823 "format": "date-time",
20824 "nullable": true,
20825 "type": "string"
20826 },
20827 "password": {
20828 "nullable": true,
20829 "type": "string"
20830 },
20831 "showMetadata": {
20832 "type": "boolean"
20833 },
20834 "slug": {
20835 "nullable": true,
20836 "type": "string"
20837 }
20838 },
20839 "type": "object"
20840 },
20841 "SharedLinkResponseDto": {
20842 "properties": {
20843 "album": {
20844 "$ref": "#/components/schemas/AlbumResponseDto"
20845 },
20846 "allowDownload": {
20847 "type": "boolean"
20848 },
20849 "allowUpload": {
20850 "type": "boolean"
20851 },
20852 "assets": {
20853 "items": {
20854 "$ref": "#/components/schemas/AssetResponseDto"
20855 },
20856 "type": "array"
20857 },
20858 "createdAt": {
20859 "format": "date-time",
20860 "type": "string"
20861 },
20862 "description": {
20863 "nullable": true,
20864 "type": "string"
20865 },
20866 "expiresAt": {
20867 "format": "date-time",
20868 "nullable": true,
20869 "type": "string"
20870 },
20871 "id": {
20872 "type": "string"
20873 },
20874 "key": {
20875 "type": "string"
20876 },
20877 "password": {
20878 "nullable": true,
20879 "type": "string"
20880 },
20881 "showMetadata": {
20882 "type": "boolean"
20883 },
20884 "slug": {
20885 "nullable": true,
20886 "type": "string"
20887 },
20888 "token": {
20889 "nullable": true,
20890 "type": "string"
20891 },
20892 "type": {
20893 "allOf": [
20894 {
20895 "$ref": "#/components/schemas/SharedLinkType"
20896 }
20897 ]
20898 },
20899 "userId": {
20900 "type": "string"
20901 }
20902 },
20903 "required": [
20904 "allowDownload",
20905 "allowUpload",
20906 "assets",
20907 "createdAt",
20908 "description",
20909 "expiresAt",
20910 "id",
20911 "key",
20912 "password",
20913 "showMetadata",
20914 "slug",
20915 "type",
20916 "userId"
20917 ],
20918 "type": "object"
20919 },
20920 "SharedLinkType": {
20921 "enum": [
20922 "ALBUM",
20923 "INDIVIDUAL"
20924 ],
20925 "type": "string"
20926 },
20927 "SharedLinksResponse": {
20928 "properties": {
20929 "enabled": {
20930 "default": true,
20931 "type": "boolean"
20932 },
20933 "sidebarWeb": {
20934 "default": false,
20935 "type": "boolean"
20936 }
20937 },
20938 "required": [
20939 "enabled",
20940 "sidebarWeb"
20941 ],
20942 "type": "object"
20943 },
20944 "SharedLinksUpdate": {
20945 "properties": {
20946 "enabled": {
20947 "type": "boolean"
20948 },
20949 "sidebarWeb": {
20950 "type": "boolean"
20951 }
20952 },
20953 "type": "object"
20954 },
20955 "SignUpDto": {
20956 "properties": {
20957 "email": {
20958 "example": "testuser@email.com",
20959 "format": "email",
20960 "type": "string"
20961 },
20962 "name": {
20963 "example": "Admin",
20964 "type": "string"
20965 },
20966 "password": {
20967 "example": "password",
20968 "type": "string"
20969 }
20970 },
20971 "required": [
20972 "email",
20973 "name",
20974 "password"
20975 ],
20976 "type": "object"
20977 },
20978 "SmartSearchDto": {
20979 "properties": {
20980 "albumIds": {
20981 "items": {
20982 "format": "uuid",
20983 "type": "string"
20984 },
20985 "type": "array"
20986 },
20987 "city": {
20988 "nullable": true,
20989 "type": "string"
20990 },
20991 "country": {
20992 "nullable": true,
20993 "type": "string"
20994 },
20995 "createdAfter": {
20996 "format": "date-time",
20997 "type": "string"
20998 },
20999 "createdBefore": {
21000 "format": "date-time",
21001 "type": "string"
21002 },
21003 "deviceId": {
21004 "type": "string"
21005 },
21006 "isEncoded": {
21007 "type": "boolean"
21008 },
21009 "isFavorite": {
21010 "type": "boolean"
21011 },
21012 "isMotion": {
21013 "type": "boolean"
21014 },
21015 "isNotInAlbum": {
21016 "type": "boolean"
21017 },
21018 "isOffline": {
21019 "type": "boolean"
21020 },
21021 "language": {
21022 "type": "string"
21023 },
21024 "lensModel": {
21025 "nullable": true,
21026 "type": "string"
21027 },
21028 "libraryId": {
21029 "format": "uuid",
21030 "nullable": true,
21031 "type": "string"
21032 },
21033 "make": {
21034 "type": "string"
21035 },
21036 "model": {
21037 "nullable": true,
21038 "type": "string"
21039 },
21040 "ocr": {
21041 "type": "string"
21042 },
21043 "page": {
21044 "minimum": 1,
21045 "type": "number"
21046 },
21047 "personIds": {
21048 "items": {
21049 "format": "uuid",
21050 "type": "string"
21051 },
21052 "type": "array"
21053 },
21054 "query": {
21055 "type": "string"
21056 },
21057 "queryAssetId": {
21058 "format": "uuid",
21059 "type": "string"
21060 },
21061 "rating": {
21062 "maximum": 5,
21063 "minimum": -1,
21064 "type": "number"
21065 },
21066 "size": {
21067 "maximum": 1000,
21068 "minimum": 1,
21069 "type": "number"
21070 },
21071 "state": {
21072 "nullable": true,
21073 "type": "string"
21074 },
21075 "tagIds": {
21076 "items": {
21077 "format": "uuid",
21078 "type": "string"
21079 },
21080 "nullable": true,
21081 "type": "array"
21082 },
21083 "takenAfter": {
21084 "format": "date-time",
21085 "type": "string"
21086 },
21087 "takenBefore": {
21088 "format": "date-time",
21089 "type": "string"
21090 },
21091 "trashedAfter": {
21092 "format": "date-time",
21093 "type": "string"
21094 },
21095 "trashedBefore": {
21096 "format": "date-time",
21097 "type": "string"
21098 },
21099 "type": {
21100 "allOf": [
21101 {
21102 "$ref": "#/components/schemas/AssetTypeEnum"
21103 }
21104 ]
21105 },
21106 "updatedAfter": {
21107 "format": "date-time",
21108 "type": "string"
21109 },
21110 "updatedBefore": {
21111 "format": "date-time",
21112 "type": "string"
21113 },
21114 "visibility": {
21115 "allOf": [
21116 {
21117 "$ref": "#/components/schemas/AssetVisibility"
21118 }
21119 ]
21120 },
21121 "withDeleted": {
21122 "type": "boolean"
21123 },
21124 "withExif": {
21125 "type": "boolean"
21126 }
21127 },
21128 "type": "object"
21129 },
21130 "SourceType": {
21131 "enum": [
21132 "machine-learning",
21133 "exif",
21134 "manual"
21135 ],
21136 "type": "string"
21137 },
21138 "StackCreateDto": {
21139 "properties": {
21140 "assetIds": {
21141 "description": "first asset becomes the primary",
21142 "items": {
21143 "format": "uuid",
21144 "type": "string"
21145 },
21146 "minItems": 2,
21147 "type": "array"
21148 }
21149 },
21150 "required": [
21151 "assetIds"
21152 ],
21153 "type": "object"
21154 },
21155 "StackResponseDto": {
21156 "properties": {
21157 "assets": {
21158 "items": {
21159 "$ref": "#/components/schemas/AssetResponseDto"
21160 },
21161 "type": "array"
21162 },
21163 "id": {
21164 "type": "string"
21165 },
21166 "primaryAssetId": {
21167 "type": "string"
21168 }
21169 },
21170 "required": [
21171 "assets",
21172 "id",
21173 "primaryAssetId"
21174 ],
21175 "type": "object"
21176 },
21177 "StackUpdateDto": {
21178 "properties": {
21179 "primaryAssetId": {
21180 "format": "uuid",
21181 "type": "string"
21182 }
21183 },
21184 "type": "object"
21185 },
21186 "StatisticsSearchDto": {
21187 "properties": {
21188 "albumIds": {
21189 "items": {
21190 "format": "uuid",
21191 "type": "string"
21192 },
21193 "type": "array"
21194 },
21195 "city": {
21196 "nullable": true,
21197 "type": "string"
21198 },
21199 "country": {
21200 "nullable": true,
21201 "type": "string"
21202 },
21203 "createdAfter": {
21204 "format": "date-time",
21205 "type": "string"
21206 },
21207 "createdBefore": {
21208 "format": "date-time",
21209 "type": "string"
21210 },
21211 "description": {
21212 "type": "string"
21213 },
21214 "deviceId": {
21215 "type": "string"
21216 },
21217 "isEncoded": {
21218 "type": "boolean"
21219 },
21220 "isFavorite": {
21221 "type": "boolean"
21222 },
21223 "isMotion": {
21224 "type": "boolean"
21225 },
21226 "isNotInAlbum": {
21227 "type": "boolean"
21228 },
21229 "isOffline": {
21230 "type": "boolean"
21231 },
21232 "lensModel": {
21233 "nullable": true,
21234 "type": "string"
21235 },
21236 "libraryId": {
21237 "format": "uuid",
21238 "nullable": true,
21239 "type": "string"
21240 },
21241 "make": {
21242 "type": "string"
21243 },
21244 "model": {
21245 "nullable": true,
21246 "type": "string"
21247 },
21248 "ocr": {
21249 "type": "string"
21250 },
21251 "personIds": {
21252 "items": {
21253 "format": "uuid",
21254 "type": "string"
21255 },
21256 "type": "array"
21257 },
21258 "rating": {
21259 "maximum": 5,
21260 "minimum": -1,
21261 "type": "number"
21262 },
21263 "state": {
21264 "nullable": true,
21265 "type": "string"
21266 },
21267 "tagIds": {
21268 "items": {
21269 "format": "uuid",
21270 "type": "string"
21271 },
21272 "nullable": true,
21273 "type": "array"
21274 },
21275 "takenAfter": {
21276 "format": "date-time",
21277 "type": "string"
21278 },
21279 "takenBefore": {
21280 "format": "date-time",
21281 "type": "string"
21282 },
21283 "trashedAfter": {
21284 "format": "date-time",
21285 "type": "string"
21286 },
21287 "trashedBefore": {
21288 "format": "date-time",
21289 "type": "string"
21290 },
21291 "type": {
21292 "allOf": [
21293 {
21294 "$ref": "#/components/schemas/AssetTypeEnum"
21295 }
21296 ]
21297 },
21298 "updatedAfter": {
21299 "format": "date-time",
21300 "type": "string"
21301 },
21302 "updatedBefore": {
21303 "format": "date-time",
21304 "type": "string"
21305 },
21306 "visibility": {
21307 "allOf": [
21308 {
21309 "$ref": "#/components/schemas/AssetVisibility"
21310 }
21311 ]
21312 }
21313 },
21314 "type": "object"
21315 },
21316 "StorageFolder": {
21317 "enum": [
21318 "encoded-video",
21319 "library",
21320 "upload",
21321 "profile",
21322 "thumbs",
21323 "backups"
21324 ],
21325 "type": "string"
21326 },
21327 "SyncAckDeleteDto": {
21328 "properties": {
21329 "types": {
21330 "items": {
21331 "$ref": "#/components/schemas/SyncEntityType"
21332 },
21333 "type": "array"
21334 }
21335 },
21336 "type": "object"
21337 },
21338 "SyncAckDto": {
21339 "properties": {
21340 "ack": {
21341 "type": "string"
21342 },
21343 "type": {
21344 "allOf": [
21345 {
21346 "$ref": "#/components/schemas/SyncEntityType"
21347 }
21348 ]
21349 }
21350 },
21351 "required": [
21352 "ack",
21353 "type"
21354 ],
21355 "type": "object"
21356 },
21357 "SyncAckSetDto": {
21358 "properties": {
21359 "acks": {
21360 "items": {
21361 "type": "string"
21362 },
21363 "maxItems": 1000,
21364 "type": "array"
21365 }
21366 },
21367 "required": [
21368 "acks"
21369 ],
21370 "type": "object"
21371 },
21372 "SyncAckV1": {
21373 "properties": {},
21374 "type": "object"
21375 },
21376 "SyncAlbumDeleteV1": {
21377 "properties": {
21378 "albumId": {
21379 "type": "string"
21380 }
21381 },
21382 "required": [
21383 "albumId"
21384 ],
21385 "type": "object"
21386 },
21387 "SyncAlbumToAssetDeleteV1": {
21388 "properties": {
21389 "albumId": {
21390 "type": "string"
21391 },
21392 "assetId": {
21393 "type": "string"
21394 }
21395 },
21396 "required": [
21397 "albumId",
21398 "assetId"
21399 ],
21400 "type": "object"
21401 },
21402 "SyncAlbumToAssetV1": {
21403 "properties": {
21404 "albumId": {
21405 "type": "string"
21406 },
21407 "assetId": {
21408 "type": "string"
21409 }
21410 },
21411 "required": [
21412 "albumId",
21413 "assetId"
21414 ],
21415 "type": "object"
21416 },
21417 "SyncAlbumUserDeleteV1": {
21418 "properties": {
21419 "albumId": {
21420 "type": "string"
21421 },
21422 "userId": {
21423 "type": "string"
21424 }
21425 },
21426 "required": [
21427 "albumId",
21428 "userId"
21429 ],
21430 "type": "object"
21431 },
21432 "SyncAlbumUserV1": {
21433 "properties": {
21434 "albumId": {
21435 "type": "string"
21436 },
21437 "role": {
21438 "allOf": [
21439 {
21440 "$ref": "#/components/schemas/AlbumUserRole"
21441 }
21442 ]
21443 },
21444 "userId": {
21445 "type": "string"
21446 }
21447 },
21448 "required": [
21449 "albumId",
21450 "role",
21451 "userId"
21452 ],
21453 "type": "object"
21454 },
21455 "SyncAlbumV1": {
21456 "properties": {
21457 "createdAt": {
21458 "format": "date-time",
21459 "type": "string"
21460 },
21461 "description": {
21462 "type": "string"
21463 },
21464 "id": {
21465 "type": "string"
21466 },
21467 "isActivityEnabled": {
21468 "type": "boolean"
21469 },
21470 "name": {
21471 "type": "string"
21472 },
21473 "order": {
21474 "allOf": [
21475 {
21476 "$ref": "#/components/schemas/AssetOrder"
21477 }
21478 ]
21479 },
21480 "ownerId": {
21481 "type": "string"
21482 },
21483 "thumbnailAssetId": {
21484 "nullable": true,
21485 "type": "string"
21486 },
21487 "updatedAt": {
21488 "format": "date-time",
21489 "type": "string"
21490 }
21491 },
21492 "required": [
21493 "createdAt",
21494 "description",
21495 "id",
21496 "isActivityEnabled",
21497 "name",
21498 "order",
21499 "ownerId",
21500 "thumbnailAssetId",
21501 "updatedAt"
21502 ],
21503 "type": "object"
21504 },
21505 "SyncAssetDeleteV1": {
21506 "properties": {
21507 "assetId": {
21508 "type": "string"
21509 }
21510 },
21511 "required": [
21512 "assetId"
21513 ],
21514 "type": "object"
21515 },
21516 "SyncAssetExifV1": {
21517 "properties": {
21518 "assetId": {
21519 "type": "string"
21520 },
21521 "city": {
21522 "nullable": true,
21523 "type": "string"
21524 },
21525 "country": {
21526 "nullable": true,
21527 "type": "string"
21528 },
21529 "dateTimeOriginal": {
21530 "format": "date-time",
21531 "nullable": true,
21532 "type": "string"
21533 },
21534 "description": {
21535 "nullable": true,
21536 "type": "string"
21537 },
21538 "exifImageHeight": {
21539 "nullable": true,
21540 "type": "integer"
21541 },
21542 "exifImageWidth": {
21543 "nullable": true,
21544 "type": "integer"
21545 },
21546 "exposureTime": {
21547 "nullable": true,
21548 "type": "string"
21549 },
21550 "fNumber": {
21551 "format": "double",
21552 "nullable": true,
21553 "type": "number"
21554 },
21555 "fileSizeInByte": {
21556 "nullable": true,
21557 "type": "integer"
21558 },
21559 "focalLength": {
21560 "format": "double",
21561 "nullable": true,
21562 "type": "number"
21563 },
21564 "fps": {
21565 "format": "double",
21566 "nullable": true,
21567 "type": "number"
21568 },
21569 "iso": {
21570 "nullable": true,
21571 "type": "integer"
21572 },
21573 "latitude": {
21574 "format": "double",
21575 "nullable": true,
21576 "type": "number"
21577 },
21578 "lensModel": {
21579 "nullable": true,
21580 "type": "string"
21581 },
21582 "longitude": {
21583 "format": "double",
21584 "nullable": true,
21585 "type": "number"
21586 },
21587 "make": {
21588 "nullable": true,
21589 "type": "string"
21590 },
21591 "model": {
21592 "nullable": true,
21593 "type": "string"
21594 },
21595 "modifyDate": {
21596 "format": "date-time",
21597 "nullable": true,
21598 "type": "string"
21599 },
21600 "orientation": {
21601 "nullable": true,
21602 "type": "string"
21603 },
21604 "profileDescription": {
21605 "nullable": true,
21606 "type": "string"
21607 },
21608 "projectionType": {
21609 "nullable": true,
21610 "type": "string"
21611 },
21612 "rating": {
21613 "nullable": true,
21614 "type": "integer"
21615 },
21616 "state": {
21617 "nullable": true,
21618 "type": "string"
21619 },
21620 "timeZone": {
21621 "nullable": true,
21622 "type": "string"
21623 }
21624 },
21625 "required": [
21626 "assetId",
21627 "city",
21628 "country",
21629 "dateTimeOriginal",
21630 "description",
21631 "exifImageHeight",
21632 "exifImageWidth",
21633 "exposureTime",
21634 "fNumber",
21635 "fileSizeInByte",
21636 "focalLength",
21637 "fps",
21638 "iso",
21639 "latitude",
21640 "lensModel",
21641 "longitude",
21642 "make",
21643 "model",
21644 "modifyDate",
21645 "orientation",
21646 "profileDescription",
21647 "projectionType",
21648 "rating",
21649 "state",
21650 "timeZone"
21651 ],
21652 "type": "object"
21653 },
21654 "SyncAssetFaceDeleteV1": {
21655 "properties": {
21656 "assetFaceId": {
21657 "type": "string"
21658 }
21659 },
21660 "required": [
21661 "assetFaceId"
21662 ],
21663 "type": "object"
21664 },
21665 "SyncAssetFaceV1": {
21666 "properties": {
21667 "assetId": {
21668 "type": "string"
21669 },
21670 "boundingBoxX1": {
21671 "type": "integer"
21672 },
21673 "boundingBoxX2": {
21674 "type": "integer"
21675 },
21676 "boundingBoxY1": {
21677 "type": "integer"
21678 },
21679 "boundingBoxY2": {
21680 "type": "integer"
21681 },
21682 "id": {
21683 "type": "string"
21684 },
21685 "imageHeight": {
21686 "type": "integer"
21687 },
21688 "imageWidth": {
21689 "type": "integer"
21690 },
21691 "personId": {
21692 "nullable": true,
21693 "type": "string"
21694 },
21695 "sourceType": {
21696 "type": "string"
21697 }
21698 },
21699 "required": [
21700 "assetId",
21701 "boundingBoxX1",
21702 "boundingBoxX2",
21703 "boundingBoxY1",
21704 "boundingBoxY2",
21705 "id",
21706 "imageHeight",
21707 "imageWidth",
21708 "personId",
21709 "sourceType"
21710 ],
21711 "type": "object"
21712 },
21713 "SyncAssetMetadataDeleteV1": {
21714 "properties": {
21715 "assetId": {
21716 "type": "string"
21717 },
21718 "key": {
21719 "type": "string"
21720 }
21721 },
21722 "required": [
21723 "assetId",
21724 "key"
21725 ],
21726 "type": "object"
21727 },
21728 "SyncAssetMetadataV1": {
21729 "properties": {
21730 "assetId": {
21731 "type": "string"
21732 },
21733 "key": {
21734 "type": "string"
21735 },
21736 "value": {
21737 "type": "object"
21738 }
21739 },
21740 "required": [
21741 "assetId",
21742 "key",
21743 "value"
21744 ],
21745 "type": "object"
21746 },
21747 "SyncAssetV1": {
21748 "properties": {
21749 "checksum": {
21750 "type": "string"
21751 },
21752 "deletedAt": {
21753 "format": "date-time",
21754 "nullable": true,
21755 "type": "string"
21756 },
21757 "duration": {
21758 "nullable": true,
21759 "type": "string"
21760 },
21761 "fileCreatedAt": {
21762 "format": "date-time",
21763 "nullable": true,
21764 "type": "string"
21765 },
21766 "fileModifiedAt": {
21767 "format": "date-time",
21768 "nullable": true,
21769 "type": "string"
21770 },
21771 "height": {
21772 "nullable": true,
21773 "type": "integer"
21774 },
21775 "id": {
21776 "type": "string"
21777 },
21778 "isEdited": {
21779 "type": "boolean"
21780 },
21781 "isFavorite": {
21782 "type": "boolean"
21783 },
21784 "libraryId": {
21785 "nullable": true,
21786 "type": "string"
21787 },
21788 "livePhotoVideoId": {
21789 "nullable": true,
21790 "type": "string"
21791 },
21792 "localDateTime": {
21793 "format": "date-time",
21794 "nullable": true,
21795 "type": "string"
21796 },
21797 "originalFileName": {
21798 "type": "string"
21799 },
21800 "ownerId": {
21801 "type": "string"
21802 },
21803 "stackId": {
21804 "nullable": true,
21805 "type": "string"
21806 },
21807 "thumbhash": {
21808 "nullable": true,
21809 "type": "string"
21810 },
21811 "type": {
21812 "allOf": [
21813 {
21814 "$ref": "#/components/schemas/AssetTypeEnum"
21815 }
21816 ]
21817 },
21818 "visibility": {
21819 "allOf": [
21820 {
21821 "$ref": "#/components/schemas/AssetVisibility"
21822 }
21823 ]
21824 },
21825 "width": {
21826 "nullable": true,
21827 "type": "integer"
21828 }
21829 },
21830 "required": [
21831 "checksum",
21832 "deletedAt",
21833 "duration",
21834 "fileCreatedAt",
21835 "fileModifiedAt",
21836 "height",
21837 "id",
21838 "isEdited",
21839 "isFavorite",
21840 "libraryId",
21841 "livePhotoVideoId",
21842 "localDateTime",
21843 "originalFileName",
21844 "ownerId",
21845 "stackId",
21846 "thumbhash",
21847 "type",
21848 "visibility",
21849 "width"
21850 ],
21851 "type": "object"
21852 },
21853 "SyncAuthUserV1": {
21854 "properties": {
21855 "avatarColor": {
21856 "allOf": [
21857 {
21858 "$ref": "#/components/schemas/UserAvatarColor"
21859 }
21860 ],
21861 "nullable": true
21862 },
21863 "deletedAt": {
21864 "format": "date-time",
21865 "nullable": true,
21866 "type": "string"
21867 },
21868 "email": {
21869 "type": "string"
21870 },
21871 "hasProfileImage": {
21872 "type": "boolean"
21873 },
21874 "id": {
21875 "type": "string"
21876 },
21877 "isAdmin": {
21878 "type": "boolean"
21879 },
21880 "name": {
21881 "type": "string"
21882 },
21883 "oauthId": {
21884 "type": "string"
21885 },
21886 "pinCode": {
21887 "nullable": true,
21888 "type": "string"
21889 },
21890 "profileChangedAt": {
21891 "format": "date-time",
21892 "type": "string"
21893 },
21894 "quotaSizeInBytes": {
21895 "nullable": true,
21896 "type": "integer"
21897 },
21898 "quotaUsageInBytes": {
21899 "type": "integer"
21900 },
21901 "storageLabel": {
21902 "nullable": true,
21903 "type": "string"
21904 }
21905 },
21906 "required": [
21907 "avatarColor",
21908 "deletedAt",
21909 "email",
21910 "hasProfileImage",
21911 "id",
21912 "isAdmin",
21913 "name",
21914 "oauthId",
21915 "pinCode",
21916 "profileChangedAt",
21917 "quotaSizeInBytes",
21918 "quotaUsageInBytes",
21919 "storageLabel"
21920 ],
21921 "type": "object"
21922 },
21923 "SyncCompleteV1": {
21924 "properties": {},
21925 "type": "object"
21926 },
21927 "SyncEntityType": {
21928 "enum": [
21929 "AuthUserV1",
21930 "UserV1",
21931 "UserDeleteV1",
21932 "AssetV1",
21933 "AssetDeleteV1",
21934 "AssetExifV1",
21935 "AssetMetadataV1",
21936 "AssetMetadataDeleteV1",
21937 "PartnerV1",
21938 "PartnerDeleteV1",
21939 "PartnerAssetV1",
21940 "PartnerAssetBackfillV1",
21941 "PartnerAssetDeleteV1",
21942 "PartnerAssetExifV1",
21943 "PartnerAssetExifBackfillV1",
21944 "PartnerStackBackfillV1",
21945 "PartnerStackDeleteV1",
21946 "PartnerStackV1",
21947 "AlbumV1",
21948 "AlbumDeleteV1",
21949 "AlbumUserV1",
21950 "AlbumUserBackfillV1",
21951 "AlbumUserDeleteV1",
21952 "AlbumAssetCreateV1",
21953 "AlbumAssetUpdateV1",
21954 "AlbumAssetBackfillV1",
21955 "AlbumAssetExifCreateV1",
21956 "AlbumAssetExifUpdateV1",
21957 "AlbumAssetExifBackfillV1",
21958 "AlbumToAssetV1",
21959 "AlbumToAssetDeleteV1",
21960 "AlbumToAssetBackfillV1",
21961 "MemoryV1",
21962 "MemoryDeleteV1",
21963 "MemoryToAssetV1",
21964 "MemoryToAssetDeleteV1",
21965 "StackV1",
21966 "StackDeleteV1",
21967 "PersonV1",
21968 "PersonDeleteV1",
21969 "AssetFaceV1",
21970 "AssetFaceDeleteV1",
21971 "UserMetadataV1",
21972 "UserMetadataDeleteV1",
21973 "SyncAckV1",
21974 "SyncResetV1",
21975 "SyncCompleteV1"
21976 ],
21977 "type": "string"
21978 },
21979 "SyncMemoryAssetDeleteV1": {
21980 "properties": {
21981 "assetId": {
21982 "type": "string"
21983 },
21984 "memoryId": {
21985 "type": "string"
21986 }
21987 },
21988 "required": [
21989 "assetId",
21990 "memoryId"
21991 ],
21992 "type": "object"
21993 },
21994 "SyncMemoryAssetV1": {
21995 "properties": {
21996 "assetId": {
21997 "type": "string"
21998 },
21999 "memoryId": {
22000 "type": "string"
22001 }
22002 },
22003 "required": [
22004 "assetId",
22005 "memoryId"
22006 ],
22007 "type": "object"
22008 },
22009 "SyncMemoryDeleteV1": {
22010 "properties": {
22011 "memoryId": {
22012 "type": "string"
22013 }
22014 },
22015 "required": [
22016 "memoryId"
22017 ],
22018 "type": "object"
22019 },
22020 "SyncMemoryV1": {
22021 "properties": {
22022 "createdAt": {
22023 "format": "date-time",
22024 "type": "string"
22025 },
22026 "data": {
22027 "type": "object"
22028 },
22029 "deletedAt": {
22030 "format": "date-time",
22031 "nullable": true,
22032 "type": "string"
22033 },
22034 "hideAt": {
22035 "format": "date-time",
22036 "nullable": true,
22037 "type": "string"
22038 },
22039 "id": {
22040 "type": "string"
22041 },
22042 "isSaved": {
22043 "type": "boolean"
22044 },
22045 "memoryAt": {
22046 "format": "date-time",
22047 "type": "string"
22048 },
22049 "ownerId": {
22050 "type": "string"
22051 },
22052 "seenAt": {
22053 "format": "date-time",
22054 "nullable": true,
22055 "type": "string"
22056 },
22057 "showAt": {
22058 "format": "date-time",
22059 "nullable": true,
22060 "type": "string"
22061 },
22062 "type": {
22063 "allOf": [
22064 {
22065 "$ref": "#/components/schemas/MemoryType"
22066 }
22067 ]
22068 },
22069 "updatedAt": {
22070 "format": "date-time",
22071 "type": "string"
22072 }
22073 },
22074 "required": [
22075 "createdAt",
22076 "data",
22077 "deletedAt",
22078 "hideAt",
22079 "id",
22080 "isSaved",
22081 "memoryAt",
22082 "ownerId",
22083 "seenAt",
22084 "showAt",
22085 "type",
22086 "updatedAt"
22087 ],
22088 "type": "object"
22089 },
22090 "SyncPartnerDeleteV1": {
22091 "properties": {
22092 "sharedById": {
22093 "type": "string"
22094 },
22095 "sharedWithId": {
22096 "type": "string"
22097 }
22098 },
22099 "required": [
22100 "sharedById",
22101 "sharedWithId"
22102 ],
22103 "type": "object"
22104 },
22105 "SyncPartnerV1": {
22106 "properties": {
22107 "inTimeline": {
22108 "type": "boolean"
22109 },
22110 "sharedById": {
22111 "type": "string"
22112 },
22113 "sharedWithId": {
22114 "type": "string"
22115 }
22116 },
22117 "required": [
22118 "inTimeline",
22119 "sharedById",
22120 "sharedWithId"
22121 ],
22122 "type": "object"
22123 },
22124 "SyncPersonDeleteV1": {
22125 "properties": {
22126 "personId": {
22127 "type": "string"
22128 }
22129 },
22130 "required": [
22131 "personId"
22132 ],
22133 "type": "object"
22134 },
22135 "SyncPersonV1": {
22136 "properties": {
22137 "birthDate": {
22138 "format": "date-time",
22139 "nullable": true,
22140 "type": "string"
22141 },
22142 "color": {
22143 "nullable": true,
22144 "type": "string"
22145 },
22146 "createdAt": {
22147 "format": "date-time",
22148 "type": "string"
22149 },
22150 "faceAssetId": {
22151 "nullable": true,
22152 "type": "string"
22153 },
22154 "id": {
22155 "type": "string"
22156 },
22157 "isFavorite": {
22158 "type": "boolean"
22159 },
22160 "isHidden": {
22161 "type": "boolean"
22162 },
22163 "name": {
22164 "type": "string"
22165 },
22166 "ownerId": {
22167 "type": "string"
22168 },
22169 "updatedAt": {
22170 "format": "date-time",
22171 "type": "string"
22172 }
22173 },
22174 "required": [
22175 "birthDate",
22176 "color",
22177 "createdAt",
22178 "faceAssetId",
22179 "id",
22180 "isFavorite",
22181 "isHidden",
22182 "name",
22183 "ownerId",
22184 "updatedAt"
22185 ],
22186 "type": "object"
22187 },
22188 "SyncRequestType": {
22189 "enum": [
22190 "AlbumsV1",
22191 "AlbumUsersV1",
22192 "AlbumToAssetsV1",
22193 "AlbumAssetsV1",
22194 "AlbumAssetExifsV1",
22195 "AssetsV1",
22196 "AssetExifsV1",
22197 "AssetMetadataV1",
22198 "AuthUsersV1",
22199 "MemoriesV1",
22200 "MemoryToAssetsV1",
22201 "PartnersV1",
22202 "PartnerAssetsV1",
22203 "PartnerAssetExifsV1",
22204 "PartnerStacksV1",
22205 "StacksV1",
22206 "UsersV1",
22207 "PeopleV1",
22208 "AssetFacesV1",
22209 "UserMetadataV1"
22210 ],
22211 "type": "string"
22212 },
22213 "SyncResetV1": {
22214 "properties": {},
22215 "type": "object"
22216 },
22217 "SyncStackDeleteV1": {
22218 "properties": {
22219 "stackId": {
22220 "type": "string"
22221 }
22222 },
22223 "required": [
22224 "stackId"
22225 ],
22226 "type": "object"
22227 },
22228 "SyncStackV1": {
22229 "properties": {
22230 "createdAt": {
22231 "format": "date-time",
22232 "type": "string"
22233 },
22234 "id": {
22235 "type": "string"
22236 },
22237 "ownerId": {
22238 "type": "string"
22239 },
22240 "primaryAssetId": {
22241 "type": "string"
22242 },
22243 "updatedAt": {
22244 "format": "date-time",
22245 "type": "string"
22246 }
22247 },
22248 "required": [
22249 "createdAt",
22250 "id",
22251 "ownerId",
22252 "primaryAssetId",
22253 "updatedAt"
22254 ],
22255 "type": "object"
22256 },
22257 "SyncStreamDto": {
22258 "properties": {
22259 "reset": {
22260 "type": "boolean"
22261 },
22262 "types": {
22263 "items": {
22264 "$ref": "#/components/schemas/SyncRequestType"
22265 },
22266 "type": "array"
22267 }
22268 },
22269 "required": [
22270 "types"
22271 ],
22272 "type": "object"
22273 },
22274 "SyncUserDeleteV1": {
22275 "properties": {
22276 "userId": {
22277 "type": "string"
22278 }
22279 },
22280 "required": [
22281 "userId"
22282 ],
22283 "type": "object"
22284 },
22285 "SyncUserMetadataDeleteV1": {
22286 "properties": {
22287 "key": {
22288 "allOf": [
22289 {
22290 "$ref": "#/components/schemas/UserMetadataKey"
22291 }
22292 ]
22293 },
22294 "userId": {
22295 "type": "string"
22296 }
22297 },
22298 "required": [
22299 "key",
22300 "userId"
22301 ],
22302 "type": "object"
22303 },
22304 "SyncUserMetadataV1": {
22305 "properties": {
22306 "key": {
22307 "allOf": [
22308 {
22309 "$ref": "#/components/schemas/UserMetadataKey"
22310 }
22311 ]
22312 },
22313 "userId": {
22314 "type": "string"
22315 },
22316 "value": {
22317 "type": "object"
22318 }
22319 },
22320 "required": [
22321 "key",
22322 "userId",
22323 "value"
22324 ],
22325 "type": "object"
22326 },
22327 "SyncUserV1": {
22328 "properties": {
22329 "avatarColor": {
22330 "allOf": [
22331 {
22332 "$ref": "#/components/schemas/UserAvatarColor"
22333 }
22334 ],
22335 "nullable": true
22336 },
22337 "deletedAt": {
22338 "format": "date-time",
22339 "nullable": true,
22340 "type": "string"
22341 },
22342 "email": {
22343 "type": "string"
22344 },
22345 "hasProfileImage": {
22346 "type": "boolean"
22347 },
22348 "id": {
22349 "type": "string"
22350 },
22351 "name": {
22352 "type": "string"
22353 },
22354 "profileChangedAt": {
22355 "format": "date-time",
22356 "type": "string"
22357 }
22358 },
22359 "required": [
22360 "avatarColor",
22361 "deletedAt",
22362 "email",
22363 "hasProfileImage",
22364 "id",
22365 "name",
22366 "profileChangedAt"
22367 ],
22368 "type": "object"
22369 },
22370 "SystemConfigBackupsDto": {
22371 "properties": {
22372 "database": {
22373 "$ref": "#/components/schemas/DatabaseBackupConfig"
22374 }
22375 },
22376 "required": [
22377 "database"
22378 ],
22379 "type": "object"
22380 },
22381 "SystemConfigDto": {
22382 "properties": {
22383 "backup": {
22384 "$ref": "#/components/schemas/SystemConfigBackupsDto"
22385 },
22386 "ffmpeg": {
22387 "$ref": "#/components/schemas/SystemConfigFFmpegDto"
22388 },
22389 "image": {
22390 "$ref": "#/components/schemas/SystemConfigImageDto"
22391 },
22392 "job": {
22393 "$ref": "#/components/schemas/SystemConfigJobDto"
22394 },
22395 "library": {
22396 "$ref": "#/components/schemas/SystemConfigLibraryDto"
22397 },
22398 "logging": {
22399 "$ref": "#/components/schemas/SystemConfigLoggingDto"
22400 },
22401 "machineLearning": {
22402 "$ref": "#/components/schemas/SystemConfigMachineLearningDto"
22403 },
22404 "map": {
22405 "$ref": "#/components/schemas/SystemConfigMapDto"
22406 },
22407 "metadata": {
22408 "$ref": "#/components/schemas/SystemConfigMetadataDto"
22409 },
22410 "newVersionCheck": {
22411 "$ref": "#/components/schemas/SystemConfigNewVersionCheckDto"
22412 },
22413 "nightlyTasks": {
22414 "$ref": "#/components/schemas/SystemConfigNightlyTasksDto"
22415 },
22416 "notifications": {
22417 "$ref": "#/components/schemas/SystemConfigNotificationsDto"
22418 },
22419 "oauth": {
22420 "$ref": "#/components/schemas/SystemConfigOAuthDto"
22421 },
22422 "passwordLogin": {
22423 "$ref": "#/components/schemas/SystemConfigPasswordLoginDto"
22424 },
22425 "reverseGeocoding": {
22426 "$ref": "#/components/schemas/SystemConfigReverseGeocodingDto"
22427 },
22428 "server": {
22429 "$ref": "#/components/schemas/SystemConfigServerDto"
22430 },
22431 "storageTemplate": {
22432 "$ref": "#/components/schemas/SystemConfigStorageTemplateDto"
22433 },
22434 "templates": {
22435 "$ref": "#/components/schemas/SystemConfigTemplatesDto"
22436 },
22437 "theme": {
22438 "$ref": "#/components/schemas/SystemConfigThemeDto"
22439 },
22440 "trash": {
22441 "$ref": "#/components/schemas/SystemConfigTrashDto"
22442 },
22443 "user": {
22444 "$ref": "#/components/schemas/SystemConfigUserDto"
22445 }
22446 },
22447 "required": [
22448 "backup",
22449 "ffmpeg",
22450 "image",
22451 "job",
22452 "library",
22453 "logging",
22454 "machineLearning",
22455 "map",
22456 "metadata",
22457 "newVersionCheck",
22458 "nightlyTasks",
22459 "notifications",
22460 "oauth",
22461 "passwordLogin",
22462 "reverseGeocoding",
22463 "server",
22464 "storageTemplate",
22465 "templates",
22466 "theme",
22467 "trash",
22468 "user"
22469 ],
22470 "type": "object"
22471 },
22472 "SystemConfigFFmpegDto": {
22473 "properties": {
22474 "accel": {
22475 "allOf": [
22476 {
22477 "$ref": "#/components/schemas/TranscodeHWAccel"
22478 }
22479 ]
22480 },
22481 "accelDecode": {
22482 "type": "boolean"
22483 },
22484 "acceptedAudioCodecs": {
22485 "items": {
22486 "$ref": "#/components/schemas/AudioCodec"
22487 },
22488 "type": "array"
22489 },
22490 "acceptedContainers": {
22491 "items": {
22492 "$ref": "#/components/schemas/VideoContainer"
22493 },
22494 "type": "array"
22495 },
22496 "acceptedVideoCodecs": {
22497 "items": {
22498 "$ref": "#/components/schemas/VideoCodec"
22499 },
22500 "type": "array"
22501 },
22502 "bframes": {
22503 "maximum": 16,
22504 "minimum": -1,
22505 "type": "integer"
22506 },
22507 "cqMode": {
22508 "allOf": [
22509 {
22510 "$ref": "#/components/schemas/CQMode"
22511 }
22512 ]
22513 },
22514 "crf": {
22515 "maximum": 51,
22516 "minimum": 0,
22517 "type": "integer"
22518 },
22519 "gopSize": {
22520 "minimum": 0,
22521 "type": "integer"
22522 },
22523 "maxBitrate": {
22524 "type": "string"
22525 },
22526 "preferredHwDevice": {
22527 "type": "string"
22528 },
22529 "preset": {
22530 "type": "string"
22531 },
22532 "refs": {
22533 "maximum": 6,
22534 "minimum": 0,
22535 "type": "integer"
22536 },
22537 "targetAudioCodec": {
22538 "allOf": [
22539 {
22540 "$ref": "#/components/schemas/AudioCodec"
22541 }
22542 ]
22543 },
22544 "targetResolution": {
22545 "type": "string"
22546 },
22547 "targetVideoCodec": {
22548 "allOf": [
22549 {
22550 "$ref": "#/components/schemas/VideoCodec"
22551 }
22552 ]
22553 },
22554 "temporalAQ": {
22555 "type": "boolean"
22556 },
22557 "threads": {
22558 "minimum": 0,
22559 "type": "integer"
22560 },
22561 "tonemap": {
22562 "allOf": [
22563 {
22564 "$ref": "#/components/schemas/ToneMapping"
22565 }
22566 ]
22567 },
22568 "transcode": {
22569 "allOf": [
22570 {
22571 "$ref": "#/components/schemas/TranscodePolicy"
22572 }
22573 ]
22574 },
22575 "twoPass": {
22576 "type": "boolean"
22577 }
22578 },
22579 "required": [
22580 "accel",
22581 "accelDecode",
22582 "acceptedAudioCodecs",
22583 "acceptedContainers",
22584 "acceptedVideoCodecs",
22585 "bframes",
22586 "cqMode",
22587 "crf",
22588 "gopSize",
22589 "maxBitrate",
22590 "preferredHwDevice",
22591 "preset",
22592 "refs",
22593 "targetAudioCodec",
22594 "targetResolution",
22595 "targetVideoCodec",
22596 "temporalAQ",
22597 "threads",
22598 "tonemap",
22599 "transcode",
22600 "twoPass"
22601 ],
22602 "type": "object"
22603 },
22604 "SystemConfigFacesDto": {
22605 "properties": {
22606 "import": {
22607 "type": "boolean"
22608 }
22609 },
22610 "required": [
22611 "import"
22612 ],
22613 "type": "object"
22614 },
22615 "SystemConfigGeneratedFullsizeImageDto": {
22616 "properties": {
22617 "enabled": {
22618 "type": "boolean"
22619 },
22620 "format": {
22621 "allOf": [
22622 {
22623 "$ref": "#/components/schemas/ImageFormat"
22624 }
22625 ]
22626 },
22627 "progressive": {
22628 "default": false,
22629 "type": "boolean"
22630 },
22631 "quality": {
22632 "maximum": 100,
22633 "minimum": 1,
22634 "type": "integer"
22635 }
22636 },
22637 "required": [
22638 "enabled",
22639 "format",
22640 "quality"
22641 ],
22642 "type": "object"
22643 },
22644 "SystemConfigGeneratedImageDto": {
22645 "properties": {
22646 "format": {
22647 "allOf": [
22648 {
22649 "$ref": "#/components/schemas/ImageFormat"
22650 }
22651 ]
22652 },
22653 "progressive": {
22654 "default": false,
22655 "type": "boolean"
22656 },
22657 "quality": {
22658 "maximum": 100,
22659 "minimum": 1,
22660 "type": "integer"
22661 },
22662 "size": {
22663 "minimum": 1,
22664 "type": "integer"
22665 }
22666 },
22667 "required": [
22668 "format",
22669 "quality",
22670 "size"
22671 ],
22672 "type": "object"
22673 },
22674 "SystemConfigImageDto": {
22675 "properties": {
22676 "colorspace": {
22677 "allOf": [
22678 {
22679 "$ref": "#/components/schemas/Colorspace"
22680 }
22681 ]
22682 },
22683 "extractEmbedded": {
22684 "type": "boolean"
22685 },
22686 "fullsize": {
22687 "$ref": "#/components/schemas/SystemConfigGeneratedFullsizeImageDto"
22688 },
22689 "preview": {
22690 "$ref": "#/components/schemas/SystemConfigGeneratedImageDto"
22691 },
22692 "thumbnail": {
22693 "$ref": "#/components/schemas/SystemConfigGeneratedImageDto"
22694 }
22695 },
22696 "required": [
22697 "colorspace",
22698 "extractEmbedded",
22699 "fullsize",
22700 "preview",
22701 "thumbnail"
22702 ],
22703 "type": "object"
22704 },
22705 "SystemConfigJobDto": {
22706 "properties": {
22707 "backgroundTask": {
22708 "$ref": "#/components/schemas/JobSettingsDto"
22709 },
22710 "editor": {
22711 "$ref": "#/components/schemas/JobSettingsDto"
22712 },
22713 "faceDetection": {
22714 "$ref": "#/components/schemas/JobSettingsDto"
22715 },
22716 "library": {
22717 "$ref": "#/components/schemas/JobSettingsDto"
22718 },
22719 "metadataExtraction": {
22720 "$ref": "#/components/schemas/JobSettingsDto"
22721 },
22722 "migration": {
22723 "$ref": "#/components/schemas/JobSettingsDto"
22724 },
22725 "notifications": {
22726 "$ref": "#/components/schemas/JobSettingsDto"
22727 },
22728 "ocr": {
22729 "$ref": "#/components/schemas/JobSettingsDto"
22730 },
22731 "search": {
22732 "$ref": "#/components/schemas/JobSettingsDto"
22733 },
22734 "sidecar": {
22735 "$ref": "#/components/schemas/JobSettingsDto"
22736 },
22737 "smartSearch": {
22738 "$ref": "#/components/schemas/JobSettingsDto"
22739 },
22740 "thumbnailGeneration": {
22741 "$ref": "#/components/schemas/JobSettingsDto"
22742 },
22743 "videoConversion": {
22744 "$ref": "#/components/schemas/JobSettingsDto"
22745 },
22746 "workflow": {
22747 "$ref": "#/components/schemas/JobSettingsDto"
22748 }
22749 },
22750 "required": [
22751 "backgroundTask",
22752 "editor",
22753 "faceDetection",
22754 "library",
22755 "metadataExtraction",
22756 "migration",
22757 "notifications",
22758 "ocr",
22759 "search",
22760 "sidecar",
22761 "smartSearch",
22762 "thumbnailGeneration",
22763 "videoConversion",
22764 "workflow"
22765 ],
22766 "type": "object"
22767 },
22768 "SystemConfigLibraryDto": {
22769 "properties": {
22770 "scan": {
22771 "$ref": "#/components/schemas/SystemConfigLibraryScanDto"
22772 },
22773 "watch": {
22774 "$ref": "#/components/schemas/SystemConfigLibraryWatchDto"
22775 }
22776 },
22777 "required": [
22778 "scan",
22779 "watch"
22780 ],
22781 "type": "object"
22782 },
22783 "SystemConfigLibraryScanDto": {
22784 "properties": {
22785 "cronExpression": {
22786 "type": "string"
22787 },
22788 "enabled": {
22789 "type": "boolean"
22790 }
22791 },
22792 "required": [
22793 "cronExpression",
22794 "enabled"
22795 ],
22796 "type": "object"
22797 },
22798 "SystemConfigLibraryWatchDto": {
22799 "properties": {
22800 "enabled": {
22801 "type": "boolean"
22802 }
22803 },
22804 "required": [
22805 "enabled"
22806 ],
22807 "type": "object"
22808 },
22809 "SystemConfigLoggingDto": {
22810 "properties": {
22811 "enabled": {
22812 "type": "boolean"
22813 },
22814 "level": {
22815 "allOf": [
22816 {
22817 "$ref": "#/components/schemas/LogLevel"
22818 }
22819 ]
22820 }
22821 },
22822 "required": [
22823 "enabled",
22824 "level"
22825 ],
22826 "type": "object"
22827 },
22828 "SystemConfigMachineLearningDto": {
22829 "properties": {
22830 "availabilityChecks": {
22831 "$ref": "#/components/schemas/MachineLearningAvailabilityChecksDto"
22832 },
22833 "clip": {
22834 "$ref": "#/components/schemas/CLIPConfig"
22835 },
22836 "duplicateDetection": {
22837 "$ref": "#/components/schemas/DuplicateDetectionConfig"
22838 },
22839 "enabled": {
22840 "type": "boolean"
22841 },
22842 "facialRecognition": {
22843 "$ref": "#/components/schemas/FacialRecognitionConfig"
22844 },
22845 "ocr": {
22846 "$ref": "#/components/schemas/OcrConfig"
22847 },
22848 "urls": {
22849 "format": "uri",
22850 "items": {
22851 "format": "uri",
22852 "type": "string"
22853 },
22854 "minItems": 1,
22855 "type": "array"
22856 }
22857 },
22858 "required": [
22859 "availabilityChecks",
22860 "clip",
22861 "duplicateDetection",
22862 "enabled",
22863 "facialRecognition",
22864 "ocr",
22865 "urls"
22866 ],
22867 "type": "object"
22868 },
22869 "SystemConfigMapDto": {
22870 "properties": {
22871 "darkStyle": {
22872 "format": "uri",
22873 "type": "string"
22874 },
22875 "enabled": {
22876 "type": "boolean"
22877 },
22878 "lightStyle": {
22879 "format": "uri",
22880 "type": "string"
22881 }
22882 },
22883 "required": [
22884 "darkStyle",
22885 "enabled",
22886 "lightStyle"
22887 ],
22888 "type": "object"
22889 },
22890 "SystemConfigMetadataDto": {
22891 "properties": {
22892 "faces": {
22893 "$ref": "#/components/schemas/SystemConfigFacesDto"
22894 }
22895 },
22896 "required": [
22897 "faces"
22898 ],
22899 "type": "object"
22900 },
22901 "SystemConfigNewVersionCheckDto": {
22902 "properties": {
22903 "enabled": {
22904 "type": "boolean"
22905 }
22906 },
22907 "required": [
22908 "enabled"
22909 ],
22910 "type": "object"
22911 },
22912 "SystemConfigNightlyTasksDto": {
22913 "properties": {
22914 "clusterNewFaces": {
22915 "type": "boolean"
22916 },
22917 "databaseCleanup": {
22918 "type": "boolean"
22919 },
22920 "generateMemories": {
22921 "type": "boolean"
22922 },
22923 "missingThumbnails": {
22924 "type": "boolean"
22925 },
22926 "startTime": {
22927 "type": "string"
22928 },
22929 "syncQuotaUsage": {
22930 "type": "boolean"
22931 }
22932 },
22933 "required": [
22934 "clusterNewFaces",
22935 "databaseCleanup",
22936 "generateMemories",
22937 "missingThumbnails",
22938 "startTime",
22939 "syncQuotaUsage"
22940 ],
22941 "type": "object"
22942 },
22943 "SystemConfigNotificationsDto": {
22944 "properties": {
22945 "smtp": {
22946 "$ref": "#/components/schemas/SystemConfigSmtpDto"
22947 }
22948 },
22949 "required": [
22950 "smtp"
22951 ],
22952 "type": "object"
22953 },
22954 "SystemConfigOAuthDto": {
22955 "properties": {
22956 "autoLaunch": {
22957 "type": "boolean"
22958 },
22959 "autoRegister": {
22960 "type": "boolean"
22961 },
22962 "buttonText": {
22963 "type": "string"
22964 },
22965 "clientId": {
22966 "type": "string"
22967 },
22968 "clientSecret": {
22969 "type": "string"
22970 },
22971 "defaultStorageQuota": {
22972 "format": "int64",
22973 "minimum": 0,
22974 "nullable": true,
22975 "type": "integer"
22976 },
22977 "enabled": {
22978 "type": "boolean"
22979 },
22980 "issuerUrl": {
22981 "type": "string"
22982 },
22983 "mobileOverrideEnabled": {
22984 "type": "boolean"
22985 },
22986 "mobileRedirectUri": {
22987 "format": "uri",
22988 "type": "string"
22989 },
22990 "profileSigningAlgorithm": {
22991 "type": "string"
22992 },
22993 "roleClaim": {
22994 "type": "string"
22995 },
22996 "scope": {
22997 "type": "string"
22998 },
22999 "signingAlgorithm": {
23000 "type": "string"
23001 },
23002 "storageLabelClaim": {
23003 "type": "string"
23004 },
23005 "storageQuotaClaim": {
23006 "type": "string"
23007 },
23008 "timeout": {
23009 "minimum": 1,
23010 "type": "integer"
23011 },
23012 "tokenEndpointAuthMethod": {
23013 "allOf": [
23014 {
23015 "$ref": "#/components/schemas/OAuthTokenEndpointAuthMethod"
23016 }
23017 ]
23018 }
23019 },
23020 "required": [
23021 "autoLaunch",
23022 "autoRegister",
23023 "buttonText",
23024 "clientId",
23025 "clientSecret",
23026 "defaultStorageQuota",
23027 "enabled",
23028 "issuerUrl",
23029 "mobileOverrideEnabled",
23030 "mobileRedirectUri",
23031 "profileSigningAlgorithm",
23032 "roleClaim",
23033 "scope",
23034 "signingAlgorithm",
23035 "storageLabelClaim",
23036 "storageQuotaClaim",
23037 "timeout",
23038 "tokenEndpointAuthMethod"
23039 ],
23040 "type": "object"
23041 },
23042 "SystemConfigPasswordLoginDto": {
23043 "properties": {
23044 "enabled": {
23045 "type": "boolean"
23046 }
23047 },
23048 "required": [
23049 "enabled"
23050 ],
23051 "type": "object"
23052 },
23053 "SystemConfigReverseGeocodingDto": {
23054 "properties": {
23055 "enabled": {
23056 "type": "boolean"
23057 }
23058 },
23059 "required": [
23060 "enabled"
23061 ],
23062 "type": "object"
23063 },
23064 "SystemConfigServerDto": {
23065 "properties": {
23066 "externalDomain": {
23067 "format": "uri",
23068 "type": "string"
23069 },
23070 "loginPageMessage": {
23071 "type": "string"
23072 },
23073 "publicUsers": {
23074 "type": "boolean"
23075 }
23076 },
23077 "required": [
23078 "externalDomain",
23079 "loginPageMessage",
23080 "publicUsers"
23081 ],
23082 "type": "object"
23083 },
23084 "SystemConfigSmtpDto": {
23085 "properties": {
23086 "enabled": {
23087 "type": "boolean"
23088 },
23089 "from": {
23090 "type": "string"
23091 },
23092 "replyTo": {
23093 "type": "string"
23094 },
23095 "transport": {
23096 "$ref": "#/components/schemas/SystemConfigSmtpTransportDto"
23097 }
23098 },
23099 "required": [
23100 "enabled",
23101 "from",
23102 "replyTo",
23103 "transport"
23104 ],
23105 "type": "object"
23106 },
23107 "SystemConfigSmtpTransportDto": {
23108 "properties": {
23109 "host": {
23110 "type": "string"
23111 },
23112 "ignoreCert": {
23113 "type": "boolean"
23114 },
23115 "password": {
23116 "type": "string"
23117 },
23118 "port": {
23119 "maximum": 65535,
23120 "minimum": 0,
23121 "type": "number"
23122 },
23123 "secure": {
23124 "type": "boolean"
23125 },
23126 "username": {
23127 "type": "string"
23128 }
23129 },
23130 "required": [
23131 "host",
23132 "ignoreCert",
23133 "password",
23134 "port",
23135 "secure",
23136 "username"
23137 ],
23138 "type": "object"
23139 },
23140 "SystemConfigStorageTemplateDto": {
23141 "properties": {
23142 "enabled": {
23143 "type": "boolean"
23144 },
23145 "hashVerificationEnabled": {
23146 "type": "boolean"
23147 },
23148 "template": {
23149 "type": "string"
23150 }
23151 },
23152 "required": [
23153 "enabled",
23154 "hashVerificationEnabled",
23155 "template"
23156 ],
23157 "type": "object"
23158 },
23159 "SystemConfigTemplateEmailsDto": {
23160 "properties": {
23161 "albumInviteTemplate": {
23162 "type": "string"
23163 },
23164 "albumUpdateTemplate": {
23165 "type": "string"
23166 },
23167 "welcomeTemplate": {
23168 "type": "string"
23169 }
23170 },
23171 "required": [
23172 "albumInviteTemplate",
23173 "albumUpdateTemplate",
23174 "welcomeTemplate"
23175 ],
23176 "type": "object"
23177 },
23178 "SystemConfigTemplateStorageOptionDto": {
23179 "properties": {
23180 "dayOptions": {
23181 "items": {
23182 "type": "string"
23183 },
23184 "type": "array"
23185 },
23186 "hourOptions": {
23187 "items": {
23188 "type": "string"
23189 },
23190 "type": "array"
23191 },
23192 "minuteOptions": {
23193 "items": {
23194 "type": "string"
23195 },
23196 "type": "array"
23197 },
23198 "monthOptions": {
23199 "items": {
23200 "type": "string"
23201 },
23202 "type": "array"
23203 },
23204 "presetOptions": {
23205 "items": {
23206 "type": "string"
23207 },
23208 "type": "array"
23209 },
23210 "secondOptions": {
23211 "items": {
23212 "type": "string"
23213 },
23214 "type": "array"
23215 },
23216 "weekOptions": {
23217 "items": {
23218 "type": "string"
23219 },
23220 "type": "array"
23221 },
23222 "yearOptions": {
23223 "items": {
23224 "type": "string"
23225 },
23226 "type": "array"
23227 }
23228 },
23229 "required": [
23230 "dayOptions",
23231 "hourOptions",
23232 "minuteOptions",
23233 "monthOptions",
23234 "presetOptions",
23235 "secondOptions",
23236 "weekOptions",
23237 "yearOptions"
23238 ],
23239 "type": "object"
23240 },
23241 "SystemConfigTemplatesDto": {
23242 "properties": {
23243 "email": {
23244 "$ref": "#/components/schemas/SystemConfigTemplateEmailsDto"
23245 }
23246 },
23247 "required": [
23248 "email"
23249 ],
23250 "type": "object"
23251 },
23252 "SystemConfigThemeDto": {
23253 "properties": {
23254 "customCss": {
23255 "type": "string"
23256 }
23257 },
23258 "required": [
23259 "customCss"
23260 ],
23261 "type": "object"
23262 },
23263 "SystemConfigTrashDto": {
23264 "properties": {
23265 "days": {
23266 "minimum": 0,
23267 "type": "integer"
23268 },
23269 "enabled": {
23270 "type": "boolean"
23271 }
23272 },
23273 "required": [
23274 "days",
23275 "enabled"
23276 ],
23277 "type": "object"
23278 },
23279 "SystemConfigUserDto": {
23280 "properties": {
23281 "deleteDelay": {
23282 "minimum": 1,
23283 "type": "integer"
23284 }
23285 },
23286 "required": [
23287 "deleteDelay"
23288 ],
23289 "type": "object"
23290 },
23291 "TagBulkAssetsDto": {
23292 "properties": {
23293 "assetIds": {
23294 "items": {
23295 "format": "uuid",
23296 "type": "string"
23297 },
23298 "type": "array"
23299 },
23300 "tagIds": {
23301 "items": {
23302 "format": "uuid",
23303 "type": "string"
23304 },
23305 "type": "array"
23306 }
23307 },
23308 "required": [
23309 "assetIds",
23310 "tagIds"
23311 ],
23312 "type": "object"
23313 },
23314 "TagBulkAssetsResponseDto": {
23315 "properties": {
23316 "count": {
23317 "type": "integer"
23318 }
23319 },
23320 "required": [
23321 "count"
23322 ],
23323 "type": "object"
23324 },
23325 "TagCreateDto": {
23326 "properties": {
23327 "color": {
23328 "pattern": "^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$",
23329 "type": "string"
23330 },
23331 "name": {
23332 "type": "string"
23333 },
23334 "parentId": {
23335 "format": "uuid",
23336 "nullable": true,
23337 "type": "string"
23338 }
23339 },
23340 "required": [
23341 "name"
23342 ],
23343 "type": "object"
23344 },
23345 "TagResponseDto": {
23346 "properties": {
23347 "color": {
23348 "type": "string"
23349 },
23350 "createdAt": {
23351 "format": "date-time",
23352 "type": "string"
23353 },
23354 "id": {
23355 "type": "string"
23356 },
23357 "name": {
23358 "type": "string"
23359 },
23360 "parentId": {
23361 "type": "string"
23362 },
23363 "updatedAt": {
23364 "format": "date-time",
23365 "type": "string"
23366 },
23367 "value": {
23368 "type": "string"
23369 }
23370 },
23371 "required": [
23372 "createdAt",
23373 "id",
23374 "name",
23375 "updatedAt",
23376 "value"
23377 ],
23378 "type": "object"
23379 },
23380 "TagUpdateDto": {
23381 "properties": {
23382 "color": {
23383 "nullable": true,
23384 "type": "string"
23385 }
23386 },
23387 "type": "object"
23388 },
23389 "TagUpsertDto": {
23390 "properties": {
23391 "tags": {
23392 "items": {
23393 "type": "string"
23394 },
23395 "type": "array"
23396 }
23397 },
23398 "required": [
23399 "tags"
23400 ],
23401 "type": "object"
23402 },
23403 "TagsResponse": {
23404 "properties": {
23405 "enabled": {
23406 "default": true,
23407 "type": "boolean"
23408 },
23409 "sidebarWeb": {
23410 "default": true,
23411 "type": "boolean"
23412 }
23413 },
23414 "required": [
23415 "enabled",
23416 "sidebarWeb"
23417 ],
23418 "type": "object"
23419 },
23420 "TagsUpdate": {
23421 "properties": {
23422 "enabled": {
23423 "type": "boolean"
23424 },
23425 "sidebarWeb": {
23426 "type": "boolean"
23427 }
23428 },
23429 "type": "object"
23430 },
23431 "TemplateDto": {
23432 "properties": {
23433 "template": {
23434 "type": "string"
23435 }
23436 },
23437 "required": [
23438 "template"
23439 ],
23440 "type": "object"
23441 },
23442 "TemplateResponseDto": {
23443 "properties": {
23444 "html": {
23445 "type": "string"
23446 },
23447 "name": {
23448 "type": "string"
23449 }
23450 },
23451 "required": [
23452 "html",
23453 "name"
23454 ],
23455 "type": "object"
23456 },
23457 "TestEmailResponseDto": {
23458 "properties": {
23459 "messageId": {
23460 "type": "string"
23461 }
23462 },
23463 "required": [
23464 "messageId"
23465 ],
23466 "type": "object"
23467 },
23468 "TimeBucketAssetResponseDto": {
23469 "properties": {
23470 "city": {
23471 "description": "Array of city names extracted from EXIF GPS data",
23472 "items": {
23473 "nullable": true,
23474 "type": "string"
23475 },
23476 "type": "array"
23477 },
23478 "country": {
23479 "description": "Array of country names extracted from EXIF GPS data",
23480 "items": {
23481 "nullable": true,
23482 "type": "string"
23483 },
23484 "type": "array"
23485 },
23486 "duration": {
23487 "description": "Array of video durations in HH:MM:SS format (null for images)",
23488 "items": {
23489 "nullable": true,
23490 "type": "string"
23491 },
23492 "type": "array"
23493 },
23494 "fileCreatedAt": {
23495 "description": "Array of file creation timestamps in UTC (ISO 8601 format, without timezone)",
23496 "items": {
23497 "type": "string"
23498 },
23499 "type": "array"
23500 },
23501 "id": {
23502 "description": "Array of asset IDs in the time bucket",
23503 "items": {
23504 "type": "string"
23505 },
23506 "type": "array"
23507 },
23508 "isFavorite": {
23509 "description": "Array indicating whether each asset is favorited",
23510 "items": {
23511 "type": "boolean"
23512 },
23513 "type": "array"
23514 },
23515 "isImage": {
23516 "description": "Array indicating whether each asset is an image (false for videos)",
23517 "items": {
23518 "type": "boolean"
23519 },
23520 "type": "array"
23521 },
23522 "isTrashed": {
23523 "description": "Array indicating whether each asset is in the trash",
23524 "items": {
23525 "type": "boolean"
23526 },
23527 "type": "array"
23528 },
23529 "latitude": {
23530 "description": "Array of latitude coordinates extracted from EXIF GPS data",
23531 "items": {
23532 "nullable": true,
23533 "type": "number"
23534 },
23535 "type": "array"
23536 },
23537 "livePhotoVideoId": {
23538 "description": "Array of live photo video asset IDs (null for non-live photos)",
23539 "items": {
23540 "nullable": true,
23541 "type": "string"
23542 },
23543 "type": "array"
23544 },
23545 "localOffsetHours": {
23546 "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.",
23547 "items": {
23548 "type": "number"
23549 },
23550 "type": "array"
23551 },
23552 "longitude": {
23553 "description": "Array of longitude coordinates extracted from EXIF GPS data",
23554 "items": {
23555 "nullable": true,
23556 "type": "number"
23557 },
23558 "type": "array"
23559 },
23560 "ownerId": {
23561 "description": "Array of owner IDs for each asset",
23562 "items": {
23563 "type": "string"
23564 },
23565 "type": "array"
23566 },
23567 "projectionType": {
23568 "description": "Array of projection types for 360° content (e.g., \"EQUIRECTANGULAR\", \"CUBEFACE\", \"CYLINDRICAL\")",
23569 "items": {
23570 "nullable": true,
23571 "type": "string"
23572 },
23573 "type": "array"
23574 },
23575 "ratio": {
23576 "description": "Array of aspect ratios (width/height) for each asset",
23577 "items": {
23578 "type": "number"
23579 },
23580 "type": "array"
23581 },
23582 "stack": {
23583 "description": "Array of stack information as [stackId, assetCount] tuples (null for non-stacked assets)",
23584 "items": {
23585 "items": {
23586 "type": "string"
23587 },
23588 "maxItems": 2,
23589 "minItems": 2,
23590 "nullable": true,
23591 "type": "array"
23592 },
23593 "type": "array"
23594 },
23595 "thumbhash": {
23596 "description": "Array of BlurHash strings for generating asset previews (base64 encoded)",
23597 "items": {
23598 "nullable": true,
23599 "type": "string"
23600 },
23601 "type": "array"
23602 },
23603 "visibility": {
23604 "description": "Array of visibility statuses for each asset (e.g., ARCHIVE, TIMELINE, HIDDEN, LOCKED)",
23605 "items": {
23606 "$ref": "#/components/schemas/AssetVisibility"
23607 },
23608 "type": "array"
23609 }
23610 },
23611 "required": [
23612 "city",
23613 "country",
23614 "duration",
23615 "fileCreatedAt",
23616 "id",
23617 "isFavorite",
23618 "isImage",
23619 "isTrashed",
23620 "livePhotoVideoId",
23621 "localOffsetHours",
23622 "ownerId",
23623 "projectionType",
23624 "ratio",
23625 "thumbhash",
23626 "visibility"
23627 ],
23628 "type": "object"
23629 },
23630 "TimeBucketsResponseDto": {
23631 "properties": {
23632 "count": {
23633 "description": "Number of assets in this time bucket",
23634 "example": 42,
23635 "type": "integer"
23636 },
23637 "timeBucket": {
23638 "description": "Time bucket identifier in YYYY-MM-DD format representing the start of the time period",
23639 "example": "2024-01-01",
23640 "type": "string"
23641 }
23642 },
23643 "required": [
23644 "count",
23645 "timeBucket"
23646 ],
23647 "type": "object"
23648 },
23649 "ToneMapping": {
23650 "enum": [
23651 "hable",
23652 "mobius",
23653 "reinhard",
23654 "disabled"
23655 ],
23656 "type": "string"
23657 },
23658 "TranscodeHWAccel": {
23659 "enum": [
23660 "nvenc",
23661 "qsv",
23662 "vaapi",
23663 "rkmpp",
23664 "disabled"
23665 ],
23666 "type": "string"
23667 },
23668 "TranscodePolicy": {
23669 "enum": [
23670 "all",
23671 "optimal",
23672 "bitrate",
23673 "required",
23674 "disabled"
23675 ],
23676 "type": "string"
23677 },
23678 "TrashResponseDto": {
23679 "properties": {
23680 "count": {
23681 "type": "integer"
23682 }
23683 },
23684 "required": [
23685 "count"
23686 ],
23687 "type": "object"
23688 },
23689 "UpdateAlbumDto": {
23690 "properties": {
23691 "albumName": {
23692 "type": "string"
23693 },
23694 "albumThumbnailAssetId": {
23695 "format": "uuid",
23696 "type": "string"
23697 },
23698 "description": {
23699 "type": "string"
23700 },
23701 "isActivityEnabled": {
23702 "type": "boolean"
23703 },
23704 "order": {
23705 "allOf": [
23706 {
23707 "$ref": "#/components/schemas/AssetOrder"
23708 }
23709 ]
23710 }
23711 },
23712 "type": "object"
23713 },
23714 "UpdateAlbumUserDto": {
23715 "properties": {
23716 "role": {
23717 "allOf": [
23718 {
23719 "$ref": "#/components/schemas/AlbumUserRole"
23720 }
23721 ]
23722 }
23723 },
23724 "required": [
23725 "role"
23726 ],
23727 "type": "object"
23728 },
23729 "UpdateAssetDto": {
23730 "properties": {
23731 "dateTimeOriginal": {
23732 "type": "string"
23733 },
23734 "description": {
23735 "type": "string"
23736 },
23737 "isFavorite": {
23738 "type": "boolean"
23739 },
23740 "latitude": {
23741 "type": "number"
23742 },
23743 "livePhotoVideoId": {
23744 "format": "uuid",
23745 "nullable": true,
23746 "type": "string"
23747 },
23748 "longitude": {
23749 "type": "number"
23750 },
23751 "rating": {
23752 "maximum": 5,
23753 "minimum": -1,
23754 "type": "number"
23755 },
23756 "visibility": {
23757 "allOf": [
23758 {
23759 "$ref": "#/components/schemas/AssetVisibility"
23760 }
23761 ]
23762 }
23763 },
23764 "type": "object"
23765 },
23766 "UpdateLibraryDto": {
23767 "properties": {
23768 "exclusionPatterns": {
23769 "items": {
23770 "type": "string"
23771 },
23772 "maxItems": 128,
23773 "type": "array",
23774 "uniqueItems": true
23775 },
23776 "importPaths": {
23777 "items": {
23778 "type": "string"
23779 },
23780 "maxItems": 128,
23781 "type": "array",
23782 "uniqueItems": true
23783 },
23784 "name": {
23785 "type": "string"
23786 }
23787 },
23788 "type": "object"
23789 },
23790 "UsageByUserDto": {
23791 "properties": {
23792 "photos": {
23793 "type": "integer"
23794 },
23795 "quotaSizeInBytes": {
23796 "format": "int64",
23797 "nullable": true,
23798 "type": "integer"
23799 },
23800 "usage": {
23801 "format": "int64",
23802 "type": "integer"
23803 },
23804 "usagePhotos": {
23805 "format": "int64",
23806 "type": "integer"
23807 },
23808 "usageVideos": {
23809 "format": "int64",
23810 "type": "integer"
23811 },
23812 "userId": {
23813 "type": "string"
23814 },
23815 "userName": {
23816 "type": "string"
23817 },
23818 "videos": {
23819 "type": "integer"
23820 }
23821 },
23822 "required": [
23823 "photos",
23824 "quotaSizeInBytes",
23825 "usage",
23826 "usagePhotos",
23827 "usageVideos",
23828 "userId",
23829 "userName",
23830 "videos"
23831 ],
23832 "type": "object"
23833 },
23834 "UserAdminCreateDto": {
23835 "properties": {
23836 "avatarColor": {
23837 "allOf": [
23838 {
23839 "$ref": "#/components/schemas/UserAvatarColor"
23840 }
23841 ],
23842 "nullable": true
23843 },
23844 "email": {
23845 "format": "email",
23846 "type": "string"
23847 },
23848 "isAdmin": {
23849 "type": "boolean"
23850 },
23851 "name": {
23852 "type": "string"
23853 },
23854 "notify": {
23855 "type": "boolean"
23856 },
23857 "password": {
23858 "type": "string"
23859 },
23860 "quotaSizeInBytes": {
23861 "format": "int64",
23862 "minimum": 0,
23863 "nullable": true,
23864 "type": "integer"
23865 },
23866 "shouldChangePassword": {
23867 "type": "boolean"
23868 },
23869 "storageLabel": {
23870 "nullable": true,
23871 "type": "string"
23872 }
23873 },
23874 "required": [
23875 "email",
23876 "name",
23877 "password"
23878 ],
23879 "type": "object"
23880 },
23881 "UserAdminDeleteDto": {
23882 "properties": {
23883 "force": {
23884 "type": "boolean"
23885 }
23886 },
23887 "type": "object"
23888 },
23889 "UserAdminResponseDto": {
23890 "properties": {
23891 "avatarColor": {
23892 "allOf": [
23893 {
23894 "$ref": "#/components/schemas/UserAvatarColor"
23895 }
23896 ]
23897 },
23898 "createdAt": {
23899 "format": "date-time",
23900 "type": "string"
23901 },
23902 "deletedAt": {
23903 "format": "date-time",
23904 "nullable": true,
23905 "type": "string"
23906 },
23907 "email": {
23908 "type": "string"
23909 },
23910 "id": {
23911 "type": "string"
23912 },
23913 "isAdmin": {
23914 "type": "boolean"
23915 },
23916 "license": {
23917 "allOf": [
23918 {
23919 "$ref": "#/components/schemas/UserLicense"
23920 }
23921 ],
23922 "nullable": true
23923 },
23924 "name": {
23925 "type": "string"
23926 },
23927 "oauthId": {
23928 "type": "string"
23929 },
23930 "profileChangedAt": {
23931 "format": "date-time",
23932 "type": "string"
23933 },
23934 "profileImagePath": {
23935 "type": "string"
23936 },
23937 "quotaSizeInBytes": {
23938 "format": "int64",
23939 "nullable": true,
23940 "type": "integer"
23941 },
23942 "quotaUsageInBytes": {
23943 "format": "int64",
23944 "nullable": true,
23945 "type": "integer"
23946 },
23947 "shouldChangePassword": {
23948 "type": "boolean"
23949 },
23950 "status": {
23951 "allOf": [
23952 {
23953 "$ref": "#/components/schemas/UserStatus"
23954 }
23955 ]
23956 },
23957 "storageLabel": {
23958 "nullable": true,
23959 "type": "string"
23960 },
23961 "updatedAt": {
23962 "format": "date-time",
23963 "type": "string"
23964 }
23965 },
23966 "required": [
23967 "avatarColor",
23968 "createdAt",
23969 "deletedAt",
23970 "email",
23971 "id",
23972 "isAdmin",
23973 "license",
23974 "name",
23975 "oauthId",
23976 "profileChangedAt",
23977 "profileImagePath",
23978 "quotaSizeInBytes",
23979 "quotaUsageInBytes",
23980 "shouldChangePassword",
23981 "status",
23982 "storageLabel",
23983 "updatedAt"
23984 ],
23985 "type": "object"
23986 },
23987 "UserAdminUpdateDto": {
23988 "properties": {
23989 "avatarColor": {
23990 "allOf": [
23991 {
23992 "$ref": "#/components/schemas/UserAvatarColor"
23993 }
23994 ],
23995 "nullable": true
23996 },
23997 "email": {
23998 "format": "email",
23999 "type": "string"
24000 },
24001 "isAdmin": {
24002 "type": "boolean"
24003 },
24004 "name": {
24005 "type": "string"
24006 },
24007 "password": {
24008 "type": "string"
24009 },
24010 "pinCode": {
24011 "example": "123456",
24012 "nullable": true,
24013 "type": "string"
24014 },
24015 "quotaSizeInBytes": {
24016 "format": "int64",
24017 "minimum": 0,
24018 "nullable": true,
24019 "type": "integer"
24020 },
24021 "shouldChangePassword": {
24022 "type": "boolean"
24023 },
24024 "storageLabel": {
24025 "nullable": true,
24026 "type": "string"
24027 }
24028 },
24029 "type": "object"
24030 },
24031 "UserAvatarColor": {
24032 "enum": [
24033 "primary",
24034 "pink",
24035 "red",
24036 "yellow",
24037 "blue",
24038 "green",
24039 "purple",
24040 "orange",
24041 "gray",
24042 "amber"
24043 ],
24044 "type": "string"
24045 },
24046 "UserLicense": {
24047 "properties": {
24048 "activatedAt": {
24049 "format": "date-time",
24050 "type": "string"
24051 },
24052 "activationKey": {
24053 "type": "string"
24054 },
24055 "licenseKey": {
24056 "type": "string"
24057 }
24058 },
24059 "required": [
24060 "activatedAt",
24061 "activationKey",
24062 "licenseKey"
24063 ],
24064 "type": "object"
24065 },
24066 "UserMetadataKey": {
24067 "enum": [
24068 "preferences",
24069 "license",
24070 "onboarding"
24071 ],
24072 "type": "string"
24073 },
24074 "UserPreferencesResponseDto": {
24075 "properties": {
24076 "albums": {
24077 "$ref": "#/components/schemas/AlbumsResponse"
24078 },
24079 "cast": {
24080 "$ref": "#/components/schemas/CastResponse"
24081 },
24082 "download": {
24083 "$ref": "#/components/schemas/DownloadResponse"
24084 },
24085 "emailNotifications": {
24086 "$ref": "#/components/schemas/EmailNotificationsResponse"
24087 },
24088 "folders": {
24089 "$ref": "#/components/schemas/FoldersResponse"
24090 },
24091 "memories": {
24092 "$ref": "#/components/schemas/MemoriesResponse"
24093 },
24094 "people": {
24095 "$ref": "#/components/schemas/PeopleResponse"
24096 },
24097 "purchase": {
24098 "$ref": "#/components/schemas/PurchaseResponse"
24099 },
24100 "ratings": {
24101 "$ref": "#/components/schemas/RatingsResponse"
24102 },
24103 "sharedLinks": {
24104 "$ref": "#/components/schemas/SharedLinksResponse"
24105 },
24106 "tags": {
24107 "$ref": "#/components/schemas/TagsResponse"
24108 }
24109 },
24110 "required": [
24111 "albums",
24112 "cast",
24113 "download",
24114 "emailNotifications",
24115 "folders",
24116 "memories",
24117 "people",
24118 "purchase",
24119 "ratings",
24120 "sharedLinks",
24121 "tags"
24122 ],
24123 "type": "object"
24124 },
24125 "UserPreferencesUpdateDto": {
24126 "properties": {
24127 "albums": {
24128 "$ref": "#/components/schemas/AlbumsUpdate"
24129 },
24130 "avatar": {
24131 "$ref": "#/components/schemas/AvatarUpdate"
24132 },
24133 "cast": {
24134 "$ref": "#/components/schemas/CastUpdate"
24135 },
24136 "download": {
24137 "$ref": "#/components/schemas/DownloadUpdate"
24138 },
24139 "emailNotifications": {
24140 "$ref": "#/components/schemas/EmailNotificationsUpdate"
24141 },
24142 "folders": {
24143 "$ref": "#/components/schemas/FoldersUpdate"
24144 },
24145 "memories": {
24146 "$ref": "#/components/schemas/MemoriesUpdate"
24147 },
24148 "people": {
24149 "$ref": "#/components/schemas/PeopleUpdate"
24150 },
24151 "purchase": {
24152 "$ref": "#/components/schemas/PurchaseUpdate"
24153 },
24154 "ratings": {
24155 "$ref": "#/components/schemas/RatingsUpdate"
24156 },
24157 "sharedLinks": {
24158 "$ref": "#/components/schemas/SharedLinksUpdate"
24159 },
24160 "tags": {
24161 "$ref": "#/components/schemas/TagsUpdate"
24162 }
24163 },
24164 "type": "object"
24165 },
24166 "UserResponseDto": {
24167 "properties": {
24168 "avatarColor": {
24169 "allOf": [
24170 {
24171 "$ref": "#/components/schemas/UserAvatarColor"
24172 }
24173 ]
24174 },
24175 "email": {
24176 "type": "string"
24177 },
24178 "id": {
24179 "type": "string"
24180 },
24181 "name": {
24182 "type": "string"
24183 },
24184 "profileChangedAt": {
24185 "format": "date-time",
24186 "type": "string"
24187 },
24188 "profileImagePath": {
24189 "type": "string"
24190 }
24191 },
24192 "required": [
24193 "avatarColor",
24194 "email",
24195 "id",
24196 "name",
24197 "profileChangedAt",
24198 "profileImagePath"
24199 ],
24200 "type": "object"
24201 },
24202 "UserStatus": {
24203 "enum": [
24204 "active",
24205 "removing",
24206 "deleted"
24207 ],
24208 "type": "string"
24209 },
24210 "UserUpdateMeDto": {
24211 "properties": {
24212 "avatarColor": {
24213 "allOf": [
24214 {
24215 "$ref": "#/components/schemas/UserAvatarColor"
24216 }
24217 ],
24218 "nullable": true
24219 },
24220 "email": {
24221 "format": "email",
24222 "type": "string"
24223 },
24224 "name": {
24225 "type": "string"
24226 },
24227 "password": {
24228 "type": "string"
24229 }
24230 },
24231 "type": "object"
24232 },
24233 "ValidateAccessTokenResponseDto": {
24234 "properties": {
24235 "authStatus": {
24236 "type": "boolean"
24237 }
24238 },
24239 "required": [
24240 "authStatus"
24241 ],
24242 "type": "object"
24243 },
24244 "ValidateLibraryDto": {
24245 "properties": {
24246 "exclusionPatterns": {
24247 "items": {
24248 "type": "string"
24249 },
24250 "maxItems": 128,
24251 "type": "array",
24252 "uniqueItems": true
24253 },
24254 "importPaths": {
24255 "items": {
24256 "type": "string"
24257 },
24258 "maxItems": 128,
24259 "type": "array",
24260 "uniqueItems": true
24261 }
24262 },
24263 "type": "object"
24264 },
24265 "ValidateLibraryImportPathResponseDto": {
24266 "properties": {
24267 "importPath": {
24268 "type": "string"
24269 },
24270 "isValid": {
24271 "default": false,
24272 "type": "boolean"
24273 },
24274 "message": {
24275 "type": "string"
24276 }
24277 },
24278 "required": [
24279 "importPath",
24280 "isValid"
24281 ],
24282 "type": "object"
24283 },
24284 "ValidateLibraryResponseDto": {
24285 "properties": {
24286 "importPaths": {
24287 "items": {
24288 "$ref": "#/components/schemas/ValidateLibraryImportPathResponseDto"
24289 },
24290 "type": "array"
24291 }
24292 },
24293 "type": "object"
24294 },
24295 "VersionCheckStateResponseDto": {
24296 "properties": {
24297 "checkedAt": {
24298 "nullable": true,
24299 "type": "string"
24300 },
24301 "releaseVersion": {
24302 "nullable": true,
24303 "type": "string"
24304 }
24305 },
24306 "required": [
24307 "checkedAt",
24308 "releaseVersion"
24309 ],
24310 "type": "object"
24311 },
24312 "VideoCodec": {
24313 "enum": [
24314 "h264",
24315 "hevc",
24316 "vp9",
24317 "av1"
24318 ],
24319 "type": "string"
24320 },
24321 "VideoContainer": {
24322 "enum": [
24323 "mov",
24324 "mp4",
24325 "ogg",
24326 "webm"
24327 ],
24328 "type": "string"
24329 },
24330 "WorkflowActionItemDto": {
24331 "properties": {
24332 "actionConfig": {
24333 "type": "object"
24334 },
24335 "pluginActionId": {
24336 "format": "uuid",
24337 "type": "string"
24338 }
24339 },
24340 "required": [
24341 "pluginActionId"
24342 ],
24343 "type": "object"
24344 },
24345 "WorkflowActionResponseDto": {
24346 "properties": {
24347 "actionConfig": {
24348 "nullable": true,
24349 "type": "object"
24350 },
24351 "id": {
24352 "type": "string"
24353 },
24354 "order": {
24355 "type": "number"
24356 },
24357 "pluginActionId": {
24358 "type": "string"
24359 },
24360 "workflowId": {
24361 "type": "string"
24362 }
24363 },
24364 "required": [
24365 "actionConfig",
24366 "id",
24367 "order",
24368 "pluginActionId",
24369 "workflowId"
24370 ],
24371 "type": "object"
24372 },
24373 "WorkflowCreateDto": {
24374 "properties": {
24375 "actions": {
24376 "items": {
24377 "$ref": "#/components/schemas/WorkflowActionItemDto"
24378 },
24379 "type": "array"
24380 },
24381 "description": {
24382 "type": "string"
24383 },
24384 "enabled": {
24385 "type": "boolean"
24386 },
24387 "filters": {
24388 "items": {
24389 "$ref": "#/components/schemas/WorkflowFilterItemDto"
24390 },
24391 "type": "array"
24392 },
24393 "name": {
24394 "type": "string"
24395 },
24396 "triggerType": {
24397 "allOf": [
24398 {
24399 "$ref": "#/components/schemas/PluginTriggerType"
24400 }
24401 ]
24402 }
24403 },
24404 "required": [
24405 "actions",
24406 "filters",
24407 "name",
24408 "triggerType"
24409 ],
24410 "type": "object"
24411 },
24412 "WorkflowFilterItemDto": {
24413 "properties": {
24414 "filterConfig": {
24415 "type": "object"
24416 },
24417 "pluginFilterId": {
24418 "format": "uuid",
24419 "type": "string"
24420 }
24421 },
24422 "required": [
24423 "pluginFilterId"
24424 ],
24425 "type": "object"
24426 },
24427 "WorkflowFilterResponseDto": {
24428 "properties": {
24429 "filterConfig": {
24430 "nullable": true,
24431 "type": "object"
24432 },
24433 "id": {
24434 "type": "string"
24435 },
24436 "order": {
24437 "type": "number"
24438 },
24439 "pluginFilterId": {
24440 "type": "string"
24441 },
24442 "workflowId": {
24443 "type": "string"
24444 }
24445 },
24446 "required": [
24447 "filterConfig",
24448 "id",
24449 "order",
24450 "pluginFilterId",
24451 "workflowId"
24452 ],
24453 "type": "object"
24454 },
24455 "WorkflowResponseDto": {
24456 "properties": {
24457 "actions": {
24458 "items": {
24459 "$ref": "#/components/schemas/WorkflowActionResponseDto"
24460 },
24461 "type": "array"
24462 },
24463 "createdAt": {
24464 "type": "string"
24465 },
24466 "description": {
24467 "type": "string"
24468 },
24469 "enabled": {
24470 "type": "boolean"
24471 },
24472 "filters": {
24473 "items": {
24474 "$ref": "#/components/schemas/WorkflowFilterResponseDto"
24475 },
24476 "type": "array"
24477 },
24478 "id": {
24479 "type": "string"
24480 },
24481 "name": {
24482 "nullable": true,
24483 "type": "string"
24484 },
24485 "ownerId": {
24486 "type": "string"
24487 },
24488 "triggerType": {
24489 "allOf": [
24490 {
24491 "$ref": "#/components/schemas/PluginTriggerType"
24492 }
24493 ]
24494 }
24495 },
24496 "required": [
24497 "actions",
24498 "createdAt",
24499 "description",
24500 "enabled",
24501 "filters",
24502 "id",
24503 "name",
24504 "ownerId",
24505 "triggerType"
24506 ],
24507 "type": "object"
24508 },
24509 "WorkflowUpdateDto": {
24510 "properties": {
24511 "actions": {
24512 "items": {
24513 "$ref": "#/components/schemas/WorkflowActionItemDto"
24514 },
24515 "type": "array"
24516 },
24517 "description": {
24518 "type": "string"
24519 },
24520 "enabled": {
24521 "type": "boolean"
24522 },
24523 "filters": {
24524 "items": {
24525 "$ref": "#/components/schemas/WorkflowFilterItemDto"
24526 },
24527 "type": "array"
24528 },
24529 "name": {
24530 "type": "string"
24531 },
24532 "triggerType": {
24533 "allOf": [
24534 {
24535 "$ref": "#/components/schemas/PluginTriggerType"
24536 }
24537 ]
24538 }
24539 },
24540 "type": "object"
24541 }
24542 }
24543 }
24544}