Skip to content

Users Keep

Ross Scroggs edited this page Apr 6, 2022 · 21 revisions

Users - Keep

API documentation

Notes

To use these commands you must add the 'Keep API' to your project and update your service account authorization.

gam update project
gam user [email protected] check serviceaccount

The Keep API does not support note labels and colors.

Definitions

<UserGoogleDoc> ::=
        <EmailAddress> <DriveFileIDEntity>|<DriveFileNameEntity>|(<SharedDriveEntity> <SharedDriveFileNameEntity>)

<NotesName> ::= notes/<String>
<NotesNameList> ::= "<NotesName>(,<NotesName)*"
<NotesNameEntity> ::=
        <NotesNameList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>

<NotesField> ::=
        attachments|
        body|
        createtime|
        name|
        permissions|
        title|
        trashed|
        trashtime|
        updatetime
<NotesFieldList> ::= "<NotesField>(,<NotesField>)*"

Keep notes have an ID that is referred to by Google as its name; this is the value you will use wherever <NotesName> is required.

Add Note

gam <UserTypeEntity> create note [title <String>]
        ((text <String>)|
         (textfile <FileName> [charset <CharSet>])|
         (gdoc <UserGoogleDoc>)|
         (json [charset <Charset>] <JSONData>)|(json file <FileName> [charset <Charset>]))
	[copyacls [copyowneraswriter]]
        [compact|formatjson|nodetails]

Use the text, textfile and gdoc options to specify the note text.

Use the json option to specify the title and text. The title <String> option takes precedence over the json title.

json {"title": "Note Title", "body": {"text": {"text": "Note Text"}}

If you specify options json and copyacls, the note is created and any ACLs from the json data are added to the note. If you also specify copyowneraswriter, the original note owner is added as a writer to the created note.

By default, Gam displays the created note as an indented list of keys and values; the note text is displayed as individual lines.

  • compact - Display the note text with escaped carriage returns as \r and newlines as \n
  • formatjson - Display the note in JSON format
  • nodetails - Display the note name only

Delete Note

gam <UserTypeEntity> delete note <NoteNameEntity>

Display Notes

Display selected notes

gam <UserTypeEntity> info note <NotesNameEntity>
        [fields <NotesFieldList>]
        [compact|formatjson]

By default, Gam displays the information as an indented list of keys and values; the note text is displayed as individual lines.

  • compact - Display the note text with escaped carriage returns as \r and newlines as \n
  • formatjson - Display the note in JSON format

Display all notes

gam <UserTypeEntity> show notes
        [fields <NotesFieldList>] [filter <String>]
        [role owner|writwer]
        [compact|formatjson]

By default, GAM displays all non-trashed notes:

  • filter trashed - Display notes in the trash
  • role owner|writer - Display notes where the user has the specified role

By default, Gam displays the information as an indented list of keys and values; the note text is displayed as individual lines.

  • compact - Display the note text with escaped carriage returns as \r and newlines as \n
  • formatjson - Display the note in JSON format
gam <UserTypeEntity> print notes [todrive <ToDriveAttribute>*]
        [fields <NotesFieldList>] [filter <String>]
        [role owner|writwer]
        [formatjson [quotechar <Character>]]

By default, GAM displays all non-trashed notes:

  • filter trashed - Display notes in the trash
  • role owner|writer - Display notes where the user has the specified role

By default, when writing CSV files, Gam uses a quote character of double quote ". The quote character is used to enclose columns that contain the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled. When using the formatjson option, double quotes are used extensively in the data resulting in hard to read/process output. The quotechar <Character> option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output. quotechar defaults to gam.cfg/csv_output_quote_char.

Download Note Attachments

gam <UserTypeEntity> get noteattachments <NotesNameEntity>
        [targetfolder <FilePath>] [targetname <FileName>] [overwrite [<Boolean>]]

By default, when getting an attachment, it is downloaded to the directory specified in gam.cfg/drive_dir.

  • targetfolder <FilePath> - Specify an alternate location for the downloaded file.

By default, when getting an attachment, the local name is the same as the Note title or attachment if the Note doesn't have a title..

  • targetname <FileName> - Specify an alternate name for the downloaded file.

The strings #email#, #user# and #username# will be replaced by the the user's full emailaddress or just the name portion in targetfolder <FilePath> and targetname <FileName>.

By default, when getting an attachment, an existing local file will not be overwritten; a numeric prefix is added to the filename.

  • overwrite - Overwite an existing file
  • overwrite true - Overwite an existing file
  • overwrite false - Do not overwite an existing file; add a numeric prefix and create a new file

Manage Notes permissions

  • The owner of a note can not have it's role changed.
  • The owner of a note can not be deleted.
  • A new owner can not be added to a note.

Add permissions

gam <UserTypeEntity> create noteacl <NotesNameEntity>
        (user|group <EmailAddress>)+
        (json [charset <Charset>] <JSONData>)|(json file <FileName> [charset <Charset>])
        [nodetails]

By default, Gam displays the user, note name, number of created permissions and the permission details

  • nodetails - Do not display the permission details

Delete permissions

gam <UserTypeEntity> delete noteacl <NotesNameEntity>
        (user|group <EmailAddress>)+
        (json [charset <Charset>] <JSONData>)|(json file <FileName> [charset <Charset>])

Use the user and group`` options to specify email addresses.

Use the json option to specify permissions.

{"permissions": [{"email": "[email protected]", "name": "notes/abc123xyz/permissions/def456uvw", "role": "WRITER", "user": {"email": "[email protected]"}}]}

Examples

Copy notes and permissions from one user to another.

gam redirect csv ./notes.csv user [email protected] print notes formatjson quotechar "'"
gam csv ./notes.csv quotechar "'" gam user [email protected] create note json "~JSON" copyacls

Delete all permissions for a note

gam redirect stdout ./notes.json user [email protected] info note notes/abc123xyz permissions formatjson
gam user [email protected] delete notesacl notes/abc123xyz json file notes.json

Delete all of a user's trashed notes.

gam redirect csv ./notes.csv user [email protected] print notes fields name filter trashed
gam user [email protected] delete notes csvfile notes.csv:name

Update History

Installation

Configuration

Notes and Information

Definitions

Command Processing

Collections

Client Access

Special Service Account Access

Service Account Access

Clone this wiki locally