Immich bindings and CLI in OCaml
1(** {1 Immich}
2
3 Immich API
4
5 @version 2.4.1 *)
6
7type t
8
9val create :
10 ?session:Requests.t ->
11 sw:Eio.Switch.t ->
12 < net : _ Eio.Net.t ; fs : Eio.Fs.dir_ty Eio.Path.t ; clock : _ Eio.Time.clock ; .. > ->
13 base_url:string ->
14 t
15
16val base_url : t -> string
17val session : t -> Requests.t
18
19module WorkflowFilterItem : sig
20 module Dto : sig
21 type t
22
23 (** Construct a value *)
24 val v : plugin_filter_id:string -> ?filter_config:Jsont.json -> unit -> t
25
26 val filter_config : t -> Jsont.json option
27
28 val plugin_filter_id : t -> string
29
30 val jsont : t Jsont.t
31 end
32end
33
34module WorkflowFilter : sig
35 module ResponseDto : sig
36 type t
37
38 (** Construct a value *)
39 val v : id:string -> order:float -> plugin_filter_id:string -> workflow_id:string -> ?filter_config:Jsont.json -> unit -> t
40
41 val filter_config : t -> Jsont.json option
42
43 val id : t -> string
44
45 val order : t -> float
46
47 val plugin_filter_id : t -> string
48
49 val workflow_id : t -> string
50
51 val jsont : t Jsont.t
52 end
53end
54
55module WorkflowActionItem : sig
56 module Dto : sig
57 type t
58
59 (** Construct a value *)
60 val v : plugin_action_id:string -> ?action_config:Jsont.json -> unit -> t
61
62 val action_config : t -> Jsont.json option
63
64 val plugin_action_id : t -> string
65
66 val jsont : t Jsont.t
67 end
68end
69
70module WorkflowAction : sig
71 module ResponseDto : sig
72 type t
73
74 (** Construct a value *)
75 val v : id:string -> order:float -> plugin_action_id:string -> workflow_id:string -> ?action_config:Jsont.json -> unit -> t
76
77 val action_config : t -> Jsont.json option
78
79 val id : t -> string
80
81 val order : t -> float
82
83 val plugin_action_id : t -> string
84
85 val workflow_id : t -> string
86
87 val jsont : t Jsont.t
88 end
89end
90
91module VideoContainer : sig
92 module T : sig
93 type t = [
94 | `Mov
95 | `Mp4
96 | `Ogg
97 | `Webm
98 ]
99
100 val jsont : t Jsont.t
101 end
102end
103
104module VideoCodec : sig
105 module T : sig
106 type t = [
107 | `H264
108 | `Hevc
109 | `Vp9
110 | `Av1
111 ]
112
113 val jsont : t Jsont.t
114 end
115end
116
117module VersionCheckState : sig
118 module ResponseDto : sig
119 type t
120
121 (** Construct a value *)
122 val v : ?checked_at:string -> ?release_version:string -> unit -> t
123
124 val checked_at : t -> string option
125
126 val release_version : t -> string option
127
128 val jsont : t Jsont.t
129 end
130
131 (** Get version check status
132
133 Retrieve information about the last time the version check ran. *)
134 val get_version_check : t -> unit -> ResponseDto.t
135
136 (** Retrieve version check state
137
138 Retrieve the current state of the version check process. *)
139 val get_version_check_state : t -> unit -> ResponseDto.t
140end
141
142module ValidateLibraryImportPath : sig
143 module ResponseDto : sig
144 type t
145
146 (** Construct a value *)
147 val v : import_path:string -> ?is_valid:bool -> ?message:string -> unit -> t
148
149 val import_path : t -> string
150
151 val is_valid : t -> bool
152
153 val message : t -> string option
154
155 val jsont : t Jsont.t
156 end
157end
158
159module ValidateLibrary : sig
160 module ResponseDto : sig
161 type t
162
163 (** Construct a value *)
164 val v : ?import_paths:ValidateLibraryImportPath.ResponseDto.t list -> unit -> t
165
166 val import_paths : t -> ValidateLibraryImportPath.ResponseDto.t list option
167
168 val jsont : t Jsont.t
169 end
170
171 module Dto : sig
172 type t
173
174 (** Construct a value *)
175 val v : ?exclusion_patterns:string list -> ?import_paths:string list -> unit -> t
176
177 val exclusion_patterns : t -> string list option
178
179 val import_paths : t -> string list option
180
181 val jsont : t Jsont.t
182 end
183
184 (** Validate library settings
185
186 Validate the settings of an external library. *)
187 val validate : id:string -> body:Dto.t -> t -> unit -> ResponseDto.t
188end
189
190module ValidateAccessToken : sig
191 module ResponseDto : sig
192 type t
193
194 (** Construct a value *)
195 val v : auth_status:bool -> unit -> t
196
197 val auth_status : t -> bool
198
199 val jsont : t Jsont.t
200 end
201
202 (** Validate access token
203
204 Validate the current authorization method is still valid. *)
205 val validate_access_token : t -> unit -> ResponseDto.t
206end
207
208module UserMetadataKey : sig
209 module T : sig
210 type t = [
211 | `Preferences
212 | `License
213 | `Onboarding
214 ]
215
216 val jsont : t Jsont.t
217 end
218end
219
220module SyncUserMetadataV1 : sig
221 module T : sig
222 type t
223
224 (** Construct a value *)
225 val v : key:UserMetadataKey.T.t -> user_id:string -> value:Jsont.json -> unit -> t
226
227 val key : t -> UserMetadataKey.T.t
228
229 val user_id : t -> string
230
231 val value : t -> Jsont.json
232
233 val jsont : t Jsont.t
234 end
235end
236
237module SyncUserMetadataDeleteV1 : sig
238 module T : sig
239 type t
240
241 (** Construct a value *)
242 val v : key:UserMetadataKey.T.t -> user_id:string -> unit -> t
243
244 val key : t -> UserMetadataKey.T.t
245
246 val user_id : t -> string
247
248 val jsont : t Jsont.t
249 end
250end
251
252module UserLicense : sig
253 module T : sig
254 type t
255
256 (** Construct a value *)
257 val v : activated_at:Ptime.t -> activation_key:string -> license_key:string -> unit -> t
258
259 val activated_at : t -> Ptime.t
260
261 val activation_key : t -> string
262
263 val license_key : t -> string
264
265 val jsont : t Jsont.t
266 end
267end
268
269module UserAvatarColor : sig
270 module T : sig
271 type t = [
272 | `Primary
273 | `Pink
274 | `Red
275 | `Yellow
276 | `Blue
277 | `Green
278 | `Purple
279 | `Orange
280 | `Gray
281 | `Amber
282 ]
283
284 val jsont : t Jsont.t
285 end
286end
287
288module UserUpdateMe : sig
289 module Dto : sig
290 type t
291
292 (** Construct a value *)
293 val v : ?avatar_color:UserAvatarColor.T.t -> ?email:string -> ?name:string -> ?password:string -> unit -> t
294
295 val avatar_color : t -> UserAvatarColor.T.t option
296
297 val email : t -> string option
298
299 val name : t -> string option
300
301 val password : t -> string option
302
303 val jsont : t Jsont.t
304 end
305end
306
307module User : sig
308 module Status : sig
309 type t = [
310 | `Active
311 | `Removing
312 | `Deleted
313 ]
314
315 val jsont : t Jsont.t
316 end
317
318 module ResponseDto : sig
319 type t
320
321 (** Construct a value *)
322 val v : avatar_color:UserAvatarColor.T.t -> email:string -> id:string -> name:string -> profile_changed_at:Ptime.t -> profile_image_path:string -> unit -> t
323
324 val avatar_color : t -> UserAvatarColor.T.t
325
326 val email : t -> string
327
328 val id : t -> string
329
330 val name : t -> string
331
332 val profile_changed_at : t -> Ptime.t
333
334 val profile_image_path : t -> string
335
336 val jsont : t Jsont.t
337 end
338
339 (** Get all users
340
341 Retrieve a list of all users on the server. *)
342 val search_users : t -> unit -> ResponseDto.t
343
344 (** Retrieve a user
345
346 Retrieve a specific user by their ID. *)
347 val get_user : id:string -> t -> unit -> ResponseDto.t
348end
349
350module SyncUserV1 : sig
351 module T : sig
352 type t
353
354 (** Construct a value *)
355 val v : avatar_color:UserAvatarColor.T.t -> email:string -> has_profile_image:bool -> id:string -> name:string -> profile_changed_at:Ptime.t -> ?deleted_at:Ptime.t -> unit -> t
356
357 val avatar_color : t -> UserAvatarColor.T.t
358
359 val deleted_at : t -> Ptime.t option
360
361 val email : t -> string
362
363 val has_profile_image : t -> bool
364
365 val id : t -> string
366
367 val name : t -> string
368
369 val profile_changed_at : t -> Ptime.t
370
371 val jsont : t Jsont.t
372 end
373end
374
375module SyncAuthUserV1 : sig
376 module T : sig
377 type t
378
379 (** Construct a value *)
380 val v : avatar_color:UserAvatarColor.T.t -> email:string -> has_profile_image:bool -> id:string -> is_admin:bool -> name:string -> oauth_id:string -> profile_changed_at:Ptime.t -> quota_usage_in_bytes:int -> ?deleted_at:Ptime.t -> ?pin_code:string -> ?quota_size_in_bytes:int -> ?storage_label:string -> unit -> t
381
382 val avatar_color : t -> UserAvatarColor.T.t
383
384 val deleted_at : t -> Ptime.t option
385
386 val email : t -> string
387
388 val has_profile_image : t -> bool
389
390 val id : t -> string
391
392 val is_admin : t -> bool
393
394 val name : t -> string
395
396 val oauth_id : t -> string
397
398 val pin_code : t -> string option
399
400 val profile_changed_at : t -> Ptime.t
401
402 val quota_size_in_bytes : t -> int option
403
404 val quota_usage_in_bytes : t -> int
405
406 val storage_label : t -> string option
407
408 val jsont : t Jsont.t
409 end
410end
411
412module Partner : sig
413 module UpdateDto : sig
414 type t
415
416 (** Construct a value *)
417 val v : in_timeline:bool -> unit -> t
418
419 val in_timeline : t -> bool
420
421 val jsont : t Jsont.t
422 end
423
424 module ResponseDto : sig
425 type t
426
427 (** Construct a value *)
428 val v : avatar_color:UserAvatarColor.T.t -> email:string -> id:string -> name:string -> profile_changed_at:Ptime.t -> profile_image_path:string -> ?in_timeline:bool -> unit -> t
429
430 val avatar_color : t -> UserAvatarColor.T.t
431
432 val email : t -> string
433
434 val id : t -> string
435
436 val in_timeline : t -> bool option
437
438 val name : t -> string
439
440 val profile_changed_at : t -> Ptime.t
441
442 val profile_image_path : t -> string
443
444 val jsont : t Jsont.t
445 end
446
447 module CreateDto : sig
448 type t
449
450 (** Construct a value *)
451 val v : shared_with_id:string -> unit -> t
452
453 val shared_with_id : t -> string
454
455 val jsont : t Jsont.t
456 end
457
458 (** Retrieve partners
459
460 Retrieve a list of partners with whom assets are shared. *)
461 val get_partners : direction:string -> t -> unit -> ResponseDto.t
462
463 (** Create a partner
464
465 Create a new partner to share assets with. *)
466 val create_partner : body:CreateDto.t -> t -> unit -> ResponseDto.t
467
468 (** Create a partner
469
470 Create a new partner to share assets with. *)
471 val create_partner_deprecated : id:string -> t -> unit -> ResponseDto.t
472
473 (** Update a partner
474
475 Specify whether a partner's assets should appear in the user's timeline. *)
476 val update_partner : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
477end
478
479module Avatar : sig
480 module Update : sig
481 type t
482
483 (** Construct a value *)
484 val v : ?color:UserAvatarColor.T.t -> unit -> t
485
486 val color : t -> UserAvatarColor.T.t option
487
488 val jsont : t Jsont.t
489 end
490end
491
492module UserAdminDelete : sig
493 module Dto : sig
494 type t
495
496 (** Construct a value *)
497 val v : ?force:bool -> unit -> t
498
499 val force : t -> bool option
500
501 val jsont : t Jsont.t
502 end
503end
504
505module UsageByUser : sig
506 module Dto : sig
507 type t
508
509 (** Construct a value *)
510 val v : photos:int -> usage:int64 -> usage_photos:int64 -> usage_videos:int64 -> user_id:string -> user_name:string -> videos:int -> ?quota_size_in_bytes:int64 -> unit -> t
511
512 val photos : t -> int
513
514 val quota_size_in_bytes : t -> int64 option
515
516 val usage : t -> int64
517
518 val usage_photos : t -> int64
519
520 val usage_videos : t -> int64
521
522 val user_id : t -> string
523
524 val user_name : t -> string
525
526 val videos : t -> int
527
528 val jsont : t Jsont.t
529 end
530end
531
532module ServerStats : sig
533 module ResponseDto : sig
534 type t
535
536 (** Construct a value *)
537 val v : ?photos:int -> ?usage:int64 -> ?usage_by_user:UsageByUser.Dto.t list -> ?usage_photos:int64 -> ?usage_videos:int64 -> ?videos:int -> unit -> t
538
539 val photos : t -> int
540
541 val usage : t -> int64
542
543 val usage_by_user : t -> UsageByUser.Dto.t list
544
545 val usage_photos : t -> int64
546
547 val usage_videos : t -> int64
548
549 val videos : t -> int
550
551 val jsont : t Jsont.t
552 end
553
554 (** Get statistics
555
556 Retrieve statistics about the entire Immich instance such as asset counts. *)
557 val get_server_statistics : t -> unit -> ResponseDto.t
558end
559
560module UpdateLibrary : sig
561 module Dto : sig
562 type t
563
564 (** Construct a value *)
565 val v : ?exclusion_patterns:string list -> ?import_paths:string list -> ?name:string -> unit -> t
566
567 val exclusion_patterns : t -> string list option
568
569 val import_paths : t -> string list option
570
571 val name : t -> string option
572
573 val jsont : t Jsont.t
574 end
575end
576
577module TranscodePolicy : sig
578 module T : sig
579 type t = [
580 | `All
581 | `Optimal
582 | `Bitrate
583 | `Required
584 | `Disabled
585 ]
586
587 val jsont : t Jsont.t
588 end
589end
590
591module TranscodeHwaccel : sig
592 module T : sig
593 type t = [
594 | `Nvenc
595 | `Qsv
596 | `Vaapi
597 | `Rkmpp
598 | `Disabled
599 ]
600
601 val jsont : t Jsont.t
602 end
603end
604
605module ToneMapping : sig
606 module T : sig
607 type t = [
608 | `Hable
609 | `Mobius
610 | `Reinhard
611 | `Disabled
612 ]
613
614 val jsont : t Jsont.t
615 end
616end
617
618module TimeBuckets : sig
619 module ResponseDto : sig
620 type t
621
622 (** Construct a value
623 @param count Number of assets in this time bucket
624 @param time_bucket Time bucket identifier in YYYY-MM-DD format representing the start of the time period
625 *)
626 val v : count:int -> time_bucket:string -> unit -> t
627
628 (** Number of assets in this time bucket *)
629 val count : t -> int
630
631 (** Time bucket identifier in YYYY-MM-DD format representing the start of the time period *)
632 val time_bucket : t -> string
633
634 val jsont : t Jsont.t
635 end
636
637 (** Get time buckets
638
639 Retrieve a list of all minimal time buckets.
640 @param album_id Filter assets belonging to a specific album
641 @param is_favorite Filter by favorite status (true for favorites only, false for non-favorites only)
642 @param is_trashed Filter by trash status (true for trashed assets only, false for non-trashed only)
643 @param order Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)
644 @param person_id Filter assets containing a specific person (face recognition)
645 @param tag_id Filter assets with a specific tag
646 @param user_id Filter assets by specific user ID
647 @param visibility Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)
648 @param with_coordinates Include location data in the response
649 @param with_partners Include assets shared by partners
650 @param with_stacked Include stacked assets in the response. When true, only primary assets from stacks are returned.
651 *)
652 val get_time_buckets : ?album_id:string -> ?is_favorite:string -> ?is_trashed:string -> ?key:string -> ?order:string -> ?person_id:string -> ?slug:string -> ?tag_id:string -> ?user_id:string -> ?visibility:string -> ?with_coordinates:string -> ?with_partners:string -> ?with_stacked:string -> t -> unit -> ResponseDto.t
653end
654
655module Template : sig
656 module ResponseDto : sig
657 type t
658
659 (** Construct a value *)
660 val v : html:string -> name:string -> unit -> t
661
662 val html : t -> string
663
664 val name : t -> string
665
666 val jsont : t Jsont.t
667 end
668
669 module Dto : sig
670 type t
671
672 (** Construct a value *)
673 val v : template:string -> unit -> t
674
675 val template : t -> string
676
677 val jsont : t Jsont.t
678 end
679
680 (** Render email template
681
682 Retrieve a preview of the provided email template. *)
683 val get_notification_template_admin : name:string -> body:Dto.t -> t -> unit -> ResponseDto.t
684end
685
686module Tags : sig
687 module Update : sig
688 type t
689
690 (** Construct a value *)
691 val v : ?enabled:bool -> ?sidebar_web:bool -> unit -> t
692
693 val enabled : t -> bool option
694
695 val sidebar_web : t -> bool option
696
697 val jsont : t Jsont.t
698 end
699
700 module Response : sig
701 type t
702
703 (** Construct a value *)
704 val v : ?enabled:bool -> ?sidebar_web:bool -> unit -> t
705
706 val enabled : t -> bool
707
708 val sidebar_web : t -> bool
709
710 val jsont : t Jsont.t
711 end
712end
713
714module TagUpsert : sig
715 module Dto : sig
716 type t
717
718 (** Construct a value *)
719 val v : tags:string list -> unit -> t
720
721 val tags : t -> string list
722
723 val jsont : t Jsont.t
724 end
725end
726
727module Tag : sig
728 module UpdateDto : sig
729 type t
730
731 (** Construct a value *)
732 val v : ?color:string -> unit -> t
733
734 val color : t -> string option
735
736 val jsont : t Jsont.t
737 end
738
739 module ResponseDto : sig
740 type t
741
742 (** Construct a value *)
743 val v : created_at:Ptime.t -> id:string -> name:string -> updated_at:Ptime.t -> value:string -> ?color:string -> ?parent_id:string -> unit -> t
744
745 val color : t -> string option
746
747 val created_at : t -> Ptime.t
748
749 val id : t -> string
750
751 val name : t -> string
752
753 val parent_id : t -> string option
754
755 val updated_at : t -> Ptime.t
756
757 val value : t -> string
758
759 val jsont : t Jsont.t
760 end
761
762 module CreateDto : sig
763 type t
764
765 (** Construct a value *)
766 val v : name:string -> ?color:string -> ?parent_id:string -> unit -> t
767
768 val color : t -> string option
769
770 val name : t -> string
771
772 val parent_id : t -> string option
773
774 val jsont : t Jsont.t
775 end
776
777 (** Retrieve tags
778
779 Retrieve a list of all tags. *)
780 val get_all_tags : t -> unit -> ResponseDto.t
781
782 (** Create a tag
783
784 Create a new tag by providing a name and optional color. *)
785 val create_tag : body:CreateDto.t -> t -> unit -> ResponseDto.t
786
787 (** Upsert tags
788
789 Create or update multiple tags in a single request. *)
790 val upsert_tags : body:TagUpsert.Dto.t -> t -> unit -> ResponseDto.t
791
792 (** Retrieve a tag
793
794 Retrieve a specific tag by its ID. *)
795 val get_tag_by_id : id:string -> t -> unit -> ResponseDto.t
796
797 (** Update a tag
798
799 Update an existing tag identified by its ID. *)
800 val update_tag : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
801end
802
803module TagBulkAssets : sig
804 module ResponseDto : sig
805 type t
806
807 (** Construct a value *)
808 val v : count:int -> unit -> t
809
810 val count : t -> int
811
812 val jsont : t Jsont.t
813 end
814
815 module Dto : sig
816 type t
817
818 (** Construct a value *)
819 val v : asset_ids:string list -> tag_ids:string list -> unit -> t
820
821 val asset_ids : t -> string list
822
823 val tag_ids : t -> string list
824
825 val jsont : t Jsont.t
826 end
827
828 (** Tag assets
829
830 Add multiple tags to multiple assets in a single request. *)
831 val bulk_tag_assets : body:Dto.t -> t -> unit -> ResponseDto.t
832end
833
834module SystemConfigUser : sig
835 module Dto : sig
836 type t
837
838 (** Construct a value *)
839 val v : delete_delay:int -> unit -> t
840
841 val delete_delay : t -> int
842
843 val jsont : t Jsont.t
844 end
845end
846
847module SystemConfigTrash : sig
848 module Dto : sig
849 type t
850
851 (** Construct a value *)
852 val v : days:int -> enabled:bool -> unit -> t
853
854 val days : t -> int
855
856 val enabled : t -> bool
857
858 val jsont : t Jsont.t
859 end
860end
861
862module SystemConfigTheme : sig
863 module Dto : sig
864 type t
865
866 (** Construct a value *)
867 val v : custom_css:string -> unit -> t
868
869 val custom_css : t -> string
870
871 val jsont : t Jsont.t
872 end
873end
874
875module SystemConfigTemplateStorageOption : sig
876 module Dto : sig
877 type t
878
879 (** Construct a value *)
880 val v : day_options:string list -> hour_options:string list -> minute_options:string list -> month_options:string list -> preset_options:string list -> second_options:string list -> week_options:string list -> year_options:string list -> unit -> t
881
882 val day_options : t -> string list
883
884 val hour_options : t -> string list
885
886 val minute_options : t -> string list
887
888 val month_options : t -> string list
889
890 val preset_options : t -> string list
891
892 val second_options : t -> string list
893
894 val week_options : t -> string list
895
896 val year_options : t -> string list
897
898 val jsont : t Jsont.t
899 end
900
901 (** Get storage template options
902
903 Retrieve exemplary storage template options. *)
904 val get_storage_template_options : t -> unit -> Dto.t
905end
906
907module SystemConfigTemplateEmails : sig
908 module Dto : sig
909 type t
910
911 (** Construct a value *)
912 val v : album_invite_template:string -> album_update_template:string -> welcome_template:string -> unit -> t
913
914 val album_invite_template : t -> string
915
916 val album_update_template : t -> string
917
918 val welcome_template : t -> string
919
920 val jsont : t Jsont.t
921 end
922end
923
924module SystemConfigTemplates : sig
925 module Dto : sig
926 type t
927
928 (** Construct a value *)
929 val v : email:SystemConfigTemplateEmails.Dto.t -> unit -> t
930
931 val email : t -> SystemConfigTemplateEmails.Dto.t
932
933 val jsont : t Jsont.t
934 end
935end
936
937module SystemConfigStorageTemplate : sig
938 module Dto : sig
939 type t
940
941 (** Construct a value *)
942 val v : enabled:bool -> hash_verification_enabled:bool -> template:string -> unit -> t
943
944 val enabled : t -> bool
945
946 val hash_verification_enabled : t -> bool
947
948 val template : t -> string
949
950 val jsont : t Jsont.t
951 end
952end
953
954module SystemConfigSmtpTransport : sig
955 module Dto : sig
956 type t
957
958 (** Construct a value *)
959 val v : host:string -> ignore_cert:bool -> password:string -> port:float -> secure:bool -> username:string -> unit -> t
960
961 val host : t -> string
962
963 val ignore_cert : t -> bool
964
965 val password : t -> string
966
967 val port : t -> float
968
969 val secure : t -> bool
970
971 val username : t -> string
972
973 val jsont : t Jsont.t
974 end
975end
976
977module SystemConfigSmtp : sig
978 module Dto : sig
979 type t
980
981 (** Construct a value *)
982 val v : enabled:bool -> from:string -> reply_to:string -> transport:SystemConfigSmtpTransport.Dto.t -> unit -> t
983
984 val enabled : t -> bool
985
986 val from : t -> string
987
988 val reply_to : t -> string
989
990 val transport : t -> SystemConfigSmtpTransport.Dto.t
991
992 val jsont : t Jsont.t
993 end
994end
995
996module TestEmail : sig
997 module ResponseDto : sig
998 type t
999
1000 (** Construct a value *)
1001 val v : message_id:string -> unit -> t
1002
1003 val message_id : t -> string
1004
1005 val jsont : t Jsont.t
1006 end
1007
1008 (** Send test email
1009
1010 Send a test email using the provided SMTP configuration. *)
1011 val send_test_email_admin : body:SystemConfigSmtp.Dto.t -> t -> unit -> ResponseDto.t
1012end
1013
1014module SystemConfigNotifications : sig
1015 module Dto : sig
1016 type t
1017
1018 (** Construct a value *)
1019 val v : smtp:SystemConfigSmtp.Dto.t -> unit -> t
1020
1021 val smtp : t -> SystemConfigSmtp.Dto.t
1022
1023 val jsont : t Jsont.t
1024 end
1025end
1026
1027module SystemConfigServer : sig
1028 module Dto : sig
1029 type t
1030
1031 (** Construct a value *)
1032 val v : external_domain:string -> login_page_message:string -> public_users:bool -> unit -> t
1033
1034 val external_domain : t -> string
1035
1036 val login_page_message : t -> string
1037
1038 val public_users : t -> bool
1039
1040 val jsont : t Jsont.t
1041 end
1042end
1043
1044module SystemConfigReverseGeocoding : sig
1045 module Dto : sig
1046 type t
1047
1048 (** Construct a value *)
1049 val v : enabled:bool -> unit -> t
1050
1051 val enabled : t -> bool
1052
1053 val jsont : t Jsont.t
1054 end
1055end
1056
1057module SystemConfigPasswordLogin : sig
1058 module Dto : sig
1059 type t
1060
1061 (** Construct a value *)
1062 val v : enabled:bool -> unit -> t
1063
1064 val enabled : t -> bool
1065
1066 val jsont : t Jsont.t
1067 end
1068end
1069
1070module SystemConfigNightlyTasks : sig
1071 module Dto : sig
1072 type t
1073
1074 (** Construct a value *)
1075 val v : cluster_new_faces:bool -> database_cleanup:bool -> generate_memories:bool -> missing_thumbnails:bool -> start_time:string -> sync_quota_usage:bool -> unit -> t
1076
1077 val cluster_new_faces : t -> bool
1078
1079 val database_cleanup : t -> bool
1080
1081 val generate_memories : t -> bool
1082
1083 val missing_thumbnails : t -> bool
1084
1085 val start_time : t -> string
1086
1087 val sync_quota_usage : t -> bool
1088
1089 val jsont : t Jsont.t
1090 end
1091end
1092
1093module SystemConfigNewVersionCheck : sig
1094 module Dto : sig
1095 type t
1096
1097 (** Construct a value *)
1098 val v : enabled:bool -> unit -> t
1099
1100 val enabled : t -> bool
1101
1102 val jsont : t Jsont.t
1103 end
1104end
1105
1106module SystemConfigMap : sig
1107 module Dto : sig
1108 type t
1109
1110 (** Construct a value *)
1111 val v : dark_style:string -> enabled:bool -> light_style:string -> unit -> t
1112
1113 val dark_style : t -> string
1114
1115 val enabled : t -> bool
1116
1117 val light_style : t -> string
1118
1119 val jsont : t Jsont.t
1120 end
1121end
1122
1123module SystemConfigLibraryWatch : sig
1124 module Dto : sig
1125 type t
1126
1127 (** Construct a value *)
1128 val v : enabled:bool -> unit -> t
1129
1130 val enabled : t -> bool
1131
1132 val jsont : t Jsont.t
1133 end
1134end
1135
1136module SystemConfigLibraryScan : sig
1137 module Dto : sig
1138 type t
1139
1140 (** Construct a value *)
1141 val v : cron_expression:string -> enabled:bool -> unit -> t
1142
1143 val cron_expression : t -> string
1144
1145 val enabled : t -> bool
1146
1147 val jsont : t Jsont.t
1148 end
1149end
1150
1151module SystemConfigLibrary : sig
1152 module Dto : sig
1153 type t
1154
1155 (** Construct a value *)
1156 val v : scan:SystemConfigLibraryScan.Dto.t -> watch:SystemConfigLibraryWatch.Dto.t -> unit -> t
1157
1158 val scan : t -> SystemConfigLibraryScan.Dto.t
1159
1160 val watch : t -> SystemConfigLibraryWatch.Dto.t
1161
1162 val jsont : t Jsont.t
1163 end
1164end
1165
1166module SystemConfigFaces : sig
1167 module Dto : sig
1168 type t
1169
1170 (** Construct a value *)
1171 val v : import:bool -> unit -> t
1172
1173 val import : t -> bool
1174
1175 val jsont : t Jsont.t
1176 end
1177end
1178
1179module SystemConfigMetadata : sig
1180 module Dto : sig
1181 type t
1182
1183 (** Construct a value *)
1184 val v : faces:SystemConfigFaces.Dto.t -> unit -> t
1185
1186 val faces : t -> SystemConfigFaces.Dto.t
1187
1188 val jsont : t Jsont.t
1189 end
1190end
1191
1192module SyncUserDeleteV1 : sig
1193 module T : sig
1194 type t
1195
1196 (** Construct a value *)
1197 val v : user_id:string -> unit -> t
1198
1199 val user_id : t -> string
1200
1201 val jsont : t Jsont.t
1202 end
1203end
1204
1205module SyncStackV1 : sig
1206 module T : sig
1207 type t
1208
1209 (** Construct a value *)
1210 val v : created_at:Ptime.t -> id:string -> owner_id:string -> primary_asset_id:string -> updated_at:Ptime.t -> unit -> t
1211
1212 val created_at : t -> Ptime.t
1213
1214 val id : t -> string
1215
1216 val owner_id : t -> string
1217
1218 val primary_asset_id : t -> string
1219
1220 val updated_at : t -> Ptime.t
1221
1222 val jsont : t Jsont.t
1223 end
1224end
1225
1226module SyncStackDeleteV1 : sig
1227 module T : sig
1228 type t
1229
1230 (** Construct a value *)
1231 val v : stack_id:string -> unit -> t
1232
1233 val stack_id : t -> string
1234
1235 val jsont : t Jsont.t
1236 end
1237end
1238
1239module SyncResetV1 : sig
1240 module T : sig
1241 type t = Jsont.json
1242
1243 val jsont : t Jsont.t
1244
1245 val v : unit -> t
1246 end
1247end
1248
1249module SyncRequest : sig
1250 module Type : sig
1251 type t = [
1252 | `Albums_v1
1253 | `Album_users_v1
1254 | `Album_to_assets_v1
1255 | `Album_assets_v1
1256 | `Album_asset_exifs_v1
1257 | `Assets_v1
1258 | `Asset_exifs_v1
1259 | `Asset_metadata_v1
1260 | `Auth_users_v1
1261 | `Memories_v1
1262 | `Memory_to_assets_v1
1263 | `Partners_v1
1264 | `Partner_assets_v1
1265 | `Partner_asset_exifs_v1
1266 | `Partner_stacks_v1
1267 | `Stacks_v1
1268 | `Users_v1
1269 | `People_v1
1270 | `Asset_faces_v1
1271 | `User_metadata_v1
1272 ]
1273
1274 val jsont : t Jsont.t
1275 end
1276end
1277
1278module SyncStream : sig
1279 module Dto : sig
1280 type t
1281
1282 (** Construct a value *)
1283 val v : types:SyncRequest.Type.t list -> ?reset:bool -> unit -> t
1284
1285 val reset : t -> bool option
1286
1287 val types : t -> SyncRequest.Type.t list
1288
1289 val jsont : t Jsont.t
1290 end
1291end
1292
1293module SyncPersonV1 : sig
1294 module T : sig
1295 type t
1296
1297 (** Construct a value *)
1298 val v : created_at:Ptime.t -> id:string -> is_favorite:bool -> is_hidden:bool -> name:string -> owner_id:string -> updated_at:Ptime.t -> ?birth_date:Ptime.t -> ?color:string -> ?face_asset_id:string -> unit -> t
1299
1300 val birth_date : t -> Ptime.t option
1301
1302 val color : t -> string option
1303
1304 val created_at : t -> Ptime.t
1305
1306 val face_asset_id : t -> string option
1307
1308 val id : t -> string
1309
1310 val is_favorite : t -> bool
1311
1312 val is_hidden : t -> bool
1313
1314 val name : t -> string
1315
1316 val owner_id : t -> string
1317
1318 val updated_at : t -> Ptime.t
1319
1320 val jsont : t Jsont.t
1321 end
1322end
1323
1324module SyncPersonDeleteV1 : sig
1325 module T : sig
1326 type t
1327
1328 (** Construct a value *)
1329 val v : person_id:string -> unit -> t
1330
1331 val person_id : t -> string
1332
1333 val jsont : t Jsont.t
1334 end
1335end
1336
1337module SyncPartnerV1 : sig
1338 module T : sig
1339 type t
1340
1341 (** Construct a value *)
1342 val v : in_timeline:bool -> shared_by_id:string -> shared_with_id:string -> unit -> t
1343
1344 val in_timeline : t -> bool
1345
1346 val shared_by_id : t -> string
1347
1348 val shared_with_id : t -> string
1349
1350 val jsont : t Jsont.t
1351 end
1352end
1353
1354module SyncPartnerDeleteV1 : sig
1355 module T : sig
1356 type t
1357
1358 (** Construct a value *)
1359 val v : shared_by_id:string -> shared_with_id:string -> unit -> t
1360
1361 val shared_by_id : t -> string
1362
1363 val shared_with_id : t -> string
1364
1365 val jsont : t Jsont.t
1366 end
1367end
1368
1369module SyncMemoryDeleteV1 : sig
1370 module T : sig
1371 type t
1372
1373 (** Construct a value *)
1374 val v : memory_id:string -> unit -> t
1375
1376 val memory_id : t -> string
1377
1378 val jsont : t Jsont.t
1379 end
1380end
1381
1382module SyncMemoryAssetV1 : sig
1383 module T : sig
1384 type t
1385
1386 (** Construct a value *)
1387 val v : asset_id:string -> memory_id:string -> unit -> t
1388
1389 val asset_id : t -> string
1390
1391 val memory_id : t -> string
1392
1393 val jsont : t Jsont.t
1394 end
1395end
1396
1397module SyncMemoryAssetDeleteV1 : sig
1398 module T : sig
1399 type t
1400
1401 (** Construct a value *)
1402 val v : asset_id:string -> memory_id:string -> unit -> t
1403
1404 val asset_id : t -> string
1405
1406 val memory_id : t -> string
1407
1408 val jsont : t Jsont.t
1409 end
1410end
1411
1412module SyncEntity : sig
1413 module Type : sig
1414 type t = [
1415 | `Auth_user_v1
1416 | `User_v1
1417 | `User_delete_v1
1418 | `Asset_v1
1419 | `Asset_delete_v1
1420 | `Asset_exif_v1
1421 | `Asset_metadata_v1
1422 | `Asset_metadata_delete_v1
1423 | `Partner_v1
1424 | `Partner_delete_v1
1425 | `Partner_asset_v1
1426 | `Partner_asset_backfill_v1
1427 | `Partner_asset_delete_v1
1428 | `Partner_asset_exif_v1
1429 | `Partner_asset_exif_backfill_v1
1430 | `Partner_stack_backfill_v1
1431 | `Partner_stack_delete_v1
1432 | `Partner_stack_v1
1433 | `Album_v1
1434 | `Album_delete_v1
1435 | `Album_user_v1
1436 | `Album_user_backfill_v1
1437 | `Album_user_delete_v1
1438 | `Album_asset_create_v1
1439 | `Album_asset_update_v1
1440 | `Album_asset_backfill_v1
1441 | `Album_asset_exif_create_v1
1442 | `Album_asset_exif_update_v1
1443 | `Album_asset_exif_backfill_v1
1444 | `Album_to_asset_v1
1445 | `Album_to_asset_delete_v1
1446 | `Album_to_asset_backfill_v1
1447 | `Memory_v1
1448 | `Memory_delete_v1
1449 | `Memory_to_asset_v1
1450 | `Memory_to_asset_delete_v1
1451 | `Stack_v1
1452 | `Stack_delete_v1
1453 | `Person_v1
1454 | `Person_delete_v1
1455 | `Asset_face_v1
1456 | `Asset_face_delete_v1
1457 | `User_metadata_v1
1458 | `User_metadata_delete_v1
1459 | `Sync_ack_v1
1460 | `Sync_reset_v1
1461 | `Sync_complete_v1
1462 ]
1463
1464 val jsont : t Jsont.t
1465 end
1466end
1467
1468module SyncAckDelete : sig
1469 module Dto : sig
1470 type t
1471
1472 (** Construct a value *)
1473 val v : ?types:SyncEntity.Type.t list -> unit -> t
1474
1475 val types : t -> SyncEntity.Type.t list option
1476
1477 val jsont : t Jsont.t
1478 end
1479end
1480
1481module SyncAck : sig
1482 module Dto : sig
1483 type t
1484
1485 (** Construct a value *)
1486 val v : ack:string -> type_:SyncEntity.Type.t -> unit -> t
1487
1488 val ack : t -> string
1489
1490 val type_ : t -> SyncEntity.Type.t
1491
1492 val jsont : t Jsont.t
1493 end
1494
1495 (** Retrieve acknowledgements
1496
1497 Retrieve the synchronization acknowledgments for the current session. *)
1498 val get_sync_ack : t -> unit -> Dto.t
1499end
1500
1501module SyncCompleteV1 : sig
1502 module T : sig
1503 type t = Jsont.json
1504
1505 val jsont : t Jsont.t
1506
1507 val v : unit -> t
1508 end
1509end
1510
1511module SyncAssetMetadataV1 : sig
1512 module T : sig
1513 type t
1514
1515 (** Construct a value *)
1516 val v : asset_id:string -> key:string -> value:Jsont.json -> unit -> t
1517
1518 val asset_id : t -> string
1519
1520 val key : t -> string
1521
1522 val value : t -> Jsont.json
1523
1524 val jsont : t Jsont.t
1525 end
1526end
1527
1528module SyncAssetMetadataDeleteV1 : sig
1529 module T : sig
1530 type t
1531
1532 (** Construct a value *)
1533 val v : asset_id:string -> key:string -> unit -> t
1534
1535 val asset_id : t -> string
1536
1537 val key : t -> string
1538
1539 val jsont : t Jsont.t
1540 end
1541end
1542
1543module SyncAssetFaceV1 : sig
1544 module T : sig
1545 type t
1546
1547 (** Construct a value *)
1548 val v : asset_id:string -> bounding_box_x1:int -> bounding_box_x2:int -> bounding_box_y1:int -> bounding_box_y2:int -> id:string -> image_height:int -> image_width:int -> source_type:string -> ?person_id:string -> unit -> t
1549
1550 val asset_id : t -> string
1551
1552 val bounding_box_x1 : t -> int
1553
1554 val bounding_box_x2 : t -> int
1555
1556 val bounding_box_y1 : t -> int
1557
1558 val bounding_box_y2 : t -> int
1559
1560 val id : t -> string
1561
1562 val image_height : t -> int
1563
1564 val image_width : t -> int
1565
1566 val person_id : t -> string option
1567
1568 val source_type : t -> string
1569
1570 val jsont : t Jsont.t
1571 end
1572end
1573
1574module SyncAssetFaceDeleteV1 : sig
1575 module T : sig
1576 type t
1577
1578 (** Construct a value *)
1579 val v : asset_face_id:string -> unit -> t
1580
1581 val asset_face_id : t -> string
1582
1583 val jsont : t Jsont.t
1584 end
1585end
1586
1587module SyncAssetExifV1 : sig
1588 module T : sig
1589 type t
1590
1591 (** Construct a value *)
1592 val v : asset_id:string -> ?city:string -> ?country:string -> ?date_time_original:Ptime.t -> ?description:string -> ?exif_image_height:int -> ?exif_image_width:int -> ?exposure_time:string -> ?f_number:float -> ?file_size_in_byte:int -> ?focal_length:float -> ?fps:float -> ?iso:int -> ?latitude:float -> ?lens_model:string -> ?longitude:float -> ?make:string -> ?model:string -> ?modify_date:Ptime.t -> ?orientation:string -> ?profile_description:string -> ?projection_type:string -> ?rating:int -> ?state:string -> ?time_zone:string -> unit -> t
1593
1594 val asset_id : t -> string
1595
1596 val city : t -> string option
1597
1598 val country : t -> string option
1599
1600 val date_time_original : t -> Ptime.t option
1601
1602 val description : t -> string option
1603
1604 val exif_image_height : t -> int option
1605
1606 val exif_image_width : t -> int option
1607
1608 val exposure_time : t -> string option
1609
1610 val f_number : t -> float option
1611
1612 val file_size_in_byte : t -> int option
1613
1614 val focal_length : t -> float option
1615
1616 val fps : t -> float option
1617
1618 val iso : t -> int option
1619
1620 val latitude : t -> float option
1621
1622 val lens_model : t -> string option
1623
1624 val longitude : t -> float option
1625
1626 val make : t -> string option
1627
1628 val model : t -> string option
1629
1630 val modify_date : t -> Ptime.t option
1631
1632 val orientation : t -> string option
1633
1634 val profile_description : t -> string option
1635
1636 val projection_type : t -> string option
1637
1638 val rating : t -> int option
1639
1640 val state : t -> string option
1641
1642 val time_zone : t -> string option
1643
1644 val jsont : t Jsont.t
1645 end
1646end
1647
1648module SyncAssetDeleteV1 : sig
1649 module T : sig
1650 type t
1651
1652 (** Construct a value *)
1653 val v : asset_id:string -> unit -> t
1654
1655 val asset_id : t -> string
1656
1657 val jsont : t Jsont.t
1658 end
1659end
1660
1661module SyncAlbumUserDeleteV1 : sig
1662 module T : sig
1663 type t
1664
1665 (** Construct a value *)
1666 val v : album_id:string -> user_id:string -> unit -> t
1667
1668 val album_id : t -> string
1669
1670 val user_id : t -> string
1671
1672 val jsont : t Jsont.t
1673 end
1674end
1675
1676module SyncAlbumToAssetV1 : sig
1677 module T : sig
1678 type t
1679
1680 (** Construct a value *)
1681 val v : album_id:string -> asset_id:string -> unit -> t
1682
1683 val album_id : t -> string
1684
1685 val asset_id : t -> string
1686
1687 val jsont : t Jsont.t
1688 end
1689end
1690
1691module SyncAlbumToAssetDeleteV1 : sig
1692 module T : sig
1693 type t
1694
1695 (** Construct a value *)
1696 val v : album_id:string -> asset_id:string -> unit -> t
1697
1698 val album_id : t -> string
1699
1700 val asset_id : t -> string
1701
1702 val jsont : t Jsont.t
1703 end
1704end
1705
1706module SyncAlbumDeleteV1 : sig
1707 module T : sig
1708 type t
1709
1710 (** Construct a value *)
1711 val v : album_id:string -> unit -> t
1712
1713 val album_id : t -> string
1714
1715 val jsont : t Jsont.t
1716 end
1717end
1718
1719module SyncAckV1 : sig
1720 module T : sig
1721 type t = Jsont.json
1722
1723 val jsont : t Jsont.t
1724
1725 val v : unit -> t
1726 end
1727end
1728
1729module SyncAckSet : sig
1730 module Dto : sig
1731 type t
1732
1733 (** Construct a value *)
1734 val v : acks:string list -> unit -> t
1735
1736 val acks : t -> string list
1737
1738 val jsont : t Jsont.t
1739 end
1740end
1741
1742module StorageFolder : sig
1743 module T : sig
1744 type t = [
1745 | `Encoded_video
1746 | `Library
1747 | `Upload
1748 | `Profile
1749 | `Thumbs
1750 | `Backups
1751 ]
1752
1753 val jsont : t Jsont.t
1754 end
1755end
1756
1757module MaintenanceDetectInstallStorageFolder : sig
1758 module Dto : sig
1759 type t
1760
1761 (** Construct a value *)
1762 val v : files:float -> folder:StorageFolder.T.t -> readable:bool -> writable:bool -> unit -> t
1763
1764 val files : t -> float
1765
1766 val folder : t -> StorageFolder.T.t
1767
1768 val readable : t -> bool
1769
1770 val writable : t -> bool
1771
1772 val jsont : t Jsont.t
1773 end
1774end
1775
1776module MaintenanceDetectInstall : sig
1777 module ResponseDto : sig
1778 type t
1779
1780 (** Construct a value *)
1781 val v : storage:MaintenanceDetectInstallStorageFolder.Dto.t list -> unit -> t
1782
1783 val storage : t -> MaintenanceDetectInstallStorageFolder.Dto.t list
1784
1785 val jsont : t Jsont.t
1786 end
1787
1788 (** Detect existing install
1789
1790 Collect integrity checks and other heuristics about local data. *)
1791 val detect_prior_install : t -> unit -> ResponseDto.t
1792end
1793
1794module Source : sig
1795 module Type : sig
1796 type t = [
1797 | `Machine_learning
1798 | `Exif
1799 | `Manual
1800 ]
1801
1802 val jsont : t Jsont.t
1803 end
1804end
1805
1806module AssetFaceWithoutPerson : sig
1807 module ResponseDto : sig
1808 type t
1809
1810 (** Construct a value *)
1811 val v : bounding_box_x1:int -> bounding_box_x2:int -> bounding_box_y1:int -> bounding_box_y2:int -> id:string -> image_height:int -> image_width:int -> ?source_type:Source.Type.t -> unit -> t
1812
1813 val bounding_box_x1 : t -> int
1814
1815 val bounding_box_x2 : t -> int
1816
1817 val bounding_box_y1 : t -> int
1818
1819 val bounding_box_y2 : t -> int
1820
1821 val id : t -> string
1822
1823 val image_height : t -> int
1824
1825 val image_width : t -> int
1826
1827 val source_type : t -> Source.Type.t option
1828
1829 val jsont : t Jsont.t
1830 end
1831end
1832
1833module PersonWithFaces : sig
1834 module ResponseDto : sig
1835 type t
1836
1837 (** Construct a value *)
1838 val v : faces:AssetFaceWithoutPerson.ResponseDto.t list -> id:string -> is_hidden:bool -> name:string -> thumbnail_path:string -> ?birth_date:string -> ?color:string -> ?is_favorite:bool -> ?updated_at:Ptime.t -> unit -> t
1839
1840 val birth_date : t -> string option
1841
1842 val color : t -> string option
1843
1844 val faces : t -> AssetFaceWithoutPerson.ResponseDto.t list
1845
1846 val id : t -> string
1847
1848 val is_favorite : t -> bool option
1849
1850 val is_hidden : t -> bool
1851
1852 val name : t -> string
1853
1854 val thumbnail_path : t -> string
1855
1856 val updated_at : t -> Ptime.t option
1857
1858 val jsont : t Jsont.t
1859 end
1860end
1861
1862module SignUp : sig
1863 module Dto : sig
1864 type t
1865
1866 (** Construct a value *)
1867 val v : email:string -> name:string -> password:string -> unit -> t
1868
1869 val email : t -> string
1870
1871 val name : t -> string
1872
1873 val password : t -> string
1874
1875 val jsont : t Jsont.t
1876 end
1877end
1878
1879module SharedLinks : sig
1880 module Update : sig
1881 type t
1882
1883 (** Construct a value *)
1884 val v : ?enabled:bool -> ?sidebar_web:bool -> unit -> t
1885
1886 val enabled : t -> bool option
1887
1888 val sidebar_web : t -> bool option
1889
1890 val jsont : t Jsont.t
1891 end
1892
1893 module Response : sig
1894 type t
1895
1896 (** Construct a value *)
1897 val v : ?enabled:bool -> ?sidebar_web:bool -> unit -> t
1898
1899 val enabled : t -> bool
1900
1901 val sidebar_web : t -> bool
1902
1903 val jsont : t Jsont.t
1904 end
1905end
1906
1907module SharedLinkEdit : sig
1908 module Dto : sig
1909 type t
1910
1911 (** Construct a value
1912 @param change_expiry_time Few clients cannot send null to set the expiryTime to never.
1913 Setting this flag and not sending expiryAt is considered as null instead.
1914 Clients that can send null values can ignore this.
1915 *)
1916 val v : ?allow_download:bool -> ?allow_upload:bool -> ?change_expiry_time:bool -> ?description:string -> ?expires_at:Ptime.t -> ?password:string -> ?show_metadata:bool -> ?slug:string -> unit -> t
1917
1918 val allow_download : t -> bool option
1919
1920 val allow_upload : t -> bool option
1921
1922 (** Few clients cannot send null to set the expiryTime to never.
1923 Setting this flag and not sending expiryAt is considered as null instead.
1924 Clients that can send null values can ignore this. *)
1925 val change_expiry_time : t -> bool option
1926
1927 val description : t -> string option
1928
1929 val expires_at : t -> Ptime.t option
1930
1931 val password : t -> string option
1932
1933 val show_metadata : t -> bool option
1934
1935 val slug : t -> string option
1936
1937 val jsont : t Jsont.t
1938 end
1939end
1940
1941module SessionUnlock : sig
1942 module Dto : sig
1943 type t
1944
1945 (** Construct a value *)
1946 val v : ?password:string -> ?pin_code:string -> unit -> t
1947
1948 val password : t -> string option
1949
1950 val pin_code : t -> string option
1951
1952 val jsont : t Jsont.t
1953 end
1954end
1955
1956module Session : sig
1957 module UpdateDto : sig
1958 type t
1959
1960 (** Construct a value *)
1961 val v : ?is_pending_sync_reset:bool -> unit -> t
1962
1963 val is_pending_sync_reset : t -> bool option
1964
1965 val jsont : t Jsont.t
1966 end
1967
1968 module ResponseDto : sig
1969 type t
1970
1971 (** Construct a value *)
1972 val v : created_at:string -> current:bool -> device_os:string -> device_type:string -> id:string -> is_pending_sync_reset:bool -> updated_at:string -> ?app_version:string -> ?expires_at:string -> unit -> t
1973
1974 val app_version : t -> string option
1975
1976 val created_at : t -> string
1977
1978 val current : t -> bool
1979
1980 val device_os : t -> string
1981
1982 val device_type : t -> string
1983
1984 val expires_at : t -> string option
1985
1986 val id : t -> string
1987
1988 val is_pending_sync_reset : t -> bool
1989
1990 val updated_at : t -> string
1991
1992 val jsont : t Jsont.t
1993 end
1994
1995 module CreateDto : sig
1996 type t
1997
1998 (** Construct a value
1999 @param duration session duration, in seconds
2000 *)
2001 val v : ?device_os:string -> ?device_type:string -> ?duration:float -> unit -> t
2002
2003 val device_os : t -> string option
2004
2005 val device_type : t -> string option
2006
2007 (** session duration, in seconds *)
2008 val duration : t -> float option
2009
2010 val jsont : t Jsont.t
2011 end
2012
2013 (** Retrieve user sessions
2014
2015 Retrieve all sessions for a specific user. *)
2016 val get_user_sessions_admin : id:string -> t -> unit -> ResponseDto.t
2017
2018 (** Retrieve sessions
2019
2020 Retrieve a list of sessions for the user. *)
2021 val get_sessions : t -> unit -> ResponseDto.t
2022
2023 (** Update a session
2024
2025 Update a specific session identified by id. *)
2026 val update_session : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
2027end
2028
2029module SessionCreate : sig
2030 module ResponseDto : sig
2031 type t
2032
2033 (** Construct a value *)
2034 val v : created_at:string -> current:bool -> device_os:string -> device_type:string -> id:string -> is_pending_sync_reset:bool -> token:string -> updated_at:string -> ?app_version:string -> ?expires_at:string -> unit -> t
2035
2036 val app_version : t -> string option
2037
2038 val created_at : t -> string
2039
2040 val current : t -> bool
2041
2042 val device_os : t -> string
2043
2044 val device_type : t -> string
2045
2046 val expires_at : t -> string option
2047
2048 val id : t -> string
2049
2050 val is_pending_sync_reset : t -> bool
2051
2052 val token : t -> string
2053
2054 val updated_at : t -> string
2055
2056 val jsont : t Jsont.t
2057 end
2058
2059 (** Create a session
2060
2061 Create a session as a child to the current session. This endpoint is used for casting. *)
2062 val create_session : body:Session.CreateDto.t -> t -> unit -> ResponseDto.t
2063end
2064
2065module ServerVersionHistory : sig
2066 module ResponseDto : sig
2067 type t
2068
2069 (** Construct a value *)
2070 val v : created_at:Ptime.t -> id:string -> version:string -> unit -> t
2071
2072 val created_at : t -> Ptime.t
2073
2074 val id : t -> string
2075
2076 val version : t -> string
2077
2078 val jsont : t Jsont.t
2079 end
2080
2081 (** Get version history
2082
2083 Retrieve a list of past versions the server has been on. *)
2084 val get_version_history : t -> unit -> ResponseDto.t
2085end
2086
2087module ServerVersion : sig
2088 module ResponseDto : sig
2089 type t
2090
2091 (** Construct a value *)
2092 val v : major:int -> minor:int -> patch:int -> unit -> t
2093
2094 val major : t -> int
2095
2096 val minor : t -> int
2097
2098 val patch : t -> int
2099
2100 val jsont : t Jsont.t
2101 end
2102
2103 (** Get server version
2104
2105 Retrieve the current server version in semantic versioning (semver) format. *)
2106 val get_server_version : t -> unit -> ResponseDto.t
2107end
2108
2109module ServerTheme : sig
2110 module Dto : sig
2111 type t
2112
2113 (** Construct a value *)
2114 val v : custom_css:string -> unit -> t
2115
2116 val custom_css : t -> string
2117
2118 val jsont : t Jsont.t
2119 end
2120
2121 (** Get theme
2122
2123 Retrieve the custom CSS, if existent. *)
2124 val get_theme : t -> unit -> Dto.t
2125end
2126
2127module ServerStorage : sig
2128 module ResponseDto : sig
2129 type t
2130
2131 (** Construct a value *)
2132 val v : disk_available:string -> disk_available_raw:int64 -> disk_size:string -> disk_size_raw:int64 -> disk_usage_percentage:float -> disk_use:string -> disk_use_raw:int64 -> unit -> t
2133
2134 val disk_available : t -> string
2135
2136 val disk_available_raw : t -> int64
2137
2138 val disk_size : t -> string
2139
2140 val disk_size_raw : t -> int64
2141
2142 val disk_usage_percentage : t -> float
2143
2144 val disk_use : t -> string
2145
2146 val disk_use_raw : t -> int64
2147
2148 val jsont : t Jsont.t
2149 end
2150
2151 (** Get storage
2152
2153 Retrieve the current storage utilization information of the server. *)
2154 val get_storage : t -> unit -> ResponseDto.t
2155end
2156
2157module ServerPing : sig
2158 module Response : sig
2159 type t
2160
2161 (** Construct a value *)
2162 val v : res:string -> unit -> t
2163
2164 val res : t -> string
2165
2166 val jsont : t Jsont.t
2167 end
2168
2169 (** Ping
2170
2171 Pong *)
2172 val ping_server : t -> unit -> Response.t
2173end
2174
2175module ServerMediaTypes : sig
2176 module ResponseDto : sig
2177 type t
2178
2179 (** Construct a value *)
2180 val v : image:string list -> sidecar:string list -> video:string list -> unit -> t
2181
2182 val image : t -> string list
2183
2184 val sidecar : t -> string list
2185
2186 val video : t -> string list
2187
2188 val jsont : t Jsont.t
2189 end
2190
2191 (** Get supported media types
2192
2193 Retrieve all media types supported by the server. *)
2194 val get_supported_media_types : t -> unit -> ResponseDto.t
2195end
2196
2197module ServerFeatures : sig
2198 module Dto : sig
2199 type t
2200
2201 (** Construct a value *)
2202 val v : config_file:bool -> duplicate_detection:bool -> email:bool -> facial_recognition:bool -> import_faces:bool -> map:bool -> oauth:bool -> oauth_auto_launch:bool -> ocr:bool -> password_login:bool -> reverse_geocoding:bool -> search:bool -> sidecar:bool -> smart_search:bool -> trash:bool -> unit -> t
2203
2204 val config_file : t -> bool
2205
2206 val duplicate_detection : t -> bool
2207
2208 val email : t -> bool
2209
2210 val facial_recognition : t -> bool
2211
2212 val import_faces : t -> bool
2213
2214 val map : t -> bool
2215
2216 val oauth : t -> bool
2217
2218 val oauth_auto_launch : t -> bool
2219
2220 val ocr : t -> bool
2221
2222 val password_login : t -> bool
2223
2224 val reverse_geocoding : t -> bool
2225
2226 val search : t -> bool
2227
2228 val sidecar : t -> bool
2229
2230 val smart_search : t -> bool
2231
2232 val trash : t -> bool
2233
2234 val jsont : t Jsont.t
2235 end
2236
2237 (** Get features
2238
2239 Retrieve available features supported by this server. *)
2240 val get_server_features : t -> unit -> Dto.t
2241end
2242
2243module ServerConfig : sig
2244 module Dto : sig
2245 type t
2246
2247 (** Construct a value *)
2248 val v : external_domain:string -> is_initialized:bool -> is_onboarded:bool -> login_page_message:string -> maintenance_mode:bool -> map_dark_style_url:string -> map_light_style_url:string -> oauth_button_text:string -> public_users:bool -> trash_days:int -> user_delete_delay:int -> unit -> t
2249
2250 val external_domain : t -> string
2251
2252 val is_initialized : t -> bool
2253
2254 val is_onboarded : t -> bool
2255
2256 val login_page_message : t -> string
2257
2258 val maintenance_mode : t -> bool
2259
2260 val map_dark_style_url : t -> string
2261
2262 val map_light_style_url : t -> string
2263
2264 val oauth_button_text : t -> string
2265
2266 val public_users : t -> bool
2267
2268 val trash_days : t -> int
2269
2270 val user_delete_delay : t -> int
2271
2272 val jsont : t Jsont.t
2273 end
2274
2275 (** Get config
2276
2277 Retrieve the current server configuration. *)
2278 val get_server_config : t -> unit -> Dto.t
2279end
2280
2281module ServerApkLinks : sig
2282 module Dto : sig
2283 type t
2284
2285 (** Construct a value *)
2286 val v : arm64v8a:string -> armeabiv7a:string -> universal:string -> x86_64:string -> unit -> t
2287
2288 val arm64v8a : t -> string
2289
2290 val armeabiv7a : t -> string
2291
2292 val universal : t -> string
2293
2294 val x86_64 : t -> string
2295
2296 val jsont : t Jsont.t
2297 end
2298
2299 (** Get APK links
2300
2301 Retrieve links to the APKs for the current server version. *)
2302 val get_apk_links : t -> unit -> Dto.t
2303end
2304
2305module ServerAbout : sig
2306 module ResponseDto : sig
2307 type t
2308
2309 (** Construct a value *)
2310 val v : licensed:bool -> version:string -> version_url:string -> ?build:string -> ?build_image:string -> ?build_image_url:string -> ?build_url:string -> ?exiftool:string -> ?ffmpeg:string -> ?imagemagick:string -> ?libvips:string -> ?nodejs:string -> ?repository:string -> ?repository_url:string -> ?source_commit:string -> ?source_ref:string -> ?source_url:string -> ?third_party_bug_feature_url:string -> ?third_party_documentation_url:string -> ?third_party_source_url:string -> ?third_party_support_url:string -> unit -> t
2311
2312 val build : t -> string option
2313
2314 val build_image : t -> string option
2315
2316 val build_image_url : t -> string option
2317
2318 val build_url : t -> string option
2319
2320 val exiftool : t -> string option
2321
2322 val ffmpeg : t -> string option
2323
2324 val imagemagick : t -> string option
2325
2326 val libvips : t -> string option
2327
2328 val licensed : t -> bool
2329
2330 val nodejs : t -> string option
2331
2332 val repository : t -> string option
2333
2334 val repository_url : t -> string option
2335
2336 val source_commit : t -> string option
2337
2338 val source_ref : t -> string option
2339
2340 val source_url : t -> string option
2341
2342 val third_party_bug_feature_url : t -> string option
2343
2344 val third_party_documentation_url : t -> string option
2345
2346 val third_party_source_url : t -> string option
2347
2348 val third_party_support_url : t -> string option
2349
2350 val version : t -> string
2351
2352 val version_url : t -> string
2353
2354 val jsont : t Jsont.t
2355 end
2356
2357 (** Get server information
2358
2359 Retrieve a list of information about the server. *)
2360 val get_about_info : t -> unit -> ResponseDto.t
2361end
2362
2363module SearchSuggestion : sig
2364 module Type : sig
2365 type t = [
2366 | `Country
2367 | `State
2368 | `City
2369 | `Camera_make
2370 | `Camera_model
2371 | `Camera_lens_model
2372 ]
2373
2374 val jsont : t Jsont.t
2375 end
2376end
2377
2378module SearchFacetCount : sig
2379 module ResponseDto : sig
2380 type t
2381
2382 (** Construct a value *)
2383 val v : count:int -> value:string -> unit -> t
2384
2385 val count : t -> int
2386
2387 val value : t -> string
2388
2389 val jsont : t Jsont.t
2390 end
2391end
2392
2393module SearchFacet : sig
2394 module ResponseDto : sig
2395 type t
2396
2397 (** Construct a value *)
2398 val v : counts:SearchFacetCount.ResponseDto.t list -> field_name:string -> unit -> t
2399
2400 val counts : t -> SearchFacetCount.ResponseDto.t list
2401
2402 val field_name : t -> string
2403
2404 val jsont : t Jsont.t
2405 end
2406end
2407
2408module RotateParameters : sig
2409 module T : sig
2410 type t
2411
2412 (** Construct a value
2413 @param angle Rotation angle in degrees
2414 *)
2415 val v : angle:float -> unit -> t
2416
2417 (** Rotation angle in degrees *)
2418 val angle : t -> float
2419
2420 val jsont : t Jsont.t
2421 end
2422end
2423
2424module ReverseGeocodingState : sig
2425 module ResponseDto : sig
2426 type t
2427
2428 (** Construct a value *)
2429 val v : ?last_import_file_name:string -> ?last_update:string -> unit -> t
2430
2431 val last_import_file_name : t -> string option
2432
2433 val last_update : t -> string option
2434
2435 val jsont : t Jsont.t
2436 end
2437
2438 (** Retrieve reverse geocoding state
2439
2440 Retrieve the current state of the reverse geocoding import. *)
2441 val get_reverse_geocoding_state : t -> unit -> ResponseDto.t
2442end
2443
2444module ReactionLevel : sig
2445 module T : sig
2446 type t = [
2447 | `Album
2448 | `Asset
2449 ]
2450
2451 val jsont : t Jsont.t
2452 end
2453end
2454
2455module Reaction : sig
2456 module Type : sig
2457 type t = [
2458 | `Comment
2459 | `Like
2460 ]
2461
2462 val jsont : t Jsont.t
2463 end
2464end
2465
2466module Activity : sig
2467 module ResponseDto : sig
2468 type t
2469
2470 (** Construct a value *)
2471 val v : created_at:Ptime.t -> id:string -> type_:Reaction.Type.t -> user:User.ResponseDto.t -> ?asset_id:string -> ?comment:string -> unit -> t
2472
2473 val asset_id : t -> string option
2474
2475 val comment : t -> string option
2476
2477 val created_at : t -> Ptime.t
2478
2479 val id : t -> string
2480
2481 val type_ : t -> Reaction.Type.t
2482
2483 val user : t -> User.ResponseDto.t
2484
2485 val jsont : t Jsont.t
2486 end
2487
2488 module CreateDto : sig
2489 type t
2490
2491 (** Construct a value *)
2492 val v : album_id:string -> type_:Reaction.Type.t -> ?asset_id:string -> ?comment:string -> unit -> t
2493
2494 val album_id : t -> string
2495
2496 val asset_id : t -> string option
2497
2498 val comment : t -> string option
2499
2500 val type_ : t -> Reaction.Type.t
2501
2502 val jsont : t Jsont.t
2503 end
2504
2505 (** List all activities
2506
2507 Returns a list of activities for the selected asset or album. The activities are returned in sorted order, with the oldest activities appearing first. *)
2508 val get_activities : album_id:string -> ?asset_id:string -> ?level:string -> ?type_:string -> ?user_id:string -> t -> unit -> ResponseDto.t
2509
2510 (** Create an activity
2511
2512 Create a like or a comment for an album, or an asset in an album. *)
2513 val create_activity : body:CreateDto.t -> t -> unit -> ResponseDto.t
2514end
2515
2516module Ratings : sig
2517 module Update : sig
2518 type t
2519
2520 (** Construct a value *)
2521 val v : ?enabled:bool -> unit -> t
2522
2523 val enabled : t -> bool option
2524
2525 val jsont : t Jsont.t
2526 end
2527
2528 module Response : sig
2529 type t
2530
2531 (** Construct a value *)
2532 val v : ?enabled:bool -> unit -> t
2533
2534 val enabled : t -> bool
2535
2536 val jsont : t Jsont.t
2537 end
2538end
2539
2540module QueueStatusLegacy : sig
2541 module Dto : sig
2542 type t
2543
2544 (** Construct a value *)
2545 val v : is_active:bool -> is_paused:bool -> unit -> t
2546
2547 val is_active : t -> bool
2548
2549 val is_paused : t -> bool
2550
2551 val jsont : t Jsont.t
2552 end
2553end
2554
2555module QueueStatistics : sig
2556 module Dto : sig
2557 type t
2558
2559 (** Construct a value *)
2560 val v : active:int -> completed:int -> delayed:int -> failed:int -> paused:int -> waiting:int -> unit -> t
2561
2562 val active : t -> int
2563
2564 val completed : t -> int
2565
2566 val delayed : t -> int
2567
2568 val failed : t -> int
2569
2570 val paused : t -> int
2571
2572 val waiting : t -> int
2573
2574 val jsont : t Jsont.t
2575 end
2576end
2577
2578module QueueName : sig
2579 module T : sig
2580 type t = [
2581 | `Thumbnail_generation
2582 | `Metadata_extraction
2583 | `Video_conversion
2584 | `Face_detection
2585 | `Facial_recognition
2586 | `Smart_search
2587 | `Duplicate_detection
2588 | `Background_task
2589 | `Storage_template_migration
2590 | `Migration
2591 | `Search
2592 | `Sidecar
2593 | `Library
2594 | `Notifications
2595 | `Backup_database
2596 | `Ocr
2597 | `Workflow
2598 | `Editor
2599 ]
2600
2601 val jsont : t Jsont.t
2602 end
2603end
2604
2605module Queue : sig
2606 module UpdateDto : sig
2607 type t
2608
2609 (** Construct a value *)
2610 val v : ?is_paused:bool -> unit -> t
2611
2612 val is_paused : t -> bool option
2613
2614 val jsont : t Jsont.t
2615 end
2616
2617 module ResponseDto : sig
2618 type t
2619
2620 (** Construct a value *)
2621 val v : is_paused:bool -> name:QueueName.T.t -> statistics:QueueStatistics.Dto.t -> unit -> t
2622
2623 val is_paused : t -> bool
2624
2625 val name : t -> QueueName.T.t
2626
2627 val statistics : t -> QueueStatistics.Dto.t
2628
2629 val jsont : t Jsont.t
2630 end
2631
2632 (** List all queues
2633
2634 Retrieves a list of queues. *)
2635 val get_queues : t -> unit -> ResponseDto.t
2636
2637 (** Retrieve a queue
2638
2639 Retrieves a specific queue by its name. *)
2640 val get_queue : name:string -> t -> unit -> ResponseDto.t
2641
2642 (** Update a queue
2643
2644 Change the paused status of a specific queue. *)
2645 val update_queue : name:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
2646end
2647
2648module QueueDelete : sig
2649 module Dto : sig
2650 type t
2651
2652 (** Construct a value
2653 @param failed If true, will also remove failed jobs from the queue.
2654 *)
2655 val v : ?failed:bool -> unit -> t
2656
2657 (** If true, will also remove failed jobs from the queue. *)
2658 val failed : t -> bool option
2659
2660 val jsont : t Jsont.t
2661 end
2662end
2663
2664module QueueCommand : sig
2665 module T : sig
2666 type t = [
2667 | `Start
2668 | `Pause
2669 | `Resume
2670 | `Empty
2671 | `Clear_failed
2672 ]
2673
2674 val jsont : t Jsont.t
2675 end
2676
2677 module Dto : sig
2678 type t
2679
2680 (** Construct a value *)
2681 val v : command:T.t -> ?force:bool -> unit -> t
2682
2683 val command : t -> T.t
2684
2685 val force : t -> bool option
2686
2687 val jsont : t Jsont.t
2688 end
2689end
2690
2691module QueueResponseLegacy : sig
2692 module Dto : sig
2693 type t
2694
2695 (** Construct a value *)
2696 val v : job_counts:QueueStatistics.Dto.t -> queue_status:QueueStatusLegacy.Dto.t -> unit -> t
2697
2698 val job_counts : t -> QueueStatistics.Dto.t
2699
2700 val queue_status : t -> QueueStatusLegacy.Dto.t
2701
2702 val jsont : t Jsont.t
2703 end
2704
2705 (** Run jobs
2706
2707 Queue all assets for a specific job type. Defaults to only queueing assets that have not yet been processed, but the force command can be used to re-process all assets. *)
2708 val run_queue_command_legacy : name:string -> body:QueueCommand.Dto.t -> t -> unit -> Dto.t
2709end
2710
2711module QueuesResponseLegacy : sig
2712 module Dto : sig
2713 type t
2714
2715 (** Construct a value *)
2716 val v : background_task:QueueResponseLegacy.Dto.t -> backup_database:QueueResponseLegacy.Dto.t -> duplicate_detection:QueueResponseLegacy.Dto.t -> editor:QueueResponseLegacy.Dto.t -> face_detection:QueueResponseLegacy.Dto.t -> facial_recognition:QueueResponseLegacy.Dto.t -> library:QueueResponseLegacy.Dto.t -> metadata_extraction:QueueResponseLegacy.Dto.t -> migration:QueueResponseLegacy.Dto.t -> notifications:QueueResponseLegacy.Dto.t -> ocr:QueueResponseLegacy.Dto.t -> search:QueueResponseLegacy.Dto.t -> sidecar:QueueResponseLegacy.Dto.t -> smart_search:QueueResponseLegacy.Dto.t -> storage_template_migration:QueueResponseLegacy.Dto.t -> thumbnail_generation:QueueResponseLegacy.Dto.t -> video_conversion:QueueResponseLegacy.Dto.t -> workflow:QueueResponseLegacy.Dto.t -> unit -> t
2717
2718 val background_task : t -> QueueResponseLegacy.Dto.t
2719
2720 val backup_database : t -> QueueResponseLegacy.Dto.t
2721
2722 val duplicate_detection : t -> QueueResponseLegacy.Dto.t
2723
2724 val editor : t -> QueueResponseLegacy.Dto.t
2725
2726 val face_detection : t -> QueueResponseLegacy.Dto.t
2727
2728 val facial_recognition : t -> QueueResponseLegacy.Dto.t
2729
2730 val library : t -> QueueResponseLegacy.Dto.t
2731
2732 val metadata_extraction : t -> QueueResponseLegacy.Dto.t
2733
2734 val migration : t -> QueueResponseLegacy.Dto.t
2735
2736 val notifications : t -> QueueResponseLegacy.Dto.t
2737
2738 val ocr : t -> QueueResponseLegacy.Dto.t
2739
2740 val search : t -> QueueResponseLegacy.Dto.t
2741
2742 val sidecar : t -> QueueResponseLegacy.Dto.t
2743
2744 val smart_search : t -> QueueResponseLegacy.Dto.t
2745
2746 val storage_template_migration : t -> QueueResponseLegacy.Dto.t
2747
2748 val thumbnail_generation : t -> QueueResponseLegacy.Dto.t
2749
2750 val video_conversion : t -> QueueResponseLegacy.Dto.t
2751
2752 val workflow : t -> QueueResponseLegacy.Dto.t
2753
2754 val jsont : t Jsont.t
2755 end
2756
2757 (** Retrieve queue counts and status
2758
2759 Retrieve the counts of the current queue, as well as the current status. *)
2760 val get_queues_legacy : t -> unit -> Dto.t
2761end
2762
2763module Purchase : sig
2764 module Update : sig
2765 type t
2766
2767 (** Construct a value *)
2768 val v : ?hide_buy_button_until:string -> ?show_support_badge:bool -> unit -> t
2769
2770 val hide_buy_button_until : t -> string option
2771
2772 val show_support_badge : t -> bool option
2773
2774 val jsont : t Jsont.t
2775 end
2776
2777 module Response : sig
2778 type t
2779
2780 (** Construct a value *)
2781 val v : hide_buy_button_until:string -> show_support_badge:bool -> unit -> t
2782
2783 val hide_buy_button_until : t -> string
2784
2785 val show_support_badge : t -> bool
2786
2787 val jsont : t Jsont.t
2788 end
2789end
2790
2791module PluginContext : sig
2792 module Type : sig
2793 type t = [
2794 | `Asset
2795 | `Album
2796 | `Person
2797 ]
2798
2799 val jsont : t Jsont.t
2800 end
2801end
2802
2803module PluginTrigger : sig
2804 module Type : sig
2805 type t = [
2806 | `Asset_create
2807 | `Person_recognized
2808 ]
2809
2810 val jsont : t Jsont.t
2811 end
2812
2813 module ResponseDto : sig
2814 type t
2815
2816 (** Construct a value *)
2817 val v : context_type:PluginContext.Type.t -> type_:Type.t -> unit -> t
2818
2819 val context_type : t -> PluginContext.Type.t
2820
2821 val type_ : t -> Type.t
2822
2823 val jsont : t Jsont.t
2824 end
2825
2826 (** List all plugin triggers
2827
2828 Retrieve a list of all available plugin triggers. *)
2829 val get_plugin_triggers : t -> unit -> ResponseDto.t
2830end
2831
2832module Workflow : sig
2833 module UpdateDto : sig
2834 type t
2835
2836 (** Construct a value *)
2837 val v : ?actions:WorkflowActionItem.Dto.t list -> ?description:string -> ?enabled:bool -> ?filters:WorkflowFilterItem.Dto.t list -> ?name:string -> ?trigger_type:PluginTrigger.Type.t -> unit -> t
2838
2839 val actions : t -> WorkflowActionItem.Dto.t list option
2840
2841 val description : t -> string option
2842
2843 val enabled : t -> bool option
2844
2845 val filters : t -> WorkflowFilterItem.Dto.t list option
2846
2847 val name : t -> string option
2848
2849 val trigger_type : t -> PluginTrigger.Type.t option
2850
2851 val jsont : t Jsont.t
2852 end
2853
2854 module ResponseDto : sig
2855 type t
2856
2857 (** Construct a value *)
2858 val v : actions:WorkflowAction.ResponseDto.t list -> created_at:string -> description:string -> enabled:bool -> filters:WorkflowFilter.ResponseDto.t list -> id:string -> owner_id:string -> trigger_type:PluginTrigger.Type.t -> ?name:string -> unit -> t
2859
2860 val actions : t -> WorkflowAction.ResponseDto.t list
2861
2862 val created_at : t -> string
2863
2864 val description : t -> string
2865
2866 val enabled : t -> bool
2867
2868 val filters : t -> WorkflowFilter.ResponseDto.t list
2869
2870 val id : t -> string
2871
2872 val name : t -> string option
2873
2874 val owner_id : t -> string
2875
2876 val trigger_type : t -> PluginTrigger.Type.t
2877
2878 val jsont : t Jsont.t
2879 end
2880
2881 module CreateDto : sig
2882 type t
2883
2884 (** Construct a value *)
2885 val v : actions:WorkflowActionItem.Dto.t list -> filters:WorkflowFilterItem.Dto.t list -> name:string -> trigger_type:PluginTrigger.Type.t -> ?description:string -> ?enabled:bool -> unit -> t
2886
2887 val actions : t -> WorkflowActionItem.Dto.t list
2888
2889 val description : t -> string option
2890
2891 val enabled : t -> bool option
2892
2893 val filters : t -> WorkflowFilterItem.Dto.t list
2894
2895 val name : t -> string
2896
2897 val trigger_type : t -> PluginTrigger.Type.t
2898
2899 val jsont : t Jsont.t
2900 end
2901
2902 (** List all workflows
2903
2904 Retrieve a list of workflows available to the authenticated user. *)
2905 val get_workflows : t -> unit -> ResponseDto.t
2906
2907 (** Create a workflow
2908
2909 Create a new workflow, the workflow can also be created with empty filters and actions. *)
2910 val create_workflow : body:CreateDto.t -> t -> unit -> ResponseDto.t
2911
2912 (** Retrieve a workflow
2913
2914 Retrieve information about a specific workflow by its ID. *)
2915 val get_workflow : id:string -> t -> unit -> ResponseDto.t
2916
2917 (** Update a workflow
2918
2919 Update the information of a specific workflow by its ID. This endpoint can be used to update the workflow name, description, trigger type, filters and actions order, etc. *)
2920 val update_workflow : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
2921end
2922
2923module PluginFilter : sig
2924 module ResponseDto : sig
2925 type t
2926
2927 (** Construct a value *)
2928 val v : description:string -> id:string -> method_name:string -> plugin_id:string -> supported_contexts:PluginContext.Type.t list -> title:string -> ?schema:Jsont.json -> unit -> t
2929
2930 val description : t -> string
2931
2932 val id : t -> string
2933
2934 val method_name : t -> string
2935
2936 val plugin_id : t -> string
2937
2938 val schema : t -> Jsont.json option
2939
2940 val supported_contexts : t -> PluginContext.Type.t list
2941
2942 val title : t -> string
2943
2944 val jsont : t Jsont.t
2945 end
2946end
2947
2948module PluginAction : sig
2949 module ResponseDto : sig
2950 type t
2951
2952 (** Construct a value *)
2953 val v : description:string -> id:string -> method_name:string -> plugin_id:string -> supported_contexts:PluginContext.Type.t list -> title:string -> ?schema:Jsont.json -> unit -> t
2954
2955 val description : t -> string
2956
2957 val id : t -> string
2958
2959 val method_name : t -> string
2960
2961 val plugin_id : t -> string
2962
2963 val schema : t -> Jsont.json option
2964
2965 val supported_contexts : t -> PluginContext.Type.t list
2966
2967 val title : t -> string
2968
2969 val jsont : t Jsont.t
2970 end
2971end
2972
2973module Plugin : sig
2974 module ResponseDto : sig
2975 type t
2976
2977 (** Construct a value *)
2978 val v : actions:PluginAction.ResponseDto.t list -> author:string -> created_at:string -> description:string -> filters:PluginFilter.ResponseDto.t list -> id:string -> name:string -> title:string -> updated_at:string -> version:string -> unit -> t
2979
2980 val actions : t -> PluginAction.ResponseDto.t list
2981
2982 val author : t -> string
2983
2984 val created_at : t -> string
2985
2986 val description : t -> string
2987
2988 val filters : t -> PluginFilter.ResponseDto.t list
2989
2990 val id : t -> string
2991
2992 val name : t -> string
2993
2994 val title : t -> string
2995
2996 val updated_at : t -> string
2997
2998 val version : t -> string
2999
3000 val jsont : t Jsont.t
3001 end
3002
3003 (** List all plugins
3004
3005 Retrieve a list of plugins available to the authenticated user. *)
3006 val get_plugins : t -> unit -> ResponseDto.t
3007
3008 (** Retrieve a plugin
3009
3010 Retrieve information about a specific plugin by its ID. *)
3011 val get_plugin : id:string -> t -> unit -> ResponseDto.t
3012end
3013
3014module Places : sig
3015 module ResponseDto : sig
3016 type t
3017
3018 (** Construct a value *)
3019 val v : latitude:float -> longitude:float -> name:string -> ?admin1name:string -> ?admin2name:string -> unit -> t
3020
3021 val admin1name : t -> string option
3022
3023 val admin2name : t -> string option
3024
3025 val latitude : t -> float
3026
3027 val longitude : t -> float
3028
3029 val name : t -> string
3030
3031 val jsont : t Jsont.t
3032 end
3033
3034 (** Search places
3035
3036 Search for places by name. *)
3037 val search_places : name:string -> t -> unit -> ResponseDto.t
3038end
3039
3040module PinCodeSetup : sig
3041 module Dto : sig
3042 type t
3043
3044 (** Construct a value *)
3045 val v : pin_code:string -> unit -> t
3046
3047 val pin_code : t -> string
3048
3049 val jsont : t Jsont.t
3050 end
3051end
3052
3053module PinCodeReset : sig
3054 module Dto : sig
3055 type t
3056
3057 (** Construct a value *)
3058 val v : ?password:string -> ?pin_code:string -> unit -> t
3059
3060 val password : t -> string option
3061
3062 val pin_code : t -> string option
3063
3064 val jsont : t Jsont.t
3065 end
3066end
3067
3068module PinCodeChange : sig
3069 module Dto : sig
3070 type t
3071
3072 (** Construct a value *)
3073 val v : new_pin_code:string -> ?password:string -> ?pin_code:string -> unit -> t
3074
3075 val new_pin_code : t -> string
3076
3077 val password : t -> string option
3078
3079 val pin_code : t -> string option
3080
3081 val jsont : t Jsont.t
3082 end
3083end
3084
3085module PersonStatistics : sig
3086 module ResponseDto : sig
3087 type t
3088
3089 (** Construct a value *)
3090 val v : assets:int -> unit -> t
3091
3092 val assets : t -> int
3093
3094 val jsont : t Jsont.t
3095 end
3096
3097 (** Get person statistics
3098
3099 Retrieve statistics about a specific person. *)
3100 val get_person_statistics : id:string -> t -> unit -> ResponseDto.t
3101end
3102
3103module Permission : sig
3104 module T : sig
3105 type t = [
3106 | `All
3107 | `Activity_create
3108 | `Activity_read
3109 | `Activity_update
3110 | `Activity_delete
3111 | `Activity_statistics
3112 | `Api_key_create
3113 | `Api_key_read
3114 | `Api_key_update
3115 | `Api_key_delete
3116 | `Asset_read
3117 | `Asset_update
3118 | `Asset_delete
3119 | `Asset_statistics
3120 | `Asset_share
3121 | `Asset_view
3122 | `Asset_download
3123 | `Asset_upload
3124 | `Asset_replace
3125 | `Asset_copy
3126 | `Asset_derive
3127 | `Asset_edit_get
3128 | `Asset_edit_create
3129 | `Asset_edit_delete
3130 | `Album_create
3131 | `Album_read
3132 | `Album_update
3133 | `Album_delete
3134 | `Album_statistics
3135 | `Album_share
3136 | `Album_download
3137 | `Album_asset_create
3138 | `Album_asset_delete
3139 | `Album_user_create
3140 | `Album_user_update
3141 | `Album_user_delete
3142 | `Auth_change_password
3143 | `Auth_device_delete
3144 | `Archive_read
3145 | `Backup_list
3146 | `Backup_download
3147 | `Backup_upload
3148 | `Backup_delete
3149 | `Duplicate_read
3150 | `Duplicate_delete
3151 | `Face_create
3152 | `Face_read
3153 | `Face_update
3154 | `Face_delete
3155 | `Folder_read
3156 | `Job_create
3157 | `Job_read
3158 | `Library_create
3159 | `Library_read
3160 | `Library_update
3161 | `Library_delete
3162 | `Library_statistics
3163 | `Timeline_read
3164 | `Timeline_download
3165 | `Maintenance
3166 | `Map_read
3167 | `Map_search
3168 | `Memory_create
3169 | `Memory_read
3170 | `Memory_update
3171 | `Memory_delete
3172 | `Memory_statistics
3173 | `Memory_asset_create
3174 | `Memory_asset_delete
3175 | `Notification_create
3176 | `Notification_read
3177 | `Notification_update
3178 | `Notification_delete
3179 | `Partner_create
3180 | `Partner_read
3181 | `Partner_update
3182 | `Partner_delete
3183 | `Person_create
3184 | `Person_read
3185 | `Person_update
3186 | `Person_delete
3187 | `Person_statistics
3188 | `Person_merge
3189 | `Person_reassign
3190 | `Pin_code_create
3191 | `Pin_code_update
3192 | `Pin_code_delete
3193 | `Plugin_create
3194 | `Plugin_read
3195 | `Plugin_update
3196 | `Plugin_delete
3197 | `Server_about
3198 | `Server_apk_links
3199 | `Server_storage
3200 | `Server_statistics
3201 | `Server_version_check
3202 | `Server_license_read
3203 | `Server_license_update
3204 | `Server_license_delete
3205 | `Session_create
3206 | `Session_read
3207 | `Session_update
3208 | `Session_delete
3209 | `Session_lock
3210 | `Shared_link_create
3211 | `Shared_link_read
3212 | `Shared_link_update
3213 | `Shared_link_delete
3214 | `Stack_create
3215 | `Stack_read
3216 | `Stack_update
3217 | `Stack_delete
3218 | `Sync_stream
3219 | `Sync_checkpoint_read
3220 | `Sync_checkpoint_update
3221 | `Sync_checkpoint_delete
3222 | `System_config_read
3223 | `System_config_update
3224 | `System_metadata_read
3225 | `System_metadata_update
3226 | `Tag_create
3227 | `Tag_read
3228 | `Tag_update
3229 | `Tag_delete
3230 | `Tag_asset
3231 | `User_read
3232 | `User_update
3233 | `User_license_create
3234 | `User_license_read
3235 | `User_license_update
3236 | `User_license_delete
3237 | `User_onboarding_read
3238 | `User_onboarding_update
3239 | `User_onboarding_delete
3240 | `User_preference_read
3241 | `User_preference_update
3242 | `User_profile_image_create
3243 | `User_profile_image_read
3244 | `User_profile_image_update
3245 | `User_profile_image_delete
3246 | `Queue_read
3247 | `Queue_update
3248 | `Queue_job_create
3249 | `Queue_job_read
3250 | `Queue_job_update
3251 | `Queue_job_delete
3252 | `Workflow_create
3253 | `Workflow_read
3254 | `Workflow_update
3255 | `Workflow_delete
3256 | `Admin_user_create
3257 | `Admin_user_read
3258 | `Admin_user_update
3259 | `Admin_user_delete
3260 | `Admin_session_read
3261 | `Admin_auth_unlink_all
3262 ]
3263
3264 val jsont : t Jsont.t
3265 end
3266end
3267
3268module Apikey : sig
3269 module UpdateDto : sig
3270 type t
3271
3272 (** Construct a value *)
3273 val v : ?name:string -> ?permissions:Permission.T.t list -> unit -> t
3274
3275 val name : t -> string option
3276
3277 val permissions : t -> Permission.T.t list option
3278
3279 val jsont : t Jsont.t
3280 end
3281
3282 module ResponseDto : sig
3283 type t
3284
3285 (** Construct a value *)
3286 val v : created_at:Ptime.t -> id:string -> name:string -> permissions:Permission.T.t list -> updated_at:Ptime.t -> unit -> t
3287
3288 val created_at : t -> Ptime.t
3289
3290 val id : t -> string
3291
3292 val name : t -> string
3293
3294 val permissions : t -> Permission.T.t list
3295
3296 val updated_at : t -> Ptime.t
3297
3298 val jsont : t Jsont.t
3299 end
3300
3301 module CreateDto : sig
3302 type t
3303
3304 (** Construct a value *)
3305 val v : permissions:Permission.T.t list -> ?name:string -> unit -> t
3306
3307 val name : t -> string option
3308
3309 val permissions : t -> Permission.T.t list
3310
3311 val jsont : t Jsont.t
3312 end
3313
3314 (** List all API keys
3315
3316 Retrieve all API keys of the current user. *)
3317 val get_api_keys : t -> unit -> ResponseDto.t
3318
3319 (** Retrieve the current API key
3320
3321 Retrieve the API key that is used to access this endpoint. *)
3322 val get_my_api_key : t -> unit -> ResponseDto.t
3323
3324 (** Retrieve an API key
3325
3326 Retrieve an API key by its ID. The current user must own this API key. *)
3327 val get_api_key : id:string -> t -> unit -> ResponseDto.t
3328
3329 (** Update an API key
3330
3331 Updates the name and permissions of an API key by its ID. The current user must own this API key. *)
3332 val update_api_key : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
3333end
3334
3335module ApikeyCreate : sig
3336 module ResponseDto : sig
3337 type t
3338
3339 (** Construct a value *)
3340 val v : api_key:Apikey.ResponseDto.t -> secret:string -> unit -> t
3341
3342 val api_key : t -> Apikey.ResponseDto.t
3343
3344 val secret : t -> string
3345
3346 val jsont : t Jsont.t
3347 end
3348
3349 (** Create an API key
3350
3351 Creates a new API key. It will be limited to the permissions specified. *)
3352 val create_api_key : body:Apikey.CreateDto.t -> t -> unit -> ResponseDto.t
3353end
3354
3355module PeopleUpdate : sig
3356 module Item : sig
3357 type t
3358
3359 (** Construct a value
3360 @param id Person id.
3361 @param birth_date Person date of birth.
3362 Note: the mobile app cannot currently set the birth date to null.
3363 @param feature_face_asset_id Asset is used to get the feature face thumbnail.
3364 @param is_hidden Person visibility
3365 @param name Person name.
3366 *)
3367 val v : id:string -> ?birth_date:string -> ?color:string -> ?feature_face_asset_id:string -> ?is_favorite:bool -> ?is_hidden:bool -> ?name:string -> unit -> t
3368
3369 (** Person date of birth.
3370 Note: the mobile app cannot currently set the birth date to null. *)
3371 val birth_date : t -> string option
3372
3373 val color : t -> string option
3374
3375 (** Asset is used to get the feature face thumbnail. *)
3376 val feature_face_asset_id : t -> string option
3377
3378 (** Person id. *)
3379 val id : t -> string
3380
3381 val is_favorite : t -> bool option
3382
3383 (** Person visibility *)
3384 val is_hidden : t -> bool option
3385
3386 (** Person name. *)
3387 val name : t -> string option
3388
3389 val jsont : t Jsont.t
3390 end
3391end
3392
3393module PartnerDirection : sig
3394 module T : sig
3395 type t = [
3396 | `Shared_by
3397 | `Shared_with
3398 ]
3399
3400 val jsont : t Jsont.t
3401 end
3402end
3403
3404module Onboarding : sig
3405 module ResponseDto : sig
3406 type t
3407
3408 (** Construct a value *)
3409 val v : is_onboarded:bool -> unit -> t
3410
3411 val is_onboarded : t -> bool
3412
3413 val jsont : t Jsont.t
3414 end
3415
3416 module Dto : sig
3417 type t
3418
3419 (** Construct a value *)
3420 val v : is_onboarded:bool -> unit -> t
3421
3422 val is_onboarded : t -> bool
3423
3424 val jsont : t Jsont.t
3425 end
3426
3427 (** Retrieve user onboarding
3428
3429 Retrieve the onboarding status of the current user. *)
3430 val get_user_onboarding : t -> unit -> ResponseDto.t
3431
3432 (** Update user onboarding
3433
3434 Update the onboarding status of the current user. *)
3435 val set_user_onboarding : body:Dto.t -> t -> unit -> ResponseDto.t
3436end
3437
3438module OnThisDay : sig
3439 module Dto : sig
3440 type t
3441
3442 (** Construct a value *)
3443 val v : year:float -> unit -> t
3444
3445 val year : t -> float
3446
3447 val jsont : t Jsont.t
3448 end
3449end
3450
3451module Ocr : sig
3452 module Config : sig
3453 type t
3454
3455 (** Construct a value *)
3456 val v : enabled:bool -> max_resolution:int -> min_detection_score:float -> min_recognition_score:float -> model_name:string -> unit -> t
3457
3458 val enabled : t -> bool
3459
3460 val max_resolution : t -> int
3461
3462 val min_detection_score : t -> float
3463
3464 val min_recognition_score : t -> float
3465
3466 val model_name : t -> string
3467
3468 val jsont : t Jsont.t
3469 end
3470end
3471
3472module OauthTokenEndpointAuthMethod : sig
3473 module T : sig
3474 type t = [
3475 | `Client_secret_post
3476 | `Client_secret_basic
3477 ]
3478
3479 val jsont : t Jsont.t
3480 end
3481end
3482
3483module SystemConfigOauth : sig
3484 module Dto : sig
3485 type t
3486
3487 (** Construct a value *)
3488 val v : auto_launch:bool -> auto_register:bool -> button_text:string -> client_id:string -> client_secret:string -> enabled:bool -> issuer_url:string -> mobile_override_enabled:bool -> mobile_redirect_uri:string -> profile_signing_algorithm:string -> role_claim:string -> scope:string -> signing_algorithm:string -> storage_label_claim:string -> storage_quota_claim:string -> timeout:int -> token_endpoint_auth_method:OauthTokenEndpointAuthMethod.T.t -> ?default_storage_quota:int64 -> unit -> t
3489
3490 val auto_launch : t -> bool
3491
3492 val auto_register : t -> bool
3493
3494 val button_text : t -> string
3495
3496 val client_id : t -> string
3497
3498 val client_secret : t -> string
3499
3500 val default_storage_quota : t -> int64 option
3501
3502 val enabled : t -> bool
3503
3504 val issuer_url : t -> string
3505
3506 val mobile_override_enabled : t -> bool
3507
3508 val mobile_redirect_uri : t -> string
3509
3510 val profile_signing_algorithm : t -> string
3511
3512 val role_claim : t -> string
3513
3514 val scope : t -> string
3515
3516 val signing_algorithm : t -> string
3517
3518 val storage_label_claim : t -> string
3519
3520 val storage_quota_claim : t -> string
3521
3522 val timeout : t -> int
3523
3524 val token_endpoint_auth_method : t -> OauthTokenEndpointAuthMethod.T.t
3525
3526 val jsont : t Jsont.t
3527 end
3528end
3529
3530module OauthConfig : sig
3531 module Dto : sig
3532 type t
3533
3534 (** Construct a value *)
3535 val v : redirect_uri:string -> ?code_challenge:string -> ?state:string -> unit -> t
3536
3537 val code_challenge : t -> string option
3538
3539 val redirect_uri : t -> string
3540
3541 val state : t -> string option
3542
3543 val jsont : t Jsont.t
3544 end
3545end
3546
3547module OauthAuthorize : sig
3548 module ResponseDto : sig
3549 type t
3550
3551 (** Construct a value *)
3552 val v : url:string -> unit -> t
3553
3554 val url : t -> string
3555
3556 val jsont : t Jsont.t
3557 end
3558
3559 (** Start OAuth
3560
3561 Initiate the OAuth authorization process. *)
3562 val start_oauth : body:OauthConfig.Dto.t -> t -> unit -> ResponseDto.t
3563end
3564
3565module OauthCallback : sig
3566 module Dto : sig
3567 type t
3568
3569 (** Construct a value *)
3570 val v : url:string -> ?code_verifier:string -> ?state:string -> unit -> t
3571
3572 val code_verifier : t -> string option
3573
3574 val state : t -> string option
3575
3576 val url : t -> string
3577
3578 val jsont : t Jsont.t
3579 end
3580end
3581
3582module NotificationUpdateAll : sig
3583 module Dto : sig
3584 type t
3585
3586 (** Construct a value *)
3587 val v : ids:string list -> ?read_at:Ptime.t -> unit -> t
3588
3589 val ids : t -> string list
3590
3591 val read_at : t -> Ptime.t option
3592
3593 val jsont : t Jsont.t
3594 end
3595end
3596
3597module NotificationLevel : sig
3598 module T : sig
3599 type t = [
3600 | `Success
3601 | `Error
3602 | `Warning
3603 | `Info
3604 ]
3605
3606 val jsont : t Jsont.t
3607 end
3608end
3609
3610module Notification : sig
3611 module UpdateDto : sig
3612 type t
3613
3614 (** Construct a value *)
3615 val v : ?read_at:Ptime.t -> unit -> t
3616
3617 val read_at : t -> Ptime.t option
3618
3619 val jsont : t Jsont.t
3620 end
3621
3622 module Type : sig
3623 type t = [
3624 | `Job_failed
3625 | `Backup_failed
3626 | `System_message
3627 | `Album_invite
3628 | `Album_update
3629 | `Custom
3630 ]
3631
3632 val jsont : t Jsont.t
3633 end
3634
3635 module Dto : sig
3636 type t
3637
3638 (** Construct a value *)
3639 val v : created_at:Ptime.t -> id:string -> level:NotificationLevel.T.t -> title:string -> type_:Type.t -> ?data:Jsont.json -> ?description:string -> ?read_at:Ptime.t -> unit -> t
3640
3641 val created_at : t -> Ptime.t
3642
3643 val data : t -> Jsont.json option
3644
3645 val description : t -> string option
3646
3647 val id : t -> string
3648
3649 val level : t -> NotificationLevel.T.t
3650
3651 val read_at : t -> Ptime.t option
3652
3653 val title : t -> string
3654
3655 val type_ : t -> Type.t
3656
3657 val jsont : t Jsont.t
3658 end
3659
3660 module CreateDto : sig
3661 type t
3662
3663 (** Construct a value *)
3664 val v : title:string -> user_id:string -> ?data:Jsont.json -> ?description:string -> ?level:NotificationLevel.T.t -> ?read_at:Ptime.t -> ?type_:Type.t -> unit -> t
3665
3666 val data : t -> Jsont.json option
3667
3668 val description : t -> string option
3669
3670 val level : t -> NotificationLevel.T.t option
3671
3672 val read_at : t -> Ptime.t option
3673
3674 val title : t -> string
3675
3676 val type_ : t -> Type.t option
3677
3678 val user_id : t -> string
3679
3680 val jsont : t Jsont.t
3681 end
3682
3683 (** Create a notification
3684
3685 Create a new notification for a specific user. *)
3686 val create_notification : body:CreateDto.t -> t -> unit -> Dto.t
3687
3688 (** Retrieve notifications
3689
3690 Retrieve a list of notifications. *)
3691 val get_notifications : ?id:string -> ?level:string -> ?type_:string -> ?unread:string -> t -> unit -> Dto.t
3692
3693 (** Get a notification
3694
3695 Retrieve a specific notification identified by id. *)
3696 val get_notification : id:string -> t -> unit -> Dto.t
3697
3698 (** Update a notification
3699
3700 Update a specific notification to set its read status. *)
3701 val update_notification : id:string -> body:UpdateDto.t -> t -> unit -> Dto.t
3702end
3703
3704module NotificationDeleteAll : sig
3705 module Dto : sig
3706 type t
3707
3708 (** Construct a value *)
3709 val v : ids:string list -> unit -> t
3710
3711 val ids : t -> string list
3712
3713 val jsont : t Jsont.t
3714 end
3715end
3716
3717module MirrorAxis : sig
3718 module T : sig
3719 (** Axis to mirror along *)
3720 type t = [
3721 | `Horizontal
3722 | `Vertical
3723 ]
3724
3725 val jsont : t Jsont.t
3726 end
3727end
3728
3729module MirrorParameters : sig
3730 module T : sig
3731 type t
3732
3733 (** Construct a value
3734 @param axis Axis to mirror along
3735 *)
3736 val v : axis:MirrorAxis.T.t -> unit -> t
3737
3738 (** Axis to mirror along *)
3739 val axis : t -> MirrorAxis.T.t
3740
3741 val jsont : t Jsont.t
3742 end
3743end
3744
3745module MergePerson : sig
3746 module Dto : sig
3747 type t
3748
3749 (** Construct a value *)
3750 val v : ids:string list -> unit -> t
3751
3752 val ids : t -> string list
3753
3754 val jsont : t Jsont.t
3755 end
3756end
3757
3758module MemoryStatistics : sig
3759 module ResponseDto : sig
3760 type t
3761
3762 (** Construct a value *)
3763 val v : total:int -> unit -> t
3764
3765 val total : t -> int
3766
3767 val jsont : t Jsont.t
3768 end
3769
3770 (** Retrieve memories statistics
3771
3772 Retrieve statistics about memories, such as total count and other relevant metrics.
3773 @param size Number of memories to return
3774 *)
3775 val memories_statistics : ?for_:string -> ?is_saved:string -> ?is_trashed:string -> ?order:string -> ?size:string -> ?type_:string -> t -> unit -> ResponseDto.t
3776end
3777
3778module MemorySearchOrder : sig
3779 module T : sig
3780 type t = [
3781 | `Asc
3782 | `Desc
3783 | `Random
3784 ]
3785
3786 val jsont : t Jsont.t
3787 end
3788end
3789
3790module Memories : sig
3791 module Update : sig
3792 type t
3793
3794 (** Construct a value *)
3795 val v : ?duration:int -> ?enabled:bool -> unit -> t
3796
3797 val duration : t -> int option
3798
3799 val enabled : t -> bool option
3800
3801 val jsont : t Jsont.t
3802 end
3803
3804 module Response : sig
3805 type t
3806
3807 (** Construct a value *)
3808 val v : ?duration:int -> ?enabled:bool -> unit -> t
3809
3810 val duration : t -> int
3811
3812 val enabled : t -> bool
3813
3814 val jsont : t Jsont.t
3815 end
3816end
3817
3818module MapReverseGeocode : sig
3819 module ResponseDto : sig
3820 type t
3821
3822 (** Construct a value *)
3823 val v : ?city:string -> ?country:string -> ?state:string -> unit -> t
3824
3825 val city : t -> string option
3826
3827 val country : t -> string option
3828
3829 val state : t -> string option
3830
3831 val jsont : t Jsont.t
3832 end
3833
3834 (** Reverse geocode coordinates
3835
3836 Retrieve location information (e.g., city, country) for given latitude and longitude coordinates. *)
3837 val reverse_geocode : lat:string -> lon:string -> t -> unit -> ResponseDto.t
3838end
3839
3840module MapMarker : sig
3841 module ResponseDto : sig
3842 type t
3843
3844 (** Construct a value *)
3845 val v : id:string -> lat:float -> lon:float -> ?city:string -> ?country:string -> ?state:string -> unit -> t
3846
3847 val city : t -> string option
3848
3849 val country : t -> string option
3850
3851 val id : t -> string
3852
3853 val lat : t -> float
3854
3855 val lon : t -> float
3856
3857 val state : t -> string option
3858
3859 val jsont : t Jsont.t
3860 end
3861
3862 (** Retrieve map markers
3863
3864 Retrieve a list of latitude and longitude coordinates for every asset with location data. *)
3865 val get_map_markers : ?file_created_after:string -> ?file_created_before:string -> ?is_archived:string -> ?is_favorite:string -> ?with_partners:string -> ?with_shared_albums:string -> t -> unit -> ResponseDto.t
3866end
3867
3868module ManualJobName : sig
3869 module T : sig
3870 type t = [
3871 | `Person_cleanup
3872 | `Tag_cleanup
3873 | `User_cleanup
3874 | `Memory_cleanup
3875 | `Memory_create
3876 | `Backup_database
3877 ]
3878
3879 val jsont : t Jsont.t
3880 end
3881end
3882
3883module Job : sig
3884 module CreateDto : sig
3885 type t
3886
3887 (** Construct a value *)
3888 val v : name:ManualJobName.T.t -> unit -> t
3889
3890 val name : t -> ManualJobName.T.t
3891
3892 val jsont : t Jsont.t
3893 end
3894end
3895
3896module MaintenanceLogin : sig
3897 module Dto : sig
3898 type t
3899
3900 (** Construct a value *)
3901 val v : ?token:string -> unit -> t
3902
3903 val token : t -> string option
3904
3905 val jsont : t Jsont.t
3906 end
3907end
3908
3909module MaintenanceAuth : sig
3910 module Dto : sig
3911 type t
3912
3913 (** Construct a value *)
3914 val v : username:string -> unit -> t
3915
3916 val username : t -> string
3917
3918 val jsont : t Jsont.t
3919 end
3920
3921 (** Log into maintenance mode
3922
3923 Login with maintenance token or cookie to receive current information and perform further actions. *)
3924 val maintenance_login : body:MaintenanceLogin.Dto.t -> t -> unit -> Dto.t
3925end
3926
3927module MaintenanceAction : sig
3928 module T : sig
3929 type t = [
3930 | `Start
3931 | `End_
3932 | `Select_database_restore
3933 | `Restore_database
3934 ]
3935
3936 val jsont : t Jsont.t
3937 end
3938end
3939
3940module SetMaintenanceMode : sig
3941 module Dto : sig
3942 type t
3943
3944 (** Construct a value *)
3945 val v : action:MaintenanceAction.T.t -> ?restore_backup_filename:string -> unit -> t
3946
3947 val action : t -> MaintenanceAction.T.t
3948
3949 val restore_backup_filename : t -> string option
3950
3951 val jsont : t Jsont.t
3952 end
3953end
3954
3955module MaintenanceStatus : sig
3956 module ResponseDto : sig
3957 type t
3958
3959 (** Construct a value *)
3960 val v : action:MaintenanceAction.T.t -> active:bool -> ?error:string -> ?progress:float -> ?task:string -> unit -> t
3961
3962 val action : t -> MaintenanceAction.T.t
3963
3964 val active : t -> bool
3965
3966 val error : t -> string option
3967
3968 val progress : t -> float option
3969
3970 val task : t -> string option
3971
3972 val jsont : t Jsont.t
3973 end
3974
3975 (** Get maintenance mode status
3976
3977 Fetch information about the currently running maintenance action. *)
3978 val get_maintenance_status : t -> unit -> ResponseDto.t
3979end
3980
3981module MachineLearningAvailabilityChecks : sig
3982 module Dto : sig
3983 type t
3984
3985 (** Construct a value *)
3986 val v : enabled:bool -> interval:float -> timeout:float -> unit -> t
3987
3988 val enabled : t -> bool
3989
3990 val interval : t -> float
3991
3992 val timeout : t -> float
3993
3994 val jsont : t Jsont.t
3995 end
3996end
3997
3998module Logout : sig
3999 module ResponseDto : sig
4000 type t
4001
4002 (** Construct a value *)
4003 val v : redirect_uri:string -> successful:bool -> unit -> t
4004
4005 val redirect_uri : t -> string
4006
4007 val successful : t -> bool
4008
4009 val jsont : t Jsont.t
4010 end
4011
4012 (** Logout
4013
4014 Logout the current user and invalidate the session token. *)
4015 val logout : t -> unit -> ResponseDto.t
4016end
4017
4018module LoginCredential : sig
4019 module Dto : sig
4020 type t
4021
4022 (** Construct a value *)
4023 val v : email:string -> password:string -> unit -> t
4024
4025 val email : t -> string
4026
4027 val password : t -> string
4028
4029 val jsont : t Jsont.t
4030 end
4031end
4032
4033module Login : sig
4034 module ResponseDto : sig
4035 type t
4036
4037 (** Construct a value *)
4038 val v : access_token:string -> is_admin:bool -> is_onboarded:bool -> name:string -> profile_image_path:string -> should_change_password:bool -> user_email:string -> user_id:string -> unit -> t
4039
4040 val access_token : t -> string
4041
4042 val is_admin : t -> bool
4043
4044 val is_onboarded : t -> bool
4045
4046 val name : t -> string
4047
4048 val profile_image_path : t -> string
4049
4050 val should_change_password : t -> bool
4051
4052 val user_email : t -> string
4053
4054 val user_id : t -> string
4055
4056 val jsont : t Jsont.t
4057 end
4058
4059 (** Login
4060
4061 Login with username and password and receive a session token. *)
4062 val login : body:LoginCredential.Dto.t -> t -> unit -> ResponseDto.t
4063
4064 (** Finish OAuth
4065
4066 Complete the OAuth authorization process by exchanging the authorization code for a session token. *)
4067 val finish_oauth : body:OauthCallback.Dto.t -> t -> unit -> ResponseDto.t
4068end
4069
4070module LogLevel : sig
4071 module T : sig
4072 type t = [
4073 | `Verbose
4074 | `Debug
4075 | `Log
4076 | `Warn
4077 | `Error
4078 | `Fatal
4079 ]
4080
4081 val jsont : t Jsont.t
4082 end
4083end
4084
4085module SystemConfigLogging : sig
4086 module Dto : sig
4087 type t
4088
4089 (** Construct a value *)
4090 val v : enabled:bool -> level:LogLevel.T.t -> unit -> t
4091
4092 val enabled : t -> bool
4093
4094 val level : t -> LogLevel.T.t
4095
4096 val jsont : t Jsont.t
4097 end
4098end
4099
4100module LicenseKey : sig
4101 module Dto : sig
4102 type t
4103
4104 (** Construct a value *)
4105 val v : activation_key:string -> license_key:string -> unit -> t
4106
4107 val activation_key : t -> string
4108
4109 val license_key : t -> string
4110
4111 val jsont : t Jsont.t
4112 end
4113end
4114
4115module License : sig
4116 module ResponseDto : sig
4117 type t
4118
4119 (** Construct a value *)
4120 val v : activated_at:Ptime.t -> activation_key:string -> license_key:string -> unit -> t
4121
4122 val activated_at : t -> Ptime.t
4123
4124 val activation_key : t -> string
4125
4126 val license_key : t -> string
4127
4128 val jsont : t Jsont.t
4129 end
4130
4131 (** Get product key
4132
4133 Retrieve information about whether the server currently has a product key registered. *)
4134 val get_server_license : t -> unit -> ResponseDto.t
4135
4136 (** Set server product key
4137
4138 Validate and set the server product key if successful. *)
4139 val set_server_license : body:LicenseKey.Dto.t -> t -> unit -> ResponseDto.t
4140
4141 (** Retrieve user product key
4142
4143 Retrieve information about whether the current user has a registered product key. *)
4144 val get_user_license : t -> unit -> ResponseDto.t
4145
4146 (** Set user product key
4147
4148 Register a product key for the current user. *)
4149 val set_user_license : body:LicenseKey.Dto.t -> t -> unit -> ResponseDto.t
4150end
4151
4152module LibraryStats : sig
4153 module ResponseDto : sig
4154 type t
4155
4156 (** Construct a value *)
4157 val v : ?photos:int -> ?total:int -> ?usage:int64 -> ?videos:int -> unit -> t
4158
4159 val photos : t -> int
4160
4161 val total : t -> int
4162
4163 val usage : t -> int64
4164
4165 val videos : t -> int
4166
4167 val jsont : t Jsont.t
4168 end
4169
4170 (** Retrieve library statistics
4171
4172 Retrieve statistics for a specific external library, including number of videos, images, and storage usage. *)
4173 val get_library_statistics : id:string -> t -> unit -> ResponseDto.t
4174end
4175
4176module JobSettings : sig
4177 module Dto : sig
4178 type t
4179
4180 (** Construct a value *)
4181 val v : concurrency:int -> unit -> t
4182
4183 val concurrency : t -> int
4184
4185 val jsont : t Jsont.t
4186 end
4187end
4188
4189module SystemConfigJob : sig
4190 module Dto : sig
4191 type t
4192
4193 (** Construct a value *)
4194 val v : background_task:JobSettings.Dto.t -> editor:JobSettings.Dto.t -> face_detection:JobSettings.Dto.t -> library:JobSettings.Dto.t -> metadata_extraction:JobSettings.Dto.t -> migration:JobSettings.Dto.t -> notifications:JobSettings.Dto.t -> ocr:JobSettings.Dto.t -> search:JobSettings.Dto.t -> sidecar:JobSettings.Dto.t -> smart_search:JobSettings.Dto.t -> thumbnail_generation:JobSettings.Dto.t -> video_conversion:JobSettings.Dto.t -> workflow:JobSettings.Dto.t -> unit -> t
4195
4196 val background_task : t -> JobSettings.Dto.t
4197
4198 val editor : t -> JobSettings.Dto.t
4199
4200 val face_detection : t -> JobSettings.Dto.t
4201
4202 val library : t -> JobSettings.Dto.t
4203
4204 val metadata_extraction : t -> JobSettings.Dto.t
4205
4206 val migration : t -> JobSettings.Dto.t
4207
4208 val notifications : t -> JobSettings.Dto.t
4209
4210 val ocr : t -> JobSettings.Dto.t
4211
4212 val search : t -> JobSettings.Dto.t
4213
4214 val sidecar : t -> JobSettings.Dto.t
4215
4216 val smart_search : t -> JobSettings.Dto.t
4217
4218 val thumbnail_generation : t -> JobSettings.Dto.t
4219
4220 val video_conversion : t -> JobSettings.Dto.t
4221
4222 val workflow : t -> JobSettings.Dto.t
4223
4224 val jsont : t Jsont.t
4225 end
4226end
4227
4228module JobName : sig
4229 module T : sig
4230 type t = [
4231 | `Asset_delete
4232 | `Asset_delete_check
4233 | `Asset_detect_faces_queue_all
4234 | `Asset_detect_faces
4235 | `Asset_detect_duplicates_queue_all
4236 | `Asset_detect_duplicates
4237 | `Asset_edit_thumbnail_generation
4238 | `Asset_encode_video_queue_all
4239 | `Asset_encode_video
4240 | `Asset_empty_trash
4241 | `Asset_extract_metadata_queue_all
4242 | `Asset_extract_metadata
4243 | `Asset_file_migration
4244 | `Asset_generate_thumbnails_queue_all
4245 | `Asset_generate_thumbnails
4246 | `Audit_log_cleanup
4247 | `Audit_table_cleanup
4248 | `Database_backup
4249 | `Facial_recognition_queue_all
4250 | `Facial_recognition
4251 | `File_delete
4252 | `File_migration_queue_all
4253 | `Library_delete_check
4254 | `Library_delete
4255 | `Library_remove_asset
4256 | `Library_scan_assets_queue_all
4257 | `Library_sync_assets
4258 | `Library_sync_files_queue_all
4259 | `Library_sync_files
4260 | `Library_scan_queue_all
4261 | `Memory_cleanup
4262 | `Memory_generate
4263 | `Notifications_cleanup
4264 | `Notify_user_signup
4265 | `Notify_album_invite
4266 | `Notify_album_update
4267 | `User_delete
4268 | `User_delete_check
4269 | `User_sync_usage
4270 | `Person_cleanup
4271 | `Person_file_migration
4272 | `Person_generate_thumbnail
4273 | `Session_cleanup
4274 | `Send_mail
4275 | `Sidecar_queue_all
4276 | `Sidecar_check
4277 | `Sidecar_write
4278 | `Smart_search_queue_all
4279 | `Smart_search
4280 | `Storage_template_migration
4281 | `Storage_template_migration_single
4282 | `Tag_cleanup
4283 | `Version_check
4284 | `Ocr_queue_all
4285 | `Ocr
4286 | `Workflow_run
4287 ]
4288
4289 val jsont : t Jsont.t
4290 end
4291end
4292
4293module QueueJob : sig
4294 module Status : sig
4295 type t = [
4296 | `Active
4297 | `Failed
4298 | `Completed
4299 | `Delayed
4300 | `Waiting
4301 | `Paused
4302 ]
4303
4304 val jsont : t Jsont.t
4305 end
4306
4307 module ResponseDto : sig
4308 type t
4309
4310 (** Construct a value *)
4311 val v : data:Jsont.json -> name:JobName.T.t -> timestamp:int -> ?id:string -> unit -> t
4312
4313 val data : t -> Jsont.json
4314
4315 val id : t -> string option
4316
4317 val name : t -> JobName.T.t
4318
4319 val timestamp : t -> int
4320
4321 val jsont : t Jsont.t
4322 end
4323
4324 (** Retrieve queue jobs
4325
4326 Retrieves a list of queue jobs from the specified queue. *)
4327 val get_queue_jobs : name:string -> ?status:string -> t -> unit -> ResponseDto.t
4328end
4329
4330module ImageFormat : sig
4331 module T : sig
4332 type t = [
4333 | `Jpeg
4334 | `Webp
4335 ]
4336
4337 val jsont : t Jsont.t
4338 end
4339end
4340
4341module SystemConfigGeneratedImage : sig
4342 module Dto : sig
4343 type t
4344
4345 (** Construct a value *)
4346 val v : format:ImageFormat.T.t -> quality:int -> size:int -> ?progressive:bool -> unit -> t
4347
4348 val format : t -> ImageFormat.T.t
4349
4350 val progressive : t -> bool
4351
4352 val quality : t -> int
4353
4354 val size : t -> int
4355
4356 val jsont : t Jsont.t
4357 end
4358end
4359
4360module SystemConfigGeneratedFullsizeImage : sig
4361 module Dto : sig
4362 type t
4363
4364 (** Construct a value *)
4365 val v : enabled:bool -> format:ImageFormat.T.t -> quality:int -> ?progressive:bool -> unit -> t
4366
4367 val enabled : t -> bool
4368
4369 val format : t -> ImageFormat.T.t
4370
4371 val progressive : t -> bool
4372
4373 val quality : t -> int
4374
4375 val jsont : t Jsont.t
4376 end
4377end
4378
4379module Folders : sig
4380 module Update : sig
4381 type t
4382
4383 (** Construct a value *)
4384 val v : ?enabled:bool -> ?sidebar_web:bool -> unit -> t
4385
4386 val enabled : t -> bool option
4387
4388 val sidebar_web : t -> bool option
4389
4390 val jsont : t Jsont.t
4391 end
4392
4393 module Response : sig
4394 type t
4395
4396 (** Construct a value *)
4397 val v : ?enabled:bool -> ?sidebar_web:bool -> unit -> t
4398
4399 val enabled : t -> bool
4400
4401 val sidebar_web : t -> bool
4402
4403 val jsont : t Jsont.t
4404 end
4405end
4406
4407module FacialRecognition : sig
4408 module Config : sig
4409 type t
4410
4411 (** Construct a value *)
4412 val v : enabled:bool -> max_distance:float -> min_faces:int -> min_score:float -> model_name:string -> unit -> t
4413
4414 val enabled : t -> bool
4415
4416 val max_distance : t -> float
4417
4418 val min_faces : t -> int
4419
4420 val min_score : t -> float
4421
4422 val model_name : t -> string
4423
4424 val jsont : t Jsont.t
4425 end
4426end
4427
4428module Face : sig
4429 module Dto : sig
4430 type t
4431
4432 (** Construct a value *)
4433 val v : id:string -> unit -> t
4434
4435 val id : t -> string
4436
4437 val jsont : t Jsont.t
4438 end
4439end
4440
4441module Exif : sig
4442 module ResponseDto : sig
4443 type t
4444
4445 (** Construct a value *)
4446 val v : ?city:string option -> ?country:string option -> ?date_time_original:Ptime.t option -> ?description:string option -> ?exif_image_height:float option -> ?exif_image_width:float option -> ?exposure_time:string option -> ?f_number:float option -> ?file_size_in_byte:int64 option -> ?focal_length:float option -> ?iso:float option -> ?latitude:float option -> ?lens_model:string option -> ?longitude:float option -> ?make:string option -> ?model:string option -> ?modify_date:Ptime.t option -> ?orientation:string option -> ?projection_type:string option -> ?rating:float option -> ?state:string option -> ?time_zone:string option -> unit -> t
4447
4448 val city : t -> string option
4449
4450 val country : t -> string option
4451
4452 val date_time_original : t -> Ptime.t option
4453
4454 val description : t -> string option
4455
4456 val exif_image_height : t -> float option
4457
4458 val exif_image_width : t -> float option
4459
4460 val exposure_time : t -> string option
4461
4462 val f_number : t -> float option
4463
4464 val file_size_in_byte : t -> int64 option
4465
4466 val focal_length : t -> float option
4467
4468 val iso : t -> float option
4469
4470 val latitude : t -> float option
4471
4472 val lens_model : t -> string option
4473
4474 val longitude : t -> float option
4475
4476 val make : t -> string option
4477
4478 val model : t -> string option
4479
4480 val modify_date : t -> Ptime.t option
4481
4482 val orientation : t -> string option
4483
4484 val projection_type : t -> string option
4485
4486 val rating : t -> float option
4487
4488 val state : t -> string option
4489
4490 val time_zone : t -> string option
4491
4492 val jsont : t Jsont.t
4493 end
4494end
4495
4496module EmailNotifications : sig
4497 module Update : sig
4498 type t
4499
4500 (** Construct a value *)
4501 val v : ?album_invite:bool -> ?album_update:bool -> ?enabled:bool -> unit -> t
4502
4503 val album_invite : t -> bool option
4504
4505 val album_update : t -> bool option
4506
4507 val enabled : t -> bool option
4508
4509 val jsont : t Jsont.t
4510 end
4511
4512 module Response : sig
4513 type t
4514
4515 (** Construct a value *)
4516 val v : album_invite:bool -> album_update:bool -> enabled:bool -> unit -> t
4517
4518 val album_invite : t -> bool
4519
4520 val album_update : t -> bool
4521
4522 val enabled : t -> bool
4523
4524 val jsont : t Jsont.t
4525 end
4526end
4527
4528module DuplicateDetection : sig
4529 module Config : sig
4530 type t
4531
4532 (** Construct a value *)
4533 val v : enabled:bool -> max_distance:float -> unit -> t
4534
4535 val enabled : t -> bool
4536
4537 val max_distance : t -> float
4538
4539 val jsont : t Jsont.t
4540 end
4541end
4542
4543module DownloadInfo : sig
4544 module Dto : sig
4545 type t
4546
4547 (** Construct a value *)
4548 val v : ?album_id:string -> ?archive_size:int -> ?asset_ids:string list -> ?user_id:string -> unit -> t
4549
4550 val album_id : t -> string option
4551
4552 val archive_size : t -> int option
4553
4554 val asset_ids : t -> string list option
4555
4556 val user_id : t -> string option
4557
4558 val jsont : t Jsont.t
4559 end
4560end
4561
4562module DownloadArchive : sig
4563 module Info : sig
4564 type t
4565
4566 (** Construct a value *)
4567 val v : asset_ids:string list -> size:int -> unit -> t
4568
4569 val asset_ids : t -> string list
4570
4571 val size : t -> int
4572
4573 val jsont : t Jsont.t
4574 end
4575end
4576
4577module Download : sig
4578 module Update : sig
4579 type t
4580
4581 (** Construct a value *)
4582 val v : ?archive_size:int -> ?include_embedded_videos:bool -> unit -> t
4583
4584 val archive_size : t -> int option
4585
4586 val include_embedded_videos : t -> bool option
4587
4588 val jsont : t Jsont.t
4589 end
4590
4591 module ResponseDto : sig
4592 type t
4593
4594 (** Construct a value *)
4595 val v : archives:DownloadArchive.Info.t list -> total_size:int -> unit -> t
4596
4597 val archives : t -> DownloadArchive.Info.t list
4598
4599 val total_size : t -> int
4600
4601 val jsont : t Jsont.t
4602 end
4603
4604 module Response : sig
4605 type t
4606
4607 (** Construct a value *)
4608 val v : archive_size:int -> ?include_embedded_videos:bool -> unit -> t
4609
4610 val archive_size : t -> int
4611
4612 val include_embedded_videos : t -> bool
4613
4614 val jsont : t Jsont.t
4615 end
4616
4617 (** Retrieve download information
4618
4619 Retrieve information about how to request a download for the specified assets or album. The response includes groups of assets that can be downloaded together. *)
4620 val get_download_info : ?key:string -> ?slug:string -> body:DownloadInfo.Dto.t -> t -> unit -> ResponseDto.t
4621end
4622
4623module DatabaseBackupUpload : sig
4624 module Dto : sig
4625 type t
4626
4627 (** Construct a value *)
4628 val v : ?file:string -> unit -> t
4629
4630 val file : t -> string option
4631
4632 val jsont : t Jsont.t
4633 end
4634end
4635
4636module DatabaseBackupDelete : sig
4637 module Dto : sig
4638 type t
4639
4640 (** Construct a value *)
4641 val v : backups:string list -> unit -> t
4642
4643 val backups : t -> string list
4644
4645 val jsont : t Jsont.t
4646 end
4647end
4648
4649module DatabaseBackup : sig
4650 module Dto : sig
4651 type t
4652
4653 (** Construct a value *)
4654 val v : filename:string -> filesize:float -> unit -> t
4655
4656 val filename : t -> string
4657
4658 val filesize : t -> float
4659
4660 val jsont : t Jsont.t
4661 end
4662
4663 module Config : sig
4664 type t
4665
4666 (** Construct a value *)
4667 val v : cron_expression:string -> enabled:bool -> keep_last_amount:float -> unit -> t
4668
4669 val cron_expression : t -> string
4670
4671 val enabled : t -> bool
4672
4673 val keep_last_amount : t -> float
4674
4675 val jsont : t Jsont.t
4676 end
4677end
4678
4679module SystemConfigBackups : sig
4680 module Dto : sig
4681 type t
4682
4683 (** Construct a value *)
4684 val v : database:DatabaseBackup.Config.t -> unit -> t
4685
4686 val database : t -> DatabaseBackup.Config.t
4687
4688 val jsont : t Jsont.t
4689 end
4690end
4691
4692module DatabaseBackupList : sig
4693 module ResponseDto : sig
4694 type t
4695
4696 (** Construct a value *)
4697 val v : backups:DatabaseBackup.Dto.t list -> unit -> t
4698
4699 val backups : t -> DatabaseBackup.Dto.t list
4700
4701 val jsont : t Jsont.t
4702 end
4703
4704 (** List database backups
4705
4706 Get the list of the successful and failed backups *)
4707 val list_database_backups : t -> unit -> ResponseDto.t
4708end
4709
4710module CropParameters : sig
4711 module T : sig
4712 type t
4713
4714 (** Construct a value
4715 @param height Height of the crop
4716 @param width Width of the crop
4717 @param x Top-Left X coordinate of crop
4718 @param y Top-Left Y coordinate of crop
4719 *)
4720 val v : height:float -> width:float -> x:float -> y:float -> unit -> t
4721
4722 (** Height of the crop *)
4723 val height : t -> float
4724
4725 (** Width of the crop *)
4726 val width : t -> float
4727
4728 (** Top-Left X coordinate of crop *)
4729 val x : t -> float
4730
4731 (** Top-Left Y coordinate of crop *)
4732 val y : t -> float
4733
4734 val jsont : t Jsont.t
4735 end
4736end
4737
4738module CreateProfileImage : sig
4739 module ResponseDto : sig
4740 type t
4741
4742 (** Construct a value *)
4743 val v : profile_changed_at:Ptime.t -> profile_image_path:string -> user_id:string -> unit -> t
4744
4745 val profile_changed_at : t -> Ptime.t
4746
4747 val profile_image_path : t -> string
4748
4749 val user_id : t -> string
4750
4751 val jsont : t Jsont.t
4752 end
4753
4754 module Dto : sig
4755 type t
4756
4757 (** Construct a value *)
4758 val v : file:string -> unit -> t
4759
4760 val file : t -> string
4761
4762 val jsont : t Jsont.t
4763 end
4764
4765 (** Create user profile image
4766
4767 Upload and set a new profile image for the current user. *)
4768 val create_profile_image : t -> unit -> ResponseDto.t
4769end
4770
4771module CreateLibrary : sig
4772 module Dto : sig
4773 type t
4774
4775 (** Construct a value *)
4776 val v : owner_id:string -> ?exclusion_patterns:string list -> ?import_paths:string list -> ?name:string -> unit -> t
4777
4778 val exclusion_patterns : t -> string list option
4779
4780 val import_paths : t -> string list option
4781
4782 val name : t -> string option
4783
4784 val owner_id : t -> string
4785
4786 val jsont : t Jsont.t
4787 end
4788end
4789
4790module Library : sig
4791 module ResponseDto : sig
4792 type t
4793
4794 (** Construct a value *)
4795 val v : asset_count:int -> created_at:Ptime.t -> exclusion_patterns:string list -> id:string -> import_paths:string list -> name:string -> owner_id:string -> updated_at:Ptime.t -> ?refreshed_at:Ptime.t -> unit -> t
4796
4797 val asset_count : t -> int
4798
4799 val created_at : t -> Ptime.t
4800
4801 val exclusion_patterns : t -> string list
4802
4803 val id : t -> string
4804
4805 val import_paths : t -> string list
4806
4807 val name : t -> string
4808
4809 val owner_id : t -> string
4810
4811 val refreshed_at : t -> Ptime.t option
4812
4813 val updated_at : t -> Ptime.t
4814
4815 val jsont : t Jsont.t
4816 end
4817
4818 (** Retrieve libraries
4819
4820 Retrieve a list of external libraries. *)
4821 val get_all_libraries : t -> unit -> ResponseDto.t
4822
4823 (** Create a library
4824
4825 Create a new external library. *)
4826 val create_library : body:CreateLibrary.Dto.t -> t -> unit -> ResponseDto.t
4827
4828 (** Retrieve a library
4829
4830 Retrieve an external library by its ID. *)
4831 val get_library : id:string -> t -> unit -> ResponseDto.t
4832
4833 (** Update a library
4834
4835 Update an existing external library. *)
4836 val update_library : id:string -> body:UpdateLibrary.Dto.t -> t -> unit -> ResponseDto.t
4837end
4838
4839module Cqmode : sig
4840 module T : sig
4841 type t = [
4842 | `Auto
4843 | `Cqp
4844 | `Icq
4845 ]
4846
4847 val jsont : t Jsont.t
4848 end
4849end
4850
4851module ContributorCount : sig
4852 module ResponseDto : sig
4853 type t
4854
4855 (** Construct a value *)
4856 val v : asset_count:int -> user_id:string -> unit -> t
4857
4858 val asset_count : t -> int
4859
4860 val user_id : t -> string
4861
4862 val jsont : t Jsont.t
4863 end
4864end
4865
4866module Colorspace : sig
4867 module T : sig
4868 type t = [
4869 | `Srgb
4870 | `P3
4871 ]
4872
4873 val jsont : t Jsont.t
4874 end
4875end
4876
4877module SystemConfigImage : sig
4878 module Dto : sig
4879 type t
4880
4881 (** Construct a value *)
4882 val v : colorspace:Colorspace.T.t -> extract_embedded:bool -> fullsize:SystemConfigGeneratedFullsizeImage.Dto.t -> preview:SystemConfigGeneratedImage.Dto.t -> thumbnail:SystemConfigGeneratedImage.Dto.t -> unit -> t
4883
4884 val colorspace : t -> Colorspace.T.t
4885
4886 val extract_embedded : t -> bool
4887
4888 val fullsize : t -> SystemConfigGeneratedFullsizeImage.Dto.t
4889
4890 val preview : t -> SystemConfigGeneratedImage.Dto.t
4891
4892 val thumbnail : t -> SystemConfigGeneratedImage.Dto.t
4893
4894 val jsont : t Jsont.t
4895 end
4896end
4897
4898module Clip : sig
4899 module Config : sig
4900 type t
4901
4902 (** Construct a value *)
4903 val v : enabled:bool -> model_name:string -> unit -> t
4904
4905 val enabled : t -> bool
4906
4907 val model_name : t -> string
4908
4909 val jsont : t Jsont.t
4910 end
4911end
4912
4913module SystemConfigMachineLearning : sig
4914 module Dto : sig
4915 type t
4916
4917 (** Construct a value *)
4918 val v : availability_checks:MachineLearningAvailabilityChecks.Dto.t -> clip:Clip.Config.t -> duplicate_detection:DuplicateDetection.Config.t -> enabled:bool -> facial_recognition:FacialRecognition.Config.t -> ocr:Ocr.Config.t -> urls:string list -> unit -> t
4919
4920 val availability_checks : t -> MachineLearningAvailabilityChecks.Dto.t
4921
4922 val clip : t -> Clip.Config.t
4923
4924 val duplicate_detection : t -> DuplicateDetection.Config.t
4925
4926 val enabled : t -> bool
4927
4928 val facial_recognition : t -> FacialRecognition.Config.t
4929
4930 val ocr : t -> Ocr.Config.t
4931
4932 val urls : t -> string list
4933
4934 val jsont : t Jsont.t
4935 end
4936end
4937
4938module CheckExistingAssets : sig
4939 module ResponseDto : sig
4940 type t
4941
4942 (** Construct a value *)
4943 val v : existing_ids:string list -> unit -> t
4944
4945 val existing_ids : t -> string list
4946
4947 val jsont : t Jsont.t
4948 end
4949
4950 module Dto : sig
4951 type t
4952
4953 (** Construct a value *)
4954 val v : device_asset_ids:string list -> device_id:string -> unit -> t
4955
4956 val device_asset_ids : t -> string list
4957
4958 val device_id : t -> string
4959
4960 val jsont : t Jsont.t
4961 end
4962
4963 (** Check existing assets
4964
4965 Checks if multiple assets exist on the server and returns all existing - used by background backup *)
4966 val check_existing_assets : body:Dto.t -> t -> unit -> ResponseDto.t
4967end
4968
4969module ChangePassword : sig
4970 module Dto : sig
4971 type t
4972
4973 (** Construct a value *)
4974 val v : new_password:string -> password:string -> ?invalidate_sessions:bool -> unit -> t
4975
4976 val invalidate_sessions : t -> bool
4977
4978 val new_password : t -> string
4979
4980 val password : t -> string
4981
4982 val jsont : t Jsont.t
4983 end
4984end
4985
4986module UserAdmin : sig
4987 module UpdateDto : sig
4988 type t
4989
4990 (** Construct a value *)
4991 val v : ?avatar_color:UserAvatarColor.T.t -> ?email:string -> ?is_admin:bool -> ?name:string -> ?password:string -> ?pin_code:string -> ?quota_size_in_bytes:int64 -> ?should_change_password:bool -> ?storage_label:string -> unit -> t
4992
4993 val avatar_color : t -> UserAvatarColor.T.t option
4994
4995 val email : t -> string option
4996
4997 val is_admin : t -> bool option
4998
4999 val name : t -> string option
5000
5001 val password : t -> string option
5002
5003 val pin_code : t -> string option
5004
5005 val quota_size_in_bytes : t -> int64 option
5006
5007 val should_change_password : t -> bool option
5008
5009 val storage_label : t -> string option
5010
5011 val jsont : t Jsont.t
5012 end
5013
5014 module ResponseDto : sig
5015 type t
5016
5017 (** Construct a value *)
5018 val v : avatar_color:UserAvatarColor.T.t -> created_at:Ptime.t -> email:string -> id:string -> is_admin:bool -> license:UserLicense.T.t -> name:string -> oauth_id:string -> profile_changed_at:Ptime.t -> profile_image_path:string -> should_change_password:bool -> status:User.Status.t -> updated_at:Ptime.t -> ?deleted_at:Ptime.t -> ?quota_size_in_bytes:int64 -> ?quota_usage_in_bytes:int64 -> ?storage_label:string -> unit -> t
5019
5020 val avatar_color : t -> UserAvatarColor.T.t
5021
5022 val created_at : t -> Ptime.t
5023
5024 val deleted_at : t -> Ptime.t option
5025
5026 val email : t -> string
5027
5028 val id : t -> string
5029
5030 val is_admin : t -> bool
5031
5032 val license : t -> UserLicense.T.t
5033
5034 val name : t -> string
5035
5036 val oauth_id : t -> string
5037
5038 val profile_changed_at : t -> Ptime.t
5039
5040 val profile_image_path : t -> string
5041
5042 val quota_size_in_bytes : t -> int64 option
5043
5044 val quota_usage_in_bytes : t -> int64 option
5045
5046 val should_change_password : t -> bool
5047
5048 val status : t -> User.Status.t
5049
5050 val storage_label : t -> string option
5051
5052 val updated_at : t -> Ptime.t
5053
5054 val jsont : t Jsont.t
5055 end
5056
5057 module CreateDto : sig
5058 type t
5059
5060 (** Construct a value *)
5061 val v : email:string -> name:string -> password:string -> ?avatar_color:UserAvatarColor.T.t -> ?is_admin:bool -> ?notify:bool -> ?quota_size_in_bytes:int64 -> ?should_change_password:bool -> ?storage_label:string -> unit -> t
5062
5063 val avatar_color : t -> UserAvatarColor.T.t option
5064
5065 val email : t -> string
5066
5067 val is_admin : t -> bool option
5068
5069 val name : t -> string
5070
5071 val notify : t -> bool option
5072
5073 val password : t -> string
5074
5075 val quota_size_in_bytes : t -> int64 option
5076
5077 val should_change_password : t -> bool option
5078
5079 val storage_label : t -> string option
5080
5081 val jsont : t Jsont.t
5082 end
5083
5084 (** Search users
5085
5086 Search for users. *)
5087 val search_users_admin : ?id:string -> ?with_deleted:string -> t -> unit -> ResponseDto.t
5088
5089 (** Create a user
5090
5091 Create a new user. *)
5092 val create_user_admin : body:CreateDto.t -> t -> unit -> ResponseDto.t
5093
5094 (** Retrieve a user
5095
5096 Retrieve a specific user by their ID. *)
5097 val get_user_admin : id:string -> t -> unit -> ResponseDto.t
5098
5099 (** Update a user
5100
5101 Update an existing user. *)
5102 val update_user_admin : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
5103
5104 (** Delete a user
5105
5106 Delete a user. *)
5107 val delete_user_admin : id:string -> t -> unit -> ResponseDto.t
5108
5109 (** Restore a deleted user
5110
5111 Restore a previously deleted user. *)
5112 val restore_user_admin : id:string -> t -> unit -> ResponseDto.t
5113
5114 (** Register admin
5115
5116 Create the first admin user in the system. *)
5117 val sign_up_admin : body:SignUp.Dto.t -> t -> unit -> ResponseDto.t
5118
5119 (** Change password
5120
5121 Change the password of the current user. *)
5122 val change_password : body:ChangePassword.Dto.t -> t -> unit -> ResponseDto.t
5123
5124 (** Link OAuth account
5125
5126 Link an OAuth account to the authenticated user. *)
5127 val link_oauth_account : body:OauthCallback.Dto.t -> t -> unit -> ResponseDto.t
5128
5129 (** Unlink OAuth account
5130
5131 Unlink the OAuth account from the authenticated user. *)
5132 val unlink_oauth_account : t -> unit -> ResponseDto.t
5133
5134 (** Get current user
5135
5136 Retrieve information about the user making the API request. *)
5137 val get_my_user : t -> unit -> ResponseDto.t
5138
5139 (** Update current user
5140
5141 Update the current user making teh API request. *)
5142 val update_my_user : body:UserUpdateMe.Dto.t -> t -> unit -> ResponseDto.t
5143end
5144
5145module Cast : sig
5146 module Update : sig
5147 type t
5148
5149 (** Construct a value *)
5150 val v : ?g_cast_enabled:bool -> unit -> t
5151
5152 val g_cast_enabled : t -> bool option
5153
5154 val jsont : t Jsont.t
5155 end
5156
5157 module Response : sig
5158 type t
5159
5160 (** Construct a value *)
5161 val v : ?g_cast_enabled:bool -> unit -> t
5162
5163 val g_cast_enabled : t -> bool
5164
5165 val jsont : t Jsont.t
5166 end
5167end
5168
5169module BulkIds : sig
5170 module Dto : sig
5171 type t
5172
5173 (** Construct a value *)
5174 val v : ids:string list -> unit -> t
5175
5176 val ids : t -> string list
5177
5178 val jsont : t Jsont.t
5179 end
5180end
5181
5182module Trash : sig
5183 module ResponseDto : sig
5184 type t
5185
5186 (** Construct a value *)
5187 val v : count:int -> unit -> t
5188
5189 val count : t -> int
5190
5191 val jsont : t Jsont.t
5192 end
5193
5194 (** Empty trash
5195
5196 Permanently delete all items in the trash. *)
5197 val empty_trash : t -> unit -> ResponseDto.t
5198
5199 (** Restore trash
5200
5201 Restore all items in the trash. *)
5202 val restore_trash : t -> unit -> ResponseDto.t
5203
5204 (** Restore assets
5205
5206 Restore specific assets from the trash. *)
5207 val restore_assets : body:BulkIds.Dto.t -> t -> unit -> ResponseDto.t
5208end
5209
5210module BulkIdErrorReason : sig
5211 module T : sig
5212 type t = [
5213 | `Duplicate
5214 | `No_permission
5215 | `Not_found
5216 | `Unknown
5217 ]
5218
5219 val jsont : t Jsont.t
5220 end
5221end
5222
5223module AlbumsAddAssets : sig
5224 module ResponseDto : sig
5225 type t
5226
5227 (** Construct a value *)
5228 val v : success:bool -> ?error:BulkIdErrorReason.T.t -> unit -> t
5229
5230 val error : t -> BulkIdErrorReason.T.t option
5231
5232 val success : t -> bool
5233
5234 val jsont : t Jsont.t
5235 end
5236
5237 module Dto : sig
5238 type t
5239
5240 (** Construct a value *)
5241 val v : album_ids:string list -> asset_ids:string list -> unit -> t
5242
5243 val album_ids : t -> string list
5244
5245 val asset_ids : t -> string list
5246
5247 val jsont : t Jsont.t
5248 end
5249
5250 (** Add assets to albums
5251
5252 Send a list of asset IDs and album IDs to add each asset to each album. *)
5253 val add_assets_to_albums : ?key:string -> ?slug:string -> body:Dto.t -> t -> unit -> ResponseDto.t
5254end
5255
5256module AuthStatus : sig
5257 module ResponseDto : sig
5258 type t
5259
5260 (** Construct a value *)
5261 val v : is_elevated:bool -> password:bool -> pin_code:bool -> ?expires_at:string -> ?pin_expires_at:string -> unit -> t
5262
5263 val expires_at : t -> string option
5264
5265 val is_elevated : t -> bool
5266
5267 val password : t -> bool
5268
5269 val pin_code : t -> bool
5270
5271 val pin_expires_at : t -> string option
5272
5273 val jsont : t Jsont.t
5274 end
5275
5276 (** Retrieve auth status
5277
5278 Get information about the current session, including whether the user has a password, and if the session can access locked assets. *)
5279 val get_auth_status : t -> unit -> ResponseDto.t
5280end
5281
5282module AudioCodec : sig
5283 module T : sig
5284 type t = [
5285 | `Mp3
5286 | `Aac
5287 | `Libopus
5288 | `Pcm_s16le
5289 ]
5290
5291 val jsont : t Jsont.t
5292 end
5293end
5294
5295module SystemConfigFfmpeg : sig
5296 module Dto : sig
5297 type t
5298
5299 (** Construct a value *)
5300 val v : accel:TranscodeHwaccel.T.t -> accel_decode:bool -> accepted_audio_codecs:AudioCodec.T.t list -> accepted_containers:VideoContainer.T.t list -> accepted_video_codecs:VideoCodec.T.t list -> bframes:int -> cq_mode:Cqmode.T.t -> crf:int -> gop_size:int -> max_bitrate:string -> preferred_hw_device:string -> preset:string -> refs:int -> target_audio_codec:AudioCodec.T.t -> target_resolution:string -> target_video_codec:VideoCodec.T.t -> temporal_aq:bool -> threads:int -> tonemap:ToneMapping.T.t -> transcode:TranscodePolicy.T.t -> two_pass:bool -> unit -> t
5301
5302 val accel : t -> TranscodeHwaccel.T.t
5303
5304 val accel_decode : t -> bool
5305
5306 val accepted_audio_codecs : t -> AudioCodec.T.t list
5307
5308 val accepted_containers : t -> VideoContainer.T.t list
5309
5310 val accepted_video_codecs : t -> VideoCodec.T.t list
5311
5312 val bframes : t -> int
5313
5314 val cq_mode : t -> Cqmode.T.t
5315
5316 val crf : t -> int
5317
5318 val gop_size : t -> int
5319
5320 val max_bitrate : t -> string
5321
5322 val preferred_hw_device : t -> string
5323
5324 val preset : t -> string
5325
5326 val refs : t -> int
5327
5328 val target_audio_codec : t -> AudioCodec.T.t
5329
5330 val target_resolution : t -> string
5331
5332 val target_video_codec : t -> VideoCodec.T.t
5333
5334 val temporal_aq : t -> bool
5335
5336 val threads : t -> int
5337
5338 val tonemap : t -> ToneMapping.T.t
5339
5340 val transcode : t -> TranscodePolicy.T.t
5341
5342 val two_pass : t -> bool
5343
5344 val jsont : t Jsont.t
5345 end
5346end
5347
5348module SystemConfig : sig
5349 module Dto : sig
5350 type t
5351
5352 (** Construct a value *)
5353 val v : backup:SystemConfigBackups.Dto.t -> ffmpeg:SystemConfigFfmpeg.Dto.t -> image:SystemConfigImage.Dto.t -> job:SystemConfigJob.Dto.t -> library:SystemConfigLibrary.Dto.t -> logging:SystemConfigLogging.Dto.t -> machine_learning:SystemConfigMachineLearning.Dto.t -> map:SystemConfigMap.Dto.t -> metadata:SystemConfigMetadata.Dto.t -> new_version_check:SystemConfigNewVersionCheck.Dto.t -> nightly_tasks:SystemConfigNightlyTasks.Dto.t -> notifications:SystemConfigNotifications.Dto.t -> oauth:SystemConfigOauth.Dto.t -> password_login:SystemConfigPasswordLogin.Dto.t -> reverse_geocoding:SystemConfigReverseGeocoding.Dto.t -> server:SystemConfigServer.Dto.t -> storage_template:SystemConfigStorageTemplate.Dto.t -> templates:SystemConfigTemplates.Dto.t -> theme:SystemConfigTheme.Dto.t -> trash:SystemConfigTrash.Dto.t -> user:SystemConfigUser.Dto.t -> unit -> t
5354
5355 val backup : t -> SystemConfigBackups.Dto.t
5356
5357 val ffmpeg : t -> SystemConfigFfmpeg.Dto.t
5358
5359 val image : t -> SystemConfigImage.Dto.t
5360
5361 val job : t -> SystemConfigJob.Dto.t
5362
5363 val library : t -> SystemConfigLibrary.Dto.t
5364
5365 val logging : t -> SystemConfigLogging.Dto.t
5366
5367 val machine_learning : t -> SystemConfigMachineLearning.Dto.t
5368
5369 val map : t -> SystemConfigMap.Dto.t
5370
5371 val metadata : t -> SystemConfigMetadata.Dto.t
5372
5373 val new_version_check : t -> SystemConfigNewVersionCheck.Dto.t
5374
5375 val nightly_tasks : t -> SystemConfigNightlyTasks.Dto.t
5376
5377 val notifications : t -> SystemConfigNotifications.Dto.t
5378
5379 val oauth : t -> SystemConfigOauth.Dto.t
5380
5381 val password_login : t -> SystemConfigPasswordLogin.Dto.t
5382
5383 val reverse_geocoding : t -> SystemConfigReverseGeocoding.Dto.t
5384
5385 val server : t -> SystemConfigServer.Dto.t
5386
5387 val storage_template : t -> SystemConfigStorageTemplate.Dto.t
5388
5389 val templates : t -> SystemConfigTemplates.Dto.t
5390
5391 val theme : t -> SystemConfigTheme.Dto.t
5392
5393 val trash : t -> SystemConfigTrash.Dto.t
5394
5395 val user : t -> SystemConfigUser.Dto.t
5396
5397 val jsont : t Jsont.t
5398 end
5399
5400 (** Get system configuration
5401
5402 Retrieve the current system configuration. *)
5403 val get_config : t -> unit -> Dto.t
5404
5405 (** Update system configuration
5406
5407 Update the system configuration with a new system configuration. *)
5408 val update_config : body:Dto.t -> t -> unit -> Dto.t
5409
5410 (** Get system configuration defaults
5411
5412 Retrieve the default values for the system configuration. *)
5413 val get_config_defaults : t -> unit -> Dto.t
5414end
5415
5416module AssetVisibility : sig
5417 module T : sig
5418 type t = [
5419 | `Archive
5420 | `Timeline
5421 | `Hidden
5422 | `Locked
5423 ]
5424
5425 val jsont : t Jsont.t
5426 end
5427end
5428
5429module UpdateAsset : sig
5430 module Dto : sig
5431 type t
5432
5433 (** Construct a value *)
5434 val v : ?date_time_original:string -> ?description:string -> ?is_favorite:bool -> ?latitude:float -> ?live_photo_video_id:string -> ?longitude:float -> ?rating:float -> ?visibility:AssetVisibility.T.t -> unit -> t
5435
5436 val date_time_original : t -> string option
5437
5438 val description : t -> string option
5439
5440 val is_favorite : t -> bool option
5441
5442 val latitude : t -> float option
5443
5444 val live_photo_video_id : t -> string option
5445
5446 val longitude : t -> float option
5447
5448 val rating : t -> float option
5449
5450 val visibility : t -> AssetVisibility.T.t option
5451
5452 val jsont : t Jsont.t
5453 end
5454end
5455
5456module TimeBucketAsset : sig
5457 module ResponseDto : sig
5458 type t
5459
5460 (** Construct a value
5461 @param city Array of city names extracted from EXIF GPS data
5462 @param country Array of country names extracted from EXIF GPS data
5463 @param duration Array of video durations in HH:MM:SS format (null for images)
5464 @param file_created_at Array of file creation timestamps in UTC (ISO 8601 format, without timezone)
5465 @param id Array of asset IDs in the time bucket
5466 @param is_favorite Array indicating whether each asset is favorited
5467 @param is_image Array indicating whether each asset is an image (false for videos)
5468 @param is_trashed Array indicating whether each asset is in the trash
5469 @param live_photo_video_id Array of live photo video asset IDs (null for non-live photos)
5470 @param local_offset_hours Array of UTC offset hours at the time each photo was taken. Positive values are east of UTC, negative values are west of UTC. Values may be fractional (e.g., 5.5 for +05:30, -9.75 for -09:45). Applying this offset to 'fileCreatedAt' will give you the time the photo was taken from the photographer's perspective.
5471 @param owner_id Array of owner IDs for each asset
5472 @param projection_type Array of projection types for 360° content (e.g., "EQUIRECTANGULAR", "CUBEFACE", "CYLINDRICAL")
5473 @param ratio Array of aspect ratios (width/height) for each asset
5474 @param thumbhash Array of BlurHash strings for generating asset previews (base64 encoded)
5475 @param visibility Array of visibility statuses for each asset (e.g., ARCHIVE, TIMELINE, HIDDEN, LOCKED)
5476 @param latitude Array of latitude coordinates extracted from EXIF GPS data
5477 @param longitude Array of longitude coordinates extracted from EXIF GPS data
5478 @param stack Array of stack information as [stackId, assetCount] tuples (null for non-stacked assets)
5479 *)
5480 val v : city:string list -> country:string list -> duration:string list -> file_created_at:string list -> id:string list -> is_favorite:bool list -> is_image:bool list -> is_trashed:bool list -> live_photo_video_id:string list -> local_offset_hours:float list -> owner_id:string list -> projection_type:string list -> ratio:float list -> thumbhash:string list -> visibility:AssetVisibility.T.t list -> ?latitude:float list -> ?longitude:float list -> ?stack:string list list -> unit -> t
5481
5482 (** Array of city names extracted from EXIF GPS data *)
5483 val city : t -> string list
5484
5485 (** Array of country names extracted from EXIF GPS data *)
5486 val country : t -> string list
5487
5488 (** Array of video durations in HH:MM:SS format (null for images) *)
5489 val duration : t -> string list
5490
5491 (** Array of file creation timestamps in UTC (ISO 8601 format, without timezone) *)
5492 val file_created_at : t -> string list
5493
5494 (** Array of asset IDs in the time bucket *)
5495 val id : t -> string list
5496
5497 (** Array indicating whether each asset is favorited *)
5498 val is_favorite : t -> bool list
5499
5500 (** Array indicating whether each asset is an image (false for videos) *)
5501 val is_image : t -> bool list
5502
5503 (** Array indicating whether each asset is in the trash *)
5504 val is_trashed : t -> bool list
5505
5506 (** Array of latitude coordinates extracted from EXIF GPS data *)
5507 val latitude : t -> float list option
5508
5509 (** Array of live photo video asset IDs (null for non-live photos) *)
5510 val live_photo_video_id : t -> string list
5511
5512 (** Array of UTC offset hours at the time each photo was taken. Positive values are east of UTC, negative values are west of UTC. Values may be fractional (e.g., 5.5 for +05:30, -9.75 for -09:45). Applying this offset to 'fileCreatedAt' will give you the time the photo was taken from the photographer's perspective. *)
5513 val local_offset_hours : t -> float list
5514
5515 (** Array of longitude coordinates extracted from EXIF GPS data *)
5516 val longitude : t -> float list option
5517
5518 (** Array of owner IDs for each asset *)
5519 val owner_id : t -> string list
5520
5521 (** Array of projection types for 360° content (e.g., "EQUIRECTANGULAR", "CUBEFACE", "CYLINDRICAL") *)
5522 val projection_type : t -> string list
5523
5524 (** Array of aspect ratios (width/height) for each asset *)
5525 val ratio : t -> float list
5526
5527 (** Array of stack information as [stackId, assetCount] tuples (null for non-stacked assets) *)
5528 val stack : t -> string list list option
5529
5530 (** Array of BlurHash strings for generating asset previews (base64 encoded) *)
5531 val thumbhash : t -> string list
5532
5533 (** Array of visibility statuses for each asset (e.g., ARCHIVE, TIMELINE, HIDDEN, LOCKED) *)
5534 val visibility : t -> AssetVisibility.T.t list
5535
5536 val jsont : t Jsont.t
5537 end
5538
5539 (** Get time bucket
5540
5541 Retrieve a string of all asset ids in a given time bucket.
5542 @param album_id Filter assets belonging to a specific album
5543 @param is_favorite Filter by favorite status (true for favorites only, false for non-favorites only)
5544 @param is_trashed Filter by trash status (true for trashed assets only, false for non-trashed only)
5545 @param order Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)
5546 @param person_id Filter assets containing a specific person (face recognition)
5547 @param tag_id Filter assets with a specific tag
5548 @param time_bucket Time bucket identifier in YYYY-MM-DD format (e.g., "2024-01-01" for January 2024)
5549 @param user_id Filter assets by specific user ID
5550 @param visibility Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)
5551 @param with_coordinates Include location data in the response
5552 @param with_partners Include assets shared by partners
5553 @param with_stacked Include stacked assets in the response. When true, only primary assets from stacks are returned.
5554 *)
5555 val get_time_bucket : ?album_id:string -> ?is_favorite:string -> ?is_trashed:string -> ?key:string -> ?order:string -> ?person_id:string -> ?slug:string -> ?tag_id:string -> time_bucket:string -> ?user_id:string -> ?visibility:string -> ?with_coordinates:string -> ?with_partners:string -> ?with_stacked:string -> t -> unit -> ResponseDto.t
5556end
5557
5558module AssetBulk : sig
5559 module UpdateDto : sig
5560 type t
5561
5562 (** Construct a value *)
5563 val v : ids:string list -> ?date_time_original:string -> ?date_time_relative:float -> ?description:string -> ?duplicate_id:string -> ?is_favorite:bool -> ?latitude:float -> ?longitude:float -> ?rating:float -> ?time_zone:string -> ?visibility:AssetVisibility.T.t -> unit -> t
5564
5565 val date_time_original : t -> string option
5566
5567 val date_time_relative : t -> float option
5568
5569 val description : t -> string option
5570
5571 val duplicate_id : t -> string option
5572
5573 val ids : t -> string list
5574
5575 val is_favorite : t -> bool option
5576
5577 val latitude : t -> float option
5578
5579 val longitude : t -> float option
5580
5581 val rating : t -> float option
5582
5583 val time_zone : t -> string option
5584
5585 val visibility : t -> AssetVisibility.T.t option
5586
5587 val jsont : t Jsont.t
5588 end
5589end
5590
5591module AssetTypeEnum : sig
5592 module T : sig
5593 type t = [
5594 | `Image
5595 | `Video
5596 | `Audio
5597 | `Other
5598 ]
5599
5600 val jsont : t Jsont.t
5601 end
5602end
5603
5604module SyncAssetV1 : sig
5605 module T : sig
5606 type t
5607
5608 (** Construct a value *)
5609 val v : checksum:string -> id:string -> is_edited:bool -> is_favorite:bool -> original_file_name:string -> owner_id:string -> type_:AssetTypeEnum.T.t -> visibility:AssetVisibility.T.t -> ?deleted_at:Ptime.t -> ?duration:string -> ?file_created_at:Ptime.t -> ?file_modified_at:Ptime.t -> ?height:int -> ?library_id:string -> ?live_photo_video_id:string -> ?local_date_time:Ptime.t -> ?stack_id:string -> ?thumbhash:string -> ?width:int -> unit -> t
5610
5611 val checksum : t -> string
5612
5613 val deleted_at : t -> Ptime.t option
5614
5615 val duration : t -> string option
5616
5617 val file_created_at : t -> Ptime.t option
5618
5619 val file_modified_at : t -> Ptime.t option
5620
5621 val height : t -> int option
5622
5623 val id : t -> string
5624
5625 val is_edited : t -> bool
5626
5627 val is_favorite : t -> bool
5628
5629 val library_id : t -> string option
5630
5631 val live_photo_video_id : t -> string option
5632
5633 val local_date_time : t -> Ptime.t option
5634
5635 val original_file_name : t -> string
5636
5637 val owner_id : t -> string
5638
5639 val stack_id : t -> string option
5640
5641 val thumbhash : t -> string option
5642
5643 val type_ : t -> AssetTypeEnum.T.t
5644
5645 val visibility : t -> AssetVisibility.T.t
5646
5647 val width : t -> int option
5648
5649 val jsont : t Jsont.t
5650 end
5651end
5652
5653module StatisticsSearch : sig
5654 module Dto : sig
5655 type t
5656
5657 (** Construct a value *)
5658 val v : ?album_ids:string list -> ?city:string -> ?country:string -> ?created_after:Ptime.t -> ?created_before:Ptime.t -> ?description:string -> ?device_id:string -> ?is_encoded:bool -> ?is_favorite:bool -> ?is_motion:bool -> ?is_not_in_album:bool -> ?is_offline:bool -> ?lens_model:string -> ?library_id:string -> ?make:string -> ?model:string -> ?ocr:string -> ?person_ids:string list -> ?rating:float -> ?state:string -> ?tag_ids:string list -> ?taken_after:Ptime.t -> ?taken_before:Ptime.t -> ?trashed_after:Ptime.t -> ?trashed_before:Ptime.t -> ?type_:AssetTypeEnum.T.t -> ?updated_after:Ptime.t -> ?updated_before:Ptime.t -> ?visibility:AssetVisibility.T.t -> unit -> t
5659
5660 val album_ids : t -> string list option
5661
5662 val city : t -> string option
5663
5664 val country : t -> string option
5665
5666 val created_after : t -> Ptime.t option
5667
5668 val created_before : t -> Ptime.t option
5669
5670 val description : t -> string option
5671
5672 val device_id : t -> string option
5673
5674 val is_encoded : t -> bool option
5675
5676 val is_favorite : t -> bool option
5677
5678 val is_motion : t -> bool option
5679
5680 val is_not_in_album : t -> bool option
5681
5682 val is_offline : t -> bool option
5683
5684 val lens_model : t -> string option
5685
5686 val library_id : t -> string option
5687
5688 val make : t -> string option
5689
5690 val model : t -> string option
5691
5692 val ocr : t -> string option
5693
5694 val person_ids : t -> string list option
5695
5696 val rating : t -> float option
5697
5698 val state : t -> string option
5699
5700 val tag_ids : t -> string list option
5701
5702 val taken_after : t -> Ptime.t option
5703
5704 val taken_before : t -> Ptime.t option
5705
5706 val trashed_after : t -> Ptime.t option
5707
5708 val trashed_before : t -> Ptime.t option
5709
5710 val type_ : t -> AssetTypeEnum.T.t option
5711
5712 val updated_after : t -> Ptime.t option
5713
5714 val updated_before : t -> Ptime.t option
5715
5716 val visibility : t -> AssetVisibility.T.t option
5717
5718 val jsont : t Jsont.t
5719 end
5720end
5721
5722module SearchStatistics : sig
5723 module ResponseDto : sig
5724 type t
5725
5726 (** Construct a value *)
5727 val v : total:int -> unit -> t
5728
5729 val total : t -> int
5730
5731 val jsont : t Jsont.t
5732 end
5733
5734 (** Search asset statistics
5735
5736 Retrieve statistical data about assets based on search criteria, such as the total matching count. *)
5737 val search_asset_statistics : body:StatisticsSearch.Dto.t -> t -> unit -> ResponseDto.t
5738end
5739
5740module SmartSearch : sig
5741 module Dto : sig
5742 type t
5743
5744 (** Construct a value *)
5745 val v : ?album_ids:string list -> ?city:string -> ?country:string -> ?created_after:Ptime.t -> ?created_before:Ptime.t -> ?device_id:string -> ?is_encoded:bool -> ?is_favorite:bool -> ?is_motion:bool -> ?is_not_in_album:bool -> ?is_offline:bool -> ?language:string -> ?lens_model:string -> ?library_id:string -> ?make:string -> ?model:string -> ?ocr:string -> ?page:float -> ?person_ids:string list -> ?query:string -> ?query_asset_id:string -> ?rating:float -> ?size:float -> ?state:string -> ?tag_ids:string list -> ?taken_after:Ptime.t -> ?taken_before:Ptime.t -> ?trashed_after:Ptime.t -> ?trashed_before:Ptime.t -> ?type_:AssetTypeEnum.T.t -> ?updated_after:Ptime.t -> ?updated_before:Ptime.t -> ?visibility:AssetVisibility.T.t -> ?with_deleted:bool -> ?with_exif:bool -> unit -> t
5746
5747 val album_ids : t -> string list option
5748
5749 val city : t -> string option
5750
5751 val country : t -> string option
5752
5753 val created_after : t -> Ptime.t option
5754
5755 val created_before : t -> Ptime.t option
5756
5757 val device_id : t -> string option
5758
5759 val is_encoded : t -> bool option
5760
5761 val is_favorite : t -> bool option
5762
5763 val is_motion : t -> bool option
5764
5765 val is_not_in_album : t -> bool option
5766
5767 val is_offline : t -> bool option
5768
5769 val language : t -> string option
5770
5771 val lens_model : t -> string option
5772
5773 val library_id : t -> string option
5774
5775 val make : t -> string option
5776
5777 val model : t -> string option
5778
5779 val ocr : t -> string option
5780
5781 val page : t -> float option
5782
5783 val person_ids : t -> string list option
5784
5785 val query : t -> string option
5786
5787 val query_asset_id : t -> string option
5788
5789 val rating : t -> float option
5790
5791 val size : t -> float option
5792
5793 val state : t -> string option
5794
5795 val tag_ids : t -> string list option
5796
5797 val taken_after : t -> Ptime.t option
5798
5799 val taken_before : t -> Ptime.t option
5800
5801 val trashed_after : t -> Ptime.t option
5802
5803 val trashed_before : t -> Ptime.t option
5804
5805 val type_ : t -> AssetTypeEnum.T.t option
5806
5807 val updated_after : t -> Ptime.t option
5808
5809 val updated_before : t -> Ptime.t option
5810
5811 val visibility : t -> AssetVisibility.T.t option
5812
5813 val with_deleted : t -> bool option
5814
5815 val with_exif : t -> bool option
5816
5817 val jsont : t Jsont.t
5818 end
5819end
5820
5821module RandomSearch : sig
5822 module Dto : sig
5823 type t
5824
5825 (** Construct a value *)
5826 val v : ?album_ids:string list -> ?city:string -> ?country:string -> ?created_after:Ptime.t -> ?created_before:Ptime.t -> ?device_id:string -> ?is_encoded:bool -> ?is_favorite:bool -> ?is_motion:bool -> ?is_not_in_album:bool -> ?is_offline:bool -> ?lens_model:string -> ?library_id:string -> ?make:string -> ?model:string -> ?ocr:string -> ?person_ids:string list -> ?rating:float -> ?size:float -> ?state:string -> ?tag_ids:string list -> ?taken_after:Ptime.t -> ?taken_before:Ptime.t -> ?trashed_after:Ptime.t -> ?trashed_before:Ptime.t -> ?type_:AssetTypeEnum.T.t -> ?updated_after:Ptime.t -> ?updated_before:Ptime.t -> ?visibility:AssetVisibility.T.t -> ?with_deleted:bool -> ?with_exif:bool -> ?with_people:bool -> ?with_stacked:bool -> unit -> t
5827
5828 val album_ids : t -> string list option
5829
5830 val city : t -> string option
5831
5832 val country : t -> string option
5833
5834 val created_after : t -> Ptime.t option
5835
5836 val created_before : t -> Ptime.t option
5837
5838 val device_id : t -> string option
5839
5840 val is_encoded : t -> bool option
5841
5842 val is_favorite : t -> bool option
5843
5844 val is_motion : t -> bool option
5845
5846 val is_not_in_album : t -> bool option
5847
5848 val is_offline : t -> bool option
5849
5850 val lens_model : t -> string option
5851
5852 val library_id : t -> string option
5853
5854 val make : t -> string option
5855
5856 val model : t -> string option
5857
5858 val ocr : t -> string option
5859
5860 val person_ids : t -> string list option
5861
5862 val rating : t -> float option
5863
5864 val size : t -> float option
5865
5866 val state : t -> string option
5867
5868 val tag_ids : t -> string list option
5869
5870 val taken_after : t -> Ptime.t option
5871
5872 val taken_before : t -> Ptime.t option
5873
5874 val trashed_after : t -> Ptime.t option
5875
5876 val trashed_before : t -> Ptime.t option
5877
5878 val type_ : t -> AssetTypeEnum.T.t option
5879
5880 val updated_after : t -> Ptime.t option
5881
5882 val updated_before : t -> Ptime.t option
5883
5884 val visibility : t -> AssetVisibility.T.t option
5885
5886 val with_deleted : t -> bool option
5887
5888 val with_exif : t -> bool option
5889
5890 val with_people : t -> bool option
5891
5892 val with_stacked : t -> bool option
5893
5894 val jsont : t Jsont.t
5895 end
5896end
5897
5898module AssetStats : sig
5899 module ResponseDto : sig
5900 type t
5901
5902 (** Construct a value *)
5903 val v : images:int -> total:int -> videos:int -> unit -> t
5904
5905 val images : t -> int
5906
5907 val total : t -> int
5908
5909 val videos : t -> int
5910
5911 val jsont : t Jsont.t
5912 end
5913
5914 (** Retrieve user statistics
5915
5916 Retrieve asset statistics for a specific user. *)
5917 val get_user_statistics_admin : id:string -> ?is_favorite:string -> ?is_trashed:string -> ?visibility:string -> t -> unit -> ResponseDto.t
5918
5919 (** Get asset statistics
5920
5921 Retrieve various statistics about the assets owned by the authenticated user. *)
5922 val get_asset_statistics : ?is_favorite:string -> ?is_trashed:string -> ?visibility:string -> t -> unit -> ResponseDto.t
5923end
5924
5925module AssetStack : sig
5926 module ResponseDto : sig
5927 type t
5928
5929 (** Construct a value *)
5930 val v : asset_count:int -> id:string -> primary_asset_id:string -> unit -> t
5931
5932 val asset_count : t -> int
5933
5934 val id : t -> string
5935
5936 val primary_asset_id : t -> string
5937
5938 val jsont : t Jsont.t
5939 end
5940end
5941
5942module AssetOrder : sig
5943 module T : sig
5944 type t = [
5945 | `Asc
5946 | `Desc
5947 ]
5948
5949 val jsont : t Jsont.t
5950 end
5951end
5952
5953module UpdateAlbum : sig
5954 module Dto : sig
5955 type t
5956
5957 (** Construct a value *)
5958 val v : ?album_name:string -> ?album_thumbnail_asset_id:string -> ?description:string -> ?is_activity_enabled:bool -> ?order:AssetOrder.T.t -> unit -> t
5959
5960 val album_name : t -> string option
5961
5962 val album_thumbnail_asset_id : t -> string option
5963
5964 val description : t -> string option
5965
5966 val is_activity_enabled : t -> bool option
5967
5968 val order : t -> AssetOrder.T.t option
5969
5970 val jsont : t Jsont.t
5971 end
5972end
5973
5974module SyncAlbumV1 : sig
5975 module T : sig
5976 type t
5977
5978 (** Construct a value *)
5979 val v : created_at:Ptime.t -> description:string -> id:string -> is_activity_enabled:bool -> name:string -> order:AssetOrder.T.t -> owner_id:string -> updated_at:Ptime.t -> ?thumbnail_asset_id:string -> unit -> t
5980
5981 val created_at : t -> Ptime.t
5982
5983 val description : t -> string
5984
5985 val id : t -> string
5986
5987 val is_activity_enabled : t -> bool
5988
5989 val name : t -> string
5990
5991 val order : t -> AssetOrder.T.t
5992
5993 val owner_id : t -> string
5994
5995 val thumbnail_asset_id : t -> string option
5996
5997 val updated_at : t -> Ptime.t
5998
5999 val jsont : t Jsont.t
6000 end
6001end
6002
6003module MetadataSearch : sig
6004 module Dto : sig
6005 type t
6006
6007 (** Construct a value *)
6008 val v : ?order:AssetOrder.T.t -> ?album_ids:string list -> ?checksum:string -> ?city:string -> ?country:string -> ?created_after:Ptime.t -> ?created_before:Ptime.t -> ?description:string -> ?device_asset_id:string -> ?device_id:string -> ?encoded_video_path:string -> ?id:string -> ?is_encoded:bool -> ?is_favorite:bool -> ?is_motion:bool -> ?is_not_in_album:bool -> ?is_offline:bool -> ?lens_model:string -> ?library_id:string -> ?make:string -> ?model:string -> ?ocr:string -> ?original_file_name:string -> ?original_path:string -> ?page:float -> ?person_ids:string list -> ?preview_path:string -> ?rating:float -> ?size:float -> ?state:string -> ?tag_ids:string list -> ?taken_after:Ptime.t -> ?taken_before:Ptime.t -> ?thumbnail_path:string -> ?trashed_after:Ptime.t -> ?trashed_before:Ptime.t -> ?type_:AssetTypeEnum.T.t -> ?updated_after:Ptime.t -> ?updated_before:Ptime.t -> ?visibility:AssetVisibility.T.t -> ?with_deleted:bool -> ?with_exif:bool -> ?with_people:bool -> ?with_stacked:bool -> unit -> t
6009
6010 val album_ids : t -> string list option
6011
6012 val checksum : t -> string option
6013
6014 val city : t -> string option
6015
6016 val country : t -> string option
6017
6018 val created_after : t -> Ptime.t option
6019
6020 val created_before : t -> Ptime.t option
6021
6022 val description : t -> string option
6023
6024 val device_asset_id : t -> string option
6025
6026 val device_id : t -> string option
6027
6028 val encoded_video_path : t -> string option
6029
6030 val id : t -> string option
6031
6032 val is_encoded : t -> bool option
6033
6034 val is_favorite : t -> bool option
6035
6036 val is_motion : t -> bool option
6037
6038 val is_not_in_album : t -> bool option
6039
6040 val is_offline : t -> bool option
6041
6042 val lens_model : t -> string option
6043
6044 val library_id : t -> string option
6045
6046 val make : t -> string option
6047
6048 val model : t -> string option
6049
6050 val ocr : t -> string option
6051
6052 val order : t -> AssetOrder.T.t
6053
6054 val original_file_name : t -> string option
6055
6056 val original_path : t -> string option
6057
6058 val page : t -> float option
6059
6060 val person_ids : t -> string list option
6061
6062 val preview_path : t -> string option
6063
6064 val rating : t -> float option
6065
6066 val size : t -> float option
6067
6068 val state : t -> string option
6069
6070 val tag_ids : t -> string list option
6071
6072 val taken_after : t -> Ptime.t option
6073
6074 val taken_before : t -> Ptime.t option
6075
6076 val thumbnail_path : t -> string option
6077
6078 val trashed_after : t -> Ptime.t option
6079
6080 val trashed_before : t -> Ptime.t option
6081
6082 val type_ : t -> AssetTypeEnum.T.t option
6083
6084 val updated_after : t -> Ptime.t option
6085
6086 val updated_before : t -> Ptime.t option
6087
6088 val visibility : t -> AssetVisibility.T.t option
6089
6090 val with_deleted : t -> bool option
6091
6092 val with_exif : t -> bool option
6093
6094 val with_people : t -> bool option
6095
6096 val with_stacked : t -> bool option
6097
6098 val jsont : t Jsont.t
6099 end
6100end
6101
6102module Albums : sig
6103 module Update : sig
6104 type t
6105
6106 (** Construct a value *)
6107 val v : ?default_asset_order:AssetOrder.T.t -> unit -> t
6108
6109 val default_asset_order : t -> AssetOrder.T.t option
6110
6111 val jsont : t Jsont.t
6112 end
6113
6114 module Response : sig
6115 type t
6116
6117 (** Construct a value *)
6118 val v : ?default_asset_order:AssetOrder.T.t -> unit -> t
6119
6120 val default_asset_order : t -> AssetOrder.T.t
6121
6122 val jsont : t Jsont.t
6123 end
6124end
6125
6126module AssetOcr : sig
6127 module ResponseDto : sig
6128 type t
6129
6130 (** Construct a value
6131 @param box_score Confidence score for text detection box
6132 @param text Recognized text
6133 @param text_score Confidence score for text recognition
6134 @param x1 Normalized x coordinate of box corner 1 (0-1)
6135 @param x2 Normalized x coordinate of box corner 2 (0-1)
6136 @param x3 Normalized x coordinate of box corner 3 (0-1)
6137 @param x4 Normalized x coordinate of box corner 4 (0-1)
6138 @param y1 Normalized y coordinate of box corner 1 (0-1)
6139 @param y2 Normalized y coordinate of box corner 2 (0-1)
6140 @param y3 Normalized y coordinate of box corner 3 (0-1)
6141 @param y4 Normalized y coordinate of box corner 4 (0-1)
6142 *)
6143 val v : asset_id:string -> box_score:float -> id:string -> text:string -> text_score:float -> x1:float -> x2:float -> x3:float -> x4:float -> y1:float -> y2:float -> y3:float -> y4:float -> unit -> t
6144
6145 val asset_id : t -> string
6146
6147 (** Confidence score for text detection box *)
6148 val box_score : t -> float
6149
6150 val id : t -> string
6151
6152 (** Recognized text *)
6153 val text : t -> string
6154
6155 (** Confidence score for text recognition *)
6156 val text_score : t -> float
6157
6158 (** Normalized x coordinate of box corner 1 (0-1) *)
6159 val x1 : t -> float
6160
6161 (** Normalized x coordinate of box corner 2 (0-1) *)
6162 val x2 : t -> float
6163
6164 (** Normalized x coordinate of box corner 3 (0-1) *)
6165 val x3 : t -> float
6166
6167 (** Normalized x coordinate of box corner 4 (0-1) *)
6168 val x4 : t -> float
6169
6170 (** Normalized y coordinate of box corner 1 (0-1) *)
6171 val y1 : t -> float
6172
6173 (** Normalized y coordinate of box corner 2 (0-1) *)
6174 val y2 : t -> float
6175
6176 (** Normalized y coordinate of box corner 3 (0-1) *)
6177 val y3 : t -> float
6178
6179 (** Normalized y coordinate of box corner 4 (0-1) *)
6180 val y4 : t -> float
6181
6182 val jsont : t Jsont.t
6183 end
6184
6185 (** Retrieve asset OCR data
6186
6187 Retrieve all OCR (Optical Character Recognition) data associated with the specified asset. *)
6188 val get_asset_ocr : id:string -> t -> unit -> ResponseDto.t
6189end
6190
6191module AssetMetadataUpsertItem : sig
6192 module Dto : sig
6193 type t
6194
6195 (** Construct a value *)
6196 val v : key:string -> value:Jsont.json -> unit -> t
6197
6198 val key : t -> string
6199
6200 val value : t -> Jsont.json
6201
6202 val jsont : t Jsont.t
6203 end
6204end
6205
6206module AssetMetadataUpsert : sig
6207 module Dto : sig
6208 type t
6209
6210 (** Construct a value *)
6211 val v : items:AssetMetadataUpsertItem.Dto.t list -> unit -> t
6212
6213 val items : t -> AssetMetadataUpsertItem.Dto.t list
6214
6215 val jsont : t Jsont.t
6216 end
6217end
6218
6219module AssetMetadata : sig
6220 module ResponseDto : sig
6221 type t
6222
6223 (** Construct a value *)
6224 val v : key:string -> updated_at:Ptime.t -> value:Jsont.json -> unit -> t
6225
6226 val key : t -> string
6227
6228 val updated_at : t -> Ptime.t
6229
6230 val value : t -> Jsont.json
6231
6232 val jsont : t Jsont.t
6233 end
6234
6235 (** Get asset metadata
6236
6237 Retrieve all metadata key-value pairs associated with the specified asset. *)
6238 val get_asset_metadata : id:string -> t -> unit -> ResponseDto.t
6239
6240 (** Update asset metadata
6241
6242 Update or add metadata key-value pairs for the specified asset. *)
6243 val update_asset_metadata : id:string -> body:AssetMetadataUpsert.Dto.t -> t -> unit -> ResponseDto.t
6244
6245 (** Retrieve asset metadata by key
6246
6247 Retrieve the value of a specific metadata key associated with the specified asset. *)
6248 val get_asset_metadata_by_key : id:string -> key:string -> t -> unit -> ResponseDto.t
6249end
6250
6251module AssetMedia : sig
6252 module Status : sig
6253 type t = [
6254 | `Created
6255 | `Replaced
6256 | `Duplicate
6257 ]
6258
6259 val jsont : t Jsont.t
6260 end
6261
6262 module ResponseDto : sig
6263 type t
6264
6265 (** Construct a value *)
6266 val v : id:string -> status:Status.t -> unit -> t
6267
6268 val id : t -> string
6269
6270 val status : t -> Status.t
6271
6272 val jsont : t Jsont.t
6273 end
6274
6275 module CreateDto : sig
6276 type t
6277
6278 (** Construct a value *)
6279 val v : asset_data:string -> device_asset_id:string -> device_id:string -> file_created_at:Ptime.t -> file_modified_at:Ptime.t -> ?duration:string -> ?filename:string -> ?is_favorite:bool -> ?live_photo_video_id:string -> ?metadata:AssetMetadataUpsertItem.Dto.t list -> ?sidecar_data:string -> ?visibility:AssetVisibility.T.t -> unit -> t
6280
6281 val asset_data : t -> string
6282
6283 val device_asset_id : t -> string
6284
6285 val device_id : t -> string
6286
6287 val duration : t -> string option
6288
6289 val file_created_at : t -> Ptime.t
6290
6291 val file_modified_at : t -> Ptime.t
6292
6293 val filename : t -> string option
6294
6295 val is_favorite : t -> bool option
6296
6297 val live_photo_video_id : t -> string option
6298
6299 val metadata : t -> AssetMetadataUpsertItem.Dto.t list option
6300
6301 val sidecar_data : t -> string option
6302
6303 val visibility : t -> AssetVisibility.T.t option
6304
6305 val jsont : t Jsont.t
6306 end
6307
6308 (** Upload asset
6309
6310 Uploads a new asset to the server. *)
6311 val upload_asset : ?key:string -> ?slug:string -> t -> unit -> ResponseDto.t
6312
6313 (** Replace asset
6314
6315 Replace the asset with new file, without changing its id. *)
6316 val replace_asset : id:string -> ?key:string -> ?slug:string -> t -> unit -> ResponseDto.t
6317end
6318
6319module AssetMetadataBulkUpsertItem : sig
6320 module Dto : sig
6321 type t
6322
6323 (** Construct a value *)
6324 val v : asset_id:string -> key:string -> value:Jsont.json -> unit -> t
6325
6326 val asset_id : t -> string
6327
6328 val key : t -> string
6329
6330 val value : t -> Jsont.json
6331
6332 val jsont : t Jsont.t
6333 end
6334end
6335
6336module AssetMetadataBulkUpsert : sig
6337 module Dto : sig
6338 type t
6339
6340 (** Construct a value *)
6341 val v : items:AssetMetadataBulkUpsertItem.Dto.t list -> unit -> t
6342
6343 val items : t -> AssetMetadataBulkUpsertItem.Dto.t list
6344
6345 val jsont : t Jsont.t
6346 end
6347end
6348
6349module AssetMetadataBulk : sig
6350 module ResponseDto : sig
6351 type t
6352
6353 (** Construct a value *)
6354 val v : asset_id:string -> key:string -> updated_at:Ptime.t -> value:Jsont.json -> unit -> t
6355
6356 val asset_id : t -> string
6357
6358 val key : t -> string
6359
6360 val updated_at : t -> Ptime.t
6361
6362 val value : t -> Jsont.json
6363
6364 val jsont : t Jsont.t
6365 end
6366
6367 (** Upsert asset metadata
6368
6369 Upsert metadata key-value pairs for multiple assets. *)
6370 val update_bulk_asset_metadata : body:AssetMetadataBulkUpsert.Dto.t -> t -> unit -> ResponseDto.t
6371end
6372
6373module AssetMetadataBulkDeleteItem : sig
6374 module Dto : sig
6375 type t
6376
6377 (** Construct a value *)
6378 val v : asset_id:string -> key:string -> unit -> t
6379
6380 val asset_id : t -> string
6381
6382 val key : t -> string
6383
6384 val jsont : t Jsont.t
6385 end
6386end
6387
6388module AssetMetadataBulkDelete : sig
6389 module Dto : sig
6390 type t
6391
6392 (** Construct a value *)
6393 val v : items:AssetMetadataBulkDeleteItem.Dto.t list -> unit -> t
6394
6395 val items : t -> AssetMetadataBulkDeleteItem.Dto.t list
6396
6397 val jsont : t Jsont.t
6398 end
6399end
6400
6401module AssetMediaSize : sig
6402 module T : sig
6403 type t = [
6404 | `Original
6405 | `Fullsize
6406 | `Preview
6407 | `Thumbnail
6408 ]
6409
6410 val jsont : t Jsont.t
6411 end
6412end
6413
6414module AssetMediaReplace : sig
6415 module Dto : sig
6416 type t
6417
6418 (** Construct a value *)
6419 val v : asset_data:string -> device_asset_id:string -> device_id:string -> file_created_at:Ptime.t -> file_modified_at:Ptime.t -> ?duration:string -> ?filename:string -> unit -> t
6420
6421 val asset_data : t -> string
6422
6423 val device_asset_id : t -> string
6424
6425 val device_id : t -> string
6426
6427 val duration : t -> string option
6428
6429 val file_created_at : t -> Ptime.t
6430
6431 val file_modified_at : t -> Ptime.t
6432
6433 val filename : t -> string option
6434
6435 val jsont : t Jsont.t
6436 end
6437end
6438
6439module AssetJobName : sig
6440 module T : sig
6441 type t = [
6442 | `Refresh_faces
6443 | `Refresh_metadata
6444 | `Regenerate_thumbnail
6445 | `Transcode_video
6446 ]
6447
6448 val jsont : t Jsont.t
6449 end
6450end
6451
6452module AssetJobs : sig
6453 module Dto : sig
6454 type t
6455
6456 (** Construct a value *)
6457 val v : asset_ids:string list -> name:AssetJobName.T.t -> unit -> t
6458
6459 val asset_ids : t -> string list
6460
6461 val name : t -> AssetJobName.T.t
6462
6463 val jsont : t Jsont.t
6464 end
6465end
6466
6467module AssetIds : sig
6468 module ResponseDto : sig
6469 type t
6470
6471 (** Construct a value *)
6472 val v : asset_id:string -> success:bool -> ?error:string -> unit -> t
6473
6474 val asset_id : t -> string
6475
6476 val error : t -> string option
6477
6478 val success : t -> bool
6479
6480 val jsont : t Jsont.t
6481 end
6482
6483 module Dto : sig
6484 type t
6485
6486 (** Construct a value *)
6487 val v : asset_ids:string list -> unit -> t
6488
6489 val asset_ids : t -> string list
6490
6491 val jsont : t Jsont.t
6492 end
6493
6494 (** Add assets to a shared link
6495
6496 Add assets to a specific shared link by its ID. This endpoint is only relevant for shared link of type individual. *)
6497 val add_shared_link_assets : id:string -> ?key:string -> ?slug:string -> body:Dto.t -> t -> unit -> ResponseDto.t
6498
6499 (** Remove assets from a shared link
6500
6501 Remove assets from a specific shared link by its ID. This endpoint is only relevant for shared link of type individual. *)
6502 val remove_shared_link_assets : id:string -> ?key:string -> ?slug:string -> t -> unit -> ResponseDto.t
6503end
6504
6505module AssetFullSync : sig
6506 module Dto : sig
6507 type t
6508
6509 (** Construct a value *)
6510 val v : limit:int -> updated_until:Ptime.t -> ?last_id:string -> ?user_id:string -> unit -> t
6511
6512 val last_id : t -> string option
6513
6514 val limit : t -> int
6515
6516 val updated_until : t -> Ptime.t
6517
6518 val user_id : t -> string option
6519
6520 val jsont : t Jsont.t
6521 end
6522end
6523
6524module Asset : sig
6525 module ResponseDto : sig
6526 type t
6527
6528 (** Construct a value
6529 @param checksum base64 encoded sha1 hash
6530 @param created_at The UTC timestamp when the asset was originally uploaded to Immich.
6531 @param file_created_at 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.
6532 @param file_modified_at 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.
6533 @param local_date_time 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.
6534 @param updated_at 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.
6535 *)
6536 val v : checksum:string -> created_at:Ptime.t -> device_asset_id:string -> device_id:string -> duration:string -> file_created_at:Ptime.t -> file_modified_at:Ptime.t -> has_metadata:bool -> id:string -> is_archived:bool -> is_edited:bool -> is_favorite:bool -> is_offline:bool -> is_trashed:bool -> local_date_time:Ptime.t -> original_file_name:string -> original_path:string -> owner_id:string -> type_:AssetTypeEnum.T.t -> updated_at:Ptime.t -> visibility:AssetVisibility.T.t -> ?duplicate_id:string -> ?exif_info:Exif.ResponseDto.t -> ?height:float -> ?library_id:string -> ?live_photo_video_id:string -> ?original_mime_type:string -> ?owner:User.ResponseDto.t -> ?people:PersonWithFaces.ResponseDto.t list -> ?resized:bool -> ?stack:AssetStack.ResponseDto.t -> ?tags:Tag.ResponseDto.t list -> ?thumbhash:string -> ?unassigned_faces:AssetFaceWithoutPerson.ResponseDto.t list -> ?width:float -> unit -> t
6537
6538 (** base64 encoded sha1 hash *)
6539 val checksum : t -> string
6540
6541 (** The UTC timestamp when the asset was originally uploaded to Immich. *)
6542 val created_at : t -> Ptime.t
6543
6544 val device_asset_id : t -> string
6545
6546 val device_id : t -> string
6547
6548 val duplicate_id : t -> string option
6549
6550 val duration : t -> string
6551
6552 val exif_info : t -> Exif.ResponseDto.t option
6553
6554 (** 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. *)
6555 val file_created_at : t -> Ptime.t
6556
6557 (** 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. *)
6558 val file_modified_at : t -> Ptime.t
6559
6560 val has_metadata : t -> bool
6561
6562 val height : t -> float option
6563
6564 val id : t -> string
6565
6566 val is_archived : t -> bool
6567
6568 val is_edited : t -> bool
6569
6570 val is_favorite : t -> bool
6571
6572 val is_offline : t -> bool
6573
6574 val is_trashed : t -> bool
6575
6576 val library_id : t -> string option
6577
6578 val live_photo_video_id : t -> string option
6579
6580 (** 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. *)
6581 val local_date_time : t -> Ptime.t
6582
6583 val original_file_name : t -> string
6584
6585 val original_mime_type : t -> string option
6586
6587 val original_path : t -> string
6588
6589 val owner : t -> User.ResponseDto.t option
6590
6591 val owner_id : t -> string
6592
6593 val people : t -> PersonWithFaces.ResponseDto.t list option
6594
6595 val resized : t -> bool option
6596
6597 val stack : t -> AssetStack.ResponseDto.t option
6598
6599 val tags : t -> Tag.ResponseDto.t list option
6600
6601 val thumbhash : t -> string option
6602
6603 val type_ : t -> AssetTypeEnum.T.t
6604
6605 val unassigned_faces : t -> AssetFaceWithoutPerson.ResponseDto.t list option
6606
6607 (** 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. *)
6608 val updated_at : t -> Ptime.t
6609
6610 val visibility : t -> AssetVisibility.T.t
6611
6612 val width : t -> float option
6613
6614 val jsont : t Jsont.t
6615 end
6616
6617 (** Get random assets
6618
6619 Retrieve a specified number of random assets for the authenticated user. *)
6620 val get_random : ?count:string -> t -> unit -> ResponseDto.t
6621
6622 (** Retrieve an asset
6623
6624 Retrieve detailed information about a specific asset. *)
6625 val get_asset_info : id:string -> ?key:string -> ?slug:string -> t -> unit -> ResponseDto.t
6626
6627 (** Update an asset
6628
6629 Update information of a specific asset. *)
6630 val update_asset : id:string -> body:UpdateAsset.Dto.t -> t -> unit -> ResponseDto.t
6631
6632 (** Retrieve assets by city
6633
6634 Retrieve a list of assets with each asset belonging to a different city. This endpoint is used on the places pages to show a single thumbnail for each city the user has assets in. *)
6635 val get_assets_by_city : t -> unit -> ResponseDto.t
6636
6637 (** Search large assets
6638
6639 Search for assets that are considered large based on specified criteria. *)
6640 val search_large_assets : ?album_ids:string -> ?city:string -> ?country:string -> ?created_after:string -> ?created_before:string -> ?device_id:string -> ?is_encoded:string -> ?is_favorite:string -> ?is_motion:string -> ?is_not_in_album:string -> ?is_offline:string -> ?lens_model:string -> ?library_id:string -> ?make:string -> ?min_file_size:string -> ?model:string -> ?ocr:string -> ?person_ids:string -> ?rating:string -> ?size:string -> ?state:string -> ?tag_ids:string -> ?taken_after:string -> ?taken_before:string -> ?trashed_after:string -> ?trashed_before:string -> ?type_:string -> ?updated_after:string -> ?updated_before:string -> ?visibility:string -> ?with_deleted:string -> ?with_exif:string -> t -> unit -> ResponseDto.t
6641
6642 (** Search random assets
6643
6644 Retrieve a random selection of assets based on the provided criteria. *)
6645 val search_random : body:RandomSearch.Dto.t -> t -> unit -> ResponseDto.t
6646
6647 (** Get full sync for user
6648
6649 Retrieve all assets for a full synchronization for the authenticated user. *)
6650 val get_full_sync_for_user : body:AssetFullSync.Dto.t -> t -> unit -> ResponseDto.t
6651
6652 (** Retrieve assets by original path
6653
6654 Retrieve assets that are children of a specific folder. *)
6655 val get_assets_by_original_path : path:string -> t -> unit -> ResponseDto.t
6656end
6657
6658module Stack : sig
6659 module UpdateDto : sig
6660 type t
6661
6662 (** Construct a value *)
6663 val v : ?primary_asset_id:string -> unit -> t
6664
6665 val primary_asset_id : t -> string option
6666
6667 val jsont : t Jsont.t
6668 end
6669
6670 module ResponseDto : sig
6671 type t
6672
6673 (** Construct a value *)
6674 val v : assets:Asset.ResponseDto.t list -> id:string -> primary_asset_id:string -> unit -> t
6675
6676 val assets : t -> Asset.ResponseDto.t list
6677
6678 val id : t -> string
6679
6680 val primary_asset_id : t -> string
6681
6682 val jsont : t Jsont.t
6683 end
6684
6685 module CreateDto : sig
6686 type t
6687
6688 (** Construct a value
6689 @param asset_ids first asset becomes the primary
6690 *)
6691 val v : asset_ids:string list -> unit -> t
6692
6693 (** first asset becomes the primary *)
6694 val asset_ids : t -> string list
6695
6696 val jsont : t Jsont.t
6697 end
6698
6699 (** Retrieve stacks
6700
6701 Retrieve a list of stacks. *)
6702 val search_stacks : ?primary_asset_id:string -> t -> unit -> ResponseDto.t
6703
6704 (** Create a stack
6705
6706 Create a new stack by providing a name and a list of asset IDs to include in the stack. If any of the provided asset IDs are primary assets of an existing stack, the existing stack will be merged into the newly created stack. *)
6707 val create_stack : body:CreateDto.t -> t -> unit -> ResponseDto.t
6708
6709 (** Retrieve a stack
6710
6711 Retrieve a specific stack by its ID. *)
6712 val get_stack : id:string -> t -> unit -> ResponseDto.t
6713
6714 (** Update a stack
6715
6716 Update an existing stack by its ID. *)
6717 val update_stack : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
6718end
6719
6720module SearchExplore : sig
6721 module Item : sig
6722 type t
6723
6724 (** Construct a value *)
6725 val v : data:Asset.ResponseDto.t -> value:string -> unit -> t
6726
6727 val data : t -> Asset.ResponseDto.t
6728
6729 val value : t -> string
6730
6731 val jsont : t Jsont.t
6732 end
6733
6734 module ResponseDto : sig
6735 type t
6736
6737 (** Construct a value *)
6738 val v : field_name:string -> items:Item.t list -> unit -> t
6739
6740 val field_name : t -> string
6741
6742 val items : t -> Item.t list
6743
6744 val jsont : t Jsont.t
6745 end
6746
6747 (** Retrieve explore data
6748
6749 Retrieve data for the explore section, such as popular people and places. *)
6750 val get_explore_data : t -> unit -> ResponseDto.t
6751end
6752
6753module SearchAsset : sig
6754 module ResponseDto : sig
6755 type t
6756
6757 (** Construct a value *)
6758 val v : count:int -> facets:SearchFacet.ResponseDto.t list -> items:Asset.ResponseDto.t list -> total:int -> ?next_page:string -> unit -> t
6759
6760 val count : t -> int
6761
6762 val facets : t -> SearchFacet.ResponseDto.t list
6763
6764 val items : t -> Asset.ResponseDto.t list
6765
6766 val next_page : t -> string option
6767
6768 val total : t -> int
6769
6770 val jsont : t Jsont.t
6771 end
6772end
6773
6774module Memory : sig
6775 module UpdateDto : sig
6776 type t
6777
6778 (** Construct a value *)
6779 val v : ?is_saved:bool -> ?memory_at:Ptime.t -> ?seen_at:Ptime.t -> unit -> t
6780
6781 val is_saved : t -> bool option
6782
6783 val memory_at : t -> Ptime.t option
6784
6785 val seen_at : t -> Ptime.t option
6786
6787 val jsont : t Jsont.t
6788 end
6789
6790 module Type : sig
6791 type t = [
6792 | `On_this_day
6793 ]
6794
6795 val jsont : t Jsont.t
6796 end
6797
6798 module ResponseDto : sig
6799 type t
6800
6801 (** Construct a value *)
6802 val v : assets:Asset.ResponseDto.t list -> created_at:Ptime.t -> data:OnThisDay.Dto.t -> id:string -> is_saved:bool -> memory_at:Ptime.t -> owner_id:string -> type_:Type.t -> updated_at:Ptime.t -> ?deleted_at:Ptime.t -> ?hide_at:Ptime.t -> ?seen_at:Ptime.t -> ?show_at:Ptime.t -> unit -> t
6803
6804 val assets : t -> Asset.ResponseDto.t list
6805
6806 val created_at : t -> Ptime.t
6807
6808 val data : t -> OnThisDay.Dto.t
6809
6810 val deleted_at : t -> Ptime.t option
6811
6812 val hide_at : t -> Ptime.t option
6813
6814 val id : t -> string
6815
6816 val is_saved : t -> bool
6817
6818 val memory_at : t -> Ptime.t
6819
6820 val owner_id : t -> string
6821
6822 val seen_at : t -> Ptime.t option
6823
6824 val show_at : t -> Ptime.t option
6825
6826 val type_ : t -> Type.t
6827
6828 val updated_at : t -> Ptime.t
6829
6830 val jsont : t Jsont.t
6831 end
6832
6833 module CreateDto : sig
6834 type t
6835
6836 (** Construct a value *)
6837 val v : data:OnThisDay.Dto.t -> memory_at:Ptime.t -> type_:Type.t -> ?asset_ids:string list -> ?is_saved:bool -> ?seen_at:Ptime.t -> unit -> t
6838
6839 val asset_ids : t -> string list option
6840
6841 val data : t -> OnThisDay.Dto.t
6842
6843 val is_saved : t -> bool option
6844
6845 val memory_at : t -> Ptime.t
6846
6847 val seen_at : t -> Ptime.t option
6848
6849 val type_ : t -> Type.t
6850
6851 val jsont : t Jsont.t
6852 end
6853
6854 (** Retrieve memories
6855
6856 Retrieve a list of memories. Memories are sorted descending by creation date by default, although they can also be sorted in ascending order, or randomly.
6857 @param size Number of memories to return
6858 *)
6859 val search_memories : ?for_:string -> ?is_saved:string -> ?is_trashed:string -> ?order:string -> ?size:string -> ?type_:string -> t -> unit -> ResponseDto.t
6860
6861 (** Create a memory
6862
6863 Create a new memory by providing a name, description, and a list of asset IDs to include in the memory. *)
6864 val create_memory : body:CreateDto.t -> t -> unit -> ResponseDto.t
6865
6866 (** Retrieve a memory
6867
6868 Retrieve a specific memory by its ID. *)
6869 val get_memory : id:string -> t -> unit -> ResponseDto.t
6870
6871 (** Update a memory
6872
6873 Update an existing memory by its ID. *)
6874 val update_memory : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
6875end
6876
6877module SyncMemoryV1 : sig
6878 module T : sig
6879 type t
6880
6881 (** Construct a value *)
6882 val v : created_at:Ptime.t -> data:Jsont.json -> id:string -> is_saved:bool -> memory_at:Ptime.t -> owner_id:string -> type_:Memory.Type.t -> updated_at:Ptime.t -> ?deleted_at:Ptime.t -> ?hide_at:Ptime.t -> ?seen_at:Ptime.t -> ?show_at:Ptime.t -> unit -> t
6883
6884 val created_at : t -> Ptime.t
6885
6886 val data : t -> Jsont.json
6887
6888 val deleted_at : t -> Ptime.t option
6889
6890 val hide_at : t -> Ptime.t option
6891
6892 val id : t -> string
6893
6894 val is_saved : t -> bool
6895
6896 val memory_at : t -> Ptime.t
6897
6898 val owner_id : t -> string
6899
6900 val seen_at : t -> Ptime.t option
6901
6902 val show_at : t -> Ptime.t option
6903
6904 val type_ : t -> Memory.Type.t
6905
6906 val updated_at : t -> Ptime.t
6907
6908 val jsont : t Jsont.t
6909 end
6910end
6911
6912module Duplicate : sig
6913 module ResponseDto : sig
6914 type t
6915
6916 (** Construct a value *)
6917 val v : assets:Asset.ResponseDto.t list -> duplicate_id:string -> unit -> t
6918
6919 val assets : t -> Asset.ResponseDto.t list
6920
6921 val duplicate_id : t -> string
6922
6923 val jsont : t Jsont.t
6924 end
6925
6926 (** Retrieve duplicates
6927
6928 Retrieve a list of duplicate assets available to the authenticated user. *)
6929 val get_asset_duplicates : t -> unit -> ResponseDto.t
6930end
6931
6932module AssetDeltaSync : sig
6933 module ResponseDto : sig
6934 type t
6935
6936 (** Construct a value *)
6937 val v : deleted:string list -> needs_full_sync:bool -> upserted:Asset.ResponseDto.t list -> unit -> t
6938
6939 val deleted : t -> string list
6940
6941 val needs_full_sync : t -> bool
6942
6943 val upserted : t -> Asset.ResponseDto.t list
6944
6945 val jsont : t Jsont.t
6946 end
6947
6948 module Dto : sig
6949 type t
6950
6951 (** Construct a value *)
6952 val v : updated_after:Ptime.t -> user_ids:string list -> unit -> t
6953
6954 val updated_after : t -> Ptime.t
6955
6956 val user_ids : t -> string list
6957
6958 val jsont : t Jsont.t
6959 end
6960
6961 (** Get delta sync for user
6962
6963 Retrieve changed assets since the last sync for the authenticated user. *)
6964 val get_delta_sync : body:Dto.t -> t -> unit -> ResponseDto.t
6965end
6966
6967module AssetFaceUpdate : sig
6968 module Item : sig
6969 type t
6970
6971 (** Construct a value *)
6972 val v : asset_id:string -> person_id:string -> unit -> t
6973
6974 val asset_id : t -> string
6975
6976 val person_id : t -> string
6977
6978 val jsont : t Jsont.t
6979 end
6980end
6981
6982module AssetFaceDelete : sig
6983 module Dto : sig
6984 type t
6985
6986 (** Construct a value *)
6987 val v : force:bool -> unit -> t
6988
6989 val force : t -> bool
6990
6991 val jsont : t Jsont.t
6992 end
6993end
6994
6995module AssetEditActionList : sig
6996 module Dto : sig
6997 type t
6998
6999 (** Construct a value
7000 @param edits list of edits
7001 *)
7002 val v : edits:Jsont.json list -> unit -> t
7003
7004 (** list of edits *)
7005 val edits : t -> Jsont.json list
7006
7007 val jsont : t Jsont.t
7008 end
7009end
7010
7011module AssetEdits : sig
7012 module Dto : sig
7013 type t
7014
7015 (** Construct a value
7016 @param edits list of edits
7017 *)
7018 val v : asset_id:string -> edits:Jsont.json list -> unit -> t
7019
7020 val asset_id : t -> string
7021
7022 (** list of edits *)
7023 val edits : t -> Jsont.json list
7024
7025 val jsont : t Jsont.t
7026 end
7027
7028 (** Retrieve edits for an existing asset
7029
7030 Retrieve a series of edit actions (crop, rotate, mirror) associated with the specified asset. *)
7031 val get_asset_edits : id:string -> t -> unit -> Dto.t
7032
7033 (** Apply edits to an existing asset
7034
7035 Apply a series of edit actions (crop, rotate, mirror) to the specified asset. *)
7036 val edit_asset : id:string -> body:AssetEditActionList.Dto.t -> t -> unit -> Dto.t
7037end
7038
7039module AssetEditAction : sig
7040 module T : sig
7041 type t = [
7042 | `Crop
7043 | `Rotate
7044 | `Mirror
7045 ]
7046
7047 val jsont : t Jsont.t
7048 end
7049end
7050
7051module AssetEditActionRotate : sig
7052 module T : sig
7053 type t
7054
7055 (** Construct a value *)
7056 val v : action:AssetEditAction.T.t -> parameters:RotateParameters.T.t -> unit -> t
7057
7058 val action : t -> AssetEditAction.T.t
7059
7060 val parameters : t -> RotateParameters.T.t
7061
7062 val jsont : t Jsont.t
7063 end
7064end
7065
7066module AssetEditActionMirror : sig
7067 module T : sig
7068 type t
7069
7070 (** Construct a value *)
7071 val v : action:AssetEditAction.T.t -> parameters:MirrorParameters.T.t -> unit -> t
7072
7073 val action : t -> AssetEditAction.T.t
7074
7075 val parameters : t -> MirrorParameters.T.t
7076
7077 val jsont : t Jsont.t
7078 end
7079end
7080
7081module AssetEditActionCrop : sig
7082 module T : sig
7083 type t
7084
7085 (** Construct a value *)
7086 val v : action:AssetEditAction.T.t -> parameters:CropParameters.T.t -> unit -> t
7087
7088 val action : t -> AssetEditAction.T.t
7089
7090 val parameters : t -> CropParameters.T.t
7091
7092 val jsont : t Jsont.t
7093 end
7094end
7095
7096module AssetCopy : sig
7097 module Dto : sig
7098 type t
7099
7100 (** Construct a value *)
7101 val v : source_id:string -> target_id:string -> ?albums:bool -> ?favorite:bool -> ?shared_links:bool -> ?sidecar:bool -> ?stack:bool -> unit -> t
7102
7103 val albums : t -> bool
7104
7105 val favorite : t -> bool
7106
7107 val shared_links : t -> bool
7108
7109 val sidecar : t -> bool
7110
7111 val source_id : t -> string
7112
7113 val stack : t -> bool
7114
7115 val target_id : t -> string
7116
7117 val jsont : t Jsont.t
7118 end
7119end
7120
7121module AssetBulkUploadCheck : sig
7122 module Result : sig
7123 type t
7124
7125 (** Construct a value *)
7126 val v : action:string -> id:string -> ?asset_id:string -> ?is_trashed:bool -> ?reason:string -> unit -> t
7127
7128 val action : t -> string
7129
7130 val asset_id : t -> string option
7131
7132 val id : t -> string
7133
7134 val is_trashed : t -> bool option
7135
7136 val reason : t -> string option
7137
7138 val jsont : t Jsont.t
7139 end
7140
7141 module ResponseDto : sig
7142 type t
7143
7144 (** Construct a value *)
7145 val v : results:Result.t list -> unit -> t
7146
7147 val results : t -> Result.t list
7148
7149 val jsont : t Jsont.t
7150 end
7151
7152 module Item : sig
7153 type t
7154
7155 (** Construct a value
7156 @param checksum base64 or hex encoded sha1 hash
7157 *)
7158 val v : checksum:string -> id:string -> unit -> t
7159
7160 (** base64 or hex encoded sha1 hash *)
7161 val checksum : t -> string
7162
7163 val id : t -> string
7164
7165 val jsont : t Jsont.t
7166 end
7167
7168 module Dto : sig
7169 type t
7170
7171 (** Construct a value *)
7172 val v : assets:Item.t list -> unit -> t
7173
7174 val assets : t -> Item.t list
7175
7176 val jsont : t Jsont.t
7177 end
7178
7179 (** Check bulk upload
7180
7181 Determine which assets have already been uploaded to the server based on their SHA1 checksums. *)
7182 val check_bulk_upload : body:Dto.t -> t -> unit -> ResponseDto.t
7183end
7184
7185module AssetBulkDelete : sig
7186 module Dto : sig
7187 type t
7188
7189 (** Construct a value *)
7190 val v : ids:string list -> ?force:bool -> unit -> t
7191
7192 val force : t -> bool option
7193
7194 val ids : t -> string list
7195
7196 val jsont : t Jsont.t
7197 end
7198end
7199
7200module AlbumUserRole : sig
7201 module T : sig
7202 type t = [
7203 | `Editor
7204 | `Viewer
7205 ]
7206
7207 val jsont : t Jsont.t
7208 end
7209end
7210
7211module UpdateAlbumUser : sig
7212 module Dto : sig
7213 type t
7214
7215 (** Construct a value *)
7216 val v : role:AlbumUserRole.T.t -> unit -> t
7217
7218 val role : t -> AlbumUserRole.T.t
7219
7220 val jsont : t Jsont.t
7221 end
7222end
7223
7224module SyncAlbumUserV1 : sig
7225 module T : sig
7226 type t
7227
7228 (** Construct a value *)
7229 val v : album_id:string -> role:AlbumUserRole.T.t -> user_id:string -> unit -> t
7230
7231 val album_id : t -> string
7232
7233 val role : t -> AlbumUserRole.T.t
7234
7235 val user_id : t -> string
7236
7237 val jsont : t Jsont.t
7238 end
7239end
7240
7241module AlbumUserAdd : sig
7242 module Dto : sig
7243 type t
7244
7245 (** Construct a value *)
7246 val v : user_id:string -> ?role:AlbumUserRole.T.t -> unit -> t
7247
7248 val role : t -> AlbumUserRole.T.t
7249
7250 val user_id : t -> string
7251
7252 val jsont : t Jsont.t
7253 end
7254end
7255
7256module AddUsers : sig
7257 module Dto : sig
7258 type t
7259
7260 (** Construct a value *)
7261 val v : album_users:AlbumUserAdd.Dto.t list -> unit -> t
7262
7263 val album_users : t -> AlbumUserAdd.Dto.t list
7264
7265 val jsont : t Jsont.t
7266 end
7267end
7268
7269module AlbumUser : sig
7270 module ResponseDto : sig
7271 type t
7272
7273 (** Construct a value *)
7274 val v : role:AlbumUserRole.T.t -> user:User.ResponseDto.t -> unit -> t
7275
7276 val role : t -> AlbumUserRole.T.t
7277
7278 val user : t -> User.ResponseDto.t
7279
7280 val jsont : t Jsont.t
7281 end
7282
7283 module CreateDto : sig
7284 type t
7285
7286 (** Construct a value *)
7287 val v : role:AlbumUserRole.T.t -> user_id:string -> unit -> t
7288
7289 val role : t -> AlbumUserRole.T.t
7290
7291 val user_id : t -> string
7292
7293 val jsont : t Jsont.t
7294 end
7295end
7296
7297module CreateAlbum : sig
7298 module Dto : sig
7299 type t
7300
7301 (** Construct a value *)
7302 val v : album_name:string -> ?album_users:AlbumUser.CreateDto.t list -> ?asset_ids:string list -> ?description:string -> unit -> t
7303
7304 val album_name : t -> string
7305
7306 val album_users : t -> AlbumUser.CreateDto.t list option
7307
7308 val asset_ids : t -> string list option
7309
7310 val description : t -> string option
7311
7312 val jsont : t Jsont.t
7313 end
7314end
7315
7316module Album : sig
7317 module ResponseDto : sig
7318 type t
7319
7320 (** Construct a value *)
7321 val v : album_name:string -> album_users:AlbumUser.ResponseDto.t list -> asset_count:int -> assets:Asset.ResponseDto.t list -> created_at:Ptime.t -> description:string -> has_shared_link:bool -> id:string -> is_activity_enabled:bool -> owner:User.ResponseDto.t -> owner_id:string -> shared:bool -> updated_at:Ptime.t -> ?album_thumbnail_asset_id:string -> ?contributor_counts:ContributorCount.ResponseDto.t list -> ?end_date:Ptime.t -> ?last_modified_asset_timestamp:Ptime.t -> ?order:AssetOrder.T.t -> ?start_date:Ptime.t -> unit -> t
7322
7323 val album_name : t -> string
7324
7325 val album_thumbnail_asset_id : t -> string option
7326
7327 val album_users : t -> AlbumUser.ResponseDto.t list
7328
7329 val asset_count : t -> int
7330
7331 val assets : t -> Asset.ResponseDto.t list
7332
7333 val contributor_counts : t -> ContributorCount.ResponseDto.t list option
7334
7335 val created_at : t -> Ptime.t
7336
7337 val description : t -> string
7338
7339 val end_date : t -> Ptime.t option
7340
7341 val has_shared_link : t -> bool
7342
7343 val id : t -> string
7344
7345 val is_activity_enabled : t -> bool
7346
7347 val last_modified_asset_timestamp : t -> Ptime.t option
7348
7349 val order : t -> AssetOrder.T.t option
7350
7351 val owner : t -> User.ResponseDto.t
7352
7353 val owner_id : t -> string
7354
7355 val shared : t -> bool
7356
7357 val start_date : t -> Ptime.t option
7358
7359 val updated_at : t -> Ptime.t
7360
7361 val jsont : t Jsont.t
7362 end
7363
7364 (** List all albums
7365
7366 Retrieve a list of albums available to the authenticated user.
7367 @param asset_id Only returns albums that contain the asset
7368 Ignores the shared parameter
7369 undefined: get all albums
7370 *)
7371 val get_all_albums : ?asset_id:string -> ?shared:string -> t -> unit -> ResponseDto.t
7372
7373 (** Create an album
7374
7375 Create a new album. The album can also be created with initial users and assets. *)
7376 val create_album : body:CreateAlbum.Dto.t -> t -> unit -> ResponseDto.t
7377
7378 (** Retrieve an album
7379
7380 Retrieve information about a specific album by its ID. *)
7381 val get_album_info : id:string -> ?key:string -> ?slug:string -> ?without_assets:string -> t -> unit -> ResponseDto.t
7382
7383 (** Update an album
7384
7385 Update the information of a specific album by its ID. This endpoint can be used to update the album name, description, sort order, etc. However, it is not used to add or remove assets or users from the album. *)
7386 val update_album_info : id:string -> body:UpdateAlbum.Dto.t -> t -> unit -> ResponseDto.t
7387
7388 (** Share album with users
7389
7390 Share an album with multiple users. Each user can be given a specific role in the album. *)
7391 val add_users_to_album : id:string -> body:AddUsers.Dto.t -> t -> unit -> ResponseDto.t
7392end
7393
7394module SharedLink : sig
7395 module Type : sig
7396 type t = [
7397 | `Album
7398 | `Individual
7399 ]
7400
7401 val jsont : t Jsont.t
7402 end
7403
7404 module ResponseDto : sig
7405 type t
7406
7407 (** Construct a value *)
7408 val v : allow_download:bool -> allow_upload:bool -> assets:Asset.ResponseDto.t list -> created_at:Ptime.t -> id:string -> key:string -> show_metadata:bool -> type_:Type.t -> user_id:string -> ?album:Album.ResponseDto.t -> ?description:string -> ?expires_at:Ptime.t -> ?password:string -> ?slug:string -> ?token:string -> unit -> t
7409
7410 val album : t -> Album.ResponseDto.t option
7411
7412 val allow_download : t -> bool
7413
7414 val allow_upload : t -> bool
7415
7416 val assets : t -> Asset.ResponseDto.t list
7417
7418 val created_at : t -> Ptime.t
7419
7420 val description : t -> string option
7421
7422 val expires_at : t -> Ptime.t option
7423
7424 val id : t -> string
7425
7426 val key : t -> string
7427
7428 val password : t -> string option
7429
7430 val show_metadata : t -> bool
7431
7432 val slug : t -> string option
7433
7434 val token : t -> string option
7435
7436 val type_ : t -> Type.t
7437
7438 val user_id : t -> string
7439
7440 val jsont : t Jsont.t
7441 end
7442
7443 module CreateDto : sig
7444 type t
7445
7446 (** Construct a value *)
7447 val v : type_:Type.t -> ?allow_download:bool -> ?expires_at:Ptime.t option -> ?show_metadata:bool -> ?album_id:string -> ?allow_upload:bool -> ?asset_ids:string list -> ?description:string -> ?password:string -> ?slug:string -> unit -> t
7448
7449 val album_id : t -> string option
7450
7451 val allow_download : t -> bool
7452
7453 val allow_upload : t -> bool option
7454
7455 val asset_ids : t -> string list option
7456
7457 val description : t -> string option
7458
7459 val expires_at : t -> Ptime.t option
7460
7461 val password : t -> string option
7462
7463 val show_metadata : t -> bool
7464
7465 val slug : t -> string option
7466
7467 val type_ : t -> Type.t
7468
7469 val jsont : t Jsont.t
7470 end
7471
7472 (** Retrieve all shared links
7473
7474 Retrieve a list of all shared links. *)
7475 val get_all_shared_links : ?album_id:string -> ?id:string -> t -> unit -> ResponseDto.t
7476
7477 (** Create a shared link
7478
7479 Create a new shared link. *)
7480 val create_shared_link : body:CreateDto.t -> t -> unit -> ResponseDto.t
7481
7482 (** Retrieve current shared link
7483
7484 Retrieve the current shared link associated with authentication method. *)
7485 val get_my_shared_link : ?key:string -> ?password:string -> ?slug:string -> ?token:string -> t -> unit -> ResponseDto.t
7486
7487 (** Retrieve a shared link
7488
7489 Retrieve a specific shared link by its ID. *)
7490 val get_shared_link_by_id : id:string -> t -> unit -> ResponseDto.t
7491
7492 (** Update a shared link
7493
7494 Update an existing shared link by its ID. *)
7495 val update_shared_link : id:string -> body:SharedLinkEdit.Dto.t -> t -> unit -> ResponseDto.t
7496end
7497
7498module SearchAlbum : sig
7499 module ResponseDto : sig
7500 type t
7501
7502 (** Construct a value *)
7503 val v : count:int -> facets:SearchFacet.ResponseDto.t list -> items:Album.ResponseDto.t list -> total:int -> unit -> t
7504
7505 val count : t -> int
7506
7507 val facets : t -> SearchFacet.ResponseDto.t list
7508
7509 val items : t -> Album.ResponseDto.t list
7510
7511 val total : t -> int
7512
7513 val jsont : t Jsont.t
7514 end
7515end
7516
7517module Search : sig
7518 module ResponseDto : sig
7519 type t
7520
7521 (** Construct a value *)
7522 val v : albums:SearchAlbum.ResponseDto.t -> assets:SearchAsset.ResponseDto.t -> unit -> t
7523
7524 val albums : t -> SearchAlbum.ResponseDto.t
7525
7526 val assets : t -> SearchAsset.ResponseDto.t
7527
7528 val jsont : t Jsont.t
7529 end
7530
7531 (** Search assets by metadata
7532
7533 Search for assets based on various metadata criteria. *)
7534 val search_assets : body:MetadataSearch.Dto.t -> t -> unit -> ResponseDto.t
7535
7536 (** Smart asset search
7537
7538 Perform a smart search for assets by using machine learning vectors to determine relevance. *)
7539 val search_smart : body:SmartSearch.Dto.t -> t -> unit -> ResponseDto.t
7540end
7541
7542module AlbumStatistics : sig
7543 module ResponseDto : sig
7544 type t
7545
7546 (** Construct a value *)
7547 val v : not_shared:int -> owned:int -> shared:int -> unit -> t
7548
7549 val not_shared : t -> int
7550
7551 val owned : t -> int
7552
7553 val shared : t -> int
7554
7555 val jsont : t Jsont.t
7556 end
7557
7558 (** Retrieve album statistics
7559
7560 Returns statistics about the albums available to the authenticated user. *)
7561 val get_album_statistics : t -> unit -> ResponseDto.t
7562end
7563
7564module AdminOnboarding : sig
7565 module UpdateDto : sig
7566 type t
7567
7568 (** Construct a value *)
7569 val v : is_onboarded:bool -> unit -> t
7570
7571 val is_onboarded : t -> bool
7572
7573 val jsont : t Jsont.t
7574 end
7575
7576 (** Retrieve admin onboarding
7577
7578 Retrieve the current admin onboarding status. *)
7579 val get_admin_onboarding : t -> unit -> UpdateDto.t
7580end
7581
7582module ActivityStatistics : sig
7583 module ResponseDto : sig
7584 type t
7585
7586 (** Construct a value *)
7587 val v : comments:int -> likes:int -> unit -> t
7588
7589 val comments : t -> int
7590
7591 val likes : t -> int
7592
7593 val jsont : t Jsont.t
7594 end
7595
7596 (** Retrieve activity statistics
7597
7598 Returns the number of likes and comments for a given album or asset in an album. *)
7599 val get_activity_statistics : album_id:string -> ?asset_id:string -> t -> unit -> ResponseDto.t
7600end
7601
7602module UserPreferences : sig
7603 module UpdateDto : sig
7604 type t
7605
7606 (** Construct a value *)
7607 val v : ?albums:Albums.Update.t -> ?avatar:Avatar.Update.t -> ?cast:Cast.Update.t -> ?download:Download.Update.t -> ?email_notifications:EmailNotifications.Update.t -> ?folders:Folders.Update.t -> ?memories:Memories.Update.t -> ?people:Jsont.json -> ?purchase:Purchase.Update.t -> ?ratings:Ratings.Update.t -> ?shared_links:SharedLinks.Update.t -> ?tags:Tags.Update.t -> unit -> t
7608
7609 val albums : t -> Albums.Update.t option
7610
7611 val avatar : t -> Avatar.Update.t option
7612
7613 val cast : t -> Cast.Update.t option
7614
7615 val download : t -> Download.Update.t option
7616
7617 val email_notifications : t -> EmailNotifications.Update.t option
7618
7619 val folders : t -> Folders.Update.t option
7620
7621 val memories : t -> Memories.Update.t option
7622
7623 val people : t -> Jsont.json option
7624
7625 val purchase : t -> Purchase.Update.t option
7626
7627 val ratings : t -> Ratings.Update.t option
7628
7629 val shared_links : t -> SharedLinks.Update.t option
7630
7631 val tags : t -> Tags.Update.t option
7632
7633 val jsont : t Jsont.t
7634 end
7635
7636 module ResponseDto : sig
7637 type t
7638
7639 (** Construct a value *)
7640 val v : albums:Albums.Response.t -> cast:Cast.Response.t -> download:Download.Response.t -> email_notifications:EmailNotifications.Response.t -> folders:Folders.Response.t -> memories:Memories.Response.t -> people:Jsont.json -> purchase:Purchase.Response.t -> ratings:Ratings.Response.t -> shared_links:SharedLinks.Response.t -> tags:Tags.Response.t -> unit -> t
7641
7642 val albums : t -> Albums.Response.t
7643
7644 val cast : t -> Cast.Response.t
7645
7646 val download : t -> Download.Response.t
7647
7648 val email_notifications : t -> EmailNotifications.Response.t
7649
7650 val folders : t -> Folders.Response.t
7651
7652 val memories : t -> Memories.Response.t
7653
7654 val people : t -> Jsont.json
7655
7656 val purchase : t -> Purchase.Response.t
7657
7658 val ratings : t -> Ratings.Response.t
7659
7660 val shared_links : t -> SharedLinks.Response.t
7661
7662 val tags : t -> Tags.Response.t
7663
7664 val jsont : t Jsont.t
7665 end
7666
7667 (** Retrieve user preferences
7668
7669 Retrieve the preferences of a specific user. *)
7670 val get_user_preferences_admin : id:string -> t -> unit -> ResponseDto.t
7671
7672 (** Update user preferences
7673
7674 Update the preferences of a specific user. *)
7675 val update_user_preferences_admin : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
7676
7677 (** Get my preferences
7678
7679 Retrieve the preferences for the current user. *)
7680 val get_my_preferences : t -> unit -> ResponseDto.t
7681
7682 (** Update my preferences
7683
7684 Update the preferences of the current user. *)
7685 val update_my_preferences : body:UpdateDto.t -> t -> unit -> ResponseDto.t
7686end
7687
7688module Person : sig
7689 module UpdateDto : sig
7690 type t
7691
7692 (** Construct a value
7693 @param birth_date Person date of birth.
7694 Note: the mobile app cannot currently set the birth date to null.
7695 @param feature_face_asset_id Asset is used to get the feature face thumbnail.
7696 @param is_hidden Person visibility
7697 @param name Person name.
7698 *)
7699 val v : ?birth_date:string -> ?color:string -> ?feature_face_asset_id:string -> ?is_favorite:bool -> ?is_hidden:bool -> ?name:string -> unit -> t
7700
7701 (** Person date of birth.
7702 Note: the mobile app cannot currently set the birth date to null. *)
7703 val birth_date : t -> string option
7704
7705 val color : t -> string option
7706
7707 (** Asset is used to get the feature face thumbnail. *)
7708 val feature_face_asset_id : t -> string option
7709
7710 val is_favorite : t -> bool option
7711
7712 (** Person visibility *)
7713 val is_hidden : t -> bool option
7714
7715 (** Person name. *)
7716 val name : t -> string option
7717
7718 val jsont : t Jsont.t
7719 end
7720
7721 module ResponseDto : sig
7722 type t
7723
7724 (** Construct a value *)
7725 val v : id:string -> is_hidden:bool -> name:string -> thumbnail_path:string -> ?birth_date:string -> ?color:string -> ?is_favorite:bool -> ?updated_at:Ptime.t -> unit -> t
7726
7727 val birth_date : t -> string option
7728
7729 val color : t -> string option
7730
7731 val id : t -> string
7732
7733 val is_favorite : t -> bool option
7734
7735 val is_hidden : t -> bool
7736
7737 val name : t -> string
7738
7739 val thumbnail_path : t -> string
7740
7741 val updated_at : t -> Ptime.t option
7742
7743 val jsont : t Jsont.t
7744 end
7745
7746 module CreateDto : sig
7747 type t
7748
7749 (** Construct a value
7750 @param birth_date Person date of birth.
7751 Note: the mobile app cannot currently set the birth date to null.
7752 @param is_hidden Person visibility
7753 @param name Person name.
7754 *)
7755 val v : ?birth_date:string -> ?color:string -> ?is_favorite:bool -> ?is_hidden:bool -> ?name:string -> unit -> t
7756
7757 (** Person date of birth.
7758 Note: the mobile app cannot currently set the birth date to null. *)
7759 val birth_date : t -> string option
7760
7761 val color : t -> string option
7762
7763 val is_favorite : t -> bool option
7764
7765 (** Person visibility *)
7766 val is_hidden : t -> bool option
7767
7768 (** Person name. *)
7769 val name : t -> string option
7770
7771 val jsont : t Jsont.t
7772 end
7773
7774 (** Re-assign a face to another person
7775
7776 Re-assign the face provided in the body to the person identified by the id in the path parameter. *)
7777 val reassign_faces_by_id : id:string -> body:Face.Dto.t -> t -> unit -> ResponseDto.t
7778
7779 (** Create a person
7780
7781 Create a new person that can have multiple faces assigned to them. *)
7782 val create_person : body:CreateDto.t -> t -> unit -> ResponseDto.t
7783
7784 (** Get a person
7785
7786 Retrieve a person by id. *)
7787 val get_person : id:string -> t -> unit -> ResponseDto.t
7788
7789 (** Update person
7790
7791 Update an individual person. *)
7792 val update_person : id:string -> body:UpdateDto.t -> t -> unit -> ResponseDto.t
7793
7794 (** Reassign faces
7795
7796 Bulk reassign a list of faces to a different person. *)
7797 val reassign_faces : id:string -> body:Jsont.json -> t -> unit -> ResponseDto.t
7798
7799 (** Search people
7800
7801 Search for people by name. *)
7802 val search_person : name:string -> ?with_hidden:string -> t -> unit -> ResponseDto.t
7803end
7804
7805module People : sig
7806 module UpdateDto : sig
7807 type t
7808
7809 (** Construct a value *)
7810 val v : people:PeopleUpdate.Item.t list -> unit -> t
7811
7812 val people : t -> PeopleUpdate.Item.t list
7813
7814 val jsont : t Jsont.t
7815 end
7816
7817 module Update : sig
7818 type t
7819
7820 (** Construct a value *)
7821 val v : ?enabled:bool -> ?sidebar_web:bool -> unit -> t
7822
7823 val enabled : t -> bool option
7824
7825 val sidebar_web : t -> bool option
7826
7827 val jsont : t Jsont.t
7828 end
7829
7830 module ResponseDto : sig
7831 type t
7832
7833 (** Construct a value *)
7834 val v : hidden:int -> people:Person.ResponseDto.t list -> total:int -> ?has_next_page:bool -> unit -> t
7835
7836 val has_next_page : t -> bool option
7837
7838 val hidden : t -> int
7839
7840 val people : t -> Person.ResponseDto.t list
7841
7842 val total : t -> int
7843
7844 val jsont : t Jsont.t
7845 end
7846
7847 module Response : sig
7848 type t
7849
7850 (** Construct a value *)
7851 val v : ?enabled:bool -> ?sidebar_web:bool -> unit -> t
7852
7853 val enabled : t -> bool
7854
7855 val sidebar_web : t -> bool
7856
7857 val jsont : t Jsont.t
7858 end
7859
7860 (** Get all people
7861
7862 Retrieve a list of all people.
7863 @param page Page number for pagination
7864 @param size Number of items per page
7865 *)
7866 val get_all_people : ?closest_asset_id:string -> ?closest_person_id:string -> ?page:string -> ?size:string -> ?with_hidden:string -> t -> unit -> ResponseDto.t
7867end
7868
7869module BulkId : sig
7870 module ResponseDto : sig
7871 type t
7872
7873 (** Construct a value *)
7874 val v : id:string -> success:bool -> ?error:string -> unit -> t
7875
7876 val error : t -> string option
7877
7878 val id : t -> string
7879
7880 val success : t -> bool
7881
7882 val jsont : t Jsont.t
7883 end
7884
7885 (** Add assets to an album
7886
7887 Add multiple assets to a specific album by its ID. *)
7888 val add_assets_to_album : id:string -> ?key:string -> ?slug:string -> body:BulkIds.Dto.t -> t -> unit -> ResponseDto.t
7889
7890 (** Remove assets from an album
7891
7892 Remove multiple assets from a specific album by its ID. *)
7893 val remove_asset_from_album : id:string -> t -> unit -> ResponseDto.t
7894
7895 (** Add assets to a memory
7896
7897 Add a list of asset IDs to a specific memory. *)
7898 val add_memory_assets : id:string -> body:BulkIds.Dto.t -> t -> unit -> ResponseDto.t
7899
7900 (** Remove assets from a memory
7901
7902 Remove a list of asset IDs from a specific memory. *)
7903 val remove_memory_assets : id:string -> t -> unit -> ResponseDto.t
7904
7905 (** Update people
7906
7907 Bulk update multiple people at once. *)
7908 val update_people : body:People.UpdateDto.t -> t -> unit -> ResponseDto.t
7909
7910 (** Merge people
7911
7912 Merge a list of people into the person specified in the path parameter. *)
7913 val merge_person : id:string -> body:MergePerson.Dto.t -> t -> unit -> ResponseDto.t
7914
7915 (** Tag assets
7916
7917 Add a tag to all the specified assets. *)
7918 val tag_assets : id:string -> body:BulkIds.Dto.t -> t -> unit -> ResponseDto.t
7919
7920 (** Untag assets
7921
7922 Remove a tag from all the specified assets. *)
7923 val untag_assets : id:string -> t -> unit -> ResponseDto.t
7924end
7925
7926module AssetFace : sig
7927 module UpdateDto : sig
7928 type t
7929
7930 (** Construct a value *)
7931 val v : data:AssetFaceUpdate.Item.t list -> unit -> t
7932
7933 val data : t -> AssetFaceUpdate.Item.t list
7934
7935 val jsont : t Jsont.t
7936 end
7937
7938 module ResponseDto : sig
7939 type t
7940
7941 (** Construct a value *)
7942 val v : bounding_box_x1:int -> bounding_box_x2:int -> bounding_box_y1:int -> bounding_box_y2:int -> id:string -> image_height:int -> image_width:int -> person:Person.ResponseDto.t -> ?source_type:Source.Type.t -> unit -> t
7943
7944 val bounding_box_x1 : t -> int
7945
7946 val bounding_box_x2 : t -> int
7947
7948 val bounding_box_y1 : t -> int
7949
7950 val bounding_box_y2 : t -> int
7951
7952 val id : t -> string
7953
7954 val image_height : t -> int
7955
7956 val image_width : t -> int
7957
7958 val person : t -> Person.ResponseDto.t
7959
7960 val source_type : t -> Source.Type.t option
7961
7962 val jsont : t Jsont.t
7963 end
7964
7965 module CreateDto : sig
7966 type t
7967
7968 (** Construct a value *)
7969 val v : asset_id:string -> height:int -> image_height:int -> image_width:int -> person_id:string -> width:int -> x:int -> y:int -> unit -> t
7970
7971 val asset_id : t -> string
7972
7973 val height : t -> int
7974
7975 val image_height : t -> int
7976
7977 val image_width : t -> int
7978
7979 val person_id : t -> string
7980
7981 val width : t -> int
7982
7983 val x : t -> int
7984
7985 val y : t -> int
7986
7987 val jsont : t Jsont.t
7988 end
7989
7990 (** Retrieve faces for asset
7991
7992 Retrieve all faces belonging to an asset. *)
7993 val get_faces : id:string -> t -> unit -> ResponseDto.t
7994end
7995
7996module Client : sig
7997 (** Delete an activity
7998
7999 Removes a like or comment from a given album or asset in an album. *)
8000 val delete_activity : id:string -> t -> unit -> Jsont.json
8001
8002 (** Unlink all OAuth accounts
8003
8004 Unlinks all OAuth accounts associated with user accounts in the system. *)
8005 val unlink_all_oauth_accounts_admin : t -> unit -> Jsont.json
8006
8007 (** Delete database backup
8008
8009 Delete a backup by its filename *)
8010 val delete_database_backup : t -> unit -> Jsont.json
8011
8012 (** Start database backup restore flow
8013
8014 Put Immich into maintenance mode to restore a backup (Immich must not be configured) *)
8015 val start_database_restore_flow : t -> unit -> Jsont.json
8016
8017 (** Upload database backup
8018
8019 Uploads .sql/.sql.gz file to restore backup from *)
8020 val upload_database_backup : t -> unit -> Jsont.json
8021
8022 (** Download database backup
8023
8024 Downloads the database backup file *)
8025 val download_database_backup : filename:string -> t -> unit -> Jsont.json
8026
8027 (** Set maintenance mode
8028
8029 Put Immich into or take it out of maintenance mode *)
8030 val set_maintenance_mode : body:SetMaintenanceMode.Dto.t -> t -> unit -> Jsont.json
8031
8032 (** Delete an album
8033
8034 Delete a specific album by its ID. Note the album is initially trashed and then immediately scheduled for deletion, but relies on a background job to complete the process. *)
8035 val delete_album : id:string -> t -> unit -> Jsont.json
8036
8037 (** Update user role
8038
8039 Change the role for a specific user in a specific album. *)
8040 val update_album_user : id:string -> user_id:string -> body:UpdateAlbumUser.Dto.t -> t -> unit -> Jsont.json
8041
8042 (** Remove user from album
8043
8044 Remove a user from an album. Use an ID of "me" to leave a shared album. *)
8045 val remove_user_from_album : id:string -> user_id:string -> t -> unit -> Jsont.json
8046
8047 (** Delete an API key
8048
8049 Deletes an API key identified by its ID. The current user must own this API key. *)
8050 val delete_api_key : id:string -> t -> unit -> Jsont.json
8051
8052 (** Update assets
8053
8054 Updates multiple assets at the same time. *)
8055 val update_assets : body:AssetBulk.UpdateDto.t -> t -> unit -> Jsont.json
8056
8057 (** Delete assets
8058
8059 Deletes multiple assets at the same time. *)
8060 val delete_assets : t -> unit -> Jsont.json
8061
8062 (** Copy asset
8063
8064 Copy asset information like albums, tags, etc. from one asset to another. *)
8065 val copy_asset : body:AssetCopy.Dto.t -> t -> unit -> Jsont.json
8066
8067 (** Retrieve assets by device ID
8068
8069 Get all asset of a device that are in the database, ID only. *)
8070 val get_all_user_assets_by_device_id : device_id:string -> t -> unit -> Jsont.json
8071
8072 (** Run an asset job
8073
8074 Run a specific job on a set of assets. *)
8075 val run_asset_jobs : body:AssetJobs.Dto.t -> t -> unit -> Jsont.json
8076
8077 (** Delete asset metadata
8078
8079 Delete metadata key-value pairs for multiple assets. *)
8080 val delete_bulk_asset_metadata : t -> unit -> Jsont.json
8081
8082 (** Remove edits from an existing asset
8083
8084 Removes all edit actions (crop, rotate, mirror) associated with the specified asset. *)
8085 val remove_asset_edits : id:string -> t -> unit -> Jsont.json
8086
8087 (** Delete asset metadata by key
8088
8089 Delete a specific metadata key-value pair associated with the specified asset. *)
8090 val delete_asset_metadata : id:string -> key:string -> t -> unit -> Jsont.json
8091
8092 (** Download original asset
8093
8094 Downloads the original file of the specified asset. *)
8095 val download_asset : id:string -> ?edited:string -> ?key:string -> ?slug:string -> t -> unit -> Jsont.json
8096
8097 (** View asset thumbnail
8098
8099 Retrieve the thumbnail image for the specified asset. Viewing the fullsize thumbnail might redirect to downloadAsset, which requires a different permission. *)
8100 val view_asset : id:string -> ?edited:string -> ?key:string -> ?size:string -> ?slug:string -> t -> unit -> Jsont.json
8101
8102 (** Play asset video
8103
8104 Streams the video file for the specified asset. This endpoint also supports byte range requests. *)
8105 val play_asset_video : id:string -> ?key:string -> ?slug:string -> t -> unit -> Jsont.json
8106
8107 (** Setup pin code
8108
8109 Setup a new pin code for the current user. *)
8110 val setup_pin_code : body:PinCodeSetup.Dto.t -> t -> unit -> Jsont.json
8111
8112 (** Change pin code
8113
8114 Change the pin code for the current user. *)
8115 val change_pin_code : body:PinCodeChange.Dto.t -> t -> unit -> Jsont.json
8116
8117 (** Reset pin code
8118
8119 Reset the pin code for the current user by providing the account password *)
8120 val reset_pin_code : t -> unit -> Jsont.json
8121
8122 (** Lock auth session
8123
8124 Remove elevated access to locked assets from the current session. *)
8125 val lock_auth_session : t -> unit -> Jsont.json
8126
8127 (** Unlock auth session
8128
8129 Temporarily grant the session elevated access to locked assets by providing the correct PIN code. *)
8130 val unlock_auth_session : body:SessionUnlock.Dto.t -> t -> unit -> Jsont.json
8131
8132 (** Download asset archive
8133
8134 Download a ZIP archive containing the specified assets. The assets must have been previously requested via the "getDownloadInfo" endpoint. *)
8135 val download_archive : ?key:string -> ?slug:string -> body:AssetIds.Dto.t -> t -> unit -> Jsont.json
8136
8137 (** Delete duplicates
8138
8139 Delete multiple duplicate assets specified by their IDs. *)
8140 val delete_duplicates : t -> unit -> Jsont.json
8141
8142 (** Delete a duplicate
8143
8144 Delete a single duplicate asset specified by its ID. *)
8145 val delete_duplicate : id:string -> t -> unit -> Jsont.json
8146
8147 (** Create a face
8148
8149 Create a new face that has not been discovered by facial recognition. The content of the bounding box is considered a face. *)
8150 val create_face : body:AssetFace.CreateDto.t -> t -> unit -> Jsont.json
8151
8152 (** Delete a face
8153
8154 Delete a face identified by the id. Optionally can be force deleted. *)
8155 val delete_face : id:string -> t -> unit -> Jsont.json
8156
8157 (** Create a manual job
8158
8159 Run a specific job. Most jobs are queued automatically, but this endpoint allows for manual creation of a handful of jobs, including various cleanup tasks, as well as creating a new database backup. *)
8160 val create_job : body:Job.CreateDto.t -> t -> unit -> Jsont.json
8161
8162 (** Delete a library
8163
8164 Delete an external library by its ID. *)
8165 val delete_library : id:string -> t -> unit -> Jsont.json
8166
8167 (** Scan a library
8168
8169 Queue a scan for the external library to find and import new assets. *)
8170 val scan_library : id:string -> t -> unit -> Jsont.json
8171
8172 (** Delete a memory
8173
8174 Delete a specific memory by its ID. *)
8175 val delete_memory : id:string -> t -> unit -> Jsont.json
8176
8177 (** Update notifications
8178
8179 Update a list of notifications. Allows to bulk-set the read status of notifications. *)
8180 val update_notifications : body:NotificationUpdateAll.Dto.t -> t -> unit -> Jsont.json
8181
8182 (** Delete notifications
8183
8184 Delete a list of notifications at once. *)
8185 val delete_notifications : t -> unit -> Jsont.json
8186
8187 (** Delete a notification
8188
8189 Delete a specific notification. *)
8190 val delete_notification : id:string -> t -> unit -> Jsont.json
8191
8192 (** Redirect OAuth to mobile
8193
8194 Requests to this URL are automatically forwarded to the mobile app, and is used in some cases for OAuth redirecting. *)
8195 val redirect_oauth_to_mobile : t -> unit -> Jsont.json
8196
8197 (** Remove a partner
8198
8199 Stop sharing assets with a partner. *)
8200 val remove_partner : id:string -> t -> unit -> Jsont.json
8201
8202 (** Delete people
8203
8204 Bulk delete a list of people at once. *)
8205 val delete_people : t -> unit -> Jsont.json
8206
8207 (** Delete person
8208
8209 Delete an individual person. *)
8210 val delete_person : id:string -> t -> unit -> Jsont.json
8211
8212 (** Get person thumbnail
8213
8214 Retrieve the thumbnail file for a person. *)
8215 val get_person_thumbnail : id:string -> t -> unit -> Jsont.json
8216
8217 (** Empty a queue
8218
8219 Removes all jobs from the specified queue. *)
8220 val empty_queue : name:string -> t -> unit -> Jsont.json
8221
8222 (** Retrieve search suggestions
8223
8224 Retrieve search suggestions based on partial input. This endpoint is used for typeahead search features. *)
8225 val get_search_suggestions : ?country:string -> ?include_null:string -> ?lens_model:string -> ?make:string -> ?model:string -> ?state:string -> type_:string -> t -> unit -> Jsont.json
8226
8227 (** Delete server product key
8228
8229 Delete the currently set server product key. *)
8230 val delete_server_license : t -> unit -> Jsont.json
8231
8232 (** Delete all sessions
8233
8234 Delete all sessions for the user. This will not delete the current session. *)
8235 val delete_all_sessions : t -> unit -> Jsont.json
8236
8237 (** Delete a session
8238
8239 Delete a specific session by id. *)
8240 val delete_session : id:string -> t -> unit -> Jsont.json
8241
8242 (** Lock a session
8243
8244 Lock a specific session by id. *)
8245 val lock_session : id:string -> t -> unit -> Jsont.json
8246
8247 (** Delete a shared link
8248
8249 Delete a specific shared link by its ID. *)
8250 val remove_shared_link : id:string -> t -> unit -> Jsont.json
8251
8252 (** Delete stacks
8253
8254 Delete multiple stacks by providing a list of stack IDs. *)
8255 val delete_stacks : t -> unit -> Jsont.json
8256
8257 (** Delete a stack
8258
8259 Delete a specific stack by its ID. *)
8260 val delete_stack : id:string -> t -> unit -> Jsont.json
8261
8262 (** Remove an asset from a stack
8263
8264 Remove a specific asset from a stack by providing the stack ID and asset ID. *)
8265 val remove_asset_from_stack : asset_id:string -> id:string -> t -> unit -> Jsont.json
8266
8267 (** Acknowledge changes
8268
8269 Send a list of synchronization acknowledgements to confirm that the latest changes have been received. *)
8270 val send_sync_ack : body:SyncAckSet.Dto.t -> t -> unit -> Jsont.json
8271
8272 (** Delete acknowledgements
8273
8274 Delete specific synchronization acknowledgments. *)
8275 val delete_sync_ack : t -> unit -> Jsont.json
8276
8277 (** Stream sync changes
8278
8279 Retrieve a JSON lines streamed response of changes for synchronization. This endpoint is used by the mobile app to efficiently stay up to date with changes. *)
8280 val get_sync_stream : body:SyncStream.Dto.t -> t -> unit -> Jsont.json
8281
8282 (** Update admin onboarding
8283
8284 Update the admin onboarding status. *)
8285 val update_admin_onboarding : body:AdminOnboarding.UpdateDto.t -> t -> unit -> Jsont.json
8286
8287 (** Delete a tag
8288
8289 Delete a specific tag by its ID. *)
8290 val delete_tag : id:string -> t -> unit -> Jsont.json
8291
8292 (** Delete user product key
8293
8294 Delete the registered product key for the current user. *)
8295 val delete_user_license : t -> unit -> Jsont.json
8296
8297 (** Delete user onboarding
8298
8299 Delete the onboarding status of the current user. *)
8300 val delete_user_onboarding : t -> unit -> Jsont.json
8301
8302 (** Delete user profile image
8303
8304 Delete the profile image of the current user. *)
8305 val delete_profile_image : t -> unit -> Jsont.json
8306
8307 (** Retrieve user profile image
8308
8309 Retrieve the profile image file for a user. *)
8310 val get_profile_image : id:string -> t -> unit -> Jsont.json
8311
8312 (** Retrieve unique paths
8313
8314 Retrieve a list of unique folder paths from asset original paths. *)
8315 val get_unique_original_paths : t -> unit -> Jsont.json
8316
8317 (** Delete a workflow
8318
8319 Delete a workflow by its ID. *)
8320 val delete_workflow : id:string -> t -> unit -> Jsont.json
8321end