Testing a Gemini codegen run
1(** JMAP Identity.
2 @see <https://www.rfc-editor.org/rfc/rfc8621.html#section-6> RFC 8621, Section 6 *)
3
4open Jmap_types
5open Jmap_email_types
6open Jmap_methods
7
8(** Identity object.
9 @see <https://www.rfc-editor.org/rfc/rfc8621.html#section-6> RFC 8621, Section 6 *)
10type identity = {
11 identity_id : id; (** immutable, server-set *)
12 name : string; (* default: "" *)
13 email : string; (** immutable *)
14 reply_to : Email_address.t list option;
15 bcc : Email_address.t list option;
16 text_signature : string; (* default: "" *)
17 html_signature : string; (* default: "" *)
18 may_delete : bool; (** server-set *)
19}
20
21(** Identity object for creation.
22 Excludes server-set fields.
23 @see <https://www.rfc-editor.org/rfc/rfc8621.html#section-6> RFC 8621, Section 6 *)
24type identity_create = {
25 identity_create_name : string option;
26 identity_create_email : string;
27 identity_create_reply_to : Email_address.t list option;
28 identity_create_bcc : Email_address.t list option;
29 identity_create_text_signature : string option;
30 identity_create_html_signature : string option;
31}
32
33(** Identity object for update.
34 Patch object, specific structure not enforced here.
35 @see <https://www.rfc-editor.org/rfc/rfc8621.html#section-6.3> RFC 8621, Section 6.3 *)
36type identity_update = patch_object
37
38(** Server-set info for created identity.
39 @see <https://www.rfc-editor.org/rfc/rfc8621.html#section-6.3> RFC 8621, Section 6.3 *)
40type identity_created_info = {
41 identity_created_id : id;
42 identity_created_may_delete : bool;
43}
44
45(** Server-set/computed info for updated identity.
46 @see <https://www.rfc-editor.org/rfc/rfc8621.html#section-6.3> RFC 8621, Section 6.3 *)
47type identity_updated_info = identity (* Contains only changed server-set props *)
48
49(** Identity/get: Args type (specialized from ['record Get_args.t]). *)
50module Identity_get_args : sig
51 type t = identity Get_args.t
52end
53
54(** Identity/get: Response type (specialized from ['record Get_response.t]). *)
55module Identity_get_response : sig
56 type t = identity Get_response.t
57end
58
59(** Identity/changes: Args type (specialized from [Changes_args.t]). *)
60module Identity_changes_args : sig
61 type t = Changes_args.t
62end
63
64(** Identity/changes: Response type (specialized from [Changes_response.t]). *)
65module Identity_changes_response : sig
66 type t = Changes_response.t
67end
68
69(** Identity/set: Args type (specialized from [('c, 'u) Set_args.t]). *)
70module Identity_set_args : sig
71 type t = (identity_create, identity_update) Set_args.t
72end
73
74(** Identity/set: Response type (specialized from [('c, 'u) Set_response.t]). *)
75module Identity_set_response : sig
76 type t = (identity_created_info, identity_updated_info) Set_response.t
77end