mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-08 21:53:36 +00:00
Many changes: Gmail API, CSV files, print commands
This commit is contained in:
@ -42,8 +42,7 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
<Date> ::= <Year>-<Month>-<Day>
|
||||
<DateTime> ::= <Year>-<Month>-<Day>(<Space>|T)<Hour>:<Minute>
|
||||
<Time> ::= <Year>-<Month>-<Day>(<Space>|T)<Hour>:<Minute>[:<Second>[.<MilliSeconds>[Z]]]
|
||||
<PrintJobAge> ::= <Number>(m|h|d)
|
||||
<REPattern> ::= <Python Regular Expression, see: https://docs.python.org/2/library/re.html>
|
||||
<RegularExpression> ::= <Python Regular Expression, see: https://docs.python.org/2/library/re.html>
|
||||
<Tag> ::= <String>
|
||||
<UniqueID> ::= uid:<String>
|
||||
|
||||
@ -58,7 +57,7 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
<CourseID> ::= <Number>|d:<CourseAlias>
|
||||
<CourseParticipantType> ::= teacher|teachers|student|students
|
||||
<CrOSID> ::= <String>
|
||||
<CrOSItem> ::= <CrOSID>|(query:<Query>)|(query <Query>)
|
||||
<CrOSItem> ::= <CrOSID>|(query:<QueryCrOS>)|(query <QueryCrOS>)
|
||||
<DomainAlias> ::= <String>
|
||||
<DriveFileACLRole> :: =commenter|editor|owner|reader|writer
|
||||
<EventColorIndex> ::== <Number in range 1-11>
|
||||
@ -75,25 +74,36 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
<FieldName> ::= <String>
|
||||
<FileName> ::= <String>
|
||||
<FileNamePattern> ::= <String>
|
||||
<FilterID> ::= <Sttring>
|
||||
<FolderName> ::= <String>
|
||||
<GroupItem> ::= <EmailAddress>|<UniqueID>|<String>
|
||||
<HostName> ::= <String>
|
||||
<Key> ::= <String>
|
||||
<LabelID> ::= <String>
|
||||
<LabelName> ::= <String>
|
||||
<LabelReplacement> ::= <String>
|
||||
<Marker> ::= <String>
|
||||
<MobileID> ::= <String>
|
||||
<MobileItem> ::= <MobileID>|(query:<Query>)|(query <Query>)
|
||||
<MobileItem> ::= <MobileID>|(query:<QueryMobile>)|(query <QueryMobile>)
|
||||
<Name> ::= <String>
|
||||
<NotificationID> ::= <String>
|
||||
<OrgUnitID> ::= <String>
|
||||
<OrgUnitPath> ::= /|(/<String)+
|
||||
<PermissionID> ::= id:<String>|<EmailAddress>|anyone|anyonewithlink
|
||||
<PrinterID> ::= <String>
|
||||
<PrintJobAge> ::= <Number>(m|h|d)
|
||||
<PrintJobID> ::= <String>
|
||||
<PrintJobStatus> ::= done|error|held|in_progress|queued|submitted
|
||||
<PropertyKey> ::= <String>
|
||||
<PropertyValue> ::= <String>
|
||||
<Query> ::= <String>
|
||||
<QueryContact> ::= <String> See: https://developers.google.com/google-apps/contacts/v3/reference#contacts-query-parameters-reference
|
||||
<QueryCrOS> ::= <String> See: https://support.google.com/chrome/a/answer/1698333?hl=en
|
||||
<QueryDriveFile> :: = <String> See: https://developers.google.com/drive/v2/web/search-parameters
|
||||
<QueryGmail> ::= <String> See: https://support.google.com/mail/answer/7190
|
||||
<QueryMobile> ::= <String> See: https://support.google.com/a/answer/1408863?hl=en#search
|
||||
<QueryPrinter> ::= <String> See: https://developers.google.com/cloud-print/docs/appInterfaces#search
|
||||
<QueryPrintJob> ::= <String> See: https://developers.google.com/cloud-print/docs/appInterfaces#parameters_3
|
||||
<QueryUser> :: = <String> See: https://developers.google.com/admin-sdk/directory/v1/guides/search-users
|
||||
<RequestID> ::= <String>
|
||||
<ResourceID> ::= <String>
|
||||
<RoleItem> ::= <UniqueID>|<String>
|
||||
@ -234,6 +244,9 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
<MobileOrderByFieldName> ::=
|
||||
deviceid|email|lastsync|model|name|os|status|type
|
||||
|
||||
<OrgUnitFieldName> ::=
|
||||
description|id|inherit|name|orgunitpath|parent|parentid|inherit
|
||||
|
||||
<PrintJobOrderByFieldName> ::=
|
||||
create_time|status|title
|
||||
|
||||
@ -243,7 +256,7 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
changepasswordatnextlogin|changepassword|
|
||||
creationtime|
|
||||
deletiontime|
|
||||
email|emails|
|
||||
email|emails|otheremail|otheremails|
|
||||
externalids|externalid|
|
||||
familyname|firstname|fullname|givenname|lastname|name|
|
||||
id|
|
||||
@ -254,6 +267,7 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
ismailboxsetup|
|
||||
lastlogintime|
|
||||
noneditablealiases|aliases|nicknames|
|
||||
notes|note|
|
||||
organizations|organization|
|
||||
orgunitpath|org|ou|
|
||||
phones|phone|
|
||||
@ -261,6 +275,7 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
relations|relation|
|
||||
suspended|
|
||||
thumbnailphotourl|photo|photourl|
|
||||
websites|website|
|
||||
custom all|<SchemaNameList>
|
||||
|
||||
<UserOrderByFieldName> ::=
|
||||
@ -277,6 +292,7 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
<EmailAddressList> ::= '<EmailAddress>(,<EmailAddress>)*'
|
||||
<EventIDList> ::= '<EventID>(,<EventID>)*'
|
||||
<FileFormatList> ::= '<FileFormat>(,<FileFormat)*'
|
||||
<FilterIDList> ::= '<FilterID>(,<FilterID>)*'
|
||||
<GroupFieldNameList> ::= '<GroupFieldName(,<GroupFieldName>)*'
|
||||
<GroupSettingsFieldNameList> ::= '<GroupSettingsFieldName(,<GroupSettingsFieldName>)*'
|
||||
<GroupList> ::= '<GroupItem>(,<GroupItem>)*'
|
||||
@ -311,7 +327,7 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
(file <FileName>)|
|
||||
(csvfile <FileName>:<FieldName>)|
|
||||
(license|licenses|licence|licences <SKUIDList>)|
|
||||
(query <Query>)
|
||||
(query <QueryUser>)
|
||||
|
||||
|
||||
# Item attributes
|
||||
@ -410,9 +426,10 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
(externalid|externalids clear|(account|customer|network|organization|<String> <String>))|
|
||||
(firstname|givenname <String>)|
|
||||
(gal|includeinglobaladdresslist <Boolean>)|
|
||||
(im|ims clear|(type work|home|other|(custom <String>) protocol aim|gtalk|icq|jabber|msn|net_meeting|qq|skype|yahoo|(custom_protocol <String>) [primary] <String>))|
|
||||
(im|ims clear|(type work|home|other|(custom <String>) protocol aim|gtalk|icq|jabber|msn|net_meeting|qq|skype|yahoo|(custom_protocol <String>) <String> [notprimary|primary]))|
|
||||
(ipwhitelisted <Boolean>)|
|
||||
(lastname|familyname <String>)|
|
||||
(note|notes clear|([text_plain|text_html] <String>|(file <FileName>)))|
|
||||
(organization|organizations clear|([type domain_only|school|unknown|work] [customtype <String>] [name <String>] [title <String>] [department <String>] [symbol <String>]
|
||||
[costcenter <String>] [location <String>] [description <String>] [domain <String>] notprimary|primary))|
|
||||
(org|ou|orgunitpath <OrgUnitPath>)
|
||||
@ -421,6 +438,7 @@ If an item contains spaces, it should be surrounded by " or '.
|
||||
[value <String>] notprimary|primary))|
|
||||
(relation|relations clear|(spouse|child|mother|father|parent|brother|sister|friend|relative|domestic_partner|manager|assistant|referred_by|partner|<String> <String>))|
|
||||
(suspended <Boolean>)|
|
||||
(website|websites clear|(home_page|blog|profile|work|home|other|ftp|reservations|app_install_page|<String> <URL> [notprimary|primary]))|
|
||||
(<SchemaName>.<FieldName> [multivalued|multivalue|value] <String>)
|
||||
|
||||
|
||||
@ -428,7 +446,7 @@ gam version
|
||||
gam help
|
||||
|
||||
gam batch <FileName>|- [charset <Charset>]
|
||||
gam csv <FileName>|- [charset <Charset>] [matchfield <FieldName> <PythonRegularExpression>] gam <GAM argument list>
|
||||
gam csv <FileName>|- [charset <Charset>] [matchfield <FieldName> <RegularExpression>] gam <GAM argument list>
|
||||
|
||||
gam oauth|oauth2 create|request
|
||||
gam oauth|oauth2 delete|revoke
|
||||
@ -457,6 +475,8 @@ gam print domains [todrive]
|
||||
gam create domainalias|aliasdomain <DomainAlias> <DomainName>
|
||||
gam delete domainalias|aliasdomain <DomainAlias>
|
||||
gam info domainalias|aliasdomain <DomainAlias>
|
||||
gam print domainaliases|aliasdomains [todrive]
|
||||
|
||||
|
||||
gam info customer
|
||||
gam update customer [adminsecondaryemail|alternateemail <EmailAddress>] [language <LanguageCode] [phone|phonenumber <String>]
|
||||
@ -480,7 +500,7 @@ gam update org|ou <OrgUnitPath> [name <Name>] [description <String>] [parent <Or
|
||||
gam update org|ou <OrgUnitPath> add|move <CrOSTypeEntity>|<UserTypeEntity>
|
||||
gam delete org|ou <OrgUnitPath>
|
||||
gam info org|ou <OrgUnitPath> [nousers] [children|child]
|
||||
gam print orgs|ous [todrive] [toplevelonly] [from_parent <OrgUnitPath>] [allfields|([name] [description] [parent] [id] [parentid] [inherit])]
|
||||
gam print orgs|ous [todrive] [toplevelonly] [from_parent <OrgUnitPath>] [allfields|<OrgUnitFieldName>*]
|
||||
|
||||
gam create alias|nickname <EmailAddress> user|group|target <UniqueID>|<EmailAddress>
|
||||
gam update alias|nickname <EmailAddress> user|group|target <UniqueID>|<EmailAddress>
|
||||
@ -494,7 +514,7 @@ gam audit activity delete <EmailAddress> <RequestID>
|
||||
gam audit activity download <EmailAddress> <RequestID>
|
||||
gam audit activity status [<EmailAddress> <RequestID>]
|
||||
|
||||
gam audit export request <EmailAddress> [begin <DateTime>] [end <DateTime>] [search <Query>] [headersonly] [includedeleted]
|
||||
gam audit export request <EmailAddress> [begin <DateTime>] [end <DateTime>] [search <QueryGmail>] [headersonly] [includedeleted]
|
||||
gam audit export delete <EmailAddress> <RequestID>
|
||||
gam audit export download <EmailAddress> <RequestID>
|
||||
gam audit export status [<EmailAddress> <RequestID>]
|
||||
@ -513,22 +533,40 @@ gam calendar <CalendarItem> addevent <EventAttributes>+
|
||||
gam calendar <CalendarItem> wipe
|
||||
|
||||
gam update cros <CrOSItem> <CrOSAttributes>+
|
||||
gam info cros <CrOSItem>
|
||||
gam print cros [todrive] [query <Query>] [basic|full] [nolists|recentusers|timeranges] [listlimit <Number>]
|
||||
[orderby <CrOSOrderByFieldName> [ascending|descending]]
|
||||
gam <CrOSTypeEntity> update <CrOSAttributes>+
|
||||
gam info cros <CrOSItem> [nolists] [listlimit <Number>]
|
||||
[basic|full|allfields] <CrOSFieldName>* [fields <CrOSFieldNameList>]
|
||||
|
||||
gam print cros [todrive] [query <QueryCrOS>]
|
||||
[orderby <CrOSOrderByFieldName> [ascending|descending]] [nolists] [listlimit <Number>]
|
||||
[basic|full|allfields] <CrOSFieldName>* [fields <CrOSFieldNameList>]
|
||||
gam <CrOSTypeEntity> print
|
||||
|
||||
Summary of printing:
|
||||
gam print cros
|
||||
Prints a header row and deviceId for all CrOS devices.
|
||||
gam <CrOSTypeEntity> print cros
|
||||
Prints no header row and deviceId for specified CrOS devices
|
||||
gam print cros ... basic|full
|
||||
Prints a header row and selected fields for specified CrOS devices.
|
||||
|
||||
The basic argument yields these column headers: deviceId,annotatedAssetId,annotatedLocation,annotatedUser,lastSync,notes,serialNumber,status
|
||||
The full argument yields all column headers including two headers, recentUsers and activeTimeRanges,
|
||||
that repeat with two subvalues each, yielding a large number of columns that make the output hard to process.
|
||||
The nolists argument suppresses these two headers; if you want these headers in a more manageable form use the following arguments.
|
||||
The listlimit <Number> argument limits the number of repetitions to <Number>. If <Number> equals zero, there is no limit.
|
||||
If recentusers is specified as a field, each pair of values for recentUsers is put on a separate row with all of the other headers.
|
||||
If timeranges is specified as a field, each pair of values for activeTimeRanges is put on a separate row with all of the other headers.
|
||||
|
||||
gam update mobile <MobileItem> <MobileAttributes>+
|
||||
gam delete mobile <MobileItem>
|
||||
gam info mobile <MobileItem>
|
||||
gam print mobile [todrive] [query <Query>]
|
||||
gam print mobile [todrive] [query <QueryMobile>]
|
||||
[orderby <MobileOrderByFieldName> [ascending|descending]]
|
||||
|
||||
gam create group <EmailAddress> <GroupAttributes>*
|
||||
gam update group <GroupItem> [admincreated <Boolean>] [email <EmailAddress>] <GroupAttributes>*
|
||||
gam update group <GroupItem> add [owner|manager|member] <UserTypeEntity>
|
||||
gam update group <GroupItem> remove [owner|manager|member] <UserTypeEntity>
|
||||
gam update group <GroupItem> delete|remove [owner|manager|member] <UserTypeEntity>
|
||||
gam update group <GroupItem> sync [owner|manager|member] <UserTypeEntity>
|
||||
gam update group <GroupItem> update [owner|manager|member] <UserTypeEntity>
|
||||
gam delete group <GroupItem>
|
||||
@ -537,9 +575,11 @@ gam update group <GroupItem> clear [owner] [manager] [member]
|
||||
|
||||
gam print groups [todrive] ([domain <DomainName>] [member <UserItem>])
|
||||
[maxresults <Number>] [delimiter <String>]
|
||||
[members] [owners] [managers] <GroupFieldName>* [settings]
|
||||
[members] [owners] [managers] [settings] <GroupFieldName>* [fields <GroupFieldNameList>|<GroupSettingsFieldNameList>]
|
||||
|
||||
gam print group-members|groups-members [todrive] ([domain <DomainName>] [member <UserItem>])|[group <GroupItem>] [membernames] [fields <MembersFieldNameList>]
|
||||
|
||||
gam print group-members|groups-members [todrive] ([domain <DomainName>] [member <UserItem>])|[group <GroupItem>]
|
||||
[membernames] [fields <MembersFieldNameList>]
|
||||
|
||||
gam print license|licenses|licence|licences [todrive] [products|product <ProductIDList>] [skus|sku <SKUIDList>]
|
||||
|
||||
@ -553,23 +593,30 @@ gam delete resource <ResourceID>
|
||||
gam info resource <ResourceID>
|
||||
gam print resources [todrive] [allfields] [id] [description] [email] [type]
|
||||
|
||||
gam create schema|schemas <SchemaName> <SchemaFieldDefinition>*
|
||||
gam update schema <SchemaName> <SchemaFieldDefinition>*
|
||||
gam create schema|schemas <SchemaName> <SchemaFieldDefinition>+
|
||||
gam update schema <SchemaName> <SchemaFieldDefinition>+
|
||||
gam delete schema <SchemaName>
|
||||
gam info schema <SchemaName>
|
||||
gam show schema|schemas
|
||||
gam print schema|schemas
|
||||
|
||||
gam print tokens|token [todrive] [<UserTypeEntity>]
|
||||
|
||||
gam create user <EmailAddress> <UserAttrubutes>*
|
||||
gam update user <UserItem> <UserAttributes>+
|
||||
gam delete user <UserItem>
|
||||
gam undelete user <UserItem> [org|ou <OrgUnitPath>]
|
||||
gam info user [<UserItem>] [noaliases] [nogroups] [nolicenses|nolicences] [noschemas] [schemas <SchemaNameList>] [userview] [skus|sku <SKUIDList>]
|
||||
gam print users [todrive] ([domain <DomainName>] [query <Query>] [deleted_only|only_deleted])
|
||||
[groups] [license|licenses|licence|licences] [emailpart|emailparts|username]
|
||||
|
||||
gam print users [todrive] ([domain <DomainName>] [query <QueryUser>] [deleted_only|only_deleted])
|
||||
[groups] [license|licenses|licence|licences] [emailpart|emailparts|username]
|
||||
[orderby <UserOrderByFieldName> [ascending|descending]] [userview]
|
||||
[allfields | <UserFieldName>*]
|
||||
[basic|full|allfields | <UserFieldName>* | fields <UserFieldNameList>]
|
||||
gam <UserTypeEntity> print
|
||||
|
||||
Summary of printing:
|
||||
gam print users
|
||||
Prints a header row and primaryEmail for all users.
|
||||
gam <UserTypeEntity> print users
|
||||
Prints no header row and primaryEmail for specified users
|
||||
|
||||
gam create verify|verification <DomainName>
|
||||
gam update verify|verification <DomainName> cname|txt|text|site|file
|
||||
@ -584,7 +631,7 @@ gam print courses [todrive] [teacher] [student] [alias|aliases]
|
||||
gam course <CourseID> add alias <CourseAlias>
|
||||
gam course <CourseID> delete alias <CourseAlias>
|
||||
gam course <CourseID> add teachers|students <UserItem>
|
||||
gam course <CourseID> delete teachers|students <UserItem>
|
||||
gam course <CourseID> delete|remove teachers|students <UserItem>
|
||||
gam course <CourseID> sync teachers|students <UserTypeEntity>
|
||||
gam print course-participants [todrive](course <CourseID>)* [teacher] [student] [show all|students|teachers]
|
||||
|
||||
@ -592,7 +639,7 @@ gam printer register
|
||||
gam update printer <PrinterID> <PrinterAttributes>+
|
||||
gam delete printer <PrinterID>
|
||||
gam info printer <PrinterID> [everything]
|
||||
gam print printers [todrive] [query <Query>] [type <String>] [status <String>] [extrafields <String>]
|
||||
gam print printers [todrive] [query <QueryPrinter>] [type <String>] [status <String>] [extrafields <String>]
|
||||
|
||||
gam printer <PrinterID> add user|manager|owner <EmailAddress>|[domain:]<DomainName>|public
|
||||
gam printer <PrinterID> delete <EmailAddress>|[domain:]<DomainName>|public
|
||||
@ -602,15 +649,15 @@ gam printjob <PrintJobID> delete
|
||||
gam printjob <PrintJobID> resubmit <PrinterID>
|
||||
|
||||
gam printjob <PrinterID>|any fetch
|
||||
[olderthan|newerthan <PrintJobAge>] [query <Query>]
|
||||
[status done|error|held|in_progress|queued|submitted]
|
||||
[olderthan|newerthan <PrintJobAge>] [query <QueryPrintJob>]
|
||||
[status <PrintJobStatus>]
|
||||
[orderby <PrintJobOrderByFieldName> [ascending|descending]]
|
||||
[owner|user <EmailAddress>]
|
||||
[limit <Number>]
|
||||
[limit <Number>] [drivedir|(targetfolder <FilePath>)]
|
||||
gam printjob <PrinterID> submit <FileName>|<URL> [name|title <String>] (tag <String>)*
|
||||
gam print printjobs [todrive] [printer|printerid <PrinterID>]
|
||||
[olderthan|newerthan <PrintJobAge>] [query <Query>]
|
||||
[status done|error|held|in_progress|queued|submitted]
|
||||
[olderthan|newerthan <PrintJobAge>] [query <QueryPrintJob>]
|
||||
[status <PrintJobStatus>]
|
||||
[orderby <PrintJobOrderByFieldName> [ascending|descending]]
|
||||
[owner|user <EmailAddress>]
|
||||
[limit <Number>]
|
||||
@ -626,23 +673,24 @@ gam <UserTypeEntity> add calendar <CalendarItem> <CalendarAttributes>*
|
||||
gam <UserTypeEntity> update calendar <CalendarItem> <CalendarAttributes>+
|
||||
gam <UserTypeEntity> delete|del calendar <CalendarItem>
|
||||
gam <UserTypeEntity> show calendars
|
||||
gam <UserTypeEntity> info calendar <CalendarItem>|primary
|
||||
gam <UserTypeEntity> print calendars [todrive]
|
||||
|
||||
gam <UserTypeEntity> show calsettings
|
||||
gam <UserTypeEntity> update calattendees csv <FileName> [dryrun] [start <Date>] [end <Date>] [allevents]
|
||||
gam <UserTypeEntity> transfer seccals <UserItem> [keepuser]
|
||||
|
||||
gam <UserTypeEntity> show driveactivity [todrive] [fileid <DriveFileID>] [folderid <DriveFolderID>]
|
||||
gam <UserTypeEntity> show drivesettings [todrive]
|
||||
|
||||
gam <UserTypeEntity> print|show driveactivity [todrive] [fileid <DriveFileID>] [folderid <DriveFolderID>]
|
||||
gam <UserTypeEntity> print|show drivesettings [todrive]
|
||||
gam <UserTypeEntity> print|show filelist [todrive] [query <QueryDriveFile>] [allfields|<DriveFieldName>*]
|
||||
gam <UserTypeEntity> show fileinfo <DriveFileID> [allfields|<DriveFieldName>*]
|
||||
gam <UserTypeEntity> show filerevisions <DriveFileID>
|
||||
gam <UserTypeEntity> show filelist [todrive] [query <Query>] [allfields|<DriveFieldName>*]
|
||||
gam <UserTypeEntity> show filetree
|
||||
|
||||
gam <UserTypeEntity> add drivefile [drivefilename <DriveFileName>] <DriveFileAddAttributes>*
|
||||
gam <UserTypeEntity> update drivefile (id <DriveFileID)|(drivefilename <DriveFileName>)|(query <Query) [copy] [newfilename <DriveFileName>] <DriveFileUpdateAttributes>*
|
||||
gam <UserTypeEntity> get drivefile (id <DriveFileID>)|(query <Query>) [format <FileFormatList>] [targetfolder <FilePath>] [revision <Number>]
|
||||
gam <UserTypeEntity> delete|del drivefile <DriveFileID>|<DriveFileURL>|(query:<Query>) [purge|untrash]
|
||||
gam <UserTypeEntity> update drivefile (id <DriveFileID)|(drivefilename <DriveFileName>)|(query <QueryDriveFile) [copy] [newfilename <DriveFileName>] <DriveFileUpdateAttributes>*
|
||||
gam <UserTypeEntity> get drivefile (id <DriveFileID>)|(query <QueryDriveFile>) [format <FileFormatList>] [targetfolder <FilePath>] [revision <Number>]
|
||||
gam <UserTypeEntity> delete|del drivefile <DriveFileID>|<DriveFileURL>|(query:<QueryDriveFile>) [purge|untrash]
|
||||
gam <UserTypeEntity> transfer drive <UserItem> [keepuser]
|
||||
gam <UserTypeEntity> delete|del emptydrivefolders
|
||||
|
||||
@ -663,15 +711,15 @@ gam <UserTypeEntity> delete|del license <SKUID>
|
||||
|
||||
gam <UserTypeEntity> update photo <FileNamePattern>
|
||||
gam <UserTypeEntity> delete|del photo
|
||||
gam <UserTypeEntity> get photo
|
||||
gam <UserTypeEntity> get photo [drivedir|(targetfolder <FilePath>)]
|
||||
|
||||
gam <UserTypeEntity> profile share|shared|unshare|unshared
|
||||
gam <UserTypeEntity> show profile
|
||||
|
||||
gam <UserTypeEntity> print
|
||||
|
||||
gam <UserTypeEntity> delete|del token|tokens|3lo|oauth clientid <ClientID>
|
||||
gam <UserTypeEntity> show tokens|token|3lo|oauth [clientid <ClientID>]
|
||||
gam <UserTypeEntity> delete|del token|tokens clientid <ClientID>
|
||||
gam <UserTypeEntity> show tokens|token [clientid <ClientID>]
|
||||
gam <UserTypeEntity> print tokens|token [todrive] [clientid <ClientID>]
|
||||
gam print tokens|token [todrive] [clientid <ClientID>] [<UserTypeEntity>]
|
||||
|
||||
gam <UserTypeEntity> update user <UserAttrubutes>
|
||||
|
||||
@ -681,50 +729,65 @@ gam <UserTypeEntity> deprovision|deprov
|
||||
#
|
||||
gam <UserTypeEntity> [add] label|labels <Name> [messagelistvisibility hide|show] [labellistvisibility hide|show|showifunread]
|
||||
gam <UserTypeEntity> update labelsettings <LabelName> [name <Name>] [messagelistvisibility hide|show] [labellistvisibility hide|show|showifunread]
|
||||
gam <UserTypeEntity> update label|labels [search <PythonRegularExpression>] [replace <LabelReplacement>] [merge]
|
||||
gam <UserTypeEntity> delete|del label|labels <LabelName>|regex:<REPattern>|--ALL_LABELS--
|
||||
gam <UserTypeEntity> update label|labels [search <RegularExpression>] [replace <LabelReplacement>] [merge]
|
||||
gam <UserTypeEntity> delete|del label|labels <LabelName>|regex:<RegularExpression>|--ALL_LABELS--
|
||||
gam <UserTypeEntity> show labels|label [onlyuser] [showcounts]
|
||||
|
||||
gam <UserTypeEntity> delete message|messages query <Query> [doit] [max_to_delete <Number>]
|
||||
gam <UserTypeEntity> modify message|messages query <Query> (addlabel <LabelName>)* (removelabel <LabelName>)* [doit] [max_to_modify <Number>]
|
||||
gam <UserTypeEntity> trash message|messages query <Query> [doit] [max_to_trash <Number>]
|
||||
gam <UserTypeEntity> untrash message|messages query <Query> [doit] [max_to_untrash <Number>]
|
||||
gam <UserTypeEntity> delete messages query <QueryGmail> [doit] [max_to_delete|max_to_process <Number>]
|
||||
gam <UserTypeEntity> modify messages query <QueryGmail> [doit] [max_to_modify|max_to_process <Number>] (addlabel <LabelName>)* (removelabel <LabelName>)*
|
||||
gam <UserTypeEntity> trash messages query <QueryGmail> [doit] [max_to_trash|max_to_process <Number>]
|
||||
gam <UserTypeEntity> untrash messages query <QueryGmail> [doit] [max_to_untrash|max_to_process <Number>]
|
||||
#
|
||||
# Update user Gmail settings
|
||||
#
|
||||
gam <UserTypeEntity> show gmailprofile [todrive]
|
||||
gam <UserTypeEntity> show gplusprofile [todrive]
|
||||
|
||||
gam <UserTypeEntity> arrows <Boolean>
|
||||
|
||||
gam <UserTypeEntity> delegate|delegates to <UserEntity>
|
||||
gam <UserTypeEntity> delete|del delegate|delegates <UserEntity>
|
||||
gam <UserTypeEntity> add delegate|delegates <EmailAddress>
|
||||
gam <UserTypeEntity> delegate|delegates to <EmailAddress>
|
||||
gam <UserTypeEntity> delete|del delegate|delegates <EmailAddress>
|
||||
gam <UserTypeEntity> show delegates|delegate [csv]
|
||||
gam <UserTypeEntity> print delegates [todrive]
|
||||
|
||||
gam <UserTypeEntity> filter [from <EmailAddress>] [to <EmailAddress>] [subject <String>] [haswords <List>] [nowords <List>] [musthaveattachment]
|
||||
[label <LabelName>] [markread] [archive] [star] [forward <EmailAddress>] [trash] [neverspam]
|
||||
# A condition and an action must both be specified
|
||||
gam <UserTypeEntity> [add] filter [from <EmailAddress>] [to <EmailAddress>] [subject <String>] [haswords|query <List>] [nowords|negatedquery <List>] [musthaveattachment|hasattachment] [excludechats] [size larger|smaller <ByteCount>]
|
||||
[label <LabelID>] [important|notimportant] [star] [trash] [markread] [archive] [neverspam] [forward <EmailAddress>]
|
||||
gam <UserTypeEntity> delete filters <FilterIDEntity>
|
||||
gam <UserTypeEntity> show filters
|
||||
gam <UserTypeEntity> info filters <FilterIDEntity>
|
||||
gam <UserTypeEntity> print filters [todrive]
|
||||
|
||||
gam <UserTypeEntity> forward <FalseValues> [keep|archive|delete] [<EmailAddress>]
|
||||
gam <UserTypeEntity> forward <TrueValues> keep|archive|delete <EmailAddress>
|
||||
gam <UserTypeEntity> forward <FalseValues>
|
||||
gam <UserTypeEntity> forward <TrueValues> keep|leaveininbox|archive|delete|trash|markread <EmailAddress>
|
||||
gam <UserTypeEntity> show forward
|
||||
gam <UserTypeEntity> print forward [todrive]
|
||||
|
||||
gam <UserTypeEntity> imap|imap4 <Boolean>
|
||||
gam <UserTypeEntity> add forwardingaddress|forwardingaddresses <EmailAddress>
|
||||
gam <UserTypeEntity> delete forwardingaddress|forwardingaddresses <EmailAddress>
|
||||
gam <UserTypeEntity> show forwardingaddress|forwardingaddresses
|
||||
gam <UserTypeEntity> info forwardingaddress|forwardingaddresses <EmailAddress>
|
||||
gam <UserTypeEntity> print forwardingaddress|forwardingaddresses [todrive]
|
||||
|
||||
gam <UserTypeEntity> imap|imap4 <Boolean> [noautoexpunge] [expungebehavior archive|deleteforever|trash] [maxfoldersize 0|1000|2000|5000|10000]
|
||||
gam <UserTypeEntity> show imap|imap4
|
||||
|
||||
gam <UserTypeEntity> pop|pop3 <Boolean> [for allmail|newmail|mailfromnowon] [action keep|archive|delete]
|
||||
gam <UserTypeEntity> pop|pop3 <Boolean> [for allmail|newmail|mailfromnowon|fromnowown] [action keep|leaveininbox|archive|delete|trash|markread]
|
||||
gam <UserTypeEntity> show pop|pop3
|
||||
|
||||
gam <UserTypeEntity> language <Language>
|
||||
|
||||
gam <UserTypeEntity> pagesize 25|50|100
|
||||
|
||||
gam <UserTypeEntity> sendas <EmailAddress> <Name> [default] [replyto <EmailAddress>]
|
||||
gam <UserTypeEntity> show sendas
|
||||
gam <UserTypeEntity> [add] sendas <EmailAddress> <Name> [replyto <EmailAddress>] [default] [treatasalias <Boolean>] [signature|sig <String>|(file <FileName> [charset <CharSet>]) (replace <RegularExpression> <String>)*]
|
||||
gam <UserTypeEntity> update sendas <EmailAddress> [name <Name>] [replyto <EmailAddress>] [default] [treatasalias <Boolean>] [signature|sig <String>|(file <FileName> [charset <CharSet>]) (replace <RegularExpression> <String>)*]
|
||||
gam <UserTypeEntity> delete sendas <EmailAddress>
|
||||
gam <UserTypeEntity> show sendas [format]
|
||||
gam <UserTypeEntity> info sendas <EmailAddress> [format]
|
||||
gam <UserTypeEntity> print sendas [todrive]
|
||||
|
||||
gam <UserTypeEntity> shortcuts <Boolean>
|
||||
|
||||
gam <UserTypeEntity> signature|sig <String>|(file <FileName> [charset <Charset>]) (replace <Tag> <String>)*
|
||||
gam <UserTypeEntity> signature|sig <String>|(file <FileName> [charset <Charset>]) (replace <Tag> <String>)* [name <String>] [replyto <EmailAddress>]
|
||||
gam <UserTypeEntity> show signature|sig [format]
|
||||
|
||||
gam <UserTypeEntity> snippets <Boolean>
|
||||
@ -732,8 +795,8 @@ gam <UserTypeEntity> snippets <Boolean>
|
||||
gam <UserTypeEntity> utf|utf8|utf-8|unicode <Boolean>
|
||||
|
||||
gam <UserTypeEntity> vacation <FalseValues>
|
||||
gam <UserTypeEntity> vacation <TrueValues> subject <String> (message <String>)|(file <FileName> [charset <CharSet>]) (replace <Tag> <String>)*
|
||||
gam <UserTypeEntity> vacation <TrueValues> subject <String> (message <String>)|(file <FileName> [charset <CharSet>]) (replace <Tag> <String>)* [html]
|
||||
[contactsonly] [domainonly] [startdate <Date>] [enddate <Date>]
|
||||
gam <UserTypeEntity> show vacation
|
||||
gam <UserTypeEntity> show vacation [format]
|
||||
|
||||
gam <UserTypeEntity> webclips <Boolean>
|
||||
|
6262
src/gam.py
6262
src/gam.py
File diff suppressed because it is too large
Load Diff
128
src/whatsnew.txt
128
src/whatsnew.txt
@ -7,25 +7,25 @@ Added arguments to gam info group to suppress aliases listing and include groups
|
||||
Added argument to gam print cros to limit number of activeTimeRanges and recentUsers entries
|
||||
`gam print cros ... [listlimit <Number>]`
|
||||
|
||||
Added argument to `gam <Users> signature` and `gam <Users> vacation` to allow specification of file character set so that extended characters can be read.
|
||||
Added argument to `gam <UserTypeEntity> signature` and `gam <UserTypeEntity> vacation` to allow specification of file character set so that extended characters can be read.
|
||||
Credit to Steve Main for suggesting the following enhancement.
|
||||
Added argument to `gam <Users> signature` and `gam <Users> vacation` to allow pattern substitution in the signature and vacation message.
|
||||
`gam <Users> signature <String>|(file <FileName> [charset <Charset>]) (replace <Tag> <String>)*`
|
||||
`gam <Users> vacation <TrueValues> subject <String> (message <String>)|(file <FileName> [charset <CharSet>]) (replace <Tag> <String>)*
|
||||
Added argument to `gam <UserTypeEntity> signature` and `gam <UserTypeEntity> vacation` to allow pattern substitution in the signature and vacation message.
|
||||
`gam <UserTypeEntity> signature <String>|(file <FileName> [charset <Charset>]) (replace <Tag> <String>)*`
|
||||
`gam <UserTypeEntity> vacation <TrueValues> subject <String> (message <String>)|(file <FileName> [charset <CharSet>]) (replace <Tag> <String>)*
|
||||
[contactsonly] [domainonly] [startdate <Date>] [enddate <Date>]`
|
||||
Every instance of `{<Tag>}` in the signature/message will be replaced by `<String>`. Instances of the form `{RT}...{Text}...{/RT}` will be eliminated
|
||||
if there was no `<Tag>` specified that matches `Text` or if a `<Tag>` matching `Text` was specified but the matching `<String>` is empty.
|
||||
This is especially useful with CSV files.
|
||||
`gam csv Users.csv gam user "~User" signature file SignatureTemplate.txt replace "#User#" "~User" replace "#Title#" "~Title"`
|
||||
|
||||
Added argument to `gam <Users> show signature` to format the signature.
|
||||
`gam <Users> show signature [format]`
|
||||
Added argument to `gam <UserTypeEntity> show signature` to format the signature.
|
||||
`gam <UserTypeEntity> show signature [format]`
|
||||
|
||||
Added argument to gam add/update calendar to allow specification of event notifications
|
||||
`gam <Users> add/update calendar <Calendar> notification email|sms eventcreation|eventchange|eventcancellation|eventresponce|agenda`
|
||||
`gam <UserTypeEntity> add/update calendar <Calendar> notification email|sms eventcreation|eventchange|eventcancellation|eventresponce|agenda`
|
||||
|
||||
Added option to reminder and notification arguments of update calendar to allowing clearing of reminders/notifications.
|
||||
`gam <Users> update calendar <Calendar> [reminder clear] [notification clear]`
|
||||
`gam <UserTypeEntity> update calendar <Calendar> [reminder clear] [notification clear]`
|
||||
|
||||
Added arguments to `gam print group-members` to allow selecting subsets of groups.
|
||||
Added argument to `gam print group-members` to add member full name to output,
|
||||
@ -42,10 +42,10 @@ Added argument to `gam print printjobs` and `gam printjob <PrinterID> fetch` to
|
||||
`limit <Number>` specifies the maximum number of print jobs to retrieve; defaults to 25, set limit to 0 to retrieve all print jobs.
|
||||
|
||||
Credit to Seth Stein for the following enhancements.
|
||||
Added argument to `gam <Users> get drivefile` to allow downloading a specific revision of a drive file.
|
||||
`gam <Users> get drivefile (id <DriveFileID>)|(query <Query>) [format <FileFormatList>] [targetfolder <FilePath>] [revision <Number>]`
|
||||
Added argument to `gam <UserTypeEntity> get drivefile` to allow downloading a specific revision of a drive file.
|
||||
`gam <UserTypeEntity> get drivefile (id <DriveFileID>)|(query <Query>) [format <FileFormatList>] [targetfolder <FilePath>] [revision <Number>]`
|
||||
Added command to show drive file revisions.
|
||||
`gam <Users> show filerevisions <DriveFileID>`
|
||||
`gam <UserTypeEntity> show filerevisions <DriveFileID>`
|
||||
|
||||
Added argument to `gam print adminroles` to allow uploading to Google Drive.
|
||||
`gam print adminroles [todrive]`
|
||||
@ -54,16 +54,16 @@ Added `group, groups, mobile` arguments to `gam report`.
|
||||
`gam report admin|calendar|calendars|drive|docs|doc|groups|group|logins|login|mobile|tokens|token ...`
|
||||
|
||||
Added command to show user Google+ profile.
|
||||
`gam <Users> show gplusprofile [todrive]`
|
||||
`gam <UserTypeEntity> show gplusprofile [todrive]`
|
||||
To enable this command, visit: https://github.com/jay0lee/GAM/wiki/CreatingClientSecretsFile
|
||||
In step 3.v, enable the Google+ API
|
||||
In step 6.iii.d, add `https://www.googleapis.com/auth/plus.me` to the API scopes - Service Account list, then remove and re-add the authorization.
|
||||
|
||||
Added argument to `gam <Users> show labels` to allow seeing message counts for each label.
|
||||
`gam <Users> show labels|label [onlyuser] [showcounts]`
|
||||
Added argument to `gam <UserTypeEntity> show labels` to allow seeing message counts for each label.
|
||||
`gam <UserTypeEntity> show labels|label [onlyuser] [showcounts]`
|
||||
|
||||
Added argument to `gam <Users> show fileinfo` to allow field selection.
|
||||
`gam <Users> show fileinfo <DriveFileID> [allfields|<DriveFieldName>*]`
|
||||
Added argument to `gam <UserTypeEntity> show fileinfo` to allow field selection.
|
||||
`gam <UserTypeEntity> show fileinfo <DriveFileID> [allfields|<DriveFieldName>*]`
|
||||
|
||||
Added argument to `gam update group` to allow removing members by role.
|
||||
`gam update group <Group> clear [members] [managers] [owners]`
|
||||
@ -73,12 +73,104 @@ Changed `gam print admins` to include 'id:' in OrgUnitID column as with other `g
|
||||
|
||||
Fixed GAM to handle both future date error messages in `gam report`
|
||||
|
||||
Fixed `gam <Users> show delegates` to handle Unicode characters in delagator name.
|
||||
Fixed `gam <UserTypeEntity> show delegates` to handle Unicode characters in delagator name.
|
||||
|
||||
Fixed `gam <Users> get drivefile` to properly handle file extension.
|
||||
Fixed `gam <UserTypeEntity> get drivefile` to properly handle file extension.
|
||||
|
||||
Fixed `gam create alias <Name> target <Group>`.
|
||||
|
||||
2016/07/29
|
||||
|
||||
Added command to empty drive drive trash.
|
||||
`gam <UserTypeEntity> empty drivetrash`
|
||||
|
||||
Added alternative command to add delegates and command to print delegates.
|
||||
`gam <UserTypeEntity> add delegate|delegates <UserEntity>`
|
||||
`gam <UserTypeEntity> print delegates [todrive]`
|
||||
|
||||
Improved Gmail filter processing.
|
||||
`gam <UserTypeEntity> [add] filter [from <EmailAddress>] [to <EmailAddress>] [subject <String>] [haswords|query <List>] [nowords|negatedquery <List>] [musthaveattachment|hasattachment] [excludechats] [size larger|smaller <ByteCount>]
|
||||
[label <LabelID>] [important|notimportant] [star] [trash] [markread] [archive] [neverspam] [forward <EmailAddress>]`
|
||||
`gam <UserTypeEntity> delete filters <FilterIDEntity>`
|
||||
`gam <UserTypeEntity> show filters`
|
||||
`gam <UserTypeEntity> info filters <FilterIDEntity>`
|
||||
`gam <UserTypeEntity> print filters [todrive]`
|
||||
|
||||
Added commands to process Gmail forwarding addresses.
|
||||
`gam <UserTypeEntity> add forwardingaddress|forwardingaddresses <EmailAddressEntity>`
|
||||
`gam <UserTypeEntity> delete forwardingaddress|forwardingaddresses <EmailAddressEntity>`
|
||||
`gam <UserTypeEntity> show forwardingaddress|forwardingaddresses`
|
||||
`gam <UserTypeEntity> info forwardingaddress|forwardingaddresses <EmailAddressEntity>`
|
||||
`gam <UserTypeEntity> print forwardingaddress|forwardingaddresses [todrive]`
|
||||
|
||||
Improved Gmail forward processing.
|
||||
`gam <UserTypeEntity> forward <FalseValues>`
|
||||
`gam <UserTypeEntity> forward <TrueValues> keep|leaveininbox|archive|delete|trash|markread <EmailAddress>`
|
||||
`gam <UserTypeEntity> show forward`
|
||||
`gam <UserTypeEntity> print forward [todrive]`
|
||||
|
||||
Improved Gmail sendas processing.
|
||||
`gam <UserTypeEntity> [add] sendas <EmailAddress> <Name> [replyto <EmailAddress>] [default] [treatasalias <Boolean>] [signature|sig <String>|(file <FileName> [charset <CharSet>]) (replace <REPattern> <String>)*]`
|
||||
`gam <UserTypeEntity> update sendas <EmailAddress> [name <Name>] [replyto <EmailAddress>] [default] [treatasalias <Boolean>] [signature|sig <String>|(file <FileName> [charset <CharSet>]) (replace <REPattern> <String>)*]`
|
||||
`gam <UserTypeEntity> delete sendas <EmailAddressEntity>`
|
||||
`gam <UserTypeEntity> show sendas [format]`
|
||||
`gam <UserTypeEntity> info sendas <EmailAddressEntity> [format]`
|
||||
`gam <UserTypeEntity> print sendas [todrive]`
|
||||
|
||||
Improved Gmail signature processing.
|
||||
`gam <UserTypeEntity> signature|sig <String>|(file <FileName> [charset <Charset>]) (replace <Tag> <String>)* [name <String>] [replyto <EmailAddress>] `
|
||||
`gam <UserTypeEntity> show signature|sig [format]`
|
||||
|
||||
Use Gmail API for POP/IMAP/Vacation processing.
|
||||
`gam <UserTypeEntity> imap|imap4 <Boolean> [noautoexpunge] [expungebehavior archive|deleteforever|trash] [maxfoldersize 0|1000|2000|5000|10000]`
|
||||
`gam <UserTypeEntity> pop|pop3 <Boolean> [for allmail|newmail|mailfromnowon|fromnowown] [action keep|leaveininbox|archive|delete|trash|markread]`
|
||||
`gam <UserTypeEntity> vacation <FalseValues>`
|
||||
`gam <UserTypeEntity> vacation <TrueValues> subject <String> (message <String>)|(file <FileName> [charset <CharSet>]) (replace <Tag> <String>)* [html]
|
||||
[contactsonly] [domainonly] [startdate <Date>] [enddate <Date>]`
|
||||
`gam <UserTypeEntity> show vacation [format]`
|
||||
|
||||
Added command toGet information about a specific calendar.
|
||||
`gam <UserTypeEntity> info calendar <EmailAddress>`
|
||||
|
||||
Added command to print calendars to CSV file, dropped all arguments from gam show calendars.
|
||||
`gam <UserTypeEntity> print calendars [todrive]`
|
||||
`gam <UserTypeEntity> show calendars`
|
||||
|
||||
Added command to print Gmail Profiles to CSV file, dropped all arguments from gam show gmailprofile.
|
||||
`gam <UserTypeEntity> print gmailprofile [todrive]`
|
||||
`gam <UserTypeEntity> show gmailprofile`
|
||||
|
||||
Added command to print Gplus Profiles to CSV file, dropped all arguments from gam show gplusprofile.
|
||||
`gam <UserTypeEntity> print gplusprofile [todrive]`
|
||||
`gam <UserTypeEntity> show gplusprofile`
|
||||
|
||||
Added command to print user schemas to CSV file, renamed command to display formatted user schemas to gam show schemas.
|
||||
`gam print schemas [todrive]`
|
||||
`gam show schemas`
|
||||
|
||||
Added command to print user access tokens to CSV file.
|
||||
`gam <UserTypeEntity> print tokens|token|3lo|oauth [todrive]`
|
||||
|
||||
Added arguments to gam info cros to allow specification of desired output fields.
|
||||
`gam info cros <CrosDeviceEntity> [nolists] [listlimit <Number>]
|
||||
[basic|full|allfields] <CrOSFieldName>* [fields <CrOSFieldNameList>]`
|
||||
|
||||
Added drivedir and targetfolder <FilePath> arguments to gam printjob fetch and gam get photo to
|
||||
allow specification of the destination folder for the file retrieved from Google. The default
|
||||
location for these commands is the current working directory, drivedir specifies the value of the environment variable GAMDRIVEDIR and
|
||||
targetfolder <FilePath> specifies a user-choosen path.
|
||||
`gam printjob <PrinterID>|any fetch
|
||||
[olderthan|newerthan <PrintJobAge>] [query <QueryPrintJob>]
|
||||
[status <PrintJobStatus>]
|
||||
[orderby <PrintJobOrderByFieldName> [ascending|descending]]
|
||||
[owner|user <EmailAddress>]
|
||||
[limit <Number>] [drivedir|(targetfolder <FilePath>)]`
|
||||
`gam <UserTypeEntity> get photo [drivedir|(targetfolder <FilePath>)]`
|
||||
|
||||
Commands that produce CSV file output have been changed to make the leftmost column(s) be the key fields.
|
||||
If you have scripts that process the CSV files as flat files, expecting the columns to be in a particular
|
||||
order, they will have to be updated. If your scripts process the CSV files by column header, no changes should be required.
|
||||
|
||||
GAM 3.65
|
||||
-fix vacation issues (Ross)
|
||||
-fix Windows path issues (Ross)
|
||||
|
Reference in New Issue
Block a user