Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Get ¶
type Get struct { // The ids of the Foo objects to return. If null, then all records of // the data type are returned, if this is supported for that data type // and the number of records does not exceed the maxObjectsInGet limit. IDs []jmap.ID `json:"ids,omitempty"` // If supplied, only the properties listed in the array are returned // for each Foo object. If null, all properties of the object are // returned. The id property of the object is always returned, even if // not explicitly requested. If an invalid property is requested, the // call MUST be rejected with an invalidArguments error. Properties []string `json:"properties,omitempty"` }
Get the active Push Subscriptions that were created with the same authentication credentials used to make the call
type GetResponse ¶
type GetResponse struct { // An array of the Foo objects requested. This is the empty array // if no objects were found or if the ids argument passed in was also // an empty array. The results MAY be in a different order to the ids // in the request arguments. If an identical id is included more than // once in the request, the server MUST only include it once in either // the list or the notFound argument of the response. // // Each specification must define it's own List property List []*PushSubscription `json:"list,omitempty"` // This array contains the ids passed to the method for records that do // not exist. The array is empty if all requested ids were found or if // the ids argument passed in was either null or an empty array. NotFound []jmap.ID `json:"notFound,omitempty"` }
This is a standard “/get” method as described in [@!RFC8620], Section 5.1.
type Key ¶
type Key struct { // The public key, base64 encoded Public string `json:"p256dh"` // The authentication secret, base64 encoded Auth string `json:"auth"` }
A Push Subscription Encryption key. This key must be a P-256 ECDH key
type PushSubscription ¶
type PushSubscription struct { // The ID of the push subscription // // immutable;server-set ID jmap.ID `json:"id,omitempty"` // An ID that uniquely identifies the client + device the subscription // is running on // // immutable DeviceClientID string `json:"deviceClientId,omitempty"` // An absolute URL where the JMAP server will POST the data for the push // message. This must start with "https://" // // immutable URL string `json:"url,omitempty"` // Client-generated encryption keys. If specified, the server will // encrypt the push data Keys *Key `json:"keys,omitempty"` // This must be null or omitted when the subscription is created. The // JMAP server will generate a code and send it in a push message. The // client must then update this field with that code VerificationCode string `json:"verificationCode,omitempty"` // The time this subscription expires, if specified. If not specified, // the subscription does not expire, however the server may specify a // time // // Must be in UTC Expires *time.Time `json:"expires,omitempty"` // A list of type changes the client is subscribing to, using the same // keys as a TypeState object Types []string `json:"types,omitempty"` }
A PushSubscription object
type Set ¶
type Set struct { // A map of a creation id (a temporary id set by the client) to Foo // objects, or null if no objects are to be created. // // The Foo object type definition may define default values for // properties. Any such property may be omitted by the client. // // The client MUST omit any properties that may only be set by the // server (for example, the id property on most object types). Create map[jmap.ID]*PushSubscription `json:"create,omitempty"` // A map of an id to a Patch object to apply to the current Foo object // with that id, or null if no objects are to be updated. // // A PatchObject is of type String[*] and represents an unordered set // of patches. The keys are a path in JSON Pointer Format [@!RFC6901], // with an implicit leading “/” (i.e., prefix each key with “/” before // applying the JSON Pointer evaluation algorithm). // // All paths MUST also conform to the following restrictions; if there // is any violation, the update MUST be rejected with an invalidPatch // error: // // The pointer MUST NOT reference inside an array (i.e., you MUST // NOT insert/delete from an array; the array MUST be replaced in // its entirety instead). All parts prior to the last (i.e., the // value after the final slash) MUST already exist on the object // being patched. There MUST NOT be two patches in the PatchObject // where the pointer of one is the prefix of the pointer of the // other, e.g., “alerts/1/offset” and “alerts”. // // The value associated with each pointer determines how to apply that // patch: // // If null, set to the default value if specified for this // property; otherwise, remove the property from the patched // object. If the key is not present in the parent, this a no-op. // Anything else: The value to set for this property (this may be a // replacement or addition to the object being patched). // // Any server-set properties MAY be included in the patch if their // value is identical to the current server value (before applying the // patches to the object). Otherwise, the update MUST be rejected with // an invalidProperties SetError. // // This patch definition is designed such that an entire Foo object is // also a valid PatchObject. The client may choose to optimise network // usage by just sending the diff or may send the whole object; the // server processes it the same either way. Update map[jmap.ID]*jmap.Patch `json:"update,omitempty"` // A list of ids for Foo objects to permanently delete, or null if no // objects are to be destroyed. Destroy []jmap.ID `json:"destroy,omitempty"` }
type SetResponse ¶
type SetResponse struct { // A map of the creation id to an object containing any properties of // the created Foo object that were not sent by the client. This // includes all server-set properties (such as the id in most object // types) and any properties that were omitted by the client and thus // set to a default by the server. // // This argument is null if no Foo objects were successfully created. Created map[jmap.ID]*PushSubscription `json:"created,omitempty"` // The keys in this map are the ids of all Foos that were successfully // updated. // // The value for each id is a Foo object containing any property that // changed in a way not explicitly requested by the PatchObject sent to // the server, or null if none. This lets the client know of any // changes to server-set or computed properties. // // This argument is null if no Foo objects were successfully updated. Updated map[jmap.ID]*PushSubscription `json:"updated,omitempty"` // An array of ids for records that have been destroyed since the old // state. Destroyed []jmap.ID `json:"destroyed,omitempty"` // A map of ID to a SetError for each record that failed to be created NotCreated map[jmap.ID]*jmap.SetError `json:"notCreated,omitempty"` // A map of ID to a SetError for each record that failed to be updated NotUpdated map[jmap.ID]*jmap.SetError `json:"notUpdated,omitempty"` // A map of ID to a SetError for each record that failed to be destroyed NotDestroyed map[jmap.ID]*jmap.SetError `json:"notDestroyed,omitempty"` }
type Verification ¶
type Verification struct { // The MUST be "PushVerification" Type string `json:"@type,omitempty"` // The ID of the Push Subscription that was created SubscriptionID string `json:"pushSubscriptionId,omitempty"` // The verification code to add to the subscription Code string `json:"verificationCode,omitempty"` }
A PushVerification object is sent by the server to the created Subscriptions' URL. This object contains the ID of the subscription and the Verification code required. The Client must update the PushSubscription using a Set method with the code.
Click to show internal directories.
Click to hide internal directories.