Evernote API: Module: NoteStore

ModuleServicesData typesConstants
NoteStoreNoteStore
ClientUsageMetrics
NoteCollectionCounts
NoteEmailParameters
NoteFilter
NoteList
NoteMetadata
NoteVersionId
NotesMetadataList
NotesMetadataResultSpec
RelatedQuery
RelatedResult
RelatedResultSpec
SyncChunk
SyncChunkFilter
SyncState

Data structures

Struct: SyncState

FieldType
currentTimeTypes.Timestamp
fullSyncBeforeTypes.Timestamp
updateCounti32
uploadedi64

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

FieldType
currentTimeTypes.Timestamp
chunkHighUSNi32
updateCounti32
noteslist<Types.Note>
notebookslist<Types.Notebook>
tagslist<Types.Tag>
searcheslist<Types.SavedSearch>
resourceslist<Types.Resource>
expungedNoteslist<Types.Guid>
expungedNotebookslist<Types.Guid>
expungedTagslist<Types.Guid>
expungedSearcheslist<Types.Guid>
linkedNotebookslist<Types.LinkedNotebook>
expungedLinkedNotebookslist<Types.Guid>

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

FieldType
includeNotesbool
includeNoteResourcesbool
includeNoteAttributesbool
includeNotebooksbool
includeTagsbool
includeSearchesbool
includeResourcesbool
includeLinkedNotebooksbool
includeExpungedbool
includeNoteApplicationDataFullMapbool
includeResourceApplicationDataFullMapbool
includeNoteResourceApplicationDataFullMapbool
requireNoteContentClassstring

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

FieldType
orderi32
ascendingbool
wordsstring
notebookGuidTypes.Guid
tagGuidslist<Types.Guid>
timeZonestring
inactivebool
emphasizedstring

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

FieldType
startIndexi32
totalNotesi32
noteslist<Types.Note>
stoppedWordslist<string>
searchedWordslist<string>
updateCounti32

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.

Struct: NoteMetadata

FieldType
guidTypes.Guid
titlestring
contentLengthi32
createdTypes.Timestamp
updatedTypes.Timestamp
deletedTypes.Timestamp
updateSequenceNumi32
notebookGuidstring
tagGuidslist<Types.Guid>
attributesTypes.NoteAttributes
largestResourceMimestring
largestResourceSizei32

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.

Struct: NotesMetadataList

FieldType
startIndexi32
totalNotesi32
noteslist<NoteMetadata>
stoppedWordslist<string>
searchedWordslist<string>
updateCounti32

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.

Struct: NotesMetadataResultSpec

FieldType
includeTitlebool
includeContentLengthbool
includeCreatedbool
includeUpdatedbool
includeDeletedbool
includeUpdateSequenceNumbool
includeNotebookGuidbool
includeTagGuidsbool
includeAttributesbool
includeLargestResourceMimebool
includeLargestResourceSizebool

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

FieldType
notebookCountsmap<Types.Guid, i32>
tagCountsmap<Types.Guid, i32>
trashCounti32

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

FieldType
guidstring
noteTypes.Note
toAddresseslist<string>
ccAddresseslist<string>
subjectstring
messagestring

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

FieldType
updateSequenceNumi32
updatedTypes.Timestamp
savedTypes.Timestamp
titlestring

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

FieldType
sessionsi32

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.

Struct: RelatedQuery

FieldType
noteGuidstring
plainTextstring
filterNoteFilter
referenceUristring

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.

Struct: RelatedResult

FieldType
noteslist<Types.Note>
notebookslist<Types.Notebook>
tagslist<Types.Tag>
containingNotebookslist<Types.NotebookDescriptor>

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.

Struct: RelatedResultSpec

FieldType
maxNotesi32
maxNotebooksi32
maxTagsi32
writableNotebooksOnlybool
includeContainingNotebooksbool

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.getSyncState

SyncState getSyncState(string authenticationToken)
    throws Errors.EDAMUserException, Errors.EDAMSystemException
Asks the NoteStore to provide information about the status of the user account corresponding to the provided authentication token.

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.getSyncChunk

SyncChunk getSyncChunk(string authenticationToken,
                       i32 afterUSN,
                       i32 maxEntries,
                       bool fullSyncOnly)
    throws Errors.EDAMUserException, Errors.EDAMSystemException
DEPRECATED - use getFilteredSyncChunk.

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


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

@throws  EDAMNotFoundException


Function: NoteStore.listNotebooks

list<Types.Notebook> listNotebooks(string authenticationToken)
    throws Errors.EDAMUserException, Errors.EDAMSystemException
Returns a list of all of the notebooks in the account.

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

@throws  EDAMNotFoundException


Function: NoteStore.getDefaultNotebook

