Evernote API: Module: NoteStore
Data structures
Struct: SyncState
This structure encapsulates the information about the state of the
user's account for the purpose of "state based" synchronization.
- currentTime
-
The server's current date and time.
- fullSyncBefore
-
The cutoff date and time for client caches to be
updated via incremental synchronization. Any clients that were last
synched with the server before this date/time must do a full resync of all
objects. This cutoff point will change over time as archival data is
deleted or special circumstances on the service require resynchronization.
- updateCount
-
Indicates the total number of transactions that have
been committed within the account. This reflects (for example) the
number of discrete additions or modifications that have been made to
the data in this account (tags, notes, resources, etc.).
This number is the "high water mark" for Update Sequence Numbers (USN)
within the account.
- uploaded
-
The total number of bytes that have been uploaded to
this account in the current monthly period. This can be compared against
Accounting.uploadLimit (from the UserStore) to determine how close the user
is to their monthly upload limit.
This value may not be present if the SyncState has been retrieved by
a caller that only has read access to the account.
Struct: SyncChunk
This structure is given out by the NoteStore when a client asks to
receive the current state of an account. The client asks for the server's
state one chunk at a time in order to allow clients to retrieve the state
of a large account without needing to transfer the entire account in
a single message.
The server always gives SyncChunks using an ascending series of Update
Sequence Numbers (USNs).
- currentTime
-
The server's current date and time.
- chunkHighUSN
-
The highest USN for any of the data objects represented
in this sync chunk. If there are no objects in the chunk, this will not be
set.
- updateCount
-
The total number of updates that have been performed in
the service for this account. This is equal to the highest USN within the
account at the point that this SyncChunk was generated. If updateCount
and chunkHighUSN are identical, that means that this is the last chunk
in the account ... there is no more recent information.
- notes
-
If present, this is a list of non-expunged notes that
have a USN in this chunk. This will include notes that are "deleted"
but not expunged (i.e. in the trash). The notes will include their list
of tags and resources, but the note content, resource content, resource
recognition data and resource alternate data will not be supplied.
- notebooks
-
If present, this is a list of non-expunged notebooks that
have a USN in this chunk. This will include notebooks that are "deleted"
but not expunged (i.e. in the trash).
- tags
-
If present, this is a list of the non-expunged tags that have a
USN in this chunk.
- searches
-
If present, this is a list of non-expunged searches that
have a USN in this chunk.
- resources
-
If present, this is a list of the non-expunged resources
that have a USN in this chunk. This will include the metadata for each
resource, but not its binary contents or recognition data, which must be
retrieved separately.
- expungedNotes
-
If present, the GUIDs of all of the notes that were
permanently expunged in this chunk.
- expungedNotebooks
-
If present, the GUIDs of all of the notebooks that
were permanently expunged in this chunk. When a notebook is expunged,
this implies that all of its child notes (and their resources) were
also expunged.
- expungedTags
-
If present, the GUIDs of all of the tags that were
permanently expunged in this chunk.
- expungedSearches
-
If present, the GUIDs of all of the saved searches
that were permanently expunged in this chunk.
- linkedNotebooks
-
If present, this is a list of non-expunged LinkedNotebooks that
have a USN in this chunk.
- expungedLinkedNotebooks
-
If present, the GUIDs of all of the LinkedNotebooks
that were permanently expunged in this chunk.
Struct: SyncChunkFilter
Field | Type |
---|
includeNotes | bool |
includeNoteResources | bool |
includeNoteAttributes | bool |
includeNotebooks | bool |
includeTags | bool |
includeSearches | bool |
includeResources | bool |
includeLinkedNotebooks | bool |
includeExpunged | bool |
includeNoteApplicationDataFullMap | bool |
includeResourceApplicationDataFullMap | bool |
includeNoteResourceApplicationDataFullMap | bool |
requireNoteContentClass | string |
This structure is used with the 'getFilteredSyncChunk' call to provide
fine-grained control over the data that's returned when a client needs
to synchronize with the service. Each flag in this structure specifies
whether to include one class of data in the results of that call.
- includeNotes
-
If true, then the server will include the SyncChunks.notes field
- includeNoteResources
-
If true, then the server will include the 'resources' field on all of
the Notes that are in SyncChunk.notes.
If 'includeNotes' is false, then this will have no effect.
- includeNoteAttributes
-
If true, then the server will include the 'attributes' field on all of
the Notes that are in SyncChunks.notes.
If 'includeNotes' is false, then this will have no effect.
- includeNotebooks
-
If true, then the server will include the SyncChunks.notebooks field
- includeTags
-
If true, then the server will include the SyncChunks.tags field
- includeSearches
-
If true, then the server will include the SyncChunks.searches field
- includeResources
-
If true, then the server will include the SyncChunks.resources field.
Since the Resources are also provided with their Note
(in the Notes.resources list), this is primarily useful for clients that
want to watch for changes to individual Resources due to recognition data
being added.
- includeLinkedNotebooks
-
If true, then the server will include the SyncChunks.linkedNotebooks field.
- includeExpunged
-
If true, then the server will include the 'expunged' data for any type
of included data. For example, if 'includeTags' and 'includeExpunged'
are both true, then the SyncChunks.expungedTags field will be set with
the GUIDs of tags that have been expunged from the server.
- includeNoteApplicationDataFullMap
-
If true, then the values for the applicationData map will be filled
in, assuming notes and note attributes are being returned. Otherwise,
only the keysOnly field will be filled in.
- includeResourceApplicationDataFullMap
-
If true, then the fullMap values for the applicationData map will be
filled in, assuming resources and resource attributes are being returned
(includeResources is true). Otherwise, only the keysOnly field will be
filled in.
- includeNoteResourceApplicationDataFullMap
-
If true, then the fullMap values for the applicationData map will be
filled in for resources found inside of notes, assuming resources are
being returned in notes (includeNoteResources is true). Otherwise,
only the keysOnly field will be filled in.
- requireNoteContentClass
-
If set, then only send notes whose content class matches this value.
The value can be a literal match or, if the last character is an
asterisk, a prefix match.
Struct: NoteFilter
Field | Type |
---|
order | i32 |
ascending | bool |
words | string |
notebookGuid | Types.Guid |
tagGuids | list<Types.Guid > |
timeZone | string |
inactive | bool |
emphasized | string |
A list of criteria that are used to indicate which notes are desired from
the account. This is used in queries to the NoteStore to determine
which notes should be retrieved.
- order
-
The NoteSortOrder value indicating what criterion should be
used to sort the results of the filter.
- ascending
-
If true, the results will be ascending in the requested
sort order. If false, the results will be descending.
- words
-
If present, a search query string that will filter the set of notes to be returned.
Accepts the full search grammar documented in the Evernote API Overview.
- notebookGuid
-
If present, the Guid of the notebook that must contain
the notes.
- tagGuids
-
If present, the list of tags (by GUID) that must be present
on the notes.
- timeZone
-
The zone ID for the user, which will be used to interpret
any dates or times in the queries that do not include their desired zone
information.
For example, if a query requests notes created "yesterday", this
will be evaluated from the provided time zone, if provided.
The format must be encoded as a standard zone ID such as
"America/Los_Angeles".
- inactive
-
If true, then only notes that are not active (i.e. notes in
the Trash) will be returned. Otherwise, only active notes will be returned.
There is no way to find both active and inactive notes in a single query.
- emphasized
-
If present, a search query string that may or may not influence the notes
to be returned, both in terms of coverage as well as of order. Think of it
as a wish list, not a requirement.
Accepts the full search grammar documented in the Evernote API Overview.
Struct: NoteList
Field | Type |
---|
startIndex | i32 |
totalNotes | i32 |
notes | list<Types.Note > |
stoppedWords | list<string > |
searchedWords | list<string > |
updateCount | i32 |
A small structure for returning a list of notes out of a larger set.
- startIndex
-
The starting index within the overall set of notes. This
is also the number of notes that are "before" this list in the set.
- totalNotes
-
The number of notes in the larger set. This can be used
to calculate how many notes are "after" this note in the set.
(I.e. remaining = totalNotes - (startIndex + notes.length) )
- notes
-
The list of notes from this range. The Notes will include all
metadata (attributes, resources, etc.), but will not include the ENML
content of the note or the binary contents of any resources.
- stoppedWords
-
If the NoteList was produced using a text based search
query that included words that are not indexed or searched by the service,
this will include a list of those ignored words.
- searchedWords
-
If the NoteList was produced using a text based search
query that included viable search words or quoted expressions, this will
include a list of those words. Any stopped words will not be included
in this list.
- updateCount
-
Indicates the total number of transactions that have
been committed within the account. This reflects (for example) the
number of discrete additions or modifications that have been made to
the data in this account (tags, notes, resources, etc.).
This number is the "high water mark" for Update Sequence Numbers (USN)
within the account.
This structure is used in the set of results returned by the
findNotesMetadata function. It represents the high-level information about
a single Note, without some of the larger deep structure. This allows
for the information about a list of Notes to be returned relatively quickly
with less marshalling and data transfer to remote clients.
Most fields in this structure are identical to the corresponding field in
the Note structure, with the exception of:
- largestResourceMime
- If set, then this will contain the MIME type of the largest Resource
(in bytes) within the Note. This may be useful, for example, to choose
an appropriate icon or thumbnail to represent the Note.
- largestResourceSize
- If set, this will contain the size of the largest Resource file, in
bytes, within the Note. This may be useful, for example, to decide whether
to ask the server for a thumbnail to represent the Note.
Field | Type |
---|
startIndex | i32 |
totalNotes | i32 |
notes | list<NoteMetadata > |
stoppedWords | list<string > |
searchedWords | list<string > |
updateCount | i32 |
This structure is returned from calls to the findNotesMetadata function to
give the high-level metadata about a subset of Notes that are found to
match a specified NoteFilter in a search.
- startIndex
-
The starting index within the overall set of notes. This
is also the number of notes that are "before" this list in the set.
- totalNotes
-
The number of notes in the larger set. This can be used
to calculate how many notes are "after" this note in the set.
(I.e. remaining = totalNotes - (startIndex + notes.length) )
- notes
-
The list of metadata for Notes in this range. The set of optional fields
that are set in each metadata structure will depend on the
NotesMetadataResultSpec provided by the caller when the search was
performed. Only the 'guid' field will be guaranteed to be set in each
Note.
- stoppedWords
-
If the NoteList was produced using a text based search
query that included words that are not indexed or searched by the service,
this will include a list of those ignored words.
- searchedWords
-
If the NoteList was produced using a text based search
query that included viable search words or quoted expressions, this will
include a list of those words. Any stopped words will not be included
in this list.
- updateCount
-
Indicates the total number of transactions that have
been committed within the account. This reflects (for example) the
number of discrete additions or modifications that have been made to
the data in this account (tags, notes, resources, etc.).
This number is the "high water mark" for Update Sequence Numbers (USN)
within the account.
Field | Type |
---|
includeTitle | bool |
includeContentLength | bool |
includeCreated | bool |
includeUpdated | bool |
includeDeleted | bool |
includeUpdateSequenceNum | bool |
includeNotebookGuid | bool |
includeTagGuids | bool |
includeAttributes | bool |
includeLargestResourceMime | bool |
includeLargestResourceSize | bool |
This structure is provided to the findNotesMetadata function to specify
the subset of fields that should be included in each NoteMetadata element
that is returned in the NotesMetadataList.
Each field on this structure is a boolean flag that indicates whether the
corresponding field should be included in the NoteMetadata structure when
it is returned. For example, if the 'includeTitle' field is set on this
structure when calling findNotesMetadata, then each NoteMetadata in the
list should have its 'title' field set.
If one of the fields in this spec is not set, then it will be treated as
'false' by the server, so the default behavior is to include nothing in
replies (but the mandatory GUID)
Struct: NoteCollectionCounts
A data structure representing the number of notes for each notebook
and tag with a non-zero set of applicable notes.
- notebookCounts
-
A mapping from the Notebook GUID to the number of
notes (from some selection) that are in the corresponding notebook.
- tagCounts
-
A mapping from the Tag GUID to the number of notes (from some
selection) that have the corresponding tag.
- trashCount
-
If this is set, then this is the number of notes that are in the trash.
If this is not set, then the number of notes in the trash hasn't been
reported. (I.e. if there are no notes in the trash, this will be set
to 0.)
Struct: NoteEmailParameters
Field | Type |
---|
guid | string |
note | Types.Note |
toAddresses | list<string > |
ccAddresses | list<string > |
subject | string |
message | string |
Parameters that must be given to the NoteStore emailNote call. These allow
the caller to specify the note to send, the recipient addresses, etc.
- guid
-
If set, this must be the GUID of a note within the user's account that
should be retrieved from the service and sent as email. If not set,
the 'note' field must be provided instead.
- note
-
If the 'guid' field is not set, this field must be provided, including
the full contents of the note note (and all of its Resources) to send.
This can be used for a Note that as not been created in the service,
for example by a local client with local notes.
- toAddresses
-
If provided, this should contain a list of the SMTP email addresses
that should be included in the "To:" line of the email.
Callers must specify at least one "to" or "cc" email address.
- ccAddresses
-
If provided, this should contain a list of the SMTP email addresses
that should be included in the "Cc:" line of the email.
Callers must specify at least one "to" or "cc" email address.
- subject
-
If provided, this should contain the subject line of the email that
will be sent. If not provided, the title of the note will be used
as the subject of the email.
- message
-
If provided, this is additional personal text that should be included
into the email as a message from the owner to the recipient(s).
Struct: NoteVersionId
Identifying information about previous versions of a note that are backed up
within Evernote's servers. Used in the return value of the listNoteVersions
call.
- updateSequenceNum
-
The update sequence number for the Note when it last had this content.
This serves to uniquely identify each version of the note, since USN
values are unique within an account for each update.
- updated
-
The 'updated' time that was set on the Note when it had this version
of the content. This is the user-modifiable modification time on the
note, so it's not reliable for guaranteeing the order of various
versions. (E.g. if someone modifies the note, then changes this time
manually into the past and then updates the note again.)
- saved
-
A timestamp that holds the date and time when this version of the note
was backed up by Evernote's servers. This
- title
-
The title of the note when this particular version was saved. (The
current title of the note may differ from this value.)
Struct: ClientUsageMetrics
This structure is passed from clients to the Evernote service when they wish
to relay coarse-grained usage metrics to the service to help improve
products.
- sessions
-
This field contains a count of the number of usage "sessions" that have
occurred with this client which have not previously been reported to
the service.
A "session" is defined as one of the 96 fifteen-minute intervals of the
day when someone used Evernote's interface at least once.
So if a user interacts with an Evernote client at 12:18, 12:24, and 12:36,
and then the client synchronizes at 12:39, it would report that there were
two previously-unreported sessions (one session for the 12:15-12:30 time
period, and one for the 12:30-12:45 period).
If the user used Evernote again at 12:41 and synchronized at 12:43, it
would not report any new sessions, because the 12:30-12:45 session had
already been reported.
Field | Type |
---|
noteGuid | string |
plainText | string |
filter | NoteFilter |
referenceUri | string |
A description of the thing for which we are searching for related
entities.
You must specify either
noteGuid or
plainText, but
not both.
filter and
referenceUri are optional.
- noteGuid
- The GUID of an existing note in your account for which related
entities will be found.
- plainText
- A string of plain text for which to find related entities.
You should provide a text block with a number of characters between
EDAM_RELATED_PLAINTEXT_LEN_MIN and EDAM_RELATED_PLAINTEXT_LEN_MAX.
- filter
- The list of criteria that will constrain the notes being considered
related.
Please note that some of the parameters may be ignored, such as
order and ascending.
- referenceUri
- A URI string specifying a reference entity, around which "relatedness"
should be based. This can be an URL pointing to a web page, for example.
The result of calling findRelated(). The contents of the notes,
notebooks, and tags fields will be in decreasing order of expected
relevance. It is possible that fewer results than requested will be
returned even if there are enough distinct entities in the account
in cases where the relevance is estimated to be low.
- notes
- If notes have been requested to be included, this will be the
list of notes.
- notebooks
- If notebooks have been requested to be included, this will be the
list of notebooks.
- tags
- If tags have been requested to be included, this will be the list
of tags.
containingNotebooks
If includeContainingNotebooks
is set to true
in the RelatedResultSpec, return the list of notebooks to
to which the returned related notes belong. The notebooks in this
list will occur once per notebook GUID and are represented as
NotebookDescriptor objects.
Field | Type |
---|
maxNotes | i32 |
maxNotebooks | i32 |
maxTags | i32 |
writableNotebooksOnly | bool |
includeContainingNotebooks | bool |
A description of the thing for which the service will find related
entities, via findRelated(), together with a description of what
type of entities and how many you are seeking in the
RelatedResult.
- maxNotes
- Return notes that are related to the query, but no more than
this many. Any value greater than EDAM_RELATED_MAX_NOTES
will be silently capped. If you do not set this field, then
no notes will be returned.
- maxNotebooks
- Return notebooks that are related to the query, but no more than
this many. Any value greater than EDAM_RELATED_MAX_NOTEBOOKS
will be silently capped. If you do not set this field, then
no notebooks will be returned.
- maxTags
- Return tags that are related to the query, but no more than
this many. Any value greater than EDAM_RELATED_MAX_TAGS
will be silently capped. If you do not set this field, then
no tags will be returned.
writableNotebooksOnly
Require that all returned related notebooks are writable.
The user will be able to create notes in all returned notebooks.
However, individual notes returned may still belong to notebooks
in which the user lacks the ability to create notes.
includeContainingNotebooks
If set to true
, return the containingNotebooks field
in the RelatedResult, which will contain the list of notebooks to
to which the returned related notes belong.
Services
Service: NoteStore
Function: NoteStore.getSyncStateWithMetrics
SyncState
getSyncStateWithMetrics(string
authenticationToken,
ClientUsageMetrics
clientMetrics)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
Asks the NoteStore to provide information about the status of the user
account corresponding to the provided authentication token.
This version of 'getSyncState' allows the client to upload coarse-
grained usage metrics to the service.
@param
clientMetrics
see the documentation of the ClientUsageMetrics
structure for an explanation of the fields that clients can pass to
the service.
Function: NoteStore.getFilteredSyncChunk
SyncChunk
getFilteredSyncChunk(string
authenticationToken,
i32
afterUSN,
i32
maxEntries,
SyncChunkFilter
filter)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
Asks the NoteStore to provide the state of the account in order of
last modification. This request retrieves one block of the server's
state so that a client can make several small requests against a large
account rather than getting the entire state in one big message.
This call gives fine-grained control of the data that will
be received by a client by omitting data elements that a client doesn't
need. This may reduce network traffic and sync times.
@param
afterUSN
The client can pass this value to ask only for objects that
have been updated after a certain point. This allows the client to
receive updates after its last checkpoint rather than doing a full
synchronization on every pass. The default value of "0" indicates
that the client wants to get objects from the start of the account.
@param
maxEntries
The maximum number of modified objects that should be
returned in the result SyncChunk. This can be used to limit the size
of each individual message to be friendly for network transfer.
@param
filter
The caller must set some of the flags in this structure to specify which
data types should be returned during the synchronization. See
the SyncChunkFilter structure for information on each flag.
@throws
EDAMUserException
- BAD_DATA_FORMAT "afterUSN" - if negative
- BAD_DATA_FORMAT "maxEntries" - if less than 1
Function: NoteStore.getLinkedNotebookSyncState
SyncState
getLinkedNotebookSyncState(string
authenticationToken,
Types.LinkedNotebook
linkedNotebook)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Asks the NoteStore to provide information about the status of a linked
notebook that has been shared with the caller, or that is public to the
world.
This will return a result that is similar to getSyncState, but may omit
SyncState.uploaded if the caller doesn't have permission to write to
the linked notebook.
This function must be called on the shard that owns the referenced
notebook. (I.e. the shardId in /shard/shardId/edam/note must be the
same as LinkedNotebook.shardId.)
@param
authenticationToken
This should be an authenticationToken for the guest who has received
the invitation to the share. (I.e. this should not be the result of
NoteStore.authenticateToSharedNotebook)
@param
linkedNotebook
This structure should contain identifying information and permissions
to access the notebook in question.
Function: NoteStore.getLinkedNotebookSyncChunk
SyncChunk
getLinkedNotebookSyncChunk(string
authenticationToken,
Types.LinkedNotebook
linkedNotebook,
i32
afterUSN,
i32
maxEntries,
bool
fullSyncOnly)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Asks the NoteStore to provide information about the contents of a linked
notebook that has been shared with the caller, or that is public to the
world.
This will return a result that is similar to getSyncChunk, but will only
contain entries that are visible to the caller. I.e. only that particular
Notebook will be visible, along with its Notes, and Tags on those Notes.
This function must be called on the shard that owns the referenced
notebook. (I.e. the shardId in /shard/shardId/edam/note must be the
same as LinkedNotebook.shardId.)
@param
authenticationToken
This should be an authenticationToken for the guest who has received
the invitation to the share. (I.e. this should not be the result of
NoteStore.authenticateToSharedNotebook)
@param
linkedNotebook
This structure should contain identifying information and permissions
to access the notebook in question. This must contain the valid fields
for either a shared notebook (e.g. shareKey)
or a public notebook (e.g. username, uri)
@param
afterUSN
The client can pass this value to ask only for objects that
have been updated after a certain point. This allows the client to
receive updates after its last checkpoint rather than doing a full
synchronization on every pass. The default value of "0" indicates
that the client wants to get objects from the start of the account.
@param
maxEntries
The maximum number of modified objects that should be
returned in the result SyncChunk. This can be used to limit the size
of each individual message to be friendly for network transfer.
Applications should not request more than 256 objects at a time,
and must handle the case where the service returns less than the
requested number of objects in a given request even though more
objects are available on the service.
@param
fullSyncOnly
If true, then the client only wants initial data for a full sync.
In this case, the service will not return any expunged objects,
and will not return any Resources, since these are also provided
in their corresponding Notes.
@throws
EDAMUserException
- BAD_DATA_FORMAT "afterUSN" - if negative
- BAD_DATA_FORMAT "maxEntries" - if less than 1
@throws
EDAMNotFoundException
- "LinkedNotebook" - if the provided information doesn't match any
valid notebook
- "LinkedNotebook.uri" - if the provided public URI doesn't match any
valid notebook
- "SharedNotebook.id" - if the provided information indicates a
shared notebook that no longer exists
Function: NoteStore.getNotebook
Types.Notebook
getNotebook(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns the current state of the notebook with the provided GUID.
The notebook may be active or deleted (but not expunged).
@param
guid
The GUID of the notebook to be retrieved.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Notebook.guid" - if the parameter is missing
- PERMISSION_DENIED "Notebook" - private notebook, user doesn't own
@throws
EDAMNotFoundException
- "Notebook.guid" - tag not found, by GUID
Function: NoteStore.createNotebook
Types.Notebook
createNotebook(string
authenticationToken,
Types.Notebook
notebook)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
Asks the service to make a notebook with the provided name.
@param
notebook
The desired fields for the notebook must be provided on this
object. The name of the notebook must be set, and either the 'active'
or 'defaultNotebook' fields may be set by the client at creation.
If a notebook exists in the account with the same name (via
case-insensitive compare), this will throw an EDAMUserException.
@return
The newly created Notebook. The server-side GUID will be
saved in this object's 'guid' field.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Notebook.name" - invalid length or pattern
- BAD_DATA_FORMAT "Notebook.stack" - invalid length or pattern
- BAD_DATA_FORMAT "Publishing.uri" - if publishing set but bad uri
- BAD_DATA_FORMAT "Publishing.publicDescription" - if too long
- DATA_CONFLICT "Notebook.name" - name already in use
- DATA_CONFLICT "Publishing.uri" - if URI already in use
- DATA_REQUIRED "Publishing.uri" - if publishing set but uri missing
- LIMIT_REACHED "Notebook" - at max number of notebooks
Function: NoteStore.updateNotebook
i32
updateNotebook(string
authenticationToken,
Types.Notebook
notebook)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Submits notebook changes to the service. The provided data must include
the notebook's guid field for identification.
@param
notebook
The notebook object containing the requested changes.
@return
The Update Sequence Number for this change within the account.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Notebook.name" - invalid length or pattern
- BAD_DATA_FORMAT "Notebook.stack" - invalid length or pattern
- BAD_DATA_FORMAT "Publishing.uri" - if publishing set but bad uri
- BAD_DATA_FORMAT "Publishing.publicDescription" - if too long
- DATA_CONFLICT "Notebook.name" - name already in use
- DATA_CONFLICT "Publishing.uri" - if URI already in use
- DATA_REQUIRED "Publishing.uri" - if publishing set but uri missing
@throws
EDAMNotFoundException
- "Notebook.guid" - not found, by GUID
Function: NoteStore.expungeNotebook
i32
expungeNotebook(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Permanently removes the notebook from the user's account.
After this action, the notebook is no longer available for undeletion, etc.
If the notebook contains any Notes, they will be moved to the current
default notebook and moved into the trash (i.e. Note.active=false).
NOTE: This function is generally not available to third party applications.
Calls will result in an EDAMUserException with the error code
PERMISSION_DENIED.
@param
guid
The GUID of the notebook to delete.
@return
The Update Sequence Number for this change within the account.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Notebook.guid" - if the parameter is missing
- LIMIT_REACHED "Notebook" - trying to expunge the last Notebook
- PERMISSION_DENIED "Notebook" - private notebook, user doesn't own
Function: NoteStore.getTag
Types.Tag
getTag(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns the current state of the Tag with the provided GUID.
@param
guid
The GUID of the tag to be retrieved.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Tag.guid" - if the parameter is missing
- PERMISSION_DENIED "Tag" - private Tag, user doesn't own
@throws
EDAMNotFoundException
- "Tag.guid" - tag not found, by GUID
Function: NoteStore.createTag
Types.Tag
createTag(string
authenticationToken,
Types.Tag
tag)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Asks the service to make a tag with a set of information.
@param
tag
The desired list of fields for the tag are specified in this
object. The caller must specify the tag name, and may provide
the parentGUID.
@return
The newly created Tag. The server-side GUID will be
saved in this object.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Tag.name" - invalid length or pattern
- BAD_DATA_FORMAT "Tag.parentGuid" - malformed GUID
- DATA_CONFLICT "Tag.name" - name already in use
- LIMIT_REACHED "Tag" - at max number of tags
@throws
EDAMNotFoundException
- "Tag.parentGuid" - not found, by GUID
Function: NoteStore.updateTag
i32
updateTag(string
authenticationToken,
Types.Tag
tag)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Submits tag changes to the service. The provided data must include
the tag's guid field for identification. The service will apply
updates to the following tag fields: name, parentGuid
@param
tag
The tag object containing the requested changes.
@return
The Update Sequence Number for this change within the account.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Tag.name" - invalid length or pattern
- BAD_DATA_FORMAT "Tag.parentGuid" - malformed GUID
- DATA_CONFLICT "Tag.name" - name already in use
- DATA_CONFLICT "Tag.parentGuid" - can't set parent: circular
- PERMISSION_DENIED "Tag" - user doesn't own tag
@throws
EDAMNotFoundException
- "Tag.guid" - tag not found, by GUID
- "Tag.parentGuid" - parent not found, by GUID
Function: NoteStore.untagAll
void
untagAll(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Removes the provided tag from every note that is currently tagged with
this tag. If this operation is successful, the tag will still be in
the account, but it will not be tagged on any notes.
This function is not indended for use by full synchronizing clients, since
it does not provide enough result information to the client to reconcile
the local state without performing a follow-up sync from the service. This
is intended for "thin clients" that need to efficiently support this as
a UI operation.
@param
guid
The GUID of the tag to remove from all notes.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Tag.guid" - if the guid parameter is missing
- PERMISSION_DENIED "Tag" - user doesn't own tag
@throws
EDAMNotFoundException
- "Tag.guid" - tag not found, by GUID
Function: NoteStore.expungeTag
i32
expungeTag(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Permanently deletes the tag with the provided GUID, if present.
NOTE: This function is generally not available to third party applications.
Calls will result in an EDAMUserException with the error code
PERMISSION_DENIED.
@param
guid
The GUID of the tag to delete.
@return
The Update Sequence Number for this change within the account.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Tag.guid" - if the guid parameter is missing
- PERMISSION_DENIED "Tag" - user doesn't own tag
@throws
EDAMNotFoundException
- "Tag.guid" - tag not found, by GUID
Function: NoteStore.getSearch
Types.SavedSearch
getSearch(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns the current state of the search with the provided GUID.
@param
guid
The GUID of the search to be retrieved.
@throws
EDAMUserException
- BAD_DATA_FORMAT "SavedSearch.guid" - if the parameter is missing
- PERMISSION_DENIED "SavedSearch" - private Tag, user doesn't own
@throws
EDAMNotFoundException
- "SavedSearch.guid" - not found, by GUID
Function: NoteStore.createSearch
Types.SavedSearch
createSearch(string
authenticationToken,
Types.SavedSearch
search)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
Asks the service to make a saved search with a set of information.
@param
search
The desired list of fields for the search are specified in this
object. The caller must specify the name and query for the
search, and may optionally specify a search scope.
The SavedSearch.format field is ignored by the service.
@return
The newly created SavedSearch. The server-side GUID will be
saved in this object.
@throws
EDAMUserException
- BAD_DATA_FORMAT "SavedSearch.name" - invalid length or pattern
- BAD_DATA_FORMAT "SavedSearch.query" - invalid length
- DATA_CONFLICT "SavedSearch.name" - name already in use
- LIMIT_REACHED "SavedSearch" - at max number of searches
Function: NoteStore.updateSearch
i32
updateSearch(string
authenticationToken,
Types.SavedSearch
search)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Submits search changes to the service. The provided data must include
the search's guid field for identification. The service will apply
updates to the following search fields: name, query, and scope.
@param
search
The search object containing the requested changes.
@return
The Update Sequence Number for this change within the account.
@throws
EDAMUserException
- BAD_DATA_FORMAT "SavedSearch.name" - invalid length or pattern
- BAD_DATA_FORMAT "SavedSearch.query" - invalid length
- DATA_CONFLICT "SavedSearch.name" - name already in use
- PERMISSION_DENIED "SavedSearch" - user doesn't own tag
@throws
EDAMNotFoundException
- "SavedSearch.guid" - not found, by GUID
Function: NoteStore.expungeSearch
i32
expungeSearch(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Permanently deletes the saved search with the provided GUID, if present.
NOTE: This function is generally not available to third party applications.
Calls will result in an EDAMUserException with the error code
PERMISSION_DENIED.
@param
guid
The GUID of the search to delete.
@return
The Update Sequence Number for this change within the account.
@throws
EDAMUserException
- BAD_DATA_FORMAT "SavedSearch.guid" - if the guid parameter is empty
- PERMISSION_DENIED "SavedSearch" - user doesn't own
@throws
EDAMNotFoundException
- "SavedSearch.guid" - not found, by GUID
Function: NoteStore.findNoteOffset
i32
findNoteOffset(string
authenticationToken,
NoteFilter
filter,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Finds the position of a note within a sorted subset of all of the user's
notes. This may be useful for thin clients that are displaying a paginated
listing of a large account, which need to know where a particular note
sits in the list without retrieving all notes first.
@param
authenticationToken
Must be a valid token for the user's account unless the NoteFilter
'notebookGuid' is the GUID of a public notebook.
@param
filter
The list of criteria that will constrain the notes to be returned.
@param
guid
The GUID of the note to be retrieved.
@return
If the note with the provided GUID is found within the matching note
list, this will return the offset of that note within that list (where
the first offset is 0). If the note is not found within the set of
notes, this will return -1.
@throws
EDAMUserException
- BAD_DATA_FORMAT "offset" - not between 0 and EDAM_USER_NOTES_MAX
- BAD_DATA_FORMAT "maxNotes" - not between 0 and EDAM_USER_NOTES_MAX
- BAD_DATA_FORMAT "NoteFilter.notebookGuid" - if malformed
- BAD_DATA_FORMAT "NoteFilter.tagGuids" - if any are malformed
- BAD_DATA_FORMAT "NoteFilter.words" - if search string too long
@throws
EDAMNotFoundException
- "Notebook.guid" - not found, by GUID
- "Note.guid" - not found, by GUID
NotesMetadataList
findNotesMetadata(string
authenticationToken,
NoteFilter
filter,
i32
offset,
i32
maxNotes,
NotesMetadataResultSpec
resultSpec)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Used to find the high-level information about a set of the notes from a
user's account based on various criteria specified via a NoteFilter object.
Web applications that wish to periodically check for new content in a user's
Evernote account should consider using webhooks instead of polling this API.
See http://dev.yinxiang.com/documentation/cloud/chapters/polling_notification.php
for more information.
@param
authenticationToken
Must be a valid token for the user's account unless the NoteFilter
'notebookGuid' is the GUID of a public notebook.
@param
filter
The list of criteria that will constrain the notes to be returned.
@param
offset
The numeric index of the first note to show within the sorted
results. The numbering scheme starts with "0". This can be used for
pagination.
@param
maxNotes
The mximum notes to return in this query. The service will return a set
of notes that is no larger than this number, but may return fewer notes
if needed. The NoteList.totalNotes field in the return value will
indicate whether there are more values available after the returned set.
@param
resultSpec
This specifies which information should be returned for each matching
Note. The fields on this structure can be used to eliminate data that
the client doesn't need, which will reduce the time and bandwidth
to receive and process the reply.
@return
The list of notes that match the criteria.
@throws
EDAMUserException
- BAD_DATA_FORMAT "offset" - not between 0 and EDAM_USER_NOTES_MAX
- BAD_DATA_FORMAT "maxNotes" - not between 0 and EDAM_USER_NOTES_MAX
- BAD_DATA_FORMAT "NoteFilter.notebookGuid" - if malformed
- BAD_DATA_FORMAT "NoteFilter.tagGuids" - if any are malformed
- BAD_DATA_FORMAT "NoteFilter.words" - if search string too long
@throws
EDAMNotFoundException
- "Notebook.guid" - not found, by GUID
Function: NoteStore.findNoteCounts
NoteCollectionCounts
findNoteCounts(string
authenticationToken,
NoteFilter
filter,
bool
withTrash)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
This function is used to determine how many notes are found for each
notebook and tag in the user's account, given a current set of filter
parameters that determine the current selection. This function will
return a structure that gives the note count for each notebook and tag
that has at least one note under the requested filter. Any notebook or
tag that has zero notes in the filtered set will not be listed in the
reply to this function (so they can be assumed to be 0).
@param
authenticationToken
Must be a valid token for the user's account unless the NoteFilter
'notebookGuid' is the GUID of a public notebook.
@param
filter
The note selection filter that is currently being applied. The note
counts are to be calculated with this filter applied to the total set
of notes in the user's account.
@param
withTrash
If true, then the NoteCollectionCounts.trashCount will be calculated
and supplied in the reply. Otherwise, the trash value will be omitted.
@throws
EDAMUserException
- BAD_DATA_FORMAT "NoteFilter.notebookGuid" - if malformed
- BAD_DATA_FORMAT "NoteFilter.notebookGuids" - if any are malformed
- BAD_DATA_FORMAT "NoteFilter.words" - if search string too long
@throws
EDAMNotFoundException
- "Notebook.guid" - not found, by GUID
Function: NoteStore.getNote
Types.Note
getNote(string
authenticationToken,
Types.Guid
guid,
bool
withContent,
bool
withResourcesData,
bool
withResourcesRecognition,
bool
withResourcesAlternateData)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns the current state of the note in the service with the provided
GUID. The ENML contents of the note will only be provided if the
'withContent' parameter is true. The service will include the meta-data
for each resource in the note, but the binary contents of the resources
and their recognition data will be omitted.
If the Note is found in a public notebook, the authenticationToken
will be ignored (so it could be an empty string). The applicationData
fields are returned as keysOnly.
@param
guid
The GUID of the note to be retrieved.
@param
withContent
If true, the note will include the ENML contents of its
'content' field.
@param
withResourcesData
If true, any Resource elements in this Note will include the binary
contents of their 'data' field's body.
@param
withResourcesRecognition
If true, any Resource elements will include the binary contents of the
'recognition' field's body if recognition data is present.
@param
withResourcesAlternateData
If true, any Resource elements in this Note will include the binary
contents of their 'alternateData' fields' body, if an alternate form
is present.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.guid" - if the parameter is missing
- PERMISSION_DENIED "Note" - private note, user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.getNoteApplicationData
Types.LazyMap
getNoteApplicationData(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Get all of the application data for the note identified by GUID,
with values returned within the LazyMap fullMap field.
If there are no applicationData entries, then a LazyMap
with an empty fullMap will be returned. If your application
only needs to fetch its own applicationData entry, use
getNoteApplicationDataEntry instead.
Function: NoteStore.getNoteApplicationDataEntry
string
getNoteApplicationDataEntry(string
authenticationToken,
Types.Guid
guid,
string
key)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Get the value of a single entry in the applicationData map
for the note identified by GUID.
@throws
EDAMNotFoundException
- "Note.guid" - note not found, by GUID
- "NoteAttributes.applicationData.key" - note not found, by key
Function: NoteStore.getNoteContent
string
getNoteContent(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns XHTML contents of the note with the provided GUID.
If the Note is found in a public notebook, the authenticationToken
will be ignored (so it could be an empty string).
@param
guid
The GUID of the note to be retrieved.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.guid" - if the parameter is missing
- PERMISSION_DENIED "Note" - private note, user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.getNoteSearchText
string
getNoteSearchText(string
authenticationToken,
Types.Guid
guid,
bool
noteOnly,
bool
tokenizeForIndexing)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns a block of the extracted plain text contents of the note with the
provided GUID. This text can be indexed for search purposes by a light
client that doesn't have capabilities to extract all of the searchable
text content from the note and its resources.
If the Note is found in a public notebook, the authenticationToken
will be ignored (so it could be an empty string).
@param
guid
The GUID of the note to be retrieved.
@param
noteOnly
If true, this will only return the text extracted from the ENML contents
of the note itself. If false, this will also include the extracted text
from any text-bearing resources (PDF, recognized images)
@param
tokenizeForIndexing
If true, this will break the text into cleanly separated and sanitized
tokens. If false, this will return the more raw text extraction, with
its original punctuation, capitalization, spacing, etc.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.guid" - if the parameter is missing
- PERMISSION_DENIED "Note" - private note, user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.getResourceSearchText
string
getResourceSearchText(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns a block of the extracted plain text contents of the resource with
the provided GUID. This text can be indexed for search purposes by a light
client that doesn't have capability to extract all of the searchable
text content from a resource.
If the Resource is found in a public notebook, the authenticationToken
will be ignored (so it could be an empty string).
@param
guid
The GUID of the resource to be retrieved.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Resource.guid" - if the parameter is missing
- PERMISSION_DENIED "Resource" - private resource, user doesn't own
@throws
EDAMNotFoundException
- "Resource.guid" - not found, by GUID
Function: NoteStore.getNoteTagNames
list<string
>
getNoteTagNames(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns a list of the names of the tags for the note with the provided
guid. This can be used with authentication to get the tags for a
user's own note, or can be used without valid authentication to retrieve
the names of the tags for a note in a public notebook.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.guid" - if the parameter is missing
- PERMISSION_DENIED "Note" - private note, user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.createNote
Types.Note
createNote(string
authenticationToken,
Types.Note
note)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Asks the service to make a note with the provided set of information.
@param
note
A Note object containing the desired fields to be populated on
the service.
@return
The newly created Note from the service. The server-side
GUIDs for the Note and any Resources will be saved in this object.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.title" - invalid length or pattern
- BAD_DATA_FORMAT "Note.content" - invalid length for ENML content
- BAD_DATA_FORMAT "Resource.mime" - invalid resource MIME type
- BAD_DATA_FORMAT "NoteAttributes.*" - bad resource string
- BAD_DATA_FORMAT "ResourceAttributes.*" - bad resource string
- DATA_CONFLICT "Note.deleted" - deleted time set on active note
- DATA_REQUIRED "Resource.data" - resource data body missing
- ENML_VALIDATION "*" - note content doesn't validate against DTD
- LIMIT_REACHED "Note" - at max number per account
- LIMIT_REACHED "Note.size" - total note size too large
- LIMIT_REACHED "Note.resources" - too many resources on Note
- LIMIT_REACHED "Note.tagGuids" - too many Tags on Note
- LIMIT_REACHED "Resource.data.size" - resource too large
- LIMIT_REACHED "NoteAttribute.*" - attribute string too long
- LIMIT_REACHED "ResourceAttribute.*" - attribute string too long
- PERMISSION_DENIED "Note.notebookGuid" - NB not owned by user
- QUOTA_REACHED "Accounting.uploadLimit" - note exceeds upload quota
- BAD_DATA_FORMAT "Tag.name" - Note.tagNames was provided, and one
of the specified tags had an invalid length or pattern
- LIMIT_REACHED "Tag" - Note.tagNames was provided, and the required
new tags would exceed the maximum number per account
@throws
EDAMNotFoundException
- "Note.notebookGuid" - not found, by GUID
Function: NoteStore.updateNote
Types.Note
updateNote(string
authenticationToken,
Types.Note
note)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Submit a set of changes to a note to the service. The provided data
must include the note's guid field for identification. The note's
title must also be set.
@param
note
A Note object containing the desired fields to be populated on
the service. With the exception of the note's title and guid, fields
that are not being changed do not need to be set. If the content is not
being modified, note.content should be left unset. If the list of
resources is not being modified, note.resources should be left unset.
@return
The metadata (no contents) for the Note on the server after the update
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.title" - invalid length or pattern
- BAD_DATA_FORMAT "Note.content" - invalid length for ENML body
- BAD_DATA_FORMAT "NoteAttributes.*" - bad resource string
- BAD_DATA_FORMAT "ResourceAttributes.*" - bad resource string
- BAD_DATA_FORMAT "Resource.mime" - invalid resource MIME type
- DATA_CONFLICT "Note.deleted" - deleted time set on active note
- DATA_REQUIRED "Resource.data" - resource data body missing
- ENML_VALIDATION "*" - note content doesn't validate against DTD
- LIMIT_REACHED "Note.tagGuids" - too many Tags on Note
- LIMIT_REACHED "Note.resources" - too many resources on Note
- LIMIT_REACHED "Note.size" - total note size too large
- LIMIT_REACHED "Resource.data.size" - resource too large
- LIMIT_REACHED "NoteAttribute.*" - attribute string too long
- LIMIT_REACHED "ResourceAttribute.*" - attribute string too long
- PERMISSION_DENIED "Note" - user doesn't own
- PERMISSION_DENIED "Note.notebookGuid" - user doesn't own destination
- QUOTA_REACHED "Accounting.uploadLimit" - note exceeds upload quota
- BAD_DATA_FORMAT "Tag.name" - Note.tagNames was provided, and one
of the specified tags had an invalid length or pattern
- LIMIT_REACHED "Tag" - Note.tagNames was provided, and the required
new tags would exceed the maximum number per account
@throws
EDAMNotFoundException
- "Note.guid" - note not found, by GUID
- "Note.notebookGuid" - if notebookGuid provided, but not found
Function: NoteStore.deleteNote
i32
deleteNote(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Moves the note into the trash. The note may still be undeleted, unless it
is expunged. This is equivalent to calling updateNote() after setting
Note.active = false
@param
guid
The GUID of the note to delete.
@return
The Update Sequence Number for this change within the account.
@throws
EDAMUserException
- PERMISSION_DENIED "Note" - user doesn't have permission to
update the note.
@throws
EDAMUserException
- DATA_CONFLICT "Note.guid" - the note is already deleted
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.expungeNote
i32
expungeNote(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Permanently removes a Note, and all of its Resources,
from the service.
NOTE: This function is not available to third party applications.
Calls will result in an EDAMUserException with the error code
PERMISSION_DENIED.
@param
guid
The GUID of the note to delete.
@return
The Update Sequence Number for this change within the account.
@throws
EDAMUserException
- PERMISSION_DENIED "Note" - user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.expungeNotes
i32
expungeNotes(string
authenticationToken,
list<Types.Guid
>
noteGuids)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Permanently removes a list of Notes, and all of their Resources, from
the service. This should be invoked with a small number of Note GUIDs
(e.g. 100 or less) on each call. To expunge a larger number of notes,
call this method multiple times. This should also be used to reduce the
number of Notes in a notebook before calling expungeNotebook() or
in the trash before calling expungeInactiveNotes(), since these calls may
be prohibitively slow if there are more than a few hundred notes.
If an exception is thrown for any of the GUIDs, then none of the notes
will be deleted. I.e. this call can be treated as an atomic transaction.
NOTE: This function is not available to third party applications.
Calls will result in an EDAMUserException with the error code
PERMISSION_DENIED.
@param
noteGuids
The list of GUIDs for the Notes to remove.
@return
The account's updateCount at the end of this operation
@throws
EDAMUserException
- PERMISSION_DENIED "Note" - user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.expungeInactiveNotes
i32
expungeInactiveNotes(string
authenticationToken)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
Permanently removes all of the Notes that are currently marked as
inactive. This is equivalent to "emptying the trash", and these Notes
will be gone permanently.
This operation may be relatively slow if the account contains a large
number of inactive Notes.
NOTE: This function is not available to third party applications.
Calls will result in an EDAMUserException with the error code
PERMISSION_DENIED.
@return
The number of notes that were expunged.
Function: NoteStore.copyNote
Types.Note
copyNote(string
authenticationToken,
Types.Guid
noteGuid,
Types.Guid
toNotebookGuid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Performs a deep copy of the Note with the provided GUID 'noteGuid' into
the Notebook with the provided GUID 'toNotebookGuid'.
The caller must be the owner of both the Note and the Notebook.
This creates a new Note in the destination Notebook with new content and
Resources that match all of the content and Resources from the original
Note, but with new GUID identifiers.
The original Note is not modified by this operation.
The copied note is considered as an "upload" for the purpose of upload
transfer limit calculation, so its size is added to the upload count for
the owner.
@param
noteGuid
The GUID of the Note to copy.
@param
toNotebookGuid
The GUID of the Notebook that should receive the new Note.
@return
The metadata for the new Note that was created. This will include the
new GUID for this Note (and any copied Resources), but will not include
the content body or the binary bodies of any Resources.
@throws
EDAMUserException
- LIMIT_REACHED "Note" - at max number per account
- PERMISSION_DENIED "Notebook.guid" - destination not owned by user
- PERMISSION_DENIED "Note" - user doesn't own
- QUOTA_REACHED "Accounting.uploadLimit" - note exceeds upload quota
@throws
EDAMNotFoundException
- "Notebook.guid" - not found, by GUID
Function: NoteStore.listNoteVersions
list<NoteVersionId
>
listNoteVersions(string
authenticationToken,
Types.Guid
noteGuid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns a list of the prior versions of a particular note that are
saved within the service. These prior versions are stored to provide a
recovery from unintentional removal of content from a note. The identifiers
that are returned by this call can be used with getNoteVersion to retrieve
the previous note.
The identifiers will be listed from the most recent versions to the oldest.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.guid" - if the parameter is missing
- PERMISSION_DENIED "Note" - private note, user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.getNoteVersion
Types.Note
getNoteVersion(string
authenticationToken,
Types.Guid
noteGuid,
i32
updateSequenceNum,
bool
withResourcesData,
bool
withResourcesRecognition,
bool
withResourcesAlternateData)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
This can be used to retrieve a previous version of a Note after it has been
updated within the service. The caller must identify the note (via its
guid) and the version (via the updateSequenceNumber of that version).
to find a listing of the stored version USNs for a note, call
listNoteVersions.
This call is only available for notes in Premium accounts. (I.e. access
to past versions of Notes is a Premium-only feature.)
@param
noteGuid
The GUID of the note to be retrieved.
@param
updateSequenceNum
The USN of the version of the note that is being retrieved
@param
withResourcesData
If true, any Resource elements in this Note will include the binary
contents of their 'data' field's body.
@param
withResourcesRecognition
If true, any Resource elements will include the binary contents of the
'recognition' field's body if recognition data is present.
@param
withResourcesAlternateData
If true, any Resource elements in this Note will include the binary
contents of their 'alternateData' fields' body, if an alternate form
is present.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.guid" - if the parameter is missing
- PERMISSION_DENIED "Note" - private note, user doesn't own
- PERMISSION_DENIED "updateSequenceNum" -
The account isn't permitted to access previous versions of notes.
(i.e. this is a Free account.)
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
- "Note.updateSequenceNumber" - the Note doesn't have a version with
the corresponding USN.
Function: NoteStore.getResource
Types.Resource
getResource(string
authenticationToken,
Types.Guid
guid,
bool
withData,
bool
withRecognition,
bool
withAttributes,
bool
withAlternateData)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns the current state of the resource in the service with the
provided GUID.
If the Resource is found in a public notebook, the authenticationToken
will be ignored (so it could be an empty string). Only the
keys for the applicationData will be returned.
@param
guid
The GUID of the resource to be retrieved.
@param
withData
If true, the Resource will include the binary contents of the
'data' field's body.
@param
withRecognition
If true, the Resource will include the binary contents of the
'recognition' field's body if recognition data is present.
@param
withAttributes
If true, the Resource will include the attributes
@param
withAlternateData
If true, the Resource will include the binary contents of the
'alternateData' field's body, if an alternate form is present.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Resource.guid" - if the parameter is missing
- PERMISSION_DENIED "Resource" - private resource, user doesn't own
@throws
EDAMNotFoundException
- "Resource.guid" - not found, by GUID
Function: NoteStore.getResourceApplicationData
Types.LazyMap
getResourceApplicationData(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Get all of the application data for the Resource identified by GUID,
with values returned within the LazyMap fullMap field.
If there are no applicationData entries, then a LazyMap
with an empty fullMap will be returned. If your application
only needs to fetch its own applicationData entry, use
getResourceApplicationDataEntry instead.
Function: NoteStore.getResourceApplicationDataEntry
string
getResourceApplicationDataEntry(string
authenticationToken,
Types.Guid
guid,
string
key)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Get the value of a single entry in the applicationData map
for the Resource identified by GUID.
@throws
EDAMNotFoundException
- "Resource.guid" - Resource not found, by GUID
- "ResourceAttributes.applicationData.key" - Resource not found, by key
Function: NoteStore.updateResource
i32
updateResource(string
authenticationToken,
Types.Resource
resource)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Submit a set of changes to a resource to the service. This can be used
to update the meta-data about the resource, but cannot be used to change
the binary contents of the resource (including the length and hash). These
cannot be changed directly without creating a new resource and removing the
old one via updateNote.
@param
resource
A Resource object containing the desired fields to be populated on
the service. The service will attempt to update the resource with the
following fields from the client:
- guid: must be provided to identify the resource
- mime
- width
- height
- duration
- attributes: optional. if present, the set of attributes will
be replaced.
@return
The Update Sequence Number of the resource after the changes have been
applied.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Resource.guid" - if the parameter is missing
- BAD_DATA_FORMAT "Resource.mime" - invalid resource MIME type
- BAD_DATA_FORMAT "ResourceAttributes.*" - bad resource string
- LIMIT_REACHED "ResourceAttribute.*" - attribute string too long
- PERMISSION_DENIED "Resource" - private resource, user doesn't own
@throws
EDAMNotFoundException
- "Resource.guid" - not found, by GUID
Function: NoteStore.getResourceData
string
getResourceData(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns binary data of the resource with the provided GUID. For
example, if this were an image resource, this would contain the
raw bits of the image.
If the Resource is found in a public notebook, the authenticationToken
will be ignored (so it could be an empty string).
@param
guid
The GUID of the resource to be retrieved.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Resource.guid" - if the parameter is missing
- PERMISSION_DENIED "Resource" - private resource, user doesn't own
@throws
EDAMNotFoundException
- "Resource.guid" - not found, by GUID
Function: NoteStore.getResourceByHash
Types.Resource
getResourceByHash(string
authenticationToken,
Types.Guid
noteGuid,
string
contentHash,
bool
withData,
bool
withRecognition,
bool
withAlternateData)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns the current state of a resource, referenced by containing
note GUID and resource content hash.
@param
noteGuid
The GUID of the note that holds the resource to be retrieved.
@param
contentHash
The MD5 checksum of the resource within that note. Note that
this is the binary checksum, for example from Resource.data.bodyHash,
and not the hex-encoded checksum that is used within an en-media
tag in a note body.
@param
withData
If true, the Resource will include the binary contents of the
'data' field's body.
@param
withRecognition
If true, the Resource will include the binary contents of the
'recognition' field's body.
@param
withAlternateData
If true, the Resource will include the binary contents of the
'alternateData' field's body, if an alternate form is present.
@throws
EDAMUserException
- DATA_REQUIRED "Note.guid" - noteGuid param missing
- DATA_REQUIRED "Note.contentHash" - contentHash param missing
- PERMISSION_DENIED "Resource" - private resource, user doesn't own
@throws
EDAMNotFoundException
- "Note" - not found, by guid
- "Resource" - not found, by hash
Function: NoteStore.getResourceRecognition
string
getResourceRecognition(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns the binary contents of the recognition index for the resource
with the provided GUID. If the caller asks about a resource that has
no recognition data, this will throw EDAMNotFoundException.
If the Resource is found in a public notebook, the authenticationToken
will be ignored (so it could be an empty string).
@param
guid
The GUID of the resource whose recognition data should be retrieved.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Resource.guid" - if the parameter is missing
- PERMISSION_DENIED "Resource" - private resource, user doesn't own
@throws
EDAMNotFoundException
- "Resource.guid" - not found, by GUID
- "Resource.recognition" - resource has no recognition
Function: NoteStore.getResourceAlternateData
string
getResourceAlternateData(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
If the Resource with the provided GUID has an alternate data representation
(indicated via the Resource.alternateData field), then this request can
be used to retrieve the binary contents of that alternate data file.
If the caller asks about a resource that has no alternate data form, this
will throw EDAMNotFoundException.
@param
guid
The GUID of the resource whose recognition data should be retrieved.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Resource.guid" - if the parameter is missing
- PERMISSION_DENIED "Resource" - private resource, user doesn't own
@throws
EDAMNotFoundException
- "Resource.guid" - not found, by GUID
- "Resource.alternateData" - resource has no recognition
Function: NoteStore.getResourceAttributes
Types.ResourceAttributes
getResourceAttributes(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Returns the set of attributes for the Resource with the provided GUID.
If the Resource is found in a public notebook, the authenticationToken
will be ignored (so it could be an empty string).
@param
guid
The GUID of the resource whose attributes should be retrieved.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Resource.guid" - if the parameter is missing
- PERMISSION_DENIED "Resource" - private resource, user doesn't own
@throws
EDAMNotFoundException
- "Resource.guid" - not found, by GUID
Function: NoteStore.getPublicNotebook
Types.Notebook
getPublicNotebook(Types.UserID
userId,
string
publicUri)
throws Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Looks for a user account with the provided userId on this NoteStore
shard and determines whether that account contains a public notebook
with the given URI. If the account is not found, or no public notebook
exists with this URI, this will throw an EDAMNotFoundException,
otherwise this will return the information for that Notebook.
If a notebook is visible on the web with a full URL like
http://www.evernote.com/pub/sethdemo/api
Then 'sethdemo' is the username that can be used to look up the userId,
and 'api' is the publicUri.
@param
userId
The numeric identifier for the user who owns the public notebook.
To find this value based on a username string, you can invoke
UserStore.getPublicUserInfo
@param
publicUri
The uri string for the public notebook, from Notebook.publishing.uri.
@throws
EDAMNotFoundException
- "Publishing.uri" - not found, by URI
@throws
EDAMSystemException
- TAKEN_DOWN "PublicNotebook" - The specified public notebook is
taken down (for all requesters).
- TAKEN_DOWN "Country" - The specified public notebook is taken
down for the requester because of an IP-based country lookup.
Function: NoteStore.createSharedNotebook
Types.SharedNotebook
createSharedNotebook(string
authenticationToken,
Types.SharedNotebook
sharedNotebook)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Used to construct a shared notebook object. The constructed notebook will
contain a "share key" which serve as a unique identifer and access token
for a user to access the notebook of the shared notebook owner.
@param
sharedNotebook
A shared notebook object populated with the email address of the share
recipient, the notebook guid and the access permissions. All other
attributes of the shared object are ignored. The SharedNotebook.allowPreview
field must be explicitly set with either a true or false value.
@return
The fully populated SharedNotebook object including the server assigned
share id and shareKey which can both be used to uniquely identify the
SharedNotebook.
@throws
EDAMUserException
- BAD_DATA_FORMAT "SharedNotebook.email" - if the email was not valid
- BAD_DATA_FORMAT "requireLogin" - if the SharedNotebook.allowPreview field was
not set, and the SharedNotebook.requireLogin was also not set or was set to
false.
- PERMISSION_DENIED "SharedNotebook.recipientSettings" - if
recipientSettings is set in the sharedNotebook. Only the recipient
can set these values via the setSharedNotebookRecipientSettings
method.
@throws
EDAMNotFoundException
- Notebook.guid - if the notebookGuid is not a valid GUID for the user.
Function: NoteStore.updateSharedNotebook
i32
updateSharedNotebook(string
authenticationToken,
Types.SharedNotebook
sharedNotebook)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Update a SharedNotebook object.
@param
authenticationToken
Must be an authentication token from the owner or a shared notebook
authentication token or business authentication token with sufficient
permissions to change invitations for a notebook.
@param
sharedNotebook
The SharedNotebook object containing the requested changes.
The "id" of the shared notebook must be set to allow the service
to identify the SharedNotebook to be updated. In addition, you MUST set
the email, permission, and allowPreview fields to the desired values.
All other fields will be ignored if set.
@return
The Update Serial Number for this change within the account.
@throws
EDAMUserException
- UNSUPPORTED_OPERATION "updateSharedNotebook" - if this service instance does not support shared notebooks.
- BAD_DATA_FORMAT "SharedNotebook.email" - if the email was not valid.
- DATA_REQUIRED "SharedNotebook.id" - if the id field was not set.
- DATA_REQUIRED "SharedNotebook.privilege" - if the privilege field was not set.
- DATA_REQUIRED "SharedNotebook.allowPreview" - if the allowPreview field was not set.
@throws
EDAMNotFoundException
- SharedNotebook.id - if no shared notebook with the specified ID was found.
Function: NoteStore.setSharedNotebookRecipientSettings
i32
setSharedNotebookRecipientSettings(string
authenticationToken,
i64
sharedNotebookId,
Types.SharedNotebookRecipientSettings
recipientSettings)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Set values for the recipient settings associated with a shared notebook. Having
update rights to the shared notebook record itself has no effect on this call;
only the recipient of the shared notebook can can the recipient settings.
If you do
not wish to, or cannot, change one of the reminderNotifyEmail or
reminderNotifyInApp fields, you must leave that field unset in recipientSettings.
This method will skip that field for updates and leave the existing state as
it is.
@return
belongs, which is the account from which we are sharing a notebook.
@throws
EDAMNotFoundException
"sharedNotebookId" - Thrown if the service does not
have a shared notebook record for the sharedNotebookId on the given shard. If you
receive this exception, it is probable that the shared notebook record has
been revoked or expired, or that you accessed the wrong shard.
@throws
EDAMUserException
- PEMISSION_DENIED "authenticationToken" - If you do not have permission to set
the recipient settings for the shared notebook. Only the recipient has
permission to do this.
- DATA_CONFLICT "recipientSettings.reminderNotifyEmail" - Setting whether
or not you want to receive reminder e-mail notifications is possible on
a business notebook in the business to which the user belongs. All
others can safely unset the reminderNotifyEmail field from the
recipientSettings parameter.
Function: NoteStore.sendMessageToSharedNotebookMembers
i32
sendMessageToSharedNotebookMembers(string
authenticationToken,
Types.Guid
notebookGuid,
string
messageText,
list<string
>
recipients)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Send a reminder message to some or all of the email addresses that a notebook has been
shared with. The message includes the current link to view the notebook.
@param
authenticationToken
The auth token of the user with permissions to share the notebook
@param
notebookGuid
The guid of the shared notebook
@param
messageText
User provided text to include in the email
@param
recipients
The email addresses of the recipients. If this list is empty then all of the
users that the notebook has been shared with are emailed.
If an email address doesn't correspond to share invite members then that address
is ignored.
@return
The number of messages sent
@throws
EDAMUserException
- LIMIT_REACHED "(recipients)" -
The email can't be sent because this would exceed the user's daily
email limit.
- PERMISSION_DENIED "Notebook.guid" - The user doesn't have permission to
send a message for the specified notebook.
@throws
EDAMNotFoundException
- "Notebook.guid" - not found, by GUID
Function: NoteStore.expungeSharedNotebooks
i32
expungeSharedNotebooks(string
authenticationToken,
list<i64
>
sharedNotebookIds)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Expunges the SharedNotebooks in the user's account using the
SharedNotebook.id as the identifier.
NOTE: This function is generally not available to third party applications.
Calls will result in an EDAMUserException with the error code
PERMISSION_DENIED.
sharedNotebookIds - a list of ShardNotebook.id longs identifying the
objects to delete permanently.
@return
The account's update sequence number.
Function: NoteStore.createLinkedNotebook
Types.LinkedNotebook
createLinkedNotebook(string
authenticationToken,
Types.LinkedNotebook
linkedNotebook)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Asks the service to make a linked notebook with the provided name, username
of the owner and identifiers provided. A linked notebook can be either a
link to a public notebook or to a private shared notebook.
@param
linkedNotebook
The desired fields for the linked notebook must be provided on this
object. The name of the linked notebook must be set. Either a username
uri or a shard id and share key must be provided otherwise a
EDAMUserException is thrown.
@return
The newly created LinkedNotebook. The server-side id will be
saved in this object's 'id' field.
@throws
EDAMUserException
- BAD_DATA_FORMAT "LinkedNotebook.name" - invalid length or pattern
- BAD_DATA_FORMAT "LinkedNotebook.username" - bad username format
- BAD_DATA_FORMAT "LinkedNotebook.uri" -
if public notebook set but bad uri
- BAD_DATA_FORMAT "LinkedNotebook.shareKey" -
if private notebook set but bad shareKey
- DATA_REQUIRED "LinkedNotebook.shardId" -
if private notebook but shard id not provided
Function: NoteStore.expungeLinkedNotebook
i32
expungeLinkedNotebook(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Permanently expunges the linked notebook from the account.
NOTE: This function is generally not available to third party applications.
Calls will result in an EDAMUserException with the error code
PERMISSION_DENIED.
@param
guid
The LinkedNotebook.guid field of the LinkedNotebook to permanently remove
from the account.
Function: NoteStore.authenticateToSharedNotebook
UserStore.AuthenticationResult
authenticateToSharedNotebook(string
shareKey,
string
authenticationToken)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Asks the service to produce an authentication token that can be used to
access the contents of a shared notebook from someone else's account.
This authenticationToken can be used with the various other NoteStore
calls to find and retrieve notes, and if the permissions in the shared
notebook are sufficient, to make changes to the contents of the notebook.
@param
shareKey
The 'shareKey' identifier from the SharedNotebook that was granted to
some recipient. This string internally encodes the notebook identifier
and a security signature.
@param
authenticationToken
If a non-empty string is provided, this is the full user-based
authentication token that identifies the user who is currently logged in
and trying to access the shared notebook. This may be required if the
notebook was created with 'requireLogin'.
If this string is empty, the service will attempt to authenticate to the
shared notebook without any logged in user.
@throws
EDAMSystemException
- BAD_DATA_FORMAT "shareKey" - invalid shareKey string
- INVALID_AUTH "shareKey" - bad signature on shareKey string
@throws
EDAMNotFoundException
- "SharedNotebook.id" - the shared notebook no longer exists
@throws
EDAMUserException
- DATA_REQUIRED "authenticationToken" - the share requires login, and
no valid authentication token was provided.
- PERMISSION_DENIED "SharedNotebook.username" - share requires login,
and another username has already been bound to this notebook.
Function: NoteStore.getSharedNotebookByAuth
Types.SharedNotebook
getSharedNotebookByAuth(string
authenticationToken)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
This function is used to retrieve extended information about a shared
notebook by a guest who has already authenticated to access that notebook.
This requires an 'authenticationToken' parameter which should be the
resut of a call to authenticateToSharedNotebook(...).
I.e. this is the token that gives access to the particular shared notebook
in someone else's account -- it's not the authenticationToken for the
owner of the notebook itself.
@param
authenticationToken
Should be the authentication token retrieved from the reply of
authenticateToSharedNotebook(), proving access to a particular shared
notebook.
@throws
EDAMUserException
- PERMISSION_DENIED "authenticationToken" -
authentication token doesn't correspond to a valid shared notebook
@throws
EDAMNotFoundException
- "SharedNotebook.id" - the shared notebook no longer exists
Function: NoteStore.emailNote
void
emailNote(string
authenticationToken,
NoteEmailParameters
parameters)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Attempts to send a single note to one or more email recipients.
NOTE: This function is generally not available to third party applications.
Calls will result in an EDAMUserException with the error code
PERMISSION_DENIED.
@param
authenticationToken
The note will be sent as the user logged in via this token, using that
user's registered email address. If the authenticated user doesn't
have permission to read that note, the emailing will fail.
@param
parameters
The note must be specified either by GUID (in which case it will be
sent using the existing data in the service), or else the full Note
must be passed to this call. This also specifies the additional
email fields that will be used in the email.
@throws
EDAMUserException
- LIMIT_REACHED "NoteEmailParameters.toAddresses" -
The email can't be sent because this would exceed the user's daily
email limit.
- BAD_DATA_FORMAT "(email address)" -
email address malformed
- DATA_REQUIRED "NoteEmailParameters.toAddresses" -
if there are no To: or Cc: addresses provided.
- DATA_REQUIRED "Note.title" -
if the caller provides a Note parameter with no title
- DATA_REQUIRED "Note.content" -
if the caller provides a Note parameter with no content
- ENML_VALIDATION "*" - note content doesn't validate against DTD
- DATA_REQUIRED "NoteEmailParameters.note" -
if no guid or note provided
- PERMISSION_DENIED "Note" - private note, user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.shareNote
string
shareNote(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
If this note is not already shared (via its own direct URL), then this
will start sharing that note.
This will return the secret "Note Key" for this note that
can currently be used in conjunction with the Note's GUID to gain direct
read-only access to the Note.
If the note is already shared, then this won't make any changes to the
note, and the existing "Note Key" will be returned. The only way to change
the Note Key for an existing note is to stopSharingNote first, and then
call this function.
@param
guid
The GUID of the note to be shared.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.guid" - if the parameter is missing
- PERMISSION_DENIED "Note" - private note, user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.stopSharingNote
void
stopSharingNote(string
authenticationToken,
Types.Guid
guid)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
If this note is not already shared then this will stop sharing that note
and invalidate its "Note Key", so any existing URLs to access that Note
will stop working.
If the Note is not shared, then this function will do nothing.
@param
guid
The GUID of the note to be un-shared.
@throws
EDAMUserException
- BAD_DATA_FORMAT "Note.guid" - if the parameter is missing
- PERMISSION_DENIED "Note" - private note, user doesn't own
@throws
EDAMNotFoundException
- "Note.guid" - not found, by GUID
Function: NoteStore.authenticateToSharedNote
UserStore.AuthenticationResult
authenticateToSharedNote(string
guid,
string
noteKey,
string
authenticationToken)
throws Errors.EDAMUserException
, Errors.EDAMNotFoundException
, Errors.EDAMSystemException
Asks the service to produce an authentication token that can be used to
access the contents of a single Note which was individually shared
from someone's account.
This authenticationToken can be used with the various other NoteStore
calls to find and retrieve the Note and its directly-referenced children.
@param
guid
The GUID identifying this Note on this shard.
@param
noteKey
The 'noteKey' identifier from the Note that was originally created via
a call to shareNote() and then given to a recipient to access.
@param
authenticationToken
An optional authenticationToken that identifies the user accessing the
shared note. This parameter may be required to access some shared notes.
@throws
EDAMUserException
- PERMISSION_DENIED "Note" - the Note with that GUID is either not
shared, or the noteKey doesn't match the current key for this note
- PERMISSION_DENIED "authenticationToken" - an authentication token is
required to access this Note, but either no authentication token or a
"non-owner" authentication token was provided.
@throws
EDAMNotFoundException
- "guid" - the note with that GUID is not found
@throws
EDAMSystemException
- TAKEN_DOWN "Note" - The specified shared note is taken down (for
all requesters).
- TAKEN_DOWN "Country" - The specified shared note is taken down
for the requester because of an IP-based country lookup.
RelatedResult
findRelated(string
authenticationToken,
RelatedQuery
query,
RelatedResultSpec
resultSpec)
throws Errors.EDAMUserException
, Errors.EDAMSystemException
, Errors.EDAMNotFoundException
Identify related entities on the service, such as notes,
notebooks, and tags related to notes or content.
@param
query
The information about which we are finding related entities.
@param
resultSpec
Allows the client to indicate the type and quantity of
information to be returned, allowing a saving of time and
bandwidth.
@return
The result of the query, with information considered
to likely be relevantly related to the information
described by the query.
@throws
EDAMUserException
- BAD_DATA_FORMAT "RelatedQuery.plainText" - If you provided a
a zero-length plain text value.
- BAD_DATA_FORMAT "RelatedQuery.noteGuid" - If you provided an
invalid Note GUID, that is, one that does not match the constraints
defined by EDAM_GUID_LEN_MIN, EDAM_GUID_LEN_MAX, EDAM_GUID_REGEX.
- BAD_DATA_FORMAT "NoteFilter.notebookGuid" - if malformed
- BAD_DATA_FORMAT "NoteFilter.tagGuids" - if any are malformed
- BAD_DATA_FORMAT "NoteFilter.words" - if search string too long
- PERMISSION_DENIED "Note" - If the caller does not have access to
the note identified by RelatedQuery.noteGuid.
- DATA_REQUIRED "RelatedResultSpec" - If you did not not set any values
in the result spec.
@throws
EDAMNotFoundException
- "RelatedQuery.noteGuid" - the note with that GUID is not
found, if that field has been set in the query.