com.evernote.edam.notestore.NoteStoreIface Maven / Gradle / Ivy
/**
* Autogenerated by Thrift
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
*/
package com.evernote.edam.notestore;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.HashSet;
import com.evernote.thrift.*;
import com.evernote.thrift.protocol.*;
/**
* Service: NoteStore
*
* The NoteStore service is used by EDAM clients to exchange information
* about the collection of notes in an account. This is primarily used for
* synchronization, but could also be used by a "thin" client without a full
* local cache.
*
* All functions take an "authenticationToken" parameter, which is the
* value returned by the UserStore which permits access to the account.
* This parameter is mandatory for all functions.
*
*
* Calls which require an authenticationToken may throw an EDAMUserException
* for the following reasons:
*
* - AUTH_EXPIRED "authenticationToken" - token has expired
*
* - BAD_DATA_FORMAT "authenticationToken" - token is malformed
*
* - DATA_REQUIRED "authenticationToken" - token is empty
*
* - INVALID_AUTH "authenticationToken" - token signature is invalid
*
*
*/
public interface NoteStoreIface {
/**
* Asks the NoteStore to provide information about the status of the user
* account corresponding to the provided authentication token.
*/
public SyncState getSyncState(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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.
*/
public SyncState getSyncStateWithMetrics(String authenticationToken, ClientUsageMetrics clientMetrics) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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.
*
* @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
*
*
*/
public SyncChunk getSyncChunk(String authenticationToken, int afterUSN, int maxEntries, boolean fullSyncOnly) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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 more 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
*
*
*/
public SyncChunk getFilteredSyncChunk(String authenticationToken, int afterUSN, int maxEntries, SyncChunkFilter filter) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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.
*/
public SyncState getLinkedNotebookSyncState(String authenticationToken, com.evernote.edam.type.LinkedNotebook linkedNotebook) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public SyncChunk getLinkedNotebookSyncChunk(String authenticationToken, com.evernote.edam.type.LinkedNotebook linkedNotebook, int afterUSN, int maxEntries, boolean fullSyncOnly) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Returns a list of all of the notebooks in the account.
*/
public List listNotebooks(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Notebook getNotebook(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Returns the notebook that should be used to store new notes in the
* user's account when no other notebooks are specified.
*/
public com.evernote.edam.type.Notebook getDefaultNotebook(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Notebook createNotebook(String authenticationToken, com.evernote.edam.type.Notebook notebook) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
*
*
*/
public int updateNotebook(String authenticationToken, com.evernote.edam.type.Notebook notebook) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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 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
*
*
*/
public int expungeNotebook(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Returns a list of the tags in the account. Evernote does not support
* the undeletion of tags, so this will only include active tags.
*/
public List listTags(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
* - "Notebook.guid" - notebook not found by GUID
*
*
*/
public List listTagsByNotebook(String authenticationToken, String notebookGuid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Tag getTag(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Tag createTag(String authenticationToken, com.evernote.edam.type.Tag tag) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public int updateTag(String authenticationToken, com.evernote.edam.type.Tag tag) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public void untagAll(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Permanently deletes the tag with the provided GUID, if present.
*
* 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 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
*
*
*/
public int expungeTag(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Returns a list of the searches in the account. Evernote does not support
* the undeletion of searches, so this will only include active searches.
*/
public List listSearches(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.SavedSearch getSearch(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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, query, and format of the search.
*
* @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
*
* - BAD_DATA_FORMAT "SavedSearch.format" - not a valid QueryFormat value
*
* - DATA_CONFLICT "SavedSearch.name" - name already in use
*
* - LIMIT_REACHED "SavedSearch" - at max number of searches
*
*
*/
public com.evernote.edam.type.SavedSearch createSearch(String authenticationToken, com.evernote.edam.type.SavedSearch search) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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 format
*
* @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
*
* - BAD_DATA_FORMAT "SavedSearch.format" - not a valid QueryFormat value
*
* - DATA_CONFLICT "SavedSearch.name" - name already in use
*
* - PERMISSION_DENIED "SavedSearch" - user doesn't own tag
*
*
*
* @throws EDAMNotFoundException
* - "SavedSearch.guid" - not found, by GUID
*
*
*/
public int updateSearch(String authenticationToken, com.evernote.edam.type.SavedSearch search) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Permanently deletes the saved search with the provided GUID, if present.
*
* 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 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
*
*
*/
public int expungeSearch(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Used to find a set of the notes from a user's account based on various
* criteria specified via a NoteFilter object.
* The Notes (and any embedded Resources) will have empty Data bodies for
* contents, resource data, and resource recognition fields. These values
* must be retrieved individually.
*
* @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 most 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.
*
* @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
*
*
*/
public NoteList findNotes(String authenticationToken, NoteFilter filter, int offset, int maxNotes) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public int findNoteOffset(String authenticationToken, NoteFilter filter, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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.
* This should be used instead of 'findNotes' whenever the client doesn't
* really need all of the deep structure of every Note and Resource, but
* just wants a high-level list of information. This will save time and
* bandwidth.
*
* @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
*
*
*/
public NotesMetadataList findNotesMetadata(String authenticationToken, NoteFilter filter, int offset, int maxNotes, NotesMetadataResultSpec resultSpec) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public NoteCollectionCounts findNoteCounts(String authenticationToken, NoteFilter filter, boolean withTrash) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Note getNote(String authenticationToken, String guid, boolean withContent, boolean withResourcesData, boolean withResourcesRecognition, boolean withResourcesAlternateData) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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.
*/
public com.evernote.edam.type.LazyMap getNoteApplicationData(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*/
public String getNoteApplicationDataEntry(String authenticationToken, String guid, String key) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Update, or create, an entry in the applicationData map for
* the note identified by guid.
*/
public int setNoteApplicationDataEntry(String authenticationToken, String guid, String key, String value) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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.
*/
public int unsetNoteApplicationDataEntry(String authenticationToken, String guid, String key) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public String getNoteContent(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public String getNoteSearchText(String authenticationToken, String guid, boolean noteOnly, boolean tokenizeForIndexing) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public String getResourceSearchText(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public List getNoteTagNames(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Note createNote(String authenticationToken, com.evernote.edam.type.Note note) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Note updateNote(String authenticationToken, com.evernote.edam.type.Note note) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public int deleteNote(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public int expungeNote(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public int expungeNotes(String authenticationToken, List noteGuids) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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.
*/
public int expungeInactiveNotes(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Note copyNote(String authenticationToken, String noteGuid, String toNotebookGuid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public List listNoteVersions(String authenticationToken, String noteGuid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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.
*
*
*/
public com.evernote.edam.type.Note getNoteVersion(String authenticationToken, String noteGuid, int updateSequenceNum, boolean withResourcesData, boolean withResourcesRecognition, boolean withResourcesAlternateData) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Resource getResource(String authenticationToken, String guid, boolean withData, boolean withRecognition, boolean withAttributes, boolean withAlternateData) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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.
*/
public com.evernote.edam.type.LazyMap getResourceApplicationData(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*/
public String getResourceApplicationDataEntry(String authenticationToken, String guid, String key) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Update, or create, an entry in the applicationData map for
* the Resource identified by guid.
*/
public int setResourceApplicationDataEntry(String authenticationToken, String guid, String key, String value) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* Remove an entry identified by 'key' from the applicationData map for
* the Resource identified by 'guid'.
*/
public int unsetResourceApplicationDataEntry(String authenticationToken, String guid, String key) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public int updateResource(String authenticationToken, com.evernote.edam.type.Resource resource) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public byte[] getResourceData(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.Resource getResourceByHash(String authenticationToken, String noteGuid, byte[] contentHash, boolean withData, boolean withRecognition, boolean withAlternateData) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public byte[] getResourceRecognition(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public byte[] getResourceAlternateData(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.ResourceAttributes getResourceAttributes(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
*
* 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
*
*
*/
public com.evernote.edam.type.Notebook getPublicNotebook(int userId, String publicUri) throws com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
/**
* 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
* An 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.
* @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
*
*
* @throws EDAMNotFoundException
* - Notebook.guid - if the notebookGuid is not a valid guid for the user
*
*
*/
public com.evernote.edam.type.SharedNotebook createSharedNotebook(String authenticationToken, com.evernote.edam.type.SharedNotebook sharedNotebook) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* Update a SharedNotebook object.
*
* @param authenticationToken
* Must be an authentication token from the owner or a shared notebook
* 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.
*
*/
public int updateSharedNotebook(String authenticationToken, com.evernote.edam.type.SharedNotebook sharedNotebook) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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" - private note, user doesn't own
*
*
*
* @throws EDAMNotFoundException
* - "Notebook.guid" - not found, by GUID
*
*
*/
public int sendMessageToSharedNotebookMembers(String authenticationToken, String notebookGuid, String messageText, List recipients) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* Lists the collection of shared notebooks for all notebooks in the
* users account.
*
* @return
* The list of all SharedNotebooks for the user
*/
public List listSharedNotebooks(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* Expunges the SharedNotebooks in the user's account using the
* SharedNotebook.id as the identifier.
*
* NOTE: This function is not available to third party applications.
* Calls will result in an EDAMUserException with the error code
* PERMISSION_DENIED.
*
* @param
* sharedNotebookIds - a list of ShardNotebook.id longs identifying the
* objects to delete permanently.
*
* @return
* The account's update sequence number.
*/
public int expungeSharedNotebooks(String authenticationToken, List sharedNotebookIds) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.LinkedNotebook createLinkedNotebook(String authenticationToken, com.evernote.edam.type.LinkedNotebook linkedNotebook) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* @param linkedNotebook
* Updates the name of a linked notebook.
*
* @return
* The Update Sequence Number for this change within the account.
*
* @throws EDAMUserException
* - BAD_DATA_FORMAT "LinkedNotebook.name" - invalid length or pattern
*
*
*/
public int updateLinkedNotebook(String authenticationToken, com.evernote.edam.type.LinkedNotebook linkedNotebook) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* Returns a list of linked notebooks
*/
public List listLinkedNotebooks(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* Permanently expunges the linked notebook from the account.
*
* 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 LinkedNotebook.guid field of the LinkedNotebook to permanently remove
* from the account.
*/
public int expungeLinkedNotebook(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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.
*
*
*/
public com.evernote.edam.userstore.AuthenticationResult authenticateToSharedNotebook(String shareKey, String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
*
*
*/
public com.evernote.edam.type.SharedNotebook getSharedNotebookByAuth(String authenticationToken) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* Attempts to send a single note to one or more email recipients.
*
* @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
*
*
*/
public void emailNote(String authenticationToken, NoteEmailParameters parameters) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
*
*
*/
public String shareNote(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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
*
*
*/
public void stopSharingNote(String authenticationToken, String guid) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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.
*
* @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
*
*
*
* @throws EDAMNotFoundException
* - "guid" - the note with that GUID is not found
*
*
*/
public com.evernote.edam.userstore.AuthenticationResult authenticateToSharedNote(String guid, String noteKey) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMNotFoundException, com.evernote.edam.error.EDAMSystemException, TException;
/**
* 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.
*
*
*/
public RelatedResult findRelated(String authenticationToken, RelatedQuery query, RelatedResultSpec resultSpec) throws com.evernote.edam.error.EDAMUserException, com.evernote.edam.error.EDAMSystemException, com.evernote.edam.error.EDAMNotFoundException, TException;
}