Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Changes ¶
type Changes struct {
// The id of the account to use.
Account jmap.ID `json:"accountId,omitempty"`
// The current state of the client. This is the string that was
// returned as the state argument in the Foo/get response. The server
// will return the changes that have occurred since this state.
SinceState string `json:"sinceState,omitempty"`
// The maximum number of ids to return in the response. The server MAY
// choose to return fewer than this value but MUST NOT return more. If
// not given by the client, the server may choose how many to return.
// If supplied by the client, the value MUST be a positive integer
// greater than 0. If a value outside of this range is given, the
// server MUST reject the call with an invalidArguments error.
MaxChanges uint64 `json:"maxChanges,omitempty"`
}
An Identity/changes method call
type ChangesResponse ¶
type ChangesResponse struct {
// The id of the account used for the call.
Account jmap.ID `json:"accountId,omitempty"`
// This is the sinceState argument echoed back; it’s the state from
// which the server is returning changes.
OldState string `json:"oldState,omitempty"`
// This is the state the client will be in after applying the set of
// changes to the old state.
NewState string `json:"newState,omitempty"`
// If true, the client may call Foo/changes again with the newState
// returned to get further updates. If false, newState is the current
// server state.
HasMoreChanges bool `json:"hasMoreChanges,omitempty"`
// An array of ids for records that have been created since the old
// state.
Created []jmap.ID `json:"created,omitempty"`
// An array of ids for records that have been updated since the old
// state.
Updated []jmap.ID `json:"updated,omitempty"`
// An array of ids for records that have been destroyed since the old
// state.
Destroyed []jmap.ID `json:"destroyed,omitempty"`
}
An Identity/changes response
type Get ¶
type Get struct {
// The id of the account to use.
Account jmap.ID `json:"accountId,omitempty"`
// The IDs of Identity objects to return. Leave blank to return all,
// subject to the MaxObjectsInGet limit of the server
IDs []jmap.ID `json:"ids,omitempty"`
// Only the supplied properties will be returned
Properties []string `json:"properties,omitempty"`
// Use IDs from a previous call
ReferenceIDs *jmap.ResultReference `json:"#ids,omitempty"`
// Use Properties from a previous call
ReferenceProperties *jmap.ResultReference `json:"#properties,omitempty"`
}
An Identity/get request
type GetResponse ¶
type GetResponse struct {
// The id of the account used for the call.
Account jmap.ID `json:"accountId,omitempty"`
// State for all Identity objects on the server for this account
State string `json:"state,omitempty"`
// The Identity objects requested
List []*Identity `json:"list,omitempty"`
// Slice of objects not found. Only present if specific IDs were
// requested
NotFound []jmap.ID `json:"notFound,omitempty"`
}
This is a standard “/get” method as described in [@!RFC8620], Section 5.1.
type Identity ¶
type Identity struct {
// The ID of the Identity
//
// immutable;server-set
ID jmap.ID `json:"id,omitempty"`
// The "From" name the client SHOULD use when creating a new Email from
// this identity
Name string `json:"name,omitempty"`
// The "From" email address the client MUST use when creating a new
// Email from this Identity. If the mailbox part of the address (the
// section before the "@") is the single character "*", then the client
// may use any valid address ending in that domain
//
// immutable
Email string `json:"email,omitempty"`
// The Reply-To value the client SHOULD set when creating a new Email
// from this identity
ReplyTo []*mail.Address `json:"replyTo,omitempty"`
// The Bcc value the client SHOULD set when creating a new Email from
// this Identity
Bcc []*mail.Address `json:"bcc,omitempty"`
// A signature the client SHOULD insert into new plaintext messages that
// will be sent from this identity
TextSignature string `json:"textSignature,omitempty"`
// A signature the client SHOULD insert into new html messages that
// will be sent from this identity
HTMLSignature string `json:"htmlSignature,omitempty"`
// If the user is allowed to delete this identity
//
// server-set
MayDelete bool `json:"mayDelete,omitempty"`
}
type Set ¶
type Set struct {
// The id of the account to use.
Account jmap.ID `json:"accountId,omitempty"`
// This is a state string as returned by the Foo/get method
// (representing the state of all objects of this type in the account).
// If supplied, the string must match the current state; otherwise, the
// method will be aborted and a stateMismatch error returned. If null,
// any changes will be applied to the current state.
IfInState string `json:"ifInState,omitempty"`
// 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]*Identity `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"`
}
An Identity/set method call
type SetResponse ¶
type SetResponse struct {
// The id of the account used for the call.
Account jmap.ID `json:"accountId,omitempty"`
// The state string that would have been returned by Foo/get before
// making the requested changes, or null if the server doesn’t know
// what the previous state string was.
OldState string `json:"oldState,omitempty"`
// The state string that will now be returned by Foo/get.
NewState string `json:"newState,omitempty"`
// 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]*Identity `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]*Identity `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"`
}
Click to show internal directories.
Click to hide internal directories.