Types.Notebook getDefaultNotebook(string authenticationToken)
    throws Errors.EDAMUserException, Errors.EDAMSystemException
Returns the notebook that should be used to store new notes in the user's account when no other notebooks are specified.

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


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

@throws  EDAMNotFoundException


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


Function: NoteStore.listTags

list<Types.Tag> listTags(string authenticationToken)
    throws Errors.EDAMUserException, Errors.EDAMSystemException
Returns a list of the tags in the account. Evernote does not support the undeletion of tags, so this will only include active tags.

Function: NoteStore.listTagsByNotebook

list<Types.Tag> listTagsByNotebook(string authenticationToken,
                                   Types.Guid notebookGuid)
    throws Errors.EDAMUserException, Errors.EDAMSystemException, Errors.EDAMNotFoundException
Returns a list of the tags that are applied to at least one note within the provided notebook. If the notebook is public, the authenticationToken may be ignored.

@param  notebookGuid the GUID of the notebook to use to find tags

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


Function: NoteStore.listSearches

list<Types.SavedSearch> listSearches(string authenticationToken)
    throws Errors.EDAMUserException, Errors.EDAMSystemException
Returns a list of the searches in the account. Evernote does not support the undeletion of searches, so this will only include active searches.

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

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


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


Function: NoteStore.findNotes

NoteList findNotes(string authenticationToken,
                   NoteFilter filter,
                   i32 offset,
                   i32 maxNotes)
    throws Errors.EDAMUserException, Errors.EDAMSystemException, Errors.EDAMNotFoundException
DEPRECATED. Use findNotesMetadata.

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

Function: NoteStore.findNotesMetadata

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

@throws  EDAMNotFoundException


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

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

@throws  EDAMNotFoundException


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


Function: NoteStore.setNoteApplicationDataEntry

i32 setNoteApplicationDataEntry(string authenticationToken,
                                Types.Guid guid,
                                string key,
                                string value)
    throws Errors.EDAMUserException, Errors.EDAMSystemException, Errors.EDAMNotFoundException
Update, or create, an entry in the applicationData map for the note identified by guid.

Function: NoteStore.unsetNoteApplicationDataEntry

i32 unsetNoteApplicationDataEntry(string authenticationToken,
                                  Types.Guid guid,
                                  string key)
    throws Errors.EDAMUserException, Errors.EDAMSystemException, Errors.EDAMNotFoundException
Remove an entry identified by 'key' from the applicationData map for the note identified by 'guid'. Silently ignores an unset of a non-existing 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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMUserException

@throws  EDAMNotFoundException

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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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


Function: NoteStore.setResourceApplicationDataEntry

i32 setResourceApplicationDataEntry(string authenticationToken,
                                    Types.Guid guid,
                                    string key,
                                    string value)
    throws Errors.EDAMUserException, Errors.EDAMSystemException, Errors.EDAMNotFoundException
Update, or create, an entry in the applicationData map for the Resource identified by guid.

Function: NoteStore.unsetResourceApplicationDataEntry

i32 unsetResourceApplicationDataEntry(string authenticationToken,
                                      Types.Guid guid,
                                      string key)
    throws Errors.EDAMUserException, Errors.EDAMSystemException, Errors.EDAMNotFoundException
Remove an entry identified by 'key' from the applicationData map for the Resource identified by 'guid'.

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:

@return The Update Sequence Number of the resource after the changes have been applied.

@throws  EDAMUserException

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMSystemException


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

@throws  EDAMNotFoundException

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

@throws  EDAMNotFoundException

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


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

@throws  EDAMNotFoundException


Function: NoteStore.listSharedNotebooks

list<Types.SharedNotebook> listSharedNotebooks(string authenticationToken)
    throws Errors.EDAMUserException, Errors.EDAMNotFoundException, Errors.EDAMSystemException
Lists the collection of shared notebooks for all notebooks in the users account.

@return The list of all SharedNotebooks for the user

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


Function: NoteStore.updateLinkedNotebook

i32 updateLinkedNotebook(string authenticationToken,
                         Types.LinkedNotebook linkedNotebook)
    throws Errors.EDAMUserException, Errors.EDAMNotFoundException, Errors.EDAMSystemException
@param  linkedNotebook Updates the name of a linked notebook.

@return The Update Sequence Number for this change within the account.

@throws  EDAMUserException


Function: NoteStore.listLinkedNotebooks

list<Types.LinkedNotebook> listLinkedNotebooks(string authenticationToken)
    throws Errors.EDAMUserException, Errors.EDAMNotFoundException, Errors.EDAMSystemException
Returns a list of linked notebooks

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

@throws  EDAMNotFoundException

@throws  EDAMUserException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException


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

@throws  EDAMNotFoundException

@throws  EDAMSystemException


Function: NoteStore.findRelated

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

@throws  EDAMNotFoundException