My agentic slop goes here. Not intended for anyone else!
1(** JMAP Capability URNs
2
3 Capabilities define which parts of JMAP are supported.
4
5 Reference: RFC 8620 Section 2
6 Test files: test/data/core/session.json
7*)
8
9(** Abstract capability URN type *)
10type t
11
12(** {1 Standard Capabilities} *)
13
14val core : t
15val mail : t
16val submission : t
17val vacation_response : t
18
19(** {1 Constructors} *)
20
21val of_string : string -> t
22val to_string : t -> string
23
24(** {1 Validation} *)
25
26val is_supported : t -> bool
27
28(** {1 JSON Conversion} *)
29
30val of_json : Ezjsonm.value -> t
31val to_json : t -> Ezjsonm.value
32
33(** Core capability properties *)
34module CoreCapability : sig
35 type t
36
37 (** {1 Accessors} *)
38
39 val max_size_upload : t -> int
40 val max_concurrent_upload : t -> int
41 val max_size_request : t -> int
42 val max_concurrent_requests : t -> int
43 val max_calls_in_request : t -> int
44 val max_objects_in_get : t -> int
45 val max_objects_in_set : t -> int
46 val collation_algorithms : t -> string list
47
48 (** {1 Constructor} *)
49
50 val v :
51 max_size_upload:int ->
52 max_concurrent_upload:int ->
53 max_size_request:int ->
54 max_concurrent_requests:int ->
55 max_calls_in_request:int ->
56 max_objects_in_get:int ->
57 max_objects_in_set:int ->
58 collation_algorithms:string list ->
59 t
60
61 (** {1 JSON Conversion} *)
62
63 val of_json : Ezjsonm.value -> t
64 val to_json : t -> Ezjsonm.value
65end
66
67(** Mail capability properties *)
68module MailCapability : sig
69 type t
70
71 (** {1 Accessors} *)
72
73 val max_mailboxes_per_email : t -> int option
74 val max_mailbox_depth : t -> int option
75 val max_size_mailbox_name : t -> int
76 val max_size_attachments_per_email : t -> int
77 val email_query_sort_options : t -> string list
78 val may_create_top_level_mailbox : t -> bool
79
80 (** {1 Constructor} *)
81
82 val v :
83 ?max_mailboxes_per_email:int ->
84 ?max_mailbox_depth:int ->
85 max_size_mailbox_name:int ->
86 max_size_attachments_per_email:int ->
87 email_query_sort_options:string list ->
88 may_create_top_level_mailbox:bool ->
89 unit ->
90 t
91
92 (** {1 JSON Conversion} *)
93
94 val of_json : Ezjsonm.value -> t
95 val to_json : t -> Ezjsonm.value
96end