(** JMAP Push Notification Types *) (** StateChange notification object *) module StateChange : sig (** Map of type name to state string *) type type_state = (string * string) list type t = { at_type : string; changed : (Jmap_id.t * type_state) list; } (** Accessors *) val at_type : t -> string val changed : t -> (Jmap_id.t * type_state) list (** Constructor *) val v : at_type:string -> changed:(Jmap_id.t * type_state) list -> t (** Parse from JSON *) val of_json : Ezjsonm.value -> t end (** PushSubscription object *) module PushSubscription : sig type t = { id : Jmap_id.t; device_client_id : string; url : string; keys : Ezjsonm.value option; verification_code : string option; expires : Jmap_primitives.UTCDate.t option; types : string list option; } (** Accessors *) val id : t -> Jmap_id.t val device_client_id : t -> string val url : t -> string val keys : t -> Ezjsonm.value option val verification_code : t -> string option val expires : t -> Jmap_primitives.UTCDate.t option val types : t -> string list option (** Constructor *) val v : id:Jmap_id.t -> device_client_id:string -> url:string -> ?keys:Ezjsonm.value -> ?verification_code:string -> ?expires:Jmap_primitives.UTCDate.t -> ?types:string list -> unit -> t (** Parse from JSON *) val of_json : Ezjsonm.value -> t end (** PushVerification object (sent to push endpoint) *) module PushVerification : sig type t = { at_type : string; push_subscription_id : string; verification_code : string; } (** Accessors *) val at_type : t -> string val push_subscription_id : t -> string val verification_code : t -> string (** Constructor *) val v : at_type:string -> push_subscription_id:string -> verification_code:string -> t val of_json : Ezjsonm.value -> t end