@immich/sdk 2.7.5 → 3.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Immich
3
- * 2.7.5
3
+ * 3.0.0-rc.1
4
4
  * DO NOT MODIFY - This file has been generated using oazapfts.
5
5
  * See https://www.npmjs.com/package/oazapfts
6
6
  */
@@ -10,7 +10,6 @@ export declare const servers: {
10
10
  server1: string;
11
11
  };
12
12
  export type UserResponseDto = {
13
- /** Avatar color */
14
13
  avatarColor: UserAvatarColor;
15
14
  /** User email */
16
15
  email: string;
@@ -32,7 +31,6 @@ export type ActivityResponseDto = {
32
31
  createdAt: string;
33
32
  /** Activity ID */
34
33
  id: string;
35
- /** Activity type */
36
34
  "type": ReactionType;
37
35
  user: UserResponseDto;
38
36
  };
@@ -43,7 +41,6 @@ export type ActivityCreateDto = {
43
41
  assetId?: string;
44
42
  /** Comment text (required if type is comment) */
45
43
  comment?: string;
46
- /** Activity type (like or comment) */
47
44
  "type": ReactionType;
48
45
  };
49
46
  export type ActivityStatisticsResponseDto = {
@@ -53,21 +50,41 @@ export type ActivityStatisticsResponseDto = {
53
50
  likes: number;
54
51
  };
55
52
  export type DatabaseBackupDeleteDto = {
53
+ /** Backup filenames to delete */
56
54
  backups: string[];
57
55
  };
58
56
  export type DatabaseBackupDto = {
57
+ /** Backup filename */
59
58
  filename: string;
59
+ /** Backup file size */
60
60
  filesize: number;
61
+ /** Backup timezone */
61
62
  timezone: string;
62
63
  };
63
64
  export type DatabaseBackupListResponseDto = {
65
+ /** List of backups */
64
66
  backups: DatabaseBackupDto[];
65
67
  };
66
68
  export type DatabaseBackupUploadDto = {
69
+ /** Database backup file */
67
70
  file?: Blob;
68
71
  };
72
+ export type IntegrityReportResponseDto = {
73
+ items: {
74
+ /** Integrity report item id */
75
+ id: string;
76
+ /** Integrity report item path */
77
+ path: string;
78
+ "type": IntegrityReport;
79
+ }[];
80
+ nextCursor?: string;
81
+ };
82
+ export type IntegrityReportSummaryResponseDto = {
83
+ checksum_mismatch: number;
84
+ missing_file: number;
85
+ untracked_file: number;
86
+ };
69
87
  export type SetMaintenanceModeDto = {
70
- /** Maintenance action */
71
88
  action: MaintenanceAction;
72
89
  /** Restore backup filename */
73
90
  restoreBackupFilename?: string;
@@ -75,7 +92,6 @@ export type SetMaintenanceModeDto = {
75
92
  export type MaintenanceDetectInstallStorageFolderDto = {
76
93
  /** Number of files in the folder */
77
94
  files: number;
78
- /** Storage folder */
79
95
  folder: StorageFolder;
80
96
  /** Whether the folder is readable */
81
97
  readable: boolean;
@@ -94,7 +110,6 @@ export type MaintenanceAuthDto = {
94
110
  username: string;
95
111
  };
96
112
  export type MaintenanceStatusResponseDto = {
97
- /** Maintenance action */
98
113
  action: MaintenanceAction;
99
114
  active: boolean;
100
115
  error?: string;
@@ -103,16 +118,16 @@ export type MaintenanceStatusResponseDto = {
103
118
  };
104
119
  export type NotificationCreateDto = {
105
120
  /** Additional notification data */
106
- data?: object;
121
+ data?: {
122
+ [key: string]: any;
123
+ };
107
124
  /** Notification description */
108
125
  description?: string | null;
109
- /** Notification level */
110
126
  level?: NotificationLevel;
111
127
  /** Date when notification was read */
112
128
  readAt?: string | null;
113
129
  /** Notification title */
114
130
  title: string;
115
- /** Notification type */
116
131
  "type"?: NotificationType;
117
132
  /** User ID to send notification to */
118
133
  userId: string;
@@ -121,18 +136,18 @@ export type NotificationDto = {
121
136
  /** Creation date */
122
137
  createdAt: string;
123
138
  /** Additional notification data */
124
- data?: object;
139
+ data?: {
140
+ [key: string]: any;
141
+ };
125
142
  /** Notification description */
126
143
  description?: string;
127
144
  /** Notification ID */
128
145
  id: string;
129
- /** Notification level */
130
146
  level: NotificationLevel;
131
147
  /** Date when notification was read */
132
148
  readAt?: string;
133
149
  /** Notification title */
134
150
  title: string;
135
- /** Notification type */
136
151
  "type": NotificationType;
137
152
  };
138
153
  export type TemplateDto = {
@@ -177,11 +192,10 @@ export type UserLicense = {
177
192
  activatedAt: string;
178
193
  /** Activation key */
179
194
  activationKey: string;
180
- /** License key */
195
+ /** License key (format: /^IM(SV|CL)(-[\dA-Za-z]{4}){8}$/) */
181
196
  licenseKey: string;
182
197
  };
183
198
  export type UserAdminResponseDto = {
184
- /** Avatar color */
185
199
  avatarColor: UserAvatarColor;
186
200
  /** Creation date */
187
201
  createdAt: string;
@@ -193,7 +207,6 @@ export type UserAdminResponseDto = {
193
207
  id: string;
194
208
  /** Is admin user */
195
209
  isAdmin: boolean;
196
- /** User license */
197
210
  license: (UserLicense) | null;
198
211
  /** User name */
199
212
  name: string;
@@ -209,7 +222,6 @@ export type UserAdminResponseDto = {
209
222
  quotaUsageInBytes: number | null;
210
223
  /** Require password change on next login */
211
224
  shouldChangePassword: boolean;
212
- /** User status */
213
225
  status: UserStatus;
214
226
  /** Storage label */
215
227
  storageLabel: string | null;
@@ -217,7 +229,6 @@ export type UserAdminResponseDto = {
217
229
  updatedAt: string;
218
230
  };
219
231
  export type UserAdminCreateDto = {
220
- /** Avatar color */
221
232
  avatarColor?: (UserAvatarColor) | null;
222
233
  /** User email */
223
234
  email: string;
@@ -243,7 +254,6 @@ export type UserAdminDeleteDto = {
243
254
  force?: boolean;
244
255
  };
245
256
  export type UserAdminUpdateDto = {
246
- /** Avatar color */
247
257
  avatarColor?: (UserAvatarColor) | null;
248
258
  /** User email */
249
259
  email?: string;
@@ -262,8 +272,21 @@ export type UserAdminUpdateDto = {
262
272
  /** Storage label */
263
273
  storageLabel?: string | null;
264
274
  };
275
+ export type CalendarHeatmapResponseDto = {
276
+ /** Start date in UTC */
277
+ "from": string;
278
+ series: {
279
+ /** Activity count */
280
+ count: number;
281
+ /** Date in UTC */
282
+ date: string;
283
+ }[];
284
+ /** End date in UTC */
285
+ to: string;
286
+ /** Total activity count over the period */
287
+ totalCount: number;
288
+ };
265
289
  export type AlbumsResponse = {
266
- /** Default asset order for albums */
267
290
  defaultAssetOrder: AssetOrder;
268
291
  };
269
292
  export type CastResponse = {
@@ -299,6 +322,8 @@ export type MemoriesResponse = {
299
322
  export type PeopleResponse = {
300
323
  /** Whether people are enabled */
301
324
  enabled: boolean;
325
+ /** People face threshold */
326
+ minimumFaces?: number;
302
327
  /** Whether people appear in web sidebar */
303
328
  sidebarWeb: boolean;
304
329
  };
@@ -338,11 +363,9 @@ export type UserPreferencesResponseDto = {
338
363
  tags: TagsResponse;
339
364
  };
340
365
  export type AlbumsUpdate = {
341
- /** Default asset order for albums */
342
366
  defaultAssetOrder?: AssetOrder;
343
367
  };
344
368
  export type AvatarUpdate = {
345
- /** Avatar color */
346
369
  color?: UserAvatarColor;
347
370
  };
348
371
  export type CastUpdate = {
@@ -378,6 +401,8 @@ export type MemoriesUpdate = {
378
401
  export type PeopleUpdate = {
379
402
  /** Whether people are enabled */
380
403
  enabled?: boolean;
404
+ /** People face threshold */
405
+ minimumFaces?: number;
381
406
  /** Whether people appear in web sidebar */
382
407
  sidebarWeb?: boolean;
383
408
  };
@@ -446,184 +471,9 @@ export type AssetStatsResponseDto = {
446
471
  videos: number;
447
472
  };
448
473
  export type AlbumUserResponseDto = {
449
- /** Album user role */
450
474
  role: AlbumUserRole;
451
475
  user: UserResponseDto;
452
476
  };
453
- export type ExifResponseDto = {
454
- /** City name */
455
- city?: string | null;
456
- /** Country name */
457
- country?: string | null;
458
- /** Original date/time */
459
- dateTimeOriginal?: string | null;
460
- /** Image description */
461
- description?: string | null;
462
- /** Image height in pixels */
463
- exifImageHeight?: number | null;
464
- /** Image width in pixels */
465
- exifImageWidth?: number | null;
466
- /** Exposure time */
467
- exposureTime?: string | null;
468
- /** F-number (aperture) */
469
- fNumber?: number | null;
470
- /** File size in bytes */
471
- fileSizeInByte?: number | null;
472
- /** Focal length in mm */
473
- focalLength?: number | null;
474
- /** ISO sensitivity */
475
- iso?: number | null;
476
- /** GPS latitude */
477
- latitude?: number | null;
478
- /** Lens model */
479
- lensModel?: string | null;
480
- /** GPS longitude */
481
- longitude?: number | null;
482
- /** Camera make */
483
- make?: string | null;
484
- /** Camera model */
485
- model?: string | null;
486
- /** Modification date/time */
487
- modifyDate?: string | null;
488
- /** Image orientation */
489
- orientation?: string | null;
490
- /** Projection type */
491
- projectionType?: string | null;
492
- /** Rating */
493
- rating?: number | null;
494
- /** State/province name */
495
- state?: string | null;
496
- /** Time zone */
497
- timeZone?: string | null;
498
- };
499
- export type AssetFaceWithoutPersonResponseDto = {
500
- /** Bounding box X1 coordinate */
501
- boundingBoxX1: number;
502
- /** Bounding box X2 coordinate */
503
- boundingBoxX2: number;
504
- /** Bounding box Y1 coordinate */
505
- boundingBoxY1: number;
506
- /** Bounding box Y2 coordinate */
507
- boundingBoxY2: number;
508
- /** Face ID */
509
- id: string;
510
- /** Image height in pixels */
511
- imageHeight: number;
512
- /** Image width in pixels */
513
- imageWidth: number;
514
- /** Face detection source type */
515
- sourceType?: SourceType;
516
- };
517
- export type PersonWithFacesResponseDto = {
518
- /** Person date of birth */
519
- birthDate: string | null;
520
- /** Person color (hex) */
521
- color?: string;
522
- /** Face detections */
523
- faces: AssetFaceWithoutPersonResponseDto[];
524
- /** Person ID */
525
- id: string;
526
- /** Is favorite */
527
- isFavorite?: boolean;
528
- /** Is hidden */
529
- isHidden: boolean;
530
- /** Person name */
531
- name: string;
532
- /** Thumbnail path */
533
- thumbnailPath: string;
534
- /** Last update date */
535
- updatedAt?: string;
536
- };
537
- export type AssetStackResponseDto = {
538
- /** Number of assets in stack */
539
- assetCount: number;
540
- /** Stack ID */
541
- id: string;
542
- /** Primary asset ID */
543
- primaryAssetId: string;
544
- };
545
- export type TagResponseDto = {
546
- /** Tag color (hex) */
547
- color?: string;
548
- /** Creation date */
549
- createdAt: string;
550
- /** Tag ID */
551
- id: string;
552
- /** Tag name */
553
- name: string;
554
- /** Parent tag ID */
555
- parentId?: string;
556
- /** Last update date */
557
- updatedAt: string;
558
- /** Tag value (full path) */
559
- value: string;
560
- };
561
- export type AssetResponseDto = {
562
- /** Base64 encoded SHA1 hash */
563
- checksum: string;
564
- /** The UTC timestamp when the asset was originally uploaded to Immich. */
565
- createdAt: string;
566
- /** Device asset ID */
567
- deviceAssetId: string;
568
- /** Device ID */
569
- deviceId: string;
570
- /** Duplicate group ID */
571
- duplicateId?: string | null;
572
- /** Video duration (for videos) */
573
- duration: string;
574
- exifInfo?: ExifResponseDto;
575
- /** 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. */
576
- fileCreatedAt: string;
577
- /** 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. */
578
- fileModifiedAt: string;
579
- /** Whether asset has metadata */
580
- hasMetadata: boolean;
581
- /** Asset height */
582
- height: number | null;
583
- /** Asset ID */
584
- id: string;
585
- /** Is archived */
586
- isArchived: boolean;
587
- /** Is edited */
588
- isEdited: boolean;
589
- /** Is favorite */
590
- isFavorite: boolean;
591
- /** Is offline */
592
- isOffline: boolean;
593
- /** Is trashed */
594
- isTrashed: boolean;
595
- /** Library ID */
596
- libraryId?: string | null;
597
- /** Live photo video ID */
598
- livePhotoVideoId?: string | null;
599
- /** 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. */
600
- localDateTime: string;
601
- /** Original file name */
602
- originalFileName: string;
603
- /** Original MIME type */
604
- originalMimeType?: string;
605
- /** Original file path */
606
- originalPath: string;
607
- owner?: UserResponseDto;
608
- /** Owner user ID */
609
- ownerId: string;
610
- people?: PersonWithFacesResponseDto[];
611
- /** Is resized */
612
- resized?: boolean;
613
- stack?: (AssetStackResponseDto) | null;
614
- tags?: TagResponseDto[];
615
- /** Thumbhash for thumbnail generation (base64) also used as the c query param for thumbnail cache busting. */
616
- thumbhash: string | null;
617
- /** Asset type */
618
- "type": AssetTypeEnum;
619
- unassignedFaces?: AssetFaceWithoutPersonResponseDto[];
620
- /** 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. */
621
- updatedAt: string;
622
- /** Asset visibility */
623
- visibility: AssetVisibility;
624
- /** Asset width */
625
- width: number | null;
626
- };
627
477
  export type ContributorCountResponseDto = {
628
478
  /** Number of assets contributed */
629
479
  assetCount: number;
@@ -635,10 +485,10 @@ export type AlbumResponseDto = {
635
485
  albumName: string;
636
486
  /** Thumbnail asset ID */
637
487
  albumThumbnailAssetId: string | null;
488
+ /** First entry is always the album owner. Second entry is the auth user, if it differs from the owner. The rest are ordered alphabetically. */
638
489
  albumUsers: AlbumUserResponseDto[];
639
490
  /** Number of assets */
640
491
  assetCount: number;
641
- assets: AssetResponseDto[];
642
492
  contributorCounts?: ContributorCountResponseDto[];
643
493
  /** Creation date */
644
494
  createdAt: string;
@@ -654,11 +504,7 @@ export type AlbumResponseDto = {
654
504
  isActivityEnabled: boolean;
655
505
  /** Last modified asset timestamp */
656
506
  lastModifiedAssetTimestamp?: string;
657
- /** Asset sort order */
658
507
  order?: AssetOrder;
659
- owner: UserResponseDto;
660
- /** Owner user ID */
661
- ownerId: string;
662
508
  /** Is shared album */
663
509
  shared: boolean;
664
510
  /** Start date (earliest asset) */
@@ -667,7 +513,6 @@ export type AlbumResponseDto = {
667
513
  updatedAt: string;
668
514
  };
669
515
  export type AlbumUserCreateDto = {
670
- /** Album user role */
671
516
  role: AlbumUserRole;
672
517
  /** User ID */
673
518
  userId: string;
@@ -689,7 +534,6 @@ export type AlbumsAddAssetsDto = {
689
534
  assetIds: string[];
690
535
  };
691
536
  export type AlbumsAddAssetsResponseDto = {
692
- /** Error reason */
693
537
  error?: BulkIdErrorReason;
694
538
  /** Operation success */
695
539
  success: boolean;
@@ -711,7 +555,6 @@ export type UpdateAlbumDto = {
711
555
  description?: string;
712
556
  /** Enable activity feed */
713
557
  isActivityEnabled?: boolean;
714
- /** Asset sort order */
715
558
  order?: AssetOrder;
716
559
  };
717
560
  export type BulkIdsDto = {
@@ -719,16 +562,28 @@ export type BulkIdsDto = {
719
562
  ids: string[];
720
563
  };
721
564
  export type BulkIdResponseDto = {
722
- /** Error reason if failed */
723
- error?: Error;
565
+ error?: BulkIdErrorReason;
724
566
  errorMessage?: string;
725
567
  /** ID */
726
568
  id: string;
727
569
  /** Whether operation succeeded */
728
570
  success: boolean;
729
571
  };
572
+ export type MapMarkerResponseDto = {
573
+ /** City name */
574
+ city: string | null;
575
+ /** Country name */
576
+ country: string | null;
577
+ /** Asset ID */
578
+ id: string;
579
+ /** Latitude */
580
+ lat: number;
581
+ /** Longitude */
582
+ lon: number;
583
+ /** State/Province name */
584
+ state: string | null;
585
+ };
730
586
  export type UpdateAlbumUserDto = {
731
- /** Album user role */
732
587
  role: AlbumUserRole;
733
588
  };
734
589
  export type AlbumUserAddDto = {
@@ -780,17 +635,15 @@ export type AssetMetadataUpsertItemDto = {
780
635
  /** Metadata key */
781
636
  key: string;
782
637
  /** Metadata value (object) */
783
- value: object;
638
+ value: {
639
+ [key: string]: any;
640
+ };
784
641
  };
785
642
  export type AssetMediaCreateDto = {
786
643
  /** Asset file data */
787
644
  assetData: Blob;
788
- /** Device asset ID */
789
- deviceAssetId: string;
790
- /** Device ID */
791
- deviceId: string;
792
- /** Duration (for videos) */
793
- duration?: string;
645
+ /** Duration in milliseconds (for videos) */
646
+ duration?: number;
794
647
  /** File creation date */
795
648
  fileCreatedAt: string;
796
649
  /** File modification date */
@@ -805,19 +658,17 @@ export type AssetMediaCreateDto = {
805
658
  metadata?: AssetMetadataUpsertItemDto[];
806
659
  /** Sidecar file data */
807
660
  sidecarData?: Blob;
808
- /** Asset visibility */
809
661
  visibility?: AssetVisibility;
810
662
  };
811
663
  export type AssetMediaResponseDto = {
812
664
  /** Asset media ID */
813
665
  id: string;
814
- /** Upload status */
815
666
  status: AssetMediaStatus;
816
667
  };
817
668
  export type AssetBulkUpdateDto = {
818
669
  /** Original date and time */
819
670
  dateTimeOriginal?: string;
820
- /** Relative time offset in seconds */
671
+ /** Relative time offset in minutes */
821
672
  dateTimeRelative?: number;
822
673
  /** Asset description */
823
674
  description?: string;
@@ -831,17 +682,16 @@ export type AssetBulkUpdateDto = {
831
682
  latitude?: number;
832
683
  /** Longitude coordinate */
833
684
  longitude?: number;
834
- /** Rating in range [1-5], or null for unrated */
685
+ /** Rating in range [1-5] (starred), -1 (rejected), or null (unrated) */
835
686
  rating?: number | null;
836
687
  /** Time zone (IANA timezone) */
837
688
  timeZone?: string;
838
- /** Asset visibility */
839
689
  visibility?: AssetVisibility;
840
690
  };
841
691
  export type AssetBulkUploadCheckItem = {
842
692
  /** Base64 or hex encoded SHA1 hash */
843
693
  checksum: string;
844
- /** Asset ID */
694
+ /** Client-side identifier echoed in the response to match results to inputs (e.g. filename) */
845
695
  id: string;
846
696
  };
847
697
  export type AssetBulkUploadCheckDto = {
@@ -849,16 +699,14 @@ export type AssetBulkUploadCheckDto = {
849
699
  assets: AssetBulkUploadCheckItem[];
850
700
  };
851
701
  export type AssetBulkUploadCheckResult = {
852
- /** Upload action */
853
- action: Action;
702
+ action: AssetUploadAction;
854
703
  /** Existing asset ID if duplicate */
855
704
  assetId?: string;
856
705
  /** Asset ID */
857
706
  id: string;
858
707
  /** Whether existing asset is trashed */
859
708
  isTrashed?: boolean;
860
- /** Rejection reason if rejected */
861
- reason?: Reason;
709
+ reason?: AssetRejectReason;
862
710
  };
863
711
  export type AssetBulkUploadCheckResponseDto = {
864
712
  /** Upload check results */
@@ -880,20 +728,9 @@ export type AssetCopyDto = {
880
728
  /** Target asset ID */
881
729
  targetId: string;
882
730
  };
883
- export type CheckExistingAssetsDto = {
884
- /** Device asset IDs to check */
885
- deviceAssetIds: string[];
886
- /** Device ID */
887
- deviceId: string;
888
- };
889
- export type CheckExistingAssetsResponseDto = {
890
- /** Existing asset IDs */
891
- existingIds: string[];
892
- };
893
731
  export type AssetJobsDto = {
894
732
  /** Asset IDs */
895
733
  assetIds: string[];
896
- /** Job name */
897
734
  name: AssetJobName;
898
735
  };
899
736
  export type AssetMetadataBulkDeleteItemDto = {
@@ -912,7 +749,9 @@ export type AssetMetadataBulkUpsertItemDto = {
912
749
  /** Metadata key */
913
750
  key: string;
914
751
  /** Metadata value (object) */
915
- value: object;
752
+ value: {
753
+ [key: string]: any;
754
+ };
916
755
  };
917
756
  export type AssetMetadataBulkUpsertDto = {
918
757
  /** Metadata items to upsert */
@@ -926,7 +765,156 @@ export type AssetMetadataBulkResponseDto = {
926
765
  /** Last update date */
927
766
  updatedAt: string;
928
767
  /** Metadata value (object) */
929
- value: object;
768
+ value: {
769
+ [key: string]: any;
770
+ };
771
+ };
772
+ export type ExifResponseDto = {
773
+ /** City name */
774
+ city?: string | null;
775
+ /** Country name */
776
+ country?: string | null;
777
+ /** Original date/time */
778
+ dateTimeOriginal?: string | null;
779
+ /** Image description */
780
+ description?: string | null;
781
+ /** Image height in pixels */
782
+ exifImageHeight?: number | null;
783
+ /** Image width in pixels */
784
+ exifImageWidth?: number | null;
785
+ /** Exposure time */
786
+ exposureTime?: string | null;
787
+ /** F-number (aperture) */
788
+ fNumber?: number | null;
789
+ /** File size in bytes */
790
+ fileSizeInByte?: number | null;
791
+ /** Focal length in mm */
792
+ focalLength?: number | null;
793
+ /** ISO sensitivity */
794
+ iso?: number | null;
795
+ /** GPS latitude */
796
+ latitude?: number | null;
797
+ /** Lens model */
798
+ lensModel?: string | null;
799
+ /** GPS longitude */
800
+ longitude?: number | null;
801
+ /** Camera make */
802
+ make?: string | null;
803
+ /** Camera model */
804
+ model?: string | null;
805
+ /** Modification date/time */
806
+ modifyDate?: string | null;
807
+ /** Image orientation */
808
+ orientation?: string | null;
809
+ /** Projection type */
810
+ projectionType?: string | null;
811
+ /** Rating */
812
+ rating?: number | null;
813
+ /** State/province name */
814
+ state?: string | null;
815
+ /** Time zone */
816
+ timeZone?: string | null;
817
+ };
818
+ export type PersonResponseDto = {
819
+ /** Person date of birth */
820
+ birthDate: string | null;
821
+ /** Person color (hex) */
822
+ color?: string;
823
+ /** Person ID */
824
+ id: string;
825
+ /** Is favorite */
826
+ isFavorite?: boolean;
827
+ /** Is hidden */
828
+ isHidden: boolean;
829
+ /** Person name */
830
+ name: string;
831
+ /** Thumbnail path */
832
+ thumbnailPath: string;
833
+ /** Last update date */
834
+ updatedAt?: string;
835
+ };
836
+ export type AssetStackResponseDto = {
837
+ /** Number of assets in stack */
838
+ assetCount: number;
839
+ /** Stack ID */
840
+ id: string;
841
+ /** Primary asset ID */
842
+ primaryAssetId: string;
843
+ };
844
+ export type TagResponseDto = {
845
+ /** Tag color (hex) */
846
+ color?: string;
847
+ /** Creation date */
848
+ createdAt: string;
849
+ /** Tag ID */
850
+ id: string;
851
+ /** Tag name */
852
+ name: string;
853
+ /** Parent tag ID */
854
+ parentId?: string;
855
+ /** Last update date */
856
+ updatedAt: string;
857
+ /** Tag value (full path) */
858
+ value: string;
859
+ };
860
+ export type AssetResponseDto = {
861
+ /** Base64 encoded SHA1 hash */
862
+ checksum: string;
863
+ /** The UTC timestamp when the asset was originally uploaded to Immich. */
864
+ createdAt: string;
865
+ /** Duplicate group ID */
866
+ duplicateId?: string | null;
867
+ /** Video/gif duration in milliseconds (null for static images) */
868
+ duration: number | null;
869
+ exifInfo?: ExifResponseDto;
870
+ /** 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. */
871
+ fileCreatedAt: string;
872
+ /** 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. */
873
+ fileModifiedAt: string;
874
+ /** Whether asset has metadata */
875
+ hasMetadata: boolean;
876
+ /** Asset height */
877
+ height: number | null;
878
+ /** Asset ID */
879
+ id: string;
880
+ /** Is archived */
881
+ isArchived: boolean;
882
+ /** Is edited */
883
+ isEdited: boolean;
884
+ /** Is favorite */
885
+ isFavorite: boolean;
886
+ /** Is offline */
887
+ isOffline: boolean;
888
+ /** Is trashed */
889
+ isTrashed: boolean;
890
+ /** Library ID */
891
+ libraryId?: string | null;
892
+ /** Live photo video ID */
893
+ livePhotoVideoId?: string | null;
894
+ /** 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. */
895
+ localDateTime: string;
896
+ /** Original file name */
897
+ originalFileName: string;
898
+ /** Original MIME type */
899
+ originalMimeType?: string;
900
+ /** Original file path */
901
+ originalPath: string;
902
+ owner?: UserResponseDto;
903
+ /** Owner user ID */
904
+ ownerId: string;
905
+ people?: PersonResponseDto[];
906
+ /** Is resized */
907
+ resized?: boolean;
908
+ stack?: (AssetStackResponseDto) | null;
909
+ tags?: TagResponseDto[];
910
+ /** Thumbhash for thumbnail generation (base64) also used as the c query param for thumbnail cache busting. */
911
+ thumbhash: string | null;
912
+ "type": AssetTypeEnum;
913
+ /** 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. */
914
+ updatedAt: string;
915
+ visibility: AssetVisibility;
916
+ /** Asset width */
917
+ width: number | null;
930
918
  };
931
919
  export type UpdateAssetDto = {
932
920
  /** Original date and time */
@@ -941,9 +929,8 @@ export type UpdateAssetDto = {
941
929
  livePhotoVideoId?: string | null;
942
930
  /** Longitude coordinate */
943
931
  longitude?: number;
944
- /** Rating in range [1-5], or null for unrated */
932
+ /** Rating in range [1-5] (starred), -1 (rejected), or null (unrated) */
945
933
  rating?: number | null;
946
- /** Asset visibility */
947
934
  visibility?: AssetVisibility;
948
935
  };
949
936
  export type CropParameters = {
@@ -961,12 +948,11 @@ export type RotateParameters = {
961
948
  angle: number;
962
949
  };
963
950
  export type MirrorParameters = {
964
- /** Axis to mirror along */
965
951
  axis: MirrorAxis;
966
952
  };
967
953
  export type AssetEditActionItemResponseDto = {
968
- /** Type of edit action to perform */
969
954
  action: AssetEditAction;
955
+ /** Asset edit ID */
970
956
  id: string;
971
957
  /** List of edit actions to apply (crop, rotate, or mirror) */
972
958
  parameters: CropParameters | RotateParameters | MirrorParameters;
@@ -978,7 +964,6 @@ export type AssetEditsResponseDto = {
978
964
  edits: AssetEditActionItemResponseDto[];
979
965
  };
980
966
  export type AssetEditActionItemDto = {
981
- /** Type of edit action to perform */
982
967
  action: AssetEditAction;
983
968
  /** List of edit actions to apply (crop, rotate, or mirror) */
984
969
  parameters: CropParameters | RotateParameters | MirrorParameters;
@@ -993,7 +978,9 @@ export type AssetMetadataResponseDto = {
993
978
  /** Last update date */
994
979
  updatedAt: string;
995
980
  /** Metadata value (object) */
996
- value: object;
981
+ value: {
982
+ [key: string]: any;
983
+ };
997
984
  };
998
985
  export type AssetMetadataUpsertDto = {
999
986
  /** Metadata items to upsert */
@@ -1025,22 +1012,6 @@ export type AssetOcrResponseDto = {
1025
1012
  /** Normalized y coordinate of box corner 4 (0-1) */
1026
1013
  y4: number;
1027
1014
  };
1028
- export type AssetMediaReplaceDto = {
1029
- /** Asset file data */
1030
- assetData: Blob;
1031
- /** Device asset ID */
1032
- deviceAssetId: string;
1033
- /** Device ID */
1034
- deviceId: string;
1035
- /** Duration (for videos) */
1036
- duration?: string;
1037
- /** File creation date */
1038
- fileCreatedAt: string;
1039
- /** File modification date */
1040
- fileModifiedAt: string;
1041
- /** Filename */
1042
- filename?: string;
1043
- };
1044
1015
  export type SignUpDto = {
1045
1016
  /** User email */
1046
1017
  email: string;
@@ -1174,24 +1145,6 @@ export type DuplicateResolveDto = {
1174
1145
  /** List of duplicate groups to resolve */
1175
1146
  groups: DuplicateResolveGroupDto[];
1176
1147
  };
1177
- export type PersonResponseDto = {
1178
- /** Person date of birth */
1179
- birthDate: string | null;
1180
- /** Person color (hex) */
1181
- color?: string;
1182
- /** Person ID */
1183
- id: string;
1184
- /** Is favorite */
1185
- isFavorite?: boolean;
1186
- /** Is hidden */
1187
- isHidden: boolean;
1188
- /** Person name */
1189
- name: string;
1190
- /** Thumbnail path */
1191
- thumbnailPath: string;
1192
- /** Last update date */
1193
- updatedAt?: string;
1194
- };
1195
1148
  export type AssetFaceResponseDto = {
1196
1149
  /** Bounding box X1 coordinate */
1197
1150
  boundingBoxX1: number;
@@ -1207,9 +1160,7 @@ export type AssetFaceResponseDto = {
1207
1160
  imageHeight: number;
1208
1161
  /** Image width in pixels */
1209
1162
  imageWidth: number;
1210
- /** Person associated with face */
1211
1163
  person: (PersonResponseDto) | null;
1212
- /** Face detection source type */
1213
1164
  sourceType?: SourceType;
1214
1165
  };
1215
1166
  export type AssetFaceCreateDto = {
@@ -1269,6 +1220,7 @@ export type QueuesResponseLegacyDto = {
1269
1220
  editor: QueueResponseLegacyDto;
1270
1221
  faceDetection: QueueResponseLegacyDto;
1271
1222
  facialRecognition: QueueResponseLegacyDto;
1223
+ integrityCheck: QueueResponseLegacyDto;
1272
1224
  library: QueueResponseLegacyDto;
1273
1225
  metadataExtraction: QueueResponseLegacyDto;
1274
1226
  migration: QueueResponseLegacyDto;
@@ -1283,11 +1235,9 @@ export type QueuesResponseLegacyDto = {
1283
1235
  workflow: QueueResponseLegacyDto;
1284
1236
  };
1285
1237
  export type JobCreateDto = {
1286
- /** Job name */
1287
1238
  name: ManualJobName;
1288
1239
  };
1289
1240
  export type QueueCommandDto = {
1290
- /** Queue command to execute */
1291
1241
  command: QueueCommand;
1292
1242
  /** Force the command execution (if applicable) */
1293
1243
  force?: boolean;
@@ -1358,20 +1308,6 @@ export type ValidateLibraryResponseDto = {
1358
1308
  /** Validation results for import paths */
1359
1309
  importPaths?: ValidateLibraryImportPathResponseDto[];
1360
1310
  };
1361
- export type MapMarkerResponseDto = {
1362
- /** City name */
1363
- city: string | null;
1364
- /** Country name */
1365
- country: string | null;
1366
- /** Asset ID */
1367
- id: string;
1368
- /** Latitude */
1369
- lat: number;
1370
- /** Longitude */
1371
- lon: number;
1372
- /** State/Province name */
1373
- state: string | null;
1374
- };
1375
1311
  export type MapReverseGeocodeResponseDto = {
1376
1312
  /** City name */
1377
1313
  city: string | null;
@@ -1405,7 +1341,6 @@ export type MemoryResponseDto = {
1405
1341
  seenAt?: string;
1406
1342
  /** Date when memory should be shown */
1407
1343
  showAt?: string;
1408
- /** Memory type */
1409
1344
  "type": MemoryType;
1410
1345
  /** Last update date */
1411
1346
  updatedAt: string;
@@ -1424,7 +1359,6 @@ export type MemoryCreateDto = {
1424
1359
  seenAt?: string;
1425
1360
  /** Date when memory should be shown */
1426
1361
  showAt?: string;
1427
- /** Memory type */
1428
1362
  "type": MemoryType;
1429
1363
  };
1430
1364
  export type MemoryStatisticsResponseDto = {
@@ -1465,6 +1399,10 @@ export type OAuthAuthorizeResponseDto = {
1465
1399
  /** OAuth authorization URL */
1466
1400
  url: string;
1467
1401
  };
1402
+ export type OAuthBackchannelLogoutDto = {
1403
+ /** OAuth logout token */
1404
+ logout_token: string;
1405
+ };
1468
1406
  export type OAuthCallbackDto = {
1469
1407
  /** OAuth code verifier (PKCE) */
1470
1408
  codeVerifier?: string;
@@ -1474,7 +1412,6 @@ export type OAuthCallbackDto = {
1474
1412
  url: string;
1475
1413
  };
1476
1414
  export type PartnerResponseDto = {
1477
- /** Avatar color */
1478
1415
  avatarColor: UserAvatarColor;
1479
1416
  /** User email */
1480
1417
  email: string;
@@ -1502,7 +1439,6 @@ export type PeopleResponseDto = {
1502
1439
  hasNextPage?: boolean;
1503
1440
  /** Number of hidden people */
1504
1441
  hidden: number;
1505
- /** List of people */
1506
1442
  people: PersonResponseDto[];
1507
1443
  /** Total number of people */
1508
1444
  total: number;
@@ -1571,51 +1507,33 @@ export type PersonStatisticsResponseDto = {
1571
1507
  /** Number of assets */
1572
1508
  assets: number;
1573
1509
  };
1574
- export type PluginActionResponseDto = {
1575
- /** Action description */
1576
- description: string;
1577
- /** Action ID */
1578
- id: string;
1579
- /** Method name */
1580
- methodName: string;
1581
- /** Plugin ID */
1582
- pluginId: string;
1583
- /** Action schema */
1584
- schema: object | null;
1585
- /** Supported contexts */
1586
- supportedContexts: PluginContextType[];
1587
- /** Action title */
1588
- title: string;
1589
- };
1590
- export type PluginFilterResponseDto = {
1591
- /** Filter description */
1510
+ export type PluginMethodResponseDto = {
1511
+ /** Description */
1592
1512
  description: string;
1593
- /** Filter ID */
1594
- id: string;
1595
- /** Method name */
1596
- methodName: string;
1597
- /** Plugin ID */
1598
- pluginId: string;
1599
- /** Filter schema */
1600
- schema: object | null;
1601
- /** Supported contexts */
1602
- supportedContexts: PluginContextType[];
1603
- /** Filter title */
1513
+ hostFunctions: boolean;
1514
+ /** Key */
1515
+ key: string;
1516
+ /** Name */
1517
+ name: string;
1518
+ schema?: {};
1519
+ /** Title */
1604
1520
  title: string;
1521
+ /** Workflow types */
1522
+ types: WorkflowType[];
1523
+ /** Ui hints */
1524
+ uiHints: string[];
1605
1525
  };
1606
1526
  export type PluginResponseDto = {
1607
- /** Plugin actions */
1608
- actions: PluginActionResponseDto[];
1609
1527
  /** Plugin author */
1610
1528
  author: string;
1611
1529
  /** Creation date */
1612
1530
  createdAt: string;
1613
1531
  /** Plugin description */
1614
1532
  description: string;
1615
- /** Plugin filters */
1616
- filters: PluginFilterResponseDto[];
1617
1533
  /** Plugin ID */
1618
1534
  id: string;
1535
+ /** Plugin methods */
1536
+ methods: PluginMethodResponseDto[];
1619
1537
  /** Plugin name */
1620
1538
  name: string;
1621
1539
  /** Plugin title */
@@ -1625,16 +1543,33 @@ export type PluginResponseDto = {
1625
1543
  /** Plugin version */
1626
1544
  version: string;
1627
1545
  };
1628
- export type PluginTriggerResponseDto = {
1629
- /** Context type */
1630
- contextType: PluginContextType;
1631
- /** Trigger type */
1632
- "type": PluginTriggerType;
1546
+ export type PluginTemplateStepResponseDto = {
1547
+ /** Step configuration */
1548
+ config: {
1549
+ [key: string]: any;
1550
+ } | null;
1551
+ /** Whether the step is enabled */
1552
+ enabled?: boolean;
1553
+ /** Step plugin method */
1554
+ method: string;
1555
+ };
1556
+ export type PluginTemplateResponseDto = {
1557
+ /** Template description */
1558
+ description: string;
1559
+ /** Template key (unique across all templates) */
1560
+ key: string;
1561
+ /** Workflow steps */
1562
+ steps: PluginTemplateStepResponseDto[];
1563
+ /** Template title */
1564
+ title: string;
1565
+ /** Workflow trigger */
1566
+ trigger: WorkflowTrigger;
1567
+ /** Ui hints, for example "smart-album" */
1568
+ uiHints: string[];
1633
1569
  };
1634
1570
  export type QueueResponseDto = {
1635
1571
  /** Whether the queue is paused */
1636
1572
  isPaused: boolean;
1637
- /** Queue name */
1638
1573
  name: QueueName;
1639
1574
  statistics: QueueStatisticsDto;
1640
1575
  };
@@ -1648,10 +1583,11 @@ export type QueueDeleteDto = {
1648
1583
  };
1649
1584
  export type QueueJobResponseDto = {
1650
1585
  /** Job data payload */
1651
- data: object;
1586
+ data: {
1587
+ [key: string]: any;
1588
+ };
1652
1589
  /** Job ID */
1653
1590
  id?: string;
1654
- /** Job name */
1655
1591
  name: JobName;
1656
1592
  /** Job creation timestamp */
1657
1593
  timestamp: number;
@@ -1681,10 +1617,6 @@ export type MetadataSearchDto = {
1681
1617
  createdBefore?: string;
1682
1618
  /** Filter by description text */
1683
1619
  description?: string;
1684
- /** Filter by device asset ID */
1685
- deviceAssetId?: string;
1686
- /** Device ID to filter by */
1687
- deviceId?: string;
1688
1620
  /** Filter by encoded video file path */
1689
1621
  encodedVideoPath?: string;
1690
1622
  /** Filter by asset ID */
@@ -1704,7 +1636,7 @@ export type MetadataSearchDto = {
1704
1636
  /** Library ID to filter by */
1705
1637
  libraryId?: string | null;
1706
1638
  /** Filter by camera make */
1707
- make?: string;
1639
+ make?: string | null;
1708
1640
  /** Filter by camera model */
1709
1641
  model?: string | null;
1710
1642
  /** Filter by OCR text content */
@@ -1739,13 +1671,11 @@ export type MetadataSearchDto = {
1739
1671
  trashedAfter?: string;
1740
1672
  /** Filter by trash date (before) */
1741
1673
  trashedBefore?: string;
1742
- /** Asset type filter */
1743
1674
  "type"?: AssetTypeEnum;
1744
1675
  /** Filter by update date (after) */
1745
1676
  updatedAfter?: string;
1746
1677
  /** Filter by update date (before) */
1747
1678
  updatedBefore?: string;
1748
- /** Filter by visibility */
1749
1679
  visibility?: AssetVisibility;
1750
1680
  /** Include deleted assets */
1751
1681
  withDeleted?: boolean;
@@ -1763,7 +1693,6 @@ export type SearchFacetCountResponseDto = {
1763
1693
  value: string;
1764
1694
  };
1765
1695
  export type SearchFacetResponseDto = {
1766
- /** Facet counts */
1767
1696
  counts: SearchFacetCountResponseDto[];
1768
1697
  /** Facet field name */
1769
1698
  fieldName: string;
@@ -1813,8 +1742,6 @@ export type RandomSearchDto = {
1813
1742
  createdAfter?: string;
1814
1743
  /** Filter by creation date (before) */
1815
1744
  createdBefore?: string;
1816
- /** Device ID to filter by */
1817
- deviceId?: string;
1818
1745
  /** Filter by encoded status */
1819
1746
  isEncoded?: boolean;
1820
1747
  /** Filter by favorite status */
@@ -1830,7 +1757,7 @@ export type RandomSearchDto = {
1830
1757
  /** Library ID to filter by */
1831
1758
  libraryId?: string | null;
1832
1759
  /** Filter by camera make */
1833
- make?: string;
1760
+ make?: string | null;
1834
1761
  /** Filter by camera model */
1835
1762
  model?: string | null;
1836
1763
  /** Filter by OCR text content */
@@ -1853,13 +1780,11 @@ export type RandomSearchDto = {
1853
1780
  trashedAfter?: string;
1854
1781
  /** Filter by trash date (before) */
1855
1782
  trashedBefore?: string;
1856
- /** Asset type filter */
1857
1783
  "type"?: AssetTypeEnum;
1858
1784
  /** Filter by update date (after) */
1859
1785
  updatedAfter?: string;
1860
1786
  /** Filter by update date (before) */
1861
1787
  updatedBefore?: string;
1862
- /** Filter by visibility */
1863
1788
  visibility?: AssetVisibility;
1864
1789
  /** Include deleted assets */
1865
1790
  withDeleted?: boolean;
@@ -1881,8 +1806,6 @@ export type SmartSearchDto = {
1881
1806
  createdAfter?: string;
1882
1807
  /** Filter by creation date (before) */
1883
1808
  createdBefore?: string;
1884
- /** Device ID to filter by */
1885
- deviceId?: string;
1886
1809
  /** Filter by encoded status */
1887
1810
  isEncoded?: boolean;
1888
1811
  /** Filter by favorite status */
@@ -1900,7 +1823,7 @@ export type SmartSearchDto = {
1900
1823
  /** Library ID to filter by */
1901
1824
  libraryId?: string | null;
1902
1825
  /** Filter by camera make */
1903
- make?: string;
1826
+ make?: string | null;
1904
1827
  /** Filter by camera model */
1905
1828
  model?: string | null;
1906
1829
  /** Filter by OCR text content */
@@ -1929,13 +1852,11 @@ export type SmartSearchDto = {
1929
1852
  trashedAfter?: string;
1930
1853
  /** Filter by trash date (before) */
1931
1854
  trashedBefore?: string;
1932
- /** Asset type filter */
1933
1855
  "type"?: AssetTypeEnum;
1934
1856
  /** Filter by update date (after) */
1935
1857
  updatedAfter?: string;
1936
1858
  /** Filter by update date (before) */
1937
1859
  updatedBefore?: string;
1938
- /** Filter by visibility */
1939
1860
  visibility?: AssetVisibility;
1940
1861
  /** Include deleted assets */
1941
1862
  withDeleted?: boolean;
@@ -1955,8 +1876,6 @@ export type StatisticsSearchDto = {
1955
1876
  createdBefore?: string;
1956
1877
  /** Filter by description text */
1957
1878
  description?: string;
1958
- /** Device ID to filter by */
1959
- deviceId?: string;
1960
1879
  /** Filter by encoded status */
1961
1880
  isEncoded?: boolean;
1962
1881
  /** Filter by favorite status */
@@ -1972,7 +1891,7 @@ export type StatisticsSearchDto = {
1972
1891
  /** Library ID to filter by */
1973
1892
  libraryId?: string | null;
1974
1893
  /** Filter by camera make */
1975
- make?: string;
1894
+ make?: string | null;
1976
1895
  /** Filter by camera model */
1977
1896
  model?: string | null;
1978
1897
  /** Filter by OCR text content */
@@ -1993,13 +1912,11 @@ export type StatisticsSearchDto = {
1993
1912
  trashedAfter?: string;
1994
1913
  /** Filter by trash date (before) */
1995
1914
  trashedBefore?: string;
1996
- /** Asset type filter */
1997
1915
  "type"?: AssetTypeEnum;
1998
1916
  /** Filter by update date (after) */
1999
1917
  updatedAfter?: string;
2000
1918
  /** Filter by update date (before) */
2001
1919
  updatedBefore?: string;
2002
- /** Filter by visibility */
2003
1920
  visibility?: AssetVisibility;
2004
1921
  };
2005
1922
  export type SearchStatisticsResponseDto = {
@@ -2075,6 +1992,8 @@ export type ServerConfigDto = {
2075
1992
  mapDarkStyleUrl: string;
2076
1993
  /** Map light style URL */
2077
1994
  mapLightStyleUrl: string;
1995
+ /** People min faces server default */
1996
+ minFaces: number;
2078
1997
  /** OAuth button text */
2079
1998
  oauthButtonText: string;
2080
1999
  /** Whether public user registration is enabled */
@@ -2105,6 +2024,8 @@ export type ServerFeaturesDto = {
2105
2024
  ocr: boolean;
2106
2025
  /** Whether password login is enabled */
2107
2026
  passwordLogin: boolean;
2027
+ /** Whether real-time transcoding is enabled */
2028
+ realtimeTranscoding: boolean;
2108
2029
  /** Whether reverse geocoding is enabled */
2109
2030
  reverseGeocoding: boolean;
2110
2031
  /** Whether search is enabled */
@@ -2116,18 +2037,10 @@ export type ServerFeaturesDto = {
2116
2037
  /** Whether trash feature is enabled */
2117
2038
  trash: boolean;
2118
2039
  };
2119
- export type LicenseResponseDto = {
2120
- /** Activation date */
2121
- activatedAt: string;
2122
- /** Activation key */
2123
- activationKey: string;
2124
- /** License key (format: IM(SV|CL)(-XXXX){8}) */
2125
- licenseKey: string;
2126
- };
2127
2040
  export type LicenseKeyDto = {
2128
2041
  /** Activation key */
2129
2042
  activationKey: string;
2130
- /** License key (format: IM(SV|CL)(-XXXX){8}) */
2043
+ /** License key (format: /^IM(SV|CL)(-[\dA-Za-z]{4}){8}$/) */
2131
2044
  licenseKey: string;
2132
2045
  };
2133
2046
  export type ServerMediaTypesResponseDto = {
@@ -2138,8 +2051,7 @@ export type ServerMediaTypesResponseDto = {
2138
2051
  /** Supported video MIME types */
2139
2052
  video: string[];
2140
2053
  };
2141
- export type ServerPingResponse = {};
2142
- export type ServerPingResponseRead = {
2054
+ export type ServerPingResponse = {
2143
2055
  res: string;
2144
2056
  };
2145
2057
  export type UsageByUserDto = {
@@ -2165,6 +2077,7 @@ export type ServerStatsResponseDto = {
2165
2077
  photos: number;
2166
2078
  /** Total storage usage in bytes */
2167
2079
  usage: number;
2080
+ /** Array of usage for each user */
2168
2081
  usageByUser: UsageByUserDto[];
2169
2082
  /** Storage usage for photos in bytes */
2170
2083
  usagePhotos: number;
@@ -2189,10 +2102,6 @@ export type ServerStorageResponseDto = {
2189
2102
  /** Used disk space in bytes */
2190
2103
  diskUseRaw: number;
2191
2104
  };
2192
- export type ServerThemeDto = {
2193
- /** Custom CSS for theming */
2194
- customCss: string;
2195
- };
2196
2105
  export type ServerVersionResponseDto = {
2197
2106
  /** Major version number */
2198
2107
  major: number;
@@ -2200,6 +2109,8 @@ export type ServerVersionResponseDto = {
2200
2109
  minor: number;
2201
2110
  /** Patch version number */
2202
2111
  patch: number;
2112
+ /** Pre-release version number */
2113
+ prerelease: number | null;
2203
2114
  };
2204
2115
  export type VersionCheckStateResponseDto = {
2205
2116
  /** Last check timestamp */
@@ -2272,9 +2183,6 @@ export type SharedLinkResponseDto = {
2272
2183
  showMetadata: boolean;
2273
2184
  /** Custom URL slug */
2274
2185
  slug: string | null;
2275
- /** Access token */
2276
- token?: string | null;
2277
- /** Shared link type */
2278
2186
  "type": SharedLinkType;
2279
2187
  /** Owner user ID */
2280
2188
  userId: string;
@@ -2298,7 +2206,6 @@ export type SharedLinkCreateDto = {
2298
2206
  showMetadata?: boolean;
2299
2207
  /** Custom URL slug */
2300
2208
  slug?: string | null;
2301
- /** Shared link type */
2302
2209
  "type": SharedLinkType;
2303
2210
  };
2304
2211
  export type SharedLinkLoginDto = {
@@ -2310,8 +2217,6 @@ export type SharedLinkEditDto = {
2310
2217
  allowDownload?: boolean;
2311
2218
  /** Allow uploads */
2312
2219
  allowUpload?: boolean;
2313
- /** Whether to change the expiry time. Few clients cannot send null to set the expiryTime to never. Setting this flag and not sending expiryAt is considered as null instead. Clients that can send null values can ignore this. */
2314
- changeExpiryTime?: boolean;
2315
2220
  /** Link description */
2316
2221
  description?: string | null;
2317
2222
  /** Expiration date */
@@ -2330,13 +2235,11 @@ export type AssetIdsDto = {
2330
2235
  export type AssetIdsResponseDto = {
2331
2236
  /** Asset ID */
2332
2237
  assetId: string;
2333
- /** Error reason if failed */
2334
- error?: Error2;
2238
+ error?: AssetIdErrorReason;
2335
2239
  /** Whether operation succeeded */
2336
2240
  success: boolean;
2337
2241
  };
2338
2242
  export type StackResponseDto = {
2339
- /** Stack assets */
2340
2243
  assets: AssetResponseDto[];
2341
2244
  /** Stack ID */
2342
2245
  id: string;
@@ -2358,37 +2261,12 @@ export type SyncAckDeleteDto = {
2358
2261
  export type SyncAckDto = {
2359
2262
  /** Acknowledgment ID */
2360
2263
  ack: string;
2361
- /** Sync entity type */
2362
2264
  "type": SyncEntityType;
2363
2265
  };
2364
2266
  export type SyncAckSetDto = {
2365
2267
  /** Acknowledgment IDs (max 1000) */
2366
2268
  acks: string[];
2367
2269
  };
2368
- export type AssetDeltaSyncDto = {
2369
- /** Sync assets updated after this date */
2370
- updatedAfter: string;
2371
- /** User IDs to sync */
2372
- userIds: string[];
2373
- };
2374
- export type AssetDeltaSyncResponseDto = {
2375
- /** Deleted asset IDs */
2376
- deleted: string[];
2377
- /** Whether full sync is needed */
2378
- needsFullSync: boolean;
2379
- /** Upserted assets */
2380
- upserted: AssetResponseDto[];
2381
- };
2382
- export type AssetFullSyncDto = {
2383
- /** Last asset ID (pagination) */
2384
- lastId?: string;
2385
- /** Maximum number of assets to return */
2386
- limit: number;
2387
- /** Sync assets updated until this date */
2388
- updatedUntil: string;
2389
- /** Filter by user ID */
2390
- userId?: string;
2391
- };
2392
2270
  export type SyncStreamDto = {
2393
2271
  /** Reset sync state */
2394
2272
  reset?: boolean;
@@ -2406,8 +2284,11 @@ export type DatabaseBackupConfig = {
2406
2284
  export type SystemConfigBackupsDto = {
2407
2285
  database: DatabaseBackupConfig;
2408
2286
  };
2287
+ export type SystemConfigFFmpegRealtimeDto = {
2288
+ /** Enable real-time HLS transcoding (alpha) */
2289
+ enabled: boolean;
2290
+ };
2409
2291
  export type SystemConfigFFmpegDto = {
2410
- /** Transcode hardware acceleration */
2411
2292
  accel: TranscodeHWAccel;
2412
2293
  /** Accelerated decode */
2413
2294
  accelDecode: boolean;
@@ -2419,7 +2300,6 @@ export type SystemConfigFFmpegDto = {
2419
2300
  acceptedVideoCodecs: VideoCodec[];
2420
2301
  /** B-frames */
2421
2302
  bframes: number;
2422
- /** CQ mode */
2423
2303
  cqMode: CQMode;
2424
2304
  /** CRF */
2425
2305
  crf: number;
@@ -2431,21 +2311,18 @@ export type SystemConfigFFmpegDto = {
2431
2311
  preferredHwDevice: string;
2432
2312
  /** Preset */
2433
2313
  preset: string;
2314
+ realtime: SystemConfigFFmpegRealtimeDto;
2434
2315
  /** References */
2435
2316
  refs: number;
2436
- /** Target audio codec */
2437
2317
  targetAudioCodec: AudioCodec;
2438
2318
  /** Target resolution */
2439
2319
  targetResolution: string;
2440
- /** Target video codec */
2441
2320
  targetVideoCodec: VideoCodec;
2442
2321
  /** Temporal AQ */
2443
2322
  temporalAQ: boolean;
2444
2323
  /** Threads */
2445
2324
  threads: number;
2446
- /** Tone mapping */
2447
2325
  tonemap: ToneMapping;
2448
- /** Transcode policy */
2449
2326
  transcode: TranscodePolicy;
2450
2327
  /** Two pass */
2451
2328
  twoPass: boolean;
@@ -2453,7 +2330,6 @@ export type SystemConfigFFmpegDto = {
2453
2330
  export type SystemConfigGeneratedFullsizeImageDto = {
2454
2331
  /** Enabled */
2455
2332
  enabled: boolean;
2456
- /** Image format */
2457
2333
  format: ImageFormat;
2458
2334
  /** Progressive */
2459
2335
  progressive?: boolean;
@@ -2461,8 +2337,8 @@ export type SystemConfigGeneratedFullsizeImageDto = {
2461
2337
  quality: number;
2462
2338
  };
2463
2339
  export type SystemConfigGeneratedImageDto = {
2464
- /** Image format */
2465
2340
  format: ImageFormat;
2341
+ /** Progressive */
2466
2342
  progressive?: boolean;
2467
2343
  /** Quality */
2468
2344
  quality: number;
@@ -2470,7 +2346,6 @@ export type SystemConfigGeneratedImageDto = {
2470
2346
  size: number;
2471
2347
  };
2472
2348
  export type SystemConfigImageDto = {
2473
- /** Colorspace */
2474
2349
  colorspace: Colorspace;
2475
2350
  /** Extract embedded */
2476
2351
  extractEmbedded: boolean;
@@ -2478,6 +2353,27 @@ export type SystemConfigImageDto = {
2478
2353
  preview: SystemConfigGeneratedImageDto;
2479
2354
  thumbnail: SystemConfigGeneratedImageDto;
2480
2355
  };
2356
+ export type SystemConfigIntegrityChecksumJob = {
2357
+ /** Cron expression for when the integrity check should run */
2358
+ cronExpression: string;
2359
+ /** Enabled */
2360
+ enabled: boolean;
2361
+ /** Percentage limit of the integrity checksum job */
2362
+ percentageLimit: number;
2363
+ /** How long the integrity checksum job may run for */
2364
+ timeLimit: number;
2365
+ };
2366
+ export type SystemConfigIntegrityJob = {
2367
+ /** Cron expression for when the integrity check should run */
2368
+ cronExpression: string;
2369
+ /** Enabled */
2370
+ enabled: boolean;
2371
+ };
2372
+ export type SystemConfigIntegrityChecks = {
2373
+ checksumFiles: SystemConfigIntegrityChecksumJob;
2374
+ missingFiles: SystemConfigIntegrityJob;
2375
+ untrackedFiles: SystemConfigIntegrityJob;
2376
+ };
2481
2377
  export type JobSettingsDto = {
2482
2378
  /** Concurrency */
2483
2379
  concurrency: number;
@@ -2486,6 +2382,7 @@ export type SystemConfigJobDto = {
2486
2382
  backgroundTask: JobSettingsDto;
2487
2383
  editor: JobSettingsDto;
2488
2384
  faceDetection: JobSettingsDto;
2385
+ integrityCheck: JobSettingsDto;
2489
2386
  library: JobSettingsDto;
2490
2387
  metadataExtraction: JobSettingsDto;
2491
2388
  migration: JobSettingsDto;
@@ -2499,6 +2396,7 @@ export type SystemConfigJobDto = {
2499
2396
  workflow: JobSettingsDto;
2500
2397
  };
2501
2398
  export type SystemConfigLibraryScanDto = {
2399
+ /** Cron expression */
2502
2400
  cronExpression: string;
2503
2401
  /** Enabled */
2504
2402
  enabled: boolean;
@@ -2566,12 +2464,15 @@ export type SystemConfigMachineLearningDto = {
2566
2464
  enabled: boolean;
2567
2465
  facialRecognition: FacialRecognitionConfig;
2568
2466
  ocr: OcrConfig;
2467
+ /** ML service URLs */
2569
2468
  urls: string[];
2570
2469
  };
2571
2470
  export type SystemConfigMapDto = {
2471
+ /** Dark map style URL */
2572
2472
  darkStyle: string;
2573
2473
  /** Enabled */
2574
2474
  enabled: boolean;
2475
+ /** Light map style URL */
2575
2476
  lightStyle: string;
2576
2477
  };
2577
2478
  export type SystemConfigFacesDto = {
@@ -2582,6 +2483,7 @@ export type SystemConfigMetadataDto = {
2582
2483
  faces: SystemConfigFacesDto;
2583
2484
  };
2584
2485
  export type SystemConfigNewVersionCheckDto = {
2486
+ channel: ReleaseChannel;
2585
2487
  /** Enabled */
2586
2488
  enabled: boolean;
2587
2489
  };
@@ -2594,6 +2496,7 @@ export type SystemConfigNightlyTasksDto = {
2594
2496
  generateMemories: boolean;
2595
2497
  /** Missing thumbnails */
2596
2498
  missingThumbnails: boolean;
2499
+ /** Start time */
2597
2500
  startTime: string;
2598
2501
  /** Sync quota usage */
2599
2502
  syncQuotaUsage: boolean;
@@ -2602,6 +2505,8 @@ export type SystemConfigNotificationsDto = {
2602
2505
  smtp: SystemConfigSmtpDto;
2603
2506
  };
2604
2507
  export type SystemConfigOAuthDto = {
2508
+ /** Allow insecure requests */
2509
+ allowInsecureRequests: boolean;
2605
2510
  /** Auto launch */
2606
2511
  autoLaunch: boolean;
2607
2512
  /** Auto register */
@@ -2616,18 +2521,23 @@ export type SystemConfigOAuthDto = {
2616
2521
  defaultStorageQuota: number | null;
2617
2522
  /** Enabled */
2618
2523
  enabled: boolean;
2524
+ /** End session endpoint */
2525
+ endSessionEndpoint: string;
2619
2526
  /** Issuer URL */
2620
2527
  issuerUrl: string;
2621
2528
  /** Mobile override enabled */
2622
2529
  mobileOverrideEnabled: boolean;
2623
- /** Mobile redirect URI */
2530
+ /** Mobile redirect URI (set to empty string to disable) */
2624
2531
  mobileRedirectUri: string;
2625
2532
  /** Profile signing algorithm */
2626
2533
  profileSigningAlgorithm: string;
2534
+ /** OAuth prompt parameter (e.g. select_account, login, consent) */
2535
+ prompt: string;
2627
2536
  /** Role claim */
2628
2537
  roleClaim: string;
2629
2538
  /** Scope */
2630
2539
  scope: string;
2540
+ /** Signing algorithm */
2631
2541
  signingAlgorithm: string;
2632
2542
  /** Storage label claim */
2633
2543
  storageLabelClaim: string;
@@ -2635,7 +2545,6 @@ export type SystemConfigOAuthDto = {
2635
2545
  storageQuotaClaim: string;
2636
2546
  /** Timeout */
2637
2547
  timeout: number;
2638
- /** Token endpoint auth method */
2639
2548
  tokenEndpointAuthMethod: OAuthTokenEndpointAuthMethod;
2640
2549
  };
2641
2550
  export type SystemConfigPasswordLoginDto = {
@@ -2663,8 +2572,11 @@ export type SystemConfigStorageTemplateDto = {
2663
2572
  template: string;
2664
2573
  };
2665
2574
  export type SystemConfigTemplateEmailsDto = {
2575
+ /** Album invite template */
2666
2576
  albumInviteTemplate: string;
2577
+ /** Album update template */
2667
2578
  albumUpdateTemplate: string;
2579
+ /** Welcome template */
2668
2580
  welcomeTemplate: string;
2669
2581
  };
2670
2582
  export type SystemConfigTemplatesDto = {
@@ -2688,6 +2600,7 @@ export type SystemConfigDto = {
2688
2600
  backup: SystemConfigBackupsDto;
2689
2601
  ffmpeg: SystemConfigFFmpegDto;
2690
2602
  image: SystemConfigImageDto;
2603
+ integrityChecks: SystemConfigIntegrityChecks;
2691
2604
  job: SystemConfigJobDto;
2692
2605
  library: SystemConfigLibraryDto;
2693
2606
  logging: SystemConfigLoggingDto;
@@ -2737,7 +2650,7 @@ export type ReverseGeocodingStateResponseDto = {
2737
2650
  };
2738
2651
  export type TagCreateDto = {
2739
2652
  /** Tag color (hex) */
2740
- color?: string;
2653
+ color?: string | null;
2741
2654
  /** Tag name */
2742
2655
  name: string;
2743
2656
  /** Parent tag ID */
@@ -2763,11 +2676,13 @@ export type TagUpdateDto = {
2763
2676
  };
2764
2677
  export type TimeBucketAssetResponseDto = {
2765
2678
  /** Array of city names extracted from EXIF GPS data */
2766
- city: (string | null)[];
2679
+ city?: (string | null)[];
2767
2680
  /** Array of country names extracted from EXIF GPS data */
2768
- country: (string | null)[];
2769
- /** Array of video durations in HH:MM:SS format (null for images) */
2770
- duration: (string | null)[];
2681
+ country?: (string | null)[];
2682
+ /** Array of UTC timestamps when each asset was originally uploaded to Immich */
2683
+ createdAt: string[];
2684
+ /** Array of video/gif durations in milliseconds (null for static images) */
2685
+ duration: (number | null)[];
2771
2686
  /** Array of file creation timestamps in UTC */
2772
2687
  fileCreatedAt: string[];
2773
2688
  /** Array of asset IDs in the time bucket */
@@ -2810,7 +2725,6 @@ export type TrashResponseDto = {
2810
2725
  count: number;
2811
2726
  };
2812
2727
  export type UserUpdateMeDto = {
2813
- /** Avatar color */
2814
2728
  avatarColor?: (UserAvatarColor) | null;
2815
2729
  /** User email */
2816
2730
  email?: string;
@@ -2839,89 +2753,92 @@ export type CreateProfileImageResponseDto = {
2839
2753
  /** User ID */
2840
2754
  userId: string;
2841
2755
  };
2842
- export type WorkflowActionResponseDto = {
2843
- /** Action configuration */
2844
- actionConfig: object | null;
2845
- /** Action ID */
2846
- id: string;
2847
- /** Action order */
2848
- order: number;
2849
- /** Plugin action ID */
2850
- pluginActionId: string;
2851
- /** Workflow ID */
2852
- workflowId: string;
2853
- };
2854
- export type WorkflowFilterResponseDto = {
2855
- /** Filter configuration */
2856
- filterConfig: object | null;
2857
- /** Filter ID */
2858
- id: string;
2859
- /** Filter order */
2860
- order: number;
2861
- /** Plugin filter ID */
2862
- pluginFilterId: string;
2863
- /** Workflow ID */
2864
- workflowId: string;
2756
+ export type WorkflowStepDto = {
2757
+ /** Step configuration */
2758
+ config: {
2759
+ [key: string]: any;
2760
+ } | null;
2761
+ /** Step is enabled */
2762
+ enabled?: boolean;
2763
+ /** Step plugin method */
2764
+ method: string;
2865
2765
  };
2866
2766
  export type WorkflowResponseDto = {
2867
- /** Workflow actions */
2868
- actions: WorkflowActionResponseDto[];
2869
2767
  /** Creation date */
2870
2768
  createdAt: string;
2871
2769
  /** Workflow description */
2872
- description: string;
2770
+ description: string | null;
2873
2771
  /** Workflow enabled */
2874
2772
  enabled: boolean;
2875
- /** Workflow filters */
2876
- filters: WorkflowFilterResponseDto[];
2877
2773
  /** Workflow ID */
2878
2774
  id: string;
2879
2775
  /** Workflow name */
2880
2776
  name: string | null;
2881
- /** Owner user ID */
2882
- ownerId: string;
2777
+ /** Workflow steps */
2778
+ steps: WorkflowStepDto[];
2883
2779
  /** Workflow trigger type */
2884
- triggerType: PluginTriggerType;
2885
- };
2886
- export type WorkflowActionItemDto = {
2887
- /** Action configuration */
2888
- actionConfig?: object;
2889
- /** Plugin action ID */
2890
- pluginActionId: string;
2891
- };
2892
- export type WorkflowFilterItemDto = {
2893
- /** Filter configuration */
2894
- filterConfig?: object;
2895
- /** Plugin filter ID */
2896
- pluginFilterId: string;
2780
+ trigger: WorkflowTrigger;
2781
+ /** Update date */
2782
+ updatedAt: string;
2897
2783
  };
2898
2784
  export type WorkflowCreateDto = {
2899
- /** Workflow actions */
2900
- actions: WorkflowActionItemDto[];
2901
2785
  /** Workflow description */
2902
- description?: string;
2786
+ description?: string | null;
2903
2787
  /** Workflow enabled */
2904
2788
  enabled?: boolean;
2905
- /** Workflow filters */
2906
- filters: WorkflowFilterItemDto[];
2907
2789
  /** Workflow name */
2908
- name: string;
2790
+ name?: string | null;
2791
+ steps?: WorkflowStepDto[];
2909
2792
  /** Workflow trigger type */
2910
- triggerType: PluginTriggerType;
2793
+ trigger: WorkflowTrigger;
2794
+ };
2795
+ export type WorkflowTriggerResponseDto = {
2796
+ /** Trigger type */
2797
+ trigger: WorkflowTrigger;
2798
+ /** Workflow types */
2799
+ types: WorkflowType[];
2911
2800
  };
2912
2801
  export type WorkflowUpdateDto = {
2913
- /** Workflow actions */
2914
- actions?: WorkflowActionItemDto[];
2915
2802
  /** Workflow description */
2916
- description?: string;
2803
+ description?: string | null;
2917
2804
  /** Workflow enabled */
2918
2805
  enabled?: boolean;
2919
- /** Workflow filters */
2920
- filters?: WorkflowFilterItemDto[];
2921
2806
  /** Workflow name */
2922
- name?: string;
2807
+ name?: string | null;
2808
+ steps?: WorkflowStepDto[];
2809
+ /** Workflow trigger type */
2810
+ trigger?: WorkflowTrigger;
2811
+ };
2812
+ export type WorkflowShareStepDto = {
2813
+ /** Step configuration */
2814
+ config: {
2815
+ [key: string]: any;
2816
+ } | null;
2817
+ /** Step is enabled */
2818
+ enabled?: boolean;
2819
+ /** Step plugin method */
2820
+ method: string;
2821
+ };
2822
+ export type WorkflowShareResponseDto = {
2823
+ /** Workflow description */
2824
+ description: string | null;
2825
+ /** Workflow name */
2826
+ name: string | null;
2827
+ /** Workflow steps */
2828
+ steps: WorkflowShareStepDto[];
2923
2829
  /** Workflow trigger type */
2924
- triggerType?: PluginTriggerType;
2830
+ trigger: WorkflowTrigger;
2831
+ };
2832
+ export type LicenseResponseDto = UserLicense;
2833
+ export type ReleaseEventV1 = {
2834
+ /** When the server last checked for a latest version. As an ISO timestamp */
2835
+ checkedAt: string;
2836
+ /** Whether a new version is available */
2837
+ isAvailable: boolean;
2838
+ releaseVersion: ServerVersionResponseDto;
2839
+ serverVersion: ServerVersionResponseDto;
2840
+ /** Release type */
2841
+ "type": ReleaseType;
2925
2842
  };
2926
2843
  export type SyncAckV1 = {};
2927
2844
  export type SyncAlbumDeleteV1 = {
@@ -2949,7 +2866,6 @@ export type SyncAlbumUserDeleteV1 = {
2949
2866
  export type SyncAlbumUserV1 = {
2950
2867
  /** Album ID */
2951
2868
  albumId: string;
2952
- /** Album user role */
2953
2869
  role: AlbumUserRole;
2954
2870
  /** User ID */
2955
2871
  userId: string;
@@ -2973,18 +2889,42 @@ export type SyncAlbumV1 = {
2973
2889
  /** Updated at */
2974
2890
  updatedAt: string;
2975
2891
  };
2892
+ export type SyncAlbumV2 = {
2893
+ /** Created at */
2894
+ createdAt: string;
2895
+ /** Album description */
2896
+ description: string;
2897
+ /** Album ID */
2898
+ id: string;
2899
+ /** Is activity enabled */
2900
+ isActivityEnabled: boolean;
2901
+ /** Album name */
2902
+ name: string;
2903
+ order: AssetOrder;
2904
+ /** Thumbnail asset ID */
2905
+ thumbnailAssetId: string | null;
2906
+ /** Updated at */
2907
+ updatedAt: string;
2908
+ };
2976
2909
  export type SyncAssetDeleteV1 = {
2977
2910
  /** Asset ID */
2978
2911
  assetId: string;
2979
2912
  };
2980
2913
  export type SyncAssetEditDeleteV1 = {
2914
+ /** Edit ID */
2981
2915
  editId: string;
2982
2916
  };
2983
2917
  export type SyncAssetEditV1 = {
2984
2918
  action: AssetEditAction;
2919
+ /** Asset ID */
2985
2920
  assetId: string;
2921
+ /** Edit ID */
2986
2922
  id: string;
2987
- parameters: object;
2923
+ /** Edit parameters */
2924
+ parameters: {
2925
+ [key: string]: any;
2926
+ };
2927
+ /** Edit sequence */
2988
2928
  sequence: number;
2989
2929
  };
2990
2930
  export type SyncAssetExifV1 = {
@@ -3046,13 +2986,19 @@ export type SyncAssetFaceDeleteV1 = {
3046
2986
  export type SyncAssetFaceV1 = {
3047
2987
  /** Asset ID */
3048
2988
  assetId: string;
2989
+ /** Bounding box X1 */
3049
2990
  boundingBoxX1: number;
2991
+ /** Bounding box X2 */
3050
2992
  boundingBoxX2: number;
2993
+ /** Bounding box Y1 */
3051
2994
  boundingBoxY1: number;
2995
+ /** Bounding box Y2 */
3052
2996
  boundingBoxY2: number;
3053
2997
  /** Asset face ID */
3054
2998
  id: string;
2999
+ /** Image height */
3055
3000
  imageHeight: number;
3001
+ /** Image width */
3056
3002
  imageWidth: number;
3057
3003
  /** Person ID */
3058
3004
  personId: string | null;
@@ -3062,15 +3008,21 @@ export type SyncAssetFaceV1 = {
3062
3008
  export type SyncAssetFaceV2 = {
3063
3009
  /** Asset ID */
3064
3010
  assetId: string;
3011
+ /** Bounding box X1 */
3065
3012
  boundingBoxX1: number;
3013
+ /** Bounding box X2 */
3066
3014
  boundingBoxX2: number;
3015
+ /** Bounding box Y1 */
3067
3016
  boundingBoxY1: number;
3017
+ /** Bounding box Y2 */
3068
3018
  boundingBoxY2: number;
3069
3019
  /** Face deleted at */
3070
3020
  deletedAt: string | null;
3071
3021
  /** Asset face ID */
3072
3022
  id: string;
3023
+ /** Image height */
3073
3024
  imageHeight: number;
3025
+ /** Image width */
3074
3026
  imageWidth: number;
3075
3027
  /** Is the face visible in the asset */
3076
3028
  isVisible: boolean;
@@ -3091,11 +3043,53 @@ export type SyncAssetMetadataV1 = {
3091
3043
  /** Key */
3092
3044
  key: string;
3093
3045
  /** Value */
3094
- value: object;
3046
+ value: {
3047
+ [key: string]: any;
3048
+ };
3049
+ };
3050
+ export type SyncAssetOcrDeleteV1 = {
3051
+ /** Original asset ID of the deleted OCR entry */
3052
+ assetId: string;
3053
+ /** Timestamp when the OCR entry was deleted */
3054
+ deletedAt: string;
3055
+ /** Audit row ID of the deleted OCR entry */
3056
+ id: string;
3057
+ };
3058
+ export type SyncAssetOcrV1 = {
3059
+ /** Asset ID */
3060
+ assetId: string;
3061
+ /** Confidence score of the bounding box */
3062
+ boxScore: number;
3063
+ /** OCR entry ID */
3064
+ id: string;
3065
+ /** Whether the OCR entry is visible */
3066
+ isVisible: boolean;
3067
+ /** Recognized text content */
3068
+ text: string;
3069
+ /** Confidence score of the recognized text */
3070
+ textScore: number;
3071
+ /** Top-left X coordinate (normalized 0–1) */
3072
+ x1: number;
3073
+ /** Top-right X coordinate (normalized 0–1) */
3074
+ x2: number;
3075
+ /** Bottom-right X coordinate (normalized 0–1) */
3076
+ x3: number;
3077
+ /** Bottom-left X coordinate (normalized 0–1) */
3078
+ x4: number;
3079
+ /** Top-left Y coordinate (normalized 0–1) */
3080
+ y1: number;
3081
+ /** Top-right Y coordinate (normalized 0–1) */
3082
+ y2: number;
3083
+ /** Bottom-right Y coordinate (normalized 0–1) */
3084
+ y3: number;
3085
+ /** Bottom-left Y coordinate (normalized 0–1) */
3086
+ y4: number;
3095
3087
  };
3096
3088
  export type SyncAssetV1 = {
3097
3089
  /** Checksum */
3098
3090
  checksum: string;
3091
+ /** Uploaded to Immich at */
3092
+ createdAt: string | null;
3099
3093
  /** Deleted at */
3100
3094
  deletedAt: string | null;
3101
3095
  /** Duration */
@@ -3126,16 +3120,53 @@ export type SyncAssetV1 = {
3126
3120
  stackId: string | null;
3127
3121
  /** Thumbhash */
3128
3122
  thumbhash: string | null;
3129
- /** Asset type */
3130
3123
  "type": AssetTypeEnum;
3131
- /** Asset visibility */
3124
+ visibility: AssetVisibility;
3125
+ /** Asset width */
3126
+ width: number | null;
3127
+ };
3128
+ export type SyncAssetV2 = {
3129
+ /** Checksum */
3130
+ checksum: string;
3131
+ /** Uploaded to Immich at */
3132
+ createdAt: string | null;
3133
+ /** Deleted at */
3134
+ deletedAt: string | null;
3135
+ /** Duration */
3136
+ duration: number | null;
3137
+ /** File created at */
3138
+ fileCreatedAt: string | null;
3139
+ /** File modified at */
3140
+ fileModifiedAt: string | null;
3141
+ /** Asset height */
3142
+ height: number | null;
3143
+ /** Asset ID */
3144
+ id: string;
3145
+ /** Is edited */
3146
+ isEdited: boolean;
3147
+ /** Is favorite */
3148
+ isFavorite: boolean;
3149
+ /** Library ID */
3150
+ libraryId: string | null;
3151
+ /** Live photo video ID */
3152
+ livePhotoVideoId: string | null;
3153
+ /** Local date time */
3154
+ localDateTime: string | null;
3155
+ /** Original file name */
3156
+ originalFileName: string;
3157
+ /** Owner ID */
3158
+ ownerId: string;
3159
+ /** Stack ID */
3160
+ stackId: string | null;
3161
+ /** Thumbhash */
3162
+ thumbhash: string | null;
3163
+ "type": AssetTypeEnum;
3132
3164
  visibility: AssetVisibility;
3133
3165
  /** Asset width */
3134
3166
  width: number | null;
3135
3167
  };
3136
3168
  export type SyncAuthUserV1 = {
3137
- /** User avatar color */
3138
- avatarColor: (UserAvatarColor) | null;
3169
+ avatarColor?: (UserAvatarColor) | null;
3139
3170
  /** User deleted at */
3140
3171
  deletedAt: string | null;
3141
3172
  /** User email */
@@ -3154,7 +3185,9 @@ export type SyncAuthUserV1 = {
3154
3185
  pinCode: string | null;
3155
3186
  /** User profile changed at */
3156
3187
  profileChangedAt: string;
3188
+ /** Quota size in bytes */
3157
3189
  quotaSizeInBytes: number | null;
3190
+ /** Quota usage in bytes */
3158
3191
  quotaUsageInBytes: number;
3159
3192
  /** User storage label */
3160
3193
  storageLabel: string | null;
@@ -3180,7 +3213,9 @@ export type SyncMemoryV1 = {
3180
3213
  /** Created at */
3181
3214
  createdAt: string;
3182
3215
  /** Data */
3183
- data: object;
3216
+ data: {
3217
+ [key: string]: any;
3218
+ };
3184
3219
  /** Deleted at */
3185
3220
  deletedAt: string | null;
3186
3221
  /** Hide at */
@@ -3197,7 +3232,6 @@ export type SyncMemoryV1 = {
3197
3232
  seenAt: string | null;
3198
3233
  /** Show at */
3199
3234
  showAt: string | null;
3200
- /** Memory type */
3201
3235
  "type": MemoryType;
3202
3236
  /** Updated at */
3203
3237
  updatedAt: string;
@@ -3264,22 +3298,21 @@ export type SyncUserDeleteV1 = {
3264
3298
  userId: string;
3265
3299
  };
3266
3300
  export type SyncUserMetadataDeleteV1 = {
3267
- /** User metadata key */
3268
3301
  key: UserMetadataKey;
3269
3302
  /** User ID */
3270
3303
  userId: string;
3271
3304
  };
3272
3305
  export type SyncUserMetadataV1 = {
3273
- /** User metadata key */
3274
3306
  key: UserMetadataKey;
3275
3307
  /** User ID */
3276
3308
  userId: string;
3277
3309
  /** User metadata value */
3278
- value: object;
3310
+ value: {
3311
+ [key: string]: any;
3312
+ };
3279
3313
  };
3280
3314
  export type SyncUserV1 = {
3281
- /** User avatar color */
3282
- avatarColor: (UserAvatarColor) | null;
3315
+ avatarColor?: (UserAvatarColor) | null;
3283
3316
  /** User deleted at */
3284
3317
  deletedAt: string | null;
3285
3318
  /** User email */
@@ -3352,6 +3385,36 @@ export declare function uploadDatabaseBackup({ databaseBackupUploadDto }: {
3352
3385
  export declare function downloadDatabaseBackup({ filename }: {
3353
3386
  filename: string;
3354
3387
  }, opts?: Oazapfts.RequestOpts): Promise<Blob>;
3388
+ /**
3389
+ * Get integrity report by type
3390
+ */
3391
+ export declare function getIntegrityReport({ cursor, limit, $type }: {
3392
+ cursor?: string;
3393
+ limit?: number;
3394
+ $type: IntegrityReport;
3395
+ }, opts?: Oazapfts.RequestOpts): Promise<IntegrityReportResponseDto>;
3396
+ /**
3397
+ * Delete integrity report item
3398
+ */
3399
+ export declare function deleteIntegrityReport({ id }: {
3400
+ id: string;
3401
+ }, opts?: Oazapfts.RequestOpts): Promise<never>;
3402
+ /**
3403
+ * Download flagged file
3404
+ */
3405
+ export declare function getIntegrityReportFile({ id }: {
3406
+ id: string;
3407
+ }, opts?: Oazapfts.RequestOpts): Promise<Blob>;
3408
+ /**
3409
+ * Export integrity report by type as CSV
3410
+ */
3411
+ export declare function getIntegrityReportCsv({ $type }: {
3412
+ $type: IntegrityReport;
3413
+ }, opts?: Oazapfts.RequestOpts): Promise<Blob>;
3414
+ /**
3415
+ * Get integrity report summary
3416
+ */
3417
+ export declare function getIntegrityReportSummary(opts?: Oazapfts.RequestOpts): Promise<IntegrityReportSummaryResponseDto>;
3355
3418
  /**
3356
3419
  * Set maintenance mode
3357
3420
  */
@@ -3424,6 +3487,15 @@ export declare function updateUserAdmin({ id, userAdminUpdateDto }: {
3424
3487
  id: string;
3425
3488
  userAdminUpdateDto: UserAdminUpdateDto;
3426
3489
  }, opts?: Oazapfts.RequestOpts): Promise<UserAdminResponseDto>;
3490
+ /**
3491
+ * Retrieve calendar heatmap activity
3492
+ */
3493
+ export declare function getUserCalendarHeatmapAdmin({ $from, id, to, $type }: {
3494
+ $from?: string;
3495
+ id: string;
3496
+ to?: string;
3497
+ $type?: CalendarHeatmapType;
3498
+ }, opts?: Oazapfts.RequestOpts): Promise<CalendarHeatmapResponseDto>;
3427
3499
  /**
3428
3500
  * Retrieve user preferences
3429
3501
  */
@@ -3461,9 +3533,12 @@ export declare function getUserStatisticsAdmin({ id, isFavorite, isTrashed, visi
3461
3533
  /**
3462
3534
  * List all albums
3463
3535
  */
3464
- export declare function getAllAlbums({ assetId, shared }: {
3536
+ export declare function getAllAlbums({ assetId, id, isOwned, isShared, name }: {
3465
3537
  assetId?: string;
3466
- shared?: boolean;
3538
+ id?: string;
3539
+ isOwned?: boolean;
3540
+ isShared?: boolean;
3541
+ name?: string;
3467
3542
  }, opts?: Oazapfts.RequestOpts): Promise<AlbumResponseDto[]>;
3468
3543
  /**
3469
3544
  * Create an album
@@ -3474,9 +3549,7 @@ export declare function createAlbum({ createAlbumDto }: {
3474
3549
  /**
3475
3550
  * Add assets to albums
3476
3551
  */
3477
- export declare function addAssetsToAlbums({ key, slug, albumsAddAssetsDto }: {
3478
- key?: string;
3479
- slug?: string;
3552
+ export declare function addAssetsToAlbums({ albumsAddAssetsDto }: {
3480
3553
  albumsAddAssetsDto: AlbumsAddAssetsDto;
3481
3554
  }, opts?: Oazapfts.RequestOpts): Promise<AlbumsAddAssetsResponseDto>;
3482
3555
  /**
@@ -3492,11 +3565,10 @@ export declare function deleteAlbum({ id }: {
3492
3565
  /**
3493
3566
  * Retrieve an album
3494
3567
  */
3495
- export declare function getAlbumInfo({ id, key, slug, withoutAssets }: {
3568
+ export declare function getAlbumInfo({ id, key, slug }: {
3496
3569
  id: string;
3497
3570
  key?: string;
3498
3571
  slug?: string;
3499
- withoutAssets?: boolean;
3500
3572
  }, opts?: Oazapfts.RequestOpts): Promise<AlbumResponseDto>;
3501
3573
  /**
3502
3574
  * Update an album
@@ -3515,12 +3587,18 @@ export declare function removeAssetFromAlbum({ id, bulkIdsDto }: {
3515
3587
  /**
3516
3588
  * Add assets to an album
3517
3589
  */
3518
- export declare function addAssetsToAlbum({ id, key, slug, bulkIdsDto }: {
3590
+ export declare function addAssetsToAlbum({ id, bulkIdsDto }: {
3519
3591
  id: string;
3520
- key?: string;
3521
- slug?: string;
3522
3592
  bulkIdsDto: BulkIdsDto;
3523
3593
  }, opts?: Oazapfts.RequestOpts): Promise<BulkIdResponseDto[]>;
3594
+ /**
3595
+ * Retrieve album map markers
3596
+ */
3597
+ export declare function getAlbumMapMarkers({ id, key, slug }: {
3598
+ id: string;
3599
+ key?: string;
3600
+ slug?: string;
3601
+ }, opts?: Oazapfts.RequestOpts): Promise<MapMarkerResponseDto[]>;
3524
3602
  /**
3525
3603
  * Remove user from album
3526
3604
  */
@@ -3609,18 +3687,6 @@ export declare function checkBulkUpload({ assetBulkUploadCheckDto }: {
3609
3687
  export declare function copyAsset({ assetCopyDto }: {
3610
3688
  assetCopyDto: AssetCopyDto;
3611
3689
  }, opts?: Oazapfts.RequestOpts): Promise<never>;
3612
- /**
3613
- * Retrieve assets by device ID
3614
- */
3615
- export declare function getAllUserAssetsByDeviceId({ deviceId }: {
3616
- deviceId: string;
3617
- }, opts?: Oazapfts.RequestOpts): Promise<string[]>;
3618
- /**
3619
- * Check existing assets
3620
- */
3621
- export declare function checkExistingAssets({ checkExistingAssetsDto }: {
3622
- checkExistingAssetsDto: CheckExistingAssetsDto;
3623
- }, opts?: Oazapfts.RequestOpts): Promise<CheckExistingAssetsResponseDto>;
3624
3690
  /**
3625
3691
  * Run an asset job
3626
3692
  */
@@ -3639,12 +3705,6 @@ export declare function deleteBulkAssetMetadata({ assetMetadataBulkDeleteDto }:
3639
3705
  export declare function updateBulkAssetMetadata({ assetMetadataBulkUpsertDto }: {
3640
3706
  assetMetadataBulkUpsertDto: AssetMetadataBulkUpsertDto;
3641
3707
  }, opts?: Oazapfts.RequestOpts): Promise<AssetMetadataBulkResponseDto[]>;
3642
- /**
3643
- * Get random assets
3644
- */
3645
- export declare function getRandom({ count }: {
3646
- count?: number;
3647
- }, opts?: Oazapfts.RequestOpts): Promise<AssetResponseDto[]>;
3648
3708
  /**
3649
3709
  * Get asset statistics
3650
3710
  */
@@ -3729,15 +3789,6 @@ export declare function downloadAsset({ edited, id, key, slug }: {
3729
3789
  key?: string;
3730
3790
  slug?: string;
3731
3791
  }, opts?: Oazapfts.RequestOpts): Promise<Blob>;
3732
- /**
3733
- * Replace asset
3734
- */
3735
- export declare function replaceAsset({ id, key, slug, assetMediaReplaceDto }: {
3736
- id: string;
3737
- key?: string;
3738
- slug?: string;
3739
- assetMediaReplaceDto: AssetMediaReplaceDto;
3740
- }, opts?: Oazapfts.RequestOpts): Promise<AssetMediaResponseDto>;
3741
3792
  /**
3742
3793
  * View asset thumbnail
3743
3794
  */
@@ -3756,6 +3807,45 @@ export declare function playAssetVideo({ id, key, slug }: {
3756
3807
  key?: string;
3757
3808
  slug?: string;
3758
3809
  }, opts?: Oazapfts.RequestOpts): Promise<Blob>;
3810
+ /**
3811
+ * Get HLS main playlist
3812
+ */
3813
+ export declare function getMainPlaylist({ id, key, slug }: {
3814
+ id: string;
3815
+ key?: string;
3816
+ slug?: string;
3817
+ }, opts?: Oazapfts.RequestOpts): Promise<string>;
3818
+ /**
3819
+ * End HLS streaming session
3820
+ */
3821
+ export declare function endSession({ id, key, sessionId, slug }: {
3822
+ id: string;
3823
+ key?: string;
3824
+ sessionId: string;
3825
+ slug?: string;
3826
+ }, opts?: Oazapfts.RequestOpts): Promise<never>;
3827
+ /**
3828
+ * Get HLS media playlist
3829
+ */
3830
+ export declare function getMediaPlaylist({ id, key, sessionId, slug, variantIndex }: {
3831
+ id: string;
3832
+ key?: string;
3833
+ sessionId: string;
3834
+ slug?: string;
3835
+ variantIndex: number;
3836
+ }, opts?: Oazapfts.RequestOpts): Promise<string>;
3837
+ /**
3838
+ * Get HLS segment or init file
3839
+ */
3840
+ export declare function getSegment({ filename, id, key, sessionId, slug, variantIndex, xImmichHlsMsn }: {
3841
+ filename: string;
3842
+ id: string;
3843
+ key?: string;
3844
+ sessionId: string;
3845
+ slug?: string;
3846
+ variantIndex: number;
3847
+ xImmichHlsMsn?: number;
3848
+ }, opts?: Oazapfts.RequestOpts): Promise<Blob>;
3759
3849
  /**
3760
3850
  * Register admin
3761
3851
  */
@@ -3847,7 +3937,7 @@ export declare function resolveDuplicates({ duplicateResolveDto }: {
3847
3937
  duplicateResolveDto: DuplicateResolveDto;
3848
3938
  }, opts?: Oazapfts.RequestOpts): Promise<BulkIdResponseDto[]>;
3849
3939
  /**
3850
- * Delete a duplicate
3940
+ * Dismiss a duplicate group
3851
3941
  */
3852
3942
  export declare function deleteDuplicate({ id }: {
3853
3943
  id: string;
@@ -4068,6 +4158,12 @@ export declare function updateNotification({ id, notificationUpdateDto }: {
4068
4158
  export declare function startOAuth({ oAuthConfigDto }: {
4069
4159
  oAuthConfigDto: OAuthConfigDto;
4070
4160
  }, opts?: Oazapfts.RequestOpts): Promise<OAuthAuthorizeResponseDto>;
4161
+ /**
4162
+ * Backchannel OAuth logout
4163
+ */
4164
+ export declare function logoutOAuth({ oAuthBackchannelLogoutDto }: {
4165
+ oAuthBackchannelLogoutDto: OAuthBackchannelLogoutDto;
4166
+ }, opts?: Oazapfts.RequestOpts): Promise<never>;
4071
4167
  /**
4072
4168
  * Finish OAuth
4073
4169
  */
@@ -4195,11 +4291,32 @@ export declare function getPersonThumbnail({ id }: {
4195
4291
  /**
4196
4292
  * List all plugins
4197
4293
  */
4198
- export declare function getPlugins(opts?: Oazapfts.RequestOpts): Promise<PluginResponseDto[]>;
4294
+ export declare function searchPlugins({ description, enabled, id, name, title, version }: {
4295
+ description?: string;
4296
+ enabled?: boolean;
4297
+ id?: string;
4298
+ name?: string;
4299
+ title?: string;
4300
+ version?: string;
4301
+ }, opts?: Oazapfts.RequestOpts): Promise<PluginResponseDto[]>;
4302
+ /**
4303
+ * Retrieve plugin methods
4304
+ */
4305
+ export declare function searchPluginMethods({ description, enabled, id, name, pluginName, pluginVersion, title, trigger, $type }: {
4306
+ description?: string;
4307
+ enabled?: boolean;
4308
+ id?: string;
4309
+ name?: string;
4310
+ pluginName?: string;
4311
+ pluginVersion?: string;
4312
+ title?: string;
4313
+ trigger?: WorkflowTrigger;
4314
+ $type?: WorkflowType;
4315
+ }, opts?: Oazapfts.RequestOpts): Promise<PluginMethodResponseDto[]>;
4199
4316
  /**
4200
- * List all plugin triggers
4317
+ * Retrieve workflow templates
4201
4318
  */
4202
- export declare function getPluginTriggers(opts?: Oazapfts.RequestOpts): Promise<PluginTriggerResponseDto[]>;
4319
+ export declare function searchPluginTemplates(opts?: Oazapfts.RequestOpts): Promise<PluginTemplateResponseDto[]>;
4203
4320
  /**
4204
4321
  * Retrieve a plugin
4205
4322
  */
@@ -4248,13 +4365,12 @@ export declare function getExploreData(opts?: Oazapfts.RequestOpts): Promise<Sea
4248
4365
  /**
4249
4366
  * Search large assets
4250
4367
  */
4251
- export declare function searchLargeAssets({ albumIds, city, country, createdAfter, createdBefore, deviceId, isEncoded, isFavorite, isMotion, isNotInAlbum, isOffline, lensModel, libraryId, make, minFileSize, model, ocr, personIds, rating, size, state, tagIds, takenAfter, takenBefore, trashedAfter, trashedBefore, $type, updatedAfter, updatedBefore, visibility, withDeleted, withExif }: {
4368
+ export declare function searchLargeAssets({ albumIds, city, country, createdAfter, createdBefore, isEncoded, isFavorite, isMotion, isNotInAlbum, isOffline, lensModel, libraryId, make, minFileSize, model, ocr, personIds, rating, size, state, tagIds, takenAfter, takenBefore, trashedAfter, trashedBefore, $type, updatedAfter, updatedBefore, visibility, withDeleted, withExif }: {
4252
4369
  albumIds?: string[];
4253
4370
  city?: string | null;
4254
4371
  country?: string | null;
4255
4372
  createdAfter?: string;
4256
4373
  createdBefore?: string;
4257
- deviceId?: string;
4258
4374
  isEncoded?: boolean;
4259
4375
  isFavorite?: boolean;
4260
4376
  isMotion?: boolean;
@@ -4262,7 +4378,7 @@ export declare function searchLargeAssets({ albumIds, city, country, createdAfte
4262
4378
  isOffline?: boolean;
4263
4379
  lensModel?: string | null;
4264
4380
  libraryId?: string | null;
4265
- make?: string;
4381
+ make?: string | null;
4266
4382
  minFileSize?: number;
4267
4383
  model?: string | null;
4268
4384
  ocr?: string;
@@ -4354,13 +4470,13 @@ export declare function deleteServerLicense(opts?: Oazapfts.RequestOpts): Promis
4354
4470
  /**
4355
4471
  * Get product key
4356
4472
  */
4357
- export declare function getServerLicense(opts?: Oazapfts.RequestOpts): Promise<LicenseResponseDto>;
4473
+ export declare function getServerLicense(opts?: Oazapfts.RequestOpts): Promise<UserLicense>;
4358
4474
  /**
4359
4475
  * Set server product key
4360
4476
  */
4361
4477
  export declare function setServerLicense({ licenseKeyDto }: {
4362
4478
  licenseKeyDto: LicenseKeyDto;
4363
- }, opts?: Oazapfts.RequestOpts): Promise<LicenseResponseDto>;
4479
+ }, opts?: Oazapfts.RequestOpts): Promise<UserLicense>;
4364
4480
  /**
4365
4481
  * Get supported media types
4366
4482
  */
@@ -4368,7 +4484,7 @@ export declare function getSupportedMediaTypes(opts?: Oazapfts.RequestOpts): Pro
4368
4484
  /**
4369
4485
  * Ping
4370
4486
  */
4371
- export declare function pingServer(opts?: Oazapfts.RequestOpts): Promise<ServerPingResponseRead>;
4487
+ export declare function pingServer(opts?: Oazapfts.RequestOpts): Promise<ServerPingResponse>;
4372
4488
  /**
4373
4489
  * Get statistics
4374
4490
  */
@@ -4377,10 +4493,6 @@ export declare function getServerStatistics(opts?: Oazapfts.RequestOpts): Promis
4377
4493
  * Get storage
4378
4494
  */
4379
4495
  export declare function getStorage(opts?: Oazapfts.RequestOpts): Promise<ServerStorageResponseDto>;
4380
- /**
4381
- * Get theme
4382
- */
4383
- export declare function getTheme(opts?: Oazapfts.RequestOpts): Promise<ServerThemeDto>;
4384
4496
  /**
4385
4497
  * Get server version
4386
4498
  */
@@ -4450,11 +4562,9 @@ export declare function sharedLinkLogin({ key, slug, sharedLinkLoginDto }: {
4450
4562
  /**
4451
4563
  * Retrieve current shared link
4452
4564
  */
4453
- export declare function getMySharedLink({ key, password, slug, token }: {
4565
+ export declare function getMySharedLink({ key, slug }: {
4454
4566
  key?: string;
4455
- password?: string;
4456
4567
  slug?: string;
4457
- token?: string;
4458
4568
  }, opts?: Oazapfts.RequestOpts): Promise<SharedLinkResponseDto>;
4459
4569
  /**
4460
4570
  * Delete a shared link
@@ -4485,10 +4595,8 @@ export declare function removeSharedLinkAssets({ id, assetIdsDto }: {
4485
4595
  /**
4486
4596
  * Add assets to a shared link
4487
4597
  */
4488
- export declare function addSharedLinkAssets({ id, key, slug, assetIdsDto }: {
4598
+ export declare function addSharedLinkAssets({ id, assetIdsDto }: {
4489
4599
  id: string;
4490
- key?: string;
4491
- slug?: string;
4492
4600
  assetIdsDto: AssetIdsDto;
4493
4601
  }, opts?: Oazapfts.RequestOpts): Promise<AssetIdsResponseDto[]>;
4494
4602
  /**
@@ -4551,18 +4659,6 @@ export declare function getSyncAck(opts?: Oazapfts.RequestOpts): Promise<SyncAck
4551
4659
  export declare function sendSyncAck({ syncAckSetDto }: {
4552
4660
  syncAckSetDto: SyncAckSetDto;
4553
4661
  }, opts?: Oazapfts.RequestOpts): Promise<never>;
4554
- /**
4555
- * Get delta sync for user
4556
- */
4557
- export declare function getDeltaSync({ assetDeltaSyncDto }: {
4558
- assetDeltaSyncDto: AssetDeltaSyncDto;
4559
- }, opts?: Oazapfts.RequestOpts): Promise<AssetDeltaSyncResponseDto>;
4560
- /**
4561
- * Get full sync for user
4562
- */
4563
- export declare function getFullSyncForUser({ assetFullSyncDto }: {
4564
- assetFullSyncDto: AssetFullSyncDto;
4565
- }, opts?: Oazapfts.RequestOpts): Promise<AssetResponseDto[]>;
4566
4662
  /**
4567
4663
  * Stream sync changes
4568
4664
  */
@@ -4663,13 +4759,14 @@ export declare function tagAssets({ id, bulkIdsDto }: {
4663
4759
  /**
4664
4760
  * Get time bucket
4665
4761
  */
4666
- export declare function getTimeBucket({ albumId, bbox, isFavorite, isTrashed, key, order, personId, slug, tagId, timeBucket, userId, visibility, withCoordinates, withPartners, withStacked }: {
4762
+ export declare function getTimeBucket({ albumId, bbox, isFavorite, isTrashed, key, order, orderBy, personId, slug, tagId, timeBucket, userId, visibility, withCoordinates, withPartners, withStacked }: {
4667
4763
  albumId?: string;
4668
4764
  bbox?: string;
4669
4765
  isFavorite?: boolean;
4670
4766
  isTrashed?: boolean;
4671
4767
  key?: string;
4672
4768
  order?: AssetOrder;
4769
+ orderBy?: AssetOrderBy;
4673
4770
  personId?: string;
4674
4771
  slug?: string;
4675
4772
  tagId?: string;
@@ -4683,13 +4780,14 @@ export declare function getTimeBucket({ albumId, bbox, isFavorite, isTrashed, ke
4683
4780
  /**
4684
4781
  * Get time buckets
4685
4782
  */
4686
- export declare function getTimeBuckets({ albumId, bbox, isFavorite, isTrashed, key, order, personId, slug, tagId, userId, visibility, withCoordinates, withPartners, withStacked }: {
4783
+ export declare function getTimeBuckets({ albumId, bbox, isFavorite, isTrashed, key, order, orderBy, personId, slug, tagId, userId, visibility, withCoordinates, withPartners, withStacked }: {
4687
4784
  albumId?: string;
4688
4785
  bbox?: string;
4689
4786
  isFavorite?: boolean;
4690
4787
  isTrashed?: boolean;
4691
4788
  key?: string;
4692
4789
  order?: AssetOrder;
4790
+ orderBy?: AssetOrderBy;
4693
4791
  personId?: string;
4694
4792
  slug?: string;
4695
4793
  tagId?: string;
@@ -4727,6 +4825,14 @@ export declare function getMyUser(opts?: Oazapfts.RequestOpts): Promise<UserAdmi
4727
4825
  export declare function updateMyUser({ userUpdateMeDto }: {
4728
4826
  userUpdateMeDto: UserUpdateMeDto;
4729
4827
  }, opts?: Oazapfts.RequestOpts): Promise<UserAdminResponseDto>;
4828
+ /**
4829
+ * Retrieve calendar heatmap activity
4830
+ */
4831
+ export declare function getMyCalendarHeatmap({ $from, to, $type }: {
4832
+ $from?: string;
4833
+ to?: string;
4834
+ $type?: CalendarHeatmapType;
4835
+ }, opts?: Oazapfts.RequestOpts): Promise<CalendarHeatmapResponseDto>;
4730
4836
  /**
4731
4837
  * Delete user product key
4732
4838
  */
@@ -4734,13 +4840,13 @@ export declare function deleteUserLicense(opts?: Oazapfts.RequestOpts): Promise<
4734
4840
  /**
4735
4841
  * Retrieve user product key
4736
4842
  */
4737
- export declare function getUserLicense(opts?: Oazapfts.RequestOpts): Promise<LicenseResponseDto>;
4843
+ export declare function getUserLicense(opts?: Oazapfts.RequestOpts): Promise<UserLicense>;
4738
4844
  /**
4739
4845
  * Set user product key
4740
4846
  */
4741
4847
  export declare function setUserLicense({ licenseKeyDto }: {
4742
4848
  licenseKeyDto: LicenseKeyDto;
4743
- }, opts?: Oazapfts.RequestOpts): Promise<LicenseResponseDto>;
4849
+ }, opts?: Oazapfts.RequestOpts): Promise<UserLicense>;
4744
4850
  /**
4745
4851
  * Delete user onboarding
4746
4852
  */
@@ -4800,13 +4906,23 @@ export declare function getUniqueOriginalPaths(opts?: Oazapfts.RequestOpts): Pro
4800
4906
  /**
4801
4907
  * List all workflows
4802
4908
  */
4803
- export declare function getWorkflows(opts?: Oazapfts.RequestOpts): Promise<WorkflowResponseDto[]>;
4909
+ export declare function searchWorkflows({ description, enabled, id, name, trigger }: {
4910
+ description?: string;
4911
+ enabled?: boolean;
4912
+ id?: string;
4913
+ name?: string;
4914
+ trigger?: WorkflowTrigger;
4915
+ }, opts?: Oazapfts.RequestOpts): Promise<WorkflowResponseDto[]>;
4804
4916
  /**
4805
4917
  * Create a workflow
4806
4918
  */
4807
4919
  export declare function createWorkflow({ workflowCreateDto }: {
4808
4920
  workflowCreateDto: WorkflowCreateDto;
4809
4921
  }, opts?: Oazapfts.RequestOpts): Promise<WorkflowResponseDto>;
4922
+ /**
4923
+ * List all workflow triggers
4924
+ */
4925
+ export declare function getWorkflowTriggers(opts?: Oazapfts.RequestOpts): Promise<WorkflowTriggerResponseDto[]>;
4810
4926
  /**
4811
4927
  * Delete a workflow
4812
4928
  */
@@ -4826,6 +4942,12 @@ export declare function updateWorkflow({ id, workflowUpdateDto }: {
4826
4942
  id: string;
4827
4943
  workflowUpdateDto: WorkflowUpdateDto;
4828
4944
  }, opts?: Oazapfts.RequestOpts): Promise<WorkflowResponseDto>;
4945
+ /**
4946
+ * Retrieve a workflow
4947
+ */
4948
+ export declare function getWorkflowForShare({ id }: {
4949
+ id: string;
4950
+ }, opts?: Oazapfts.RequestOpts): Promise<WorkflowShareResponseDto>;
4829
4951
  export declare enum ReactionLevel {
4830
4952
  Album = "album",
4831
4953
  Asset = "asset"
@@ -4846,6 +4968,11 @@ export declare enum UserAvatarColor {
4846
4968
  Gray = "gray",
4847
4969
  Amber = "amber"
4848
4970
  }
4971
+ export declare enum IntegrityReport {
4972
+ UntrackedFile = "untracked_file",
4973
+ MissingFile = "missing_file",
4974
+ ChecksumMismatch = "checksum_mismatch"
4975
+ }
4849
4976
  export declare enum MaintenanceAction {
4850
4977
  Start = "start",
4851
4978
  End = "end",
@@ -4879,6 +5006,10 @@ export declare enum UserStatus {
4879
5006
  Removing = "removing",
4880
5007
  Deleted = "deleted"
4881
5008
  }
5009
+ export declare enum CalendarHeatmapType {
5010
+ Upload = "Upload",
5011
+ Taken = "Taken"
5012
+ }
4882
5013
  export declare enum AssetOrder {
4883
5014
  Asc = "asc",
4884
5015
  Desc = "desc"
@@ -4891,19 +5022,9 @@ export declare enum AssetVisibility {
4891
5022
  }
4892
5023
  export declare enum AlbumUserRole {
4893
5024
  Editor = "editor",
5025
+ Owner = "owner",
4894
5026
  Viewer = "viewer"
4895
5027
  }
4896
- export declare enum SourceType {
4897
- MachineLearning = "machine-learning",
4898
- Exif = "exif",
4899
- Manual = "manual"
4900
- }
4901
- export declare enum AssetTypeEnum {
4902
- Image = "IMAGE",
4903
- Video = "VIDEO",
4904
- Audio = "AUDIO",
4905
- Other = "OTHER"
4906
- }
4907
5028
  export declare enum BulkIdErrorReason {
4908
5029
  Duplicate = "duplicate",
4909
5030
  NoPermission = "no_permission",
@@ -4911,13 +5032,6 @@ export declare enum BulkIdErrorReason {
4911
5032
  Unknown = "unknown",
4912
5033
  Validation = "validation"
4913
5034
  }
4914
- export declare enum Error {
4915
- Duplicate = "duplicate",
4916
- NoPermission = "no_permission",
4917
- NotFound = "not_found",
4918
- Unknown = "unknown",
4919
- Validation = "validation"
4920
- }
4921
5035
  export declare enum Permission {
4922
5036
  All = "all",
4923
5037
  ActivityCreate = "activity.create",
@@ -4937,7 +5051,6 @@ export declare enum Permission {
4937
5051
  AssetView = "asset.view",
4938
5052
  AssetDownload = "asset.download",
4939
5053
  AssetUpload = "asset.upload",
4940
- AssetReplace = "asset.replace",
4941
5054
  AssetCopy = "asset.copy",
4942
5055
  AssetDerive = "asset.derive",
4943
5056
  AssetEditGet = "asset.edit.get",
@@ -5078,14 +5191,13 @@ export declare enum Permission {
5078
5191
  }
5079
5192
  export declare enum AssetMediaStatus {
5080
5193
  Created = "created",
5081
- Replaced = "replaced",
5082
5194
  Duplicate = "duplicate"
5083
5195
  }
5084
- export declare enum Action {
5196
+ export declare enum AssetUploadAction {
5085
5197
  Accept = "accept",
5086
5198
  Reject = "reject"
5087
5199
  }
5088
- export declare enum Reason {
5200
+ export declare enum AssetRejectReason {
5089
5201
  Duplicate = "duplicate",
5090
5202
  UnsupportedFormat = "unsupported-format"
5091
5203
  }
@@ -5095,6 +5207,12 @@ export declare enum AssetJobName {
5095
5207
  RegenerateThumbnail = "regenerate-thumbnail",
5096
5208
  TranscodeVideo = "transcode-video"
5097
5209
  }
5210
+ export declare enum AssetTypeEnum {
5211
+ Image = "IMAGE",
5212
+ Video = "VIDEO",
5213
+ Audio = "AUDIO",
5214
+ Other = "OTHER"
5215
+ }
5098
5216
  export declare enum AssetEditAction {
5099
5217
  Crop = "crop",
5100
5218
  Rotate = "rotate",
@@ -5110,13 +5228,27 @@ export declare enum AssetMediaSize {
5110
5228
  Preview = "preview",
5111
5229
  Thumbnail = "thumbnail"
5112
5230
  }
5231
+ export declare enum SourceType {
5232
+ MachineLearning = "machine-learning",
5233
+ Exif = "exif",
5234
+ Manual = "manual"
5235
+ }
5113
5236
  export declare enum ManualJobName {
5114
5237
  PersonCleanup = "person-cleanup",
5115
5238
  TagCleanup = "tag-cleanup",
5116
5239
  UserCleanup = "user-cleanup",
5117
5240
  MemoryCleanup = "memory-cleanup",
5118
5241
  MemoryCreate = "memory-create",
5119
- BackupDatabase = "backup-database"
5242
+ BackupDatabase = "backup-database",
5243
+ IntegrityMissingFiles = "integrity-missing-files",
5244
+ IntegrityUntrackedFiles = "integrity-untracked-files",
5245
+ IntegrityChecksumMismatch = "integrity-checksum-mismatch",
5246
+ IntegrityMissingFilesRefresh = "integrity-missing-files-refresh",
5247
+ IntegrityUntrackedFilesRefresh = "integrity-untracked-files-refresh",
5248
+ IntegrityChecksumMismatchRefresh = "integrity-checksum-mismatch-refresh",
5249
+ IntegrityMissingFilesDeleteAll = "integrity-missing-files-delete-all",
5250
+ IntegrityUntrackedFilesDeleteAll = "integrity-untracked-files-delete-all",
5251
+ IntegrityChecksumMismatchDeleteAll = "integrity-checksum-mismatch-delete-all"
5120
5252
  }
5121
5253
  export declare enum QueueName {
5122
5254
  ThumbnailGeneration = "thumbnailGeneration",
@@ -5136,6 +5268,7 @@ export declare enum QueueName {
5136
5268
  BackupDatabase = "backupDatabase",
5137
5269
  Ocr = "ocr",
5138
5270
  Workflow = "workflow",
5271
+ IntegrityCheck = "integrityCheck",
5139
5272
  Editor = "editor"
5140
5273
  }
5141
5274
  export declare enum QueueCommand {
@@ -5157,14 +5290,12 @@ export declare enum PartnerDirection {
5157
5290
  SharedBy = "shared-by",
5158
5291
  SharedWith = "shared-with"
5159
5292
  }
5160
- export declare enum PluginContextType {
5161
- Asset = "asset",
5162
- Album = "album",
5163
- Person = "person"
5293
+ export declare enum WorkflowType {
5294
+ AssetV1 = "AssetV1"
5164
5295
  }
5165
- export declare enum PluginTriggerType {
5296
+ export declare enum WorkflowTrigger {
5166
5297
  AssetCreate = "AssetCreate",
5167
- PersonRecognized = "PersonRecognized"
5298
+ AssetMetadataExtraction = "AssetMetadataExtraction"
5168
5299
  }
5169
5300
  export declare enum QueueJobStatus {
5170
5301
  Active = "active",
@@ -5190,7 +5321,6 @@ export declare enum JobName {
5190
5321
  AssetFileMigration = "AssetFileMigration",
5191
5322
  AssetGenerateThumbnailsQueueAll = "AssetGenerateThumbnailsQueueAll",
5192
5323
  AssetGenerateThumbnails = "AssetGenerateThumbnails",
5193
- AuditLogCleanup = "AuditLogCleanup",
5194
5324
  AuditTableCleanup = "AuditTableCleanup",
5195
5325
  DatabaseBackup = "DatabaseBackup",
5196
5326
  FacialRecognitionQueueAll = "FacialRecognitionQueueAll",
@@ -5205,6 +5335,7 @@ export declare enum JobName {
5205
5335
  LibrarySyncFilesQueueAll = "LibrarySyncFilesQueueAll",
5206
5336
  LibrarySyncFiles = "LibrarySyncFiles",
5207
5337
  LibraryScanQueueAll = "LibraryScanQueueAll",
5338
+ HlsSessionCleanup = "HlsSessionCleanup",
5208
5339
  MemoryCleanup = "MemoryCleanup",
5209
5340
  MemoryGenerate = "MemoryGenerate",
5210
5341
  NotificationsCleanup = "NotificationsCleanup",
@@ -5230,7 +5361,17 @@ export declare enum JobName {
5230
5361
  VersionCheck = "VersionCheck",
5231
5362
  OcrQueueAll = "OcrQueueAll",
5232
5363
  Ocr = "Ocr",
5233
- WorkflowRun = "WorkflowRun"
5364
+ WorkflowAssetTrigger = "WorkflowAssetTrigger",
5365
+ IntegrityUntrackedFilesQueueAll = "IntegrityUntrackedFilesQueueAll",
5366
+ IntegrityUntrackedFiles = "IntegrityUntrackedFiles",
5367
+ IntegrityUntrackedRefresh = "IntegrityUntrackedRefresh",
5368
+ IntegrityMissingFilesQueueAll = "IntegrityMissingFilesQueueAll",
5369
+ IntegrityMissingFiles = "IntegrityMissingFiles",
5370
+ IntegrityMissingFilesRefresh = "IntegrityMissingFilesRefresh",
5371
+ IntegrityChecksumFiles = "IntegrityChecksumFiles",
5372
+ IntegrityChecksumFilesRefresh = "IntegrityChecksumFilesRefresh",
5373
+ IntegrityDeleteReportType = "IntegrityDeleteReportType",
5374
+ IntegrityDeleteReports = "IntegrityDeleteReports"
5234
5375
  }
5235
5376
  export declare enum SearchSuggestionType {
5236
5377
  Country = "country",
@@ -5244,7 +5385,7 @@ export declare enum SharedLinkType {
5244
5385
  Album = "ALBUM",
5245
5386
  Individual = "INDIVIDUAL"
5246
5387
  }
5247
- export declare enum Error2 {
5388
+ export declare enum AssetIdErrorReason {
5248
5389
  Duplicate = "duplicate",
5249
5390
  NoPermission = "no_permission",
5250
5391
  NotFound = "not_found"
@@ -5254,16 +5395,21 @@ export declare enum SyncEntityType {
5254
5395
  UserV1 = "UserV1",
5255
5396
  UserDeleteV1 = "UserDeleteV1",
5256
5397
  AssetV1 = "AssetV1",
5398
+ AssetV2 = "AssetV2",
5257
5399
  AssetDeleteV1 = "AssetDeleteV1",
5258
5400
  AssetExifV1 = "AssetExifV1",
5259
5401
  AssetEditV1 = "AssetEditV1",
5260
5402
  AssetEditDeleteV1 = "AssetEditDeleteV1",
5261
5403
  AssetMetadataV1 = "AssetMetadataV1",
5262
5404
  AssetMetadataDeleteV1 = "AssetMetadataDeleteV1",
5405
+ AssetOcrV1 = "AssetOcrV1",
5406
+ AssetOcrDeleteV1 = "AssetOcrDeleteV1",
5263
5407
  PartnerV1 = "PartnerV1",
5264
5408
  PartnerDeleteV1 = "PartnerDeleteV1",
5265
5409
  PartnerAssetV1 = "PartnerAssetV1",
5410
+ PartnerAssetV2 = "PartnerAssetV2",
5266
5411
  PartnerAssetBackfillV1 = "PartnerAssetBackfillV1",
5412
+ PartnerAssetBackfillV2 = "PartnerAssetBackfillV2",
5267
5413
  PartnerAssetDeleteV1 = "PartnerAssetDeleteV1",
5268
5414
  PartnerAssetExifV1 = "PartnerAssetExifV1",
5269
5415
  PartnerAssetExifBackfillV1 = "PartnerAssetExifBackfillV1",
@@ -5271,13 +5417,17 @@ export declare enum SyncEntityType {
5271
5417
  PartnerStackDeleteV1 = "PartnerStackDeleteV1",
5272
5418
  PartnerStackV1 = "PartnerStackV1",
5273
5419
  AlbumV1 = "AlbumV1",
5420
+ AlbumV2 = "AlbumV2",
5274
5421
  AlbumDeleteV1 = "AlbumDeleteV1",
5275
5422
  AlbumUserV1 = "AlbumUserV1",
5276
5423
  AlbumUserBackfillV1 = "AlbumUserBackfillV1",
5277
5424
  AlbumUserDeleteV1 = "AlbumUserDeleteV1",
5278
5425
  AlbumAssetCreateV1 = "AlbumAssetCreateV1",
5426
+ AlbumAssetCreateV2 = "AlbumAssetCreateV2",
5279
5427
  AlbumAssetUpdateV1 = "AlbumAssetUpdateV1",
5428
+ AlbumAssetUpdateV2 = "AlbumAssetUpdateV2",
5280
5429
  AlbumAssetBackfillV1 = "AlbumAssetBackfillV1",
5430
+ AlbumAssetBackfillV2 = "AlbumAssetBackfillV2",
5281
5431
  AlbumAssetExifCreateV1 = "AlbumAssetExifCreateV1",
5282
5432
  AlbumAssetExifUpdateV1 = "AlbumAssetExifUpdateV1",
5283
5433
  AlbumAssetExifBackfillV1 = "AlbumAssetExifBackfillV1",
@@ -5303,19 +5453,24 @@ export declare enum SyncEntityType {
5303
5453
  }
5304
5454
  export declare enum SyncRequestType {
5305
5455
  AlbumsV1 = "AlbumsV1",
5456
+ AlbumsV2 = "AlbumsV2",
5306
5457
  AlbumUsersV1 = "AlbumUsersV1",
5307
5458
  AlbumToAssetsV1 = "AlbumToAssetsV1",
5308
5459
  AlbumAssetsV1 = "AlbumAssetsV1",
5460
+ AlbumAssetsV2 = "AlbumAssetsV2",
5309
5461
  AlbumAssetExifsV1 = "AlbumAssetExifsV1",
5310
5462
  AssetsV1 = "AssetsV1",
5463
+ AssetsV2 = "AssetsV2",
5311
5464
  AssetExifsV1 = "AssetExifsV1",
5312
5465
  AssetEditsV1 = "AssetEditsV1",
5313
5466
  AssetMetadataV1 = "AssetMetadataV1",
5467
+ AssetOcrV1 = "AssetOcrV1",
5314
5468
  AuthUsersV1 = "AuthUsersV1",
5315
5469
  MemoriesV1 = "MemoriesV1",
5316
5470
  MemoryToAssetsV1 = "MemoryToAssetsV1",
5317
5471
  PartnersV1 = "PartnersV1",
5318
5472
  PartnerAssetsV1 = "PartnerAssetsV1",
5473
+ PartnerAssetsV2 = "PartnerAssetsV2",
5319
5474
  PartnerAssetExifsV1 = "PartnerAssetExifsV1",
5320
5475
  PartnerStacksV1 = "PartnerStacksV1",
5321
5476
  StacksV1 = "StacksV1",
@@ -5335,7 +5490,6 @@ export declare enum TranscodeHWAccel {
5335
5490
  export declare enum AudioCodec {
5336
5491
  Mp3 = "mp3",
5337
5492
  Aac = "aac",
5338
- Libopus = "libopus",
5339
5493
  Opus = "opus",
5340
5494
  PcmS16Le = "pcm_s16le"
5341
5495
  }
@@ -5385,10 +5539,27 @@ export declare enum LogLevel {
5385
5539
  Error = "error",
5386
5540
  Fatal = "fatal"
5387
5541
  }
5542
+ export declare enum ReleaseChannel {
5543
+ Stable = "stable",
5544
+ ReleaseCandidate = "releaseCandidate"
5545
+ }
5388
5546
  export declare enum OAuthTokenEndpointAuthMethod {
5389
5547
  ClientSecretPost = "client_secret_post",
5390
5548
  ClientSecretBasic = "client_secret_basic"
5391
5549
  }
5550
+ export declare enum AssetOrderBy {
5551
+ TakenAt = "takenAt",
5552
+ CreatedAt = "createdAt"
5553
+ }
5554
+ export declare enum ReleaseType {
5555
+ Major = "major",
5556
+ Premajor = "premajor",
5557
+ Minor = "minor",
5558
+ Preminor = "preminor",
5559
+ Patch = "patch",
5560
+ Prepatch = "prepatch",
5561
+ Prerelease = "prerelease"
5562
+ }
5392
5563
  export declare enum UserMetadataKey {
5393
5564
  Preferences = "preferences",
5394
5565
  License = "license",