(** JMAP Capability URNs Capabilities define which parts of JMAP are supported. Reference: RFC 8620 Section 2 Test files: test/data/core/session.json *) (** Abstract capability URN type *) type t (** {1 Standard Capabilities} *) val core : t val mail : t val submission : t val vacation_response : t (** {1 Constructors} *) val of_string : string -> t val to_string : t -> string (** {1 Validation} *) val is_supported : t -> bool (** {1 JSON Conversion} *) val of_json : Ezjsonm.value -> t val to_json : t -> Ezjsonm.value (** Core capability properties *) module CoreCapability : sig type t (** {1 Accessors} *) val max_size_upload : t -> int val max_concurrent_upload : t -> int val max_size_request : t -> int val max_concurrent_requests : t -> int val max_calls_in_request : t -> int val max_objects_in_get : t -> int val max_objects_in_set : t -> int val collation_algorithms : t -> string list (** {1 Constructor} *) val v : max_size_upload:int -> max_concurrent_upload:int -> max_size_request:int -> max_concurrent_requests:int -> max_calls_in_request:int -> max_objects_in_get:int -> max_objects_in_set:int -> collation_algorithms:string list -> t (** {1 JSON Conversion} *) val of_json : Ezjsonm.value -> t val to_json : t -> Ezjsonm.value end (** Mail capability properties *) module MailCapability : sig type t (** {1 Accessors} *) val max_mailboxes_per_email : t -> int option val max_mailbox_depth : t -> int option val max_size_mailbox_name : t -> int val max_size_attachments_per_email : t -> int val email_query_sort_options : t -> string list val may_create_top_level_mailbox : t -> bool (** {1 Constructor} *) val v : ?max_mailboxes_per_email:int -> ?max_mailbox_depth:int -> max_size_mailbox_name:int -> max_size_attachments_per_email:int -> email_query_sort_options:string list -> may_create_top_level_mailbox:bool -> unit -> t (** {1 JSON Conversion} *) val of_json : Ezjsonm.value -> t val to_json : t -> Ezjsonm.value end