Immich bindings and CLI in OCaml
at main 8321 lines 210 kB view raw
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