My agentic slop goes here. Not intended for anyone else!
1(** JMAP Session and Account Types *)
2
3(** Account object *)
4module Account : sig
5 type t = {
6 name : string;
7 is_personal : bool;
8 is_read_only : bool;
9 account_capabilities : (string * Ezjsonm.value) list;
10 }
11
12 (** Accessors *)
13 val name : t -> string
14 val is_personal : t -> bool
15 val is_read_only : t -> bool
16 val account_capabilities : t -> (string * Ezjsonm.value) list
17
18 (** Constructor *)
19 val v :
20 name:string ->
21 is_personal:bool ->
22 is_read_only:bool ->
23 account_capabilities:(string * Ezjsonm.value) list ->
24 t
25
26 (** Parse from JSON *)
27 val of_json : Ezjsonm.value -> t
28end
29
30(** Session object *)
31type t = {
32 capabilities : (string * Ezjsonm.value) list;
33 accounts : (Jmap_id.t * Account.t) list;
34 primary_accounts : (string * Jmap_id.t) list;
35 username : string;
36 api_url : string;
37 download_url : string;
38 upload_url : string;
39 event_source_url : string;
40 state : string;
41}
42
43(** Accessors *)
44val capabilities : t -> (string * Ezjsonm.value) list
45val accounts : t -> (Jmap_id.t * Account.t) list
46val primary_accounts : t -> (string * Jmap_id.t) list
47val username : t -> string
48val api_url : t -> string
49val download_url : t -> string
50val upload_url : t -> string
51val event_source_url : t -> string
52val state : t -> string
53
54(** Constructor *)
55val v :
56 capabilities:(string * Ezjsonm.value) list ->
57 accounts:(Jmap_id.t * Account.t) list ->
58 primary_accounts:(string * Jmap_id.t) list ->
59 username:string ->
60 api_url:string ->
61 download_url:string ->
62 upload_url:string ->
63 event_source_url:string ->
64 state:string ->
65 t
66
67(** Parser submodule *)
68module Parser : sig
69 (** Parse session from JSON *)
70 val of_json : Ezjsonm.value -> t
71
72 val of_string : string -> t
73
74 val of_channel : in_channel -> t
75end