| 2026-02-10 12:24:57 by Stephen Borrill | Files touched by this commit (2) |
Log message:
gam: Update to 7.33.02
Changes since 7.32.06
7.33.02
Added hideinvitationssetting to <UserCalendarSettingsField> used by gam \
<UserTypeEntity> print|show calsettings.
7.33.01
Added option shownopolicy to gam print chromepolicies that will display output \
like the following if no policies apply to the selected OU or group.
gam print chromepolicies ou /Test appid chrome:emidddocikgklceeeifefomdnbkldhng \
namespace chrome.users.apps shownopolicy
Getting all Chrome Policies that match query (chrome.users.apps.*) for /Test
Got 0 Chrome Policies that matched query (chrome.users.apps.*) for /Test...
name,orgUnitPath,parentOrgUnitPath,direct,appId
noPolicy,/Test,/,False,chrome:emidddocikgklceeeifefomdnbkldhng
7.33.00
Added variable developer_preview_apis to gam.cfg that is a comma separated list \
of APIs requiring a Developer Preview key.
Currently, chat is the only API that requires a Developer Preview key; it is \
required for the User Sections commands.
See: https://github.com/GAM-team/GAM/wiki/Users-Chat#introduction
See: https://github.com/GAM-team/GAM/wiki/Users-Chat#manage-chat-user-sections
7.32.07
Added option includepermissionsforview published to gam <UserTypeEntity> \
print filelist and gam <UserTypeEntity> show fileinfo. From the Drive API \
documentation:
Specifies which additional view's permissions to include in the response. Only \
published is supported.
|
2026-01-30 12:32:35 by Stephen Borrill | Files touched by this commit (2) |  |
Log message:
gam: update to 7.32.06
Changes since 7.29.01:
7.32.06
Added options to gam <UserTypeEntity> copy drivefile ... copysubfiles to \
limit copying to files whose modifiedTime meets specified requirements.
start|starttime <Date>|<Time> - If specified, modifiedTime must \
be >= the value
end|endtime <Date>|<Time> - If specified, modifiedTime must be \
<= the value
range <Date>|<Time> <Date>|<Time> - first value \
<= modifiedTime <= second value
7.32.05
Fixed bug in gam <UserTypeEntity> print messages|threads ... headers \
<SMTPHeaderList> where headers other than those specified in \
<SMTPHeaderList> were displayed.
Updated gam info users <UserTypeEntity> to display the following data when \
the Licensing API does not return data due to quota limits. Previously, no \
License data was displayed and there was no way to know if it was omitted due to \
API quota limits vs the user has no license?
Licenses: (1)
Not available/incomplete
If a user has no licenses, this will be displayed.
Licenses: (0)
You should use license_skus = <SKUIDList> in gam.cfg to list all of the \
licensing SKUs used in your workspace. Without this list, GAM has to make 70+ \
API calls to get the licenses for a user; this can cause quota limit errors.
7.32.04
Support for student groups in Google Classroom no longer requires Developer \
Preview membership.
Upgraded to OpenSSL 3.6.1.
7.32.03
Added option template as an additional formating option for gam \
<UserTypeEntity> show signature that displays just the HTML data; this \
simplifies capturing the data for use as input to GAM.
$ gam redirect stdout ./SigTemplate.html user user@domain.com show signature template
$ more SigTemplate.html
<div dir="ltr"><div dir="ltr"><div \
dir="ltr">
<p \
style="margin:0px;font-size-adjust:none;font-stretch:normal;font-size:12px; \
line-height:normal;font-family:Monaco;color:rgb(0,0,0)">
<span style="background-color:rgb(82,208,206)">{RT}Email: \
{Email}{/RT}</span></p>
<p \
style="margin:0px;font-size-adjust:none;font-stretch:normal;font-size:12px; \
line-height:normal;font-family:Monaco;color:rgb(0,0,0)">
<span style="background-color:rgb(82,208,206)">{RT}Phone: \
{Phone}{/RT}</span></p>
<p \
style="margin:0px;font-size-adjust:none;font-stretch:normal;font-size:12px; \
line-height:normal;font-family:Monaco;color:rgb(0,0,0)">
<span style="background-color:rgb(82,208,206)">{RT}Mobile: \
{Mobile}{/RT}</span></p>
</div><br></div>\n</div>
7.32.02
Added variable oauth2_txt_lock_mode to gam.cfg, the default is 644 and valid \
values are: 644, 664, 666. This value is used to set the file permissions on the \
oauth2.txt.lock file. In very special cases where daemon processes, e.g. \
Apache/httpd, are running GAM, the value 666 may have to be used.
7.32.01
Added option (addcsvdata <FieldName> <String>)* to gam \
<CrOSTypeEntity> issuecommand command <CrOSCommand> csv and gam \
<CrOSTypeEntity> getcommand commandid <CommandID> csv that adds \
additional columns of data to the CSV file output.
See: https://github.com/GAM-team/GAM/wiki/ChromeOS-Devices#bulk-action-example
7.32.00
Added option verifyallowexternal to gam print cigroup-members|group-members that \
causes GAM to only display external members in groups with \
`allowExternalMembers=False'. This option can be used to help verify that \
internal-only groups don't have external members.
Updated option internaldomains for the following commands:
gam info|print groups
gam print|show group-members
gam info|print cigroups
gam print|show cigroup-members
gam <UserTypeEntity> print|show filesharecounts
Which domains are considered internal domains:
internaldomains all - All of your workspace domains; this is the default
internaldomains primary - Your workspace primary domain
internaldomains <DomainNameList> - A list of domain names
Added option csv to gam <CrOSTypeEntity> issuecommand command \
<CrOSCommand> and gam <CrOSTypeEntity> getcommand commandid \
<CommandID> so that command details are displayed in CSV format. This can \
be used to log commands issued to devices and then monitor the results.
Added option filemimetype category <MimeTypeNameList> to gam \
<UserTypeEntity> copy drivefile to support copying of files based on their \
MimeType category.
Added option attendeeslist to gam calendars <CalendarEntity> print events \
and gam <UserTypeEntity> print events that causes GAM to display the \
attendee email addresses in a single column attendeesList; no attendee details \
are displayed. The email addresses are separated by csv_output_field_delimiter \
from gam.cfg.
Fixed bug in gam sendemail ... replyto <EmailAddress> that caused a \
message delivery error if <EmailAddress> did not include a domain name.
Added support for users's chat sections.
See: https://github.com/GAM-team/GAM/wiki/Users-Chat#manage-chat-users-sections
This is in Deveoper Preview; you must have a developer_preview_api_key in \
gam.cfg to use these commands.
7.31.06
Added option batchsize <Integer> to gam calendar <CalendarEntity> \
delete|purge events and gam <UserTypeEntity> delete|purge events \
<UserCalendarEntity> that causes GAM to delete events with batch API calls \
rather than with individual API calls.
7.31.05
Added option variables <RESearchPattern> to gam select section \
<SectionName> verify and gam config verify that causes GAM to only display \
variables with names selected by <RESearchPattern>.
gam select School verify variables "^(customer|domain)"
Section: School
customer_id = C03abc123
domain = school.edu
gam config verify variables 'dir'
Section: DEFAULT
cache_dir = ~/GamConfig/gamcache ; /Users/gamteam/GamConfig/gamcache
config_dir = ~/GamConfig ; /Users/gamteam/GamConfig
drive_dir = ~/GamWork ; /Users/gamteam/GamWork
gmail_cse_incert_dir = ~/GmailCSE/Certs ; /Users/gamteam/GmailCSE/Certs
gmail_cse_inkey_dir = ~/GmailCSE/Keys ; /Users/gamteam/GmailCSE/Keys
input_dir = .
7.31.04
Fixed bug in gam report admin|chrome that caused to events to not be displayed.
Updated gam <UserTypeEntity> print|show messages|threads ... query \
<QueryGmail> to display the query.
7.31.03
Due to the following Calendar API update, the gam <UserTypeEntity> \
transfer calendars command has been removed.
See: \
https://developers.google.com/workspace/calendar/release-notes#October_27_2025 \
Data ownership can be transferred in the Google Calendar UI.
7.31.02
Added the following options to gam <UserTypeEntity> copy drivefile to \
limit copying to those files owned by selected users.
copysubfilesownedby users <EmailAddressList> - Only files owned by \
users in <EmailAddressList> are copied.
copysubfilesownedby notusers <EmailAddressList> - Only files not owned \
by users in <EmailAddressList> are copied.
copysubfilesownedby regex <REMatchPattern> - Only files owned by users \
whose email addresses match <REMatchPattern> are copied.
copysubfilesownedby notregex <REMatchPattern> - Only files owned by \
users whose email addresses do not match <REMatchPattern> are copied.
7.31.01
Code cleanup for addcsvdata <FieldName> <String>.
7.31.00
Fixed bug in gam report chrome (user <UserItem>)|(select \
<UserTypeEntity>) where no activities were returned. report chrome does \
not use the parameter userKey=<EmailAddress> as do other applications but \
requires parameter filter DEVICE_USER==<EmailAddress>.
Updated gam report admin (user <UserItem>)|(select <UserTypeEntity>) \
to use parameter filter USER_EMAIL==<EmailAddress> to display activiities \
affecting the user <EmailAddress>. Use option userisactor to use the \
parameter userKey=<EmailAddress> that displays activities where user \
<EmailAddress> executed the command that generated the activity.
Fixed bug in gam print cros|filelist|users ... (addcsvdata <FieldName> \
<String>)+ formatjson where the addcsvdata columns were not displayed but \
the additional field values were included in the JSON data. Now, the addcsvdata \
columns are displayed but the additional field values are only included in the \
JSON data when option includdecsvdatainjson is specified.
Added option addcsvdata <FieldName> <String> to gam \
<UserTypeEntity> print cigroups|groups that adds additional columns of \
data to the CSV file output.
Added option addcsvdata <FieldName> <String> to gam \
<UserTypeEntity> print cigroupmembere|group-members that adds additional \
columns of data to the CSV file output.
7.30.05
Added option gmaileventtypes <NumberRangeList> to gam report gmail that \
can be used to limit the event types displayed.
<NumberRange> ::= <Number>|(<Number>/<Number>)
<NumberRangeList> ::= "<NumberRange>(,<NumberRange>)*"
gam report gmail user user@domain.com gmaileventtypes 1,10/11
See: \
https://developers.google.com/workspace/admin/reports/v1/appendix/activity/gmail
Updated sorting of column headers in gam report <ActivityApplicationName>.
7.30.04
Updated gam report gmail to avoid the following error when incomplete start/end \
time information is provided.
ERROR: Invalid request: Start time and end time should both be provided, and the \
scan duration should not be greater than 30 days.
No time information provided - GAM sets range -30d today
Only start <Time> provided - GAM sets end <Time>+30d
Only end <Time> provided - GAM sets start <Time>-30d
7.30.03
Updated gam report <ActivityApplicationName> to reflect the changes \
described here:
See: \
https://workspaceupdates.googleblog.com/2025/12/google-workspace-audit-log-api.html
Added option resourcedetailsfilter <String> to gam report \
<ActivityApplicationName> described here:
See: \
https://developers.google.com/workspace/admin/reports/reference/rest/v1/activities/list#query-parameters
For gam <UserTypeEntity> print <Objects>, expanded the list of \
<Objects> covered by gam.cfg csv_output_users_audit = True.
7.30.02
Added option conferencedata meet <MeetID> to <EventAttribute> that \
allows specifying a reference to an existing Google Meet when creating/updating \
a calendar event.
Upgraded to Python 3.14.2.
7.30.01
Fixed bug introduced in 7.30.00 that caused errors when reading CSV files.
Added the following options to gam <UserTypeEntity> create \
focustime|outofoffice:
((date yyyy-mm-dd)|
(range yyyy-mm-dd yyyy-mm-dd)|
(daily yyyy-mm-dd N)|
(weekly yyyy-mm-dd N))
Added the following options to gam <UserTypeEntity> create \
focustime|outofoffice|workinglocation:
noreminders|(reminder email|popup <Number>)+
7.30.00
Added input_dir directory variable to gam.cfg that is used to select a directory \
for reading files with non-absolute file names. The default is an empty string \
that matches the current behavior where these files are read from the current \
working directory. This will be most useful in multiple domain situations where \
each domain will have distinct drive_dir and input_dir values.
Added support for the new resource calendar setting autoAcceptInvitations.
7.29.04
Updated gam delete chromepolicy chrome.users.apps.InstallType ou \
<OrgUnitItem> appid <AppID> to allow deleting an app, i.e., \
explicitly remove it from management. <OrgUnitItem> must specify where it \
was added for management.
7.29.03
Remove debugging message from gam <UserTypeEntity> move drivefile \
<DriveFileEntity>.
7.29.02
Fixed bug in gam <UserTypeEntity> move drivefile <DriveFileEntity> \
where the following options were only applied to top level files or folders \
re-created in the destination. Now, domain and email address mappings apply to \
all moved files/folders.
excludepermissionsfromdomains <DomainNameList>
includepermissionsfromdomains <DomainNameList>
mappermissionsdomain <DomainName> <DomainName>
mappermissionsemail <EmailAddress> <EmailAddress>
mappermissionsemailfile <CSVFileInput> endcsv
Upgraded to Python 3.14.1.
|
2025-12-02 15:24:21 by Stephen Borrill | Files touched by this commit (3) |  |
Log message:
gam: update to 7.29.01
Changes since 7.19.02:
7.29.01
Added option oneitemperrow to gam <UserTypeEntity> print calendars ... \
permissions to have each of a calendar's permissions displayed on a separate row \
with all of the other calendar fields.
Updated gam yubikey reset_piv to handle YubiKey firmware updates that caused an \
error.
7.29.00
Added options mappermissionsemail <EmailAddress> <EmailAddress> and \
mappermissionsemailfile <CSVFileInput> endcsv to these commands:
gam [<UserTypeEntity>] copy shareddriveacls <SharedDriveEntity> to \
<SharedDriveEntity>
gam [<UserTypeEntity>] sync shareddriveacls <SharedDriveEntity> with \
<SharedDriveEntity>
gam <UserTypeEntity> copy drivefile <DriveFileEntity>
gam <UserTypeEntity> move drivefile <DriveFileEntity>
When mappermissionsemail <EmailAddress> <EmailAddress> is specifed, \
an ACL that references the first <EmailAddress> in the source will be \
modified to reference the second <EmailAddress> in the destination.
Bulk permission email address mapping can be specified with \
mappermissionsemailfile <CSVFileInput> endcsv. <CSVFileInput> must \
include these columns: sourceEmail and destinationEmail.
These options will be most useful with inter-workspace Shared Drive copies and moves.
7.28.13
Added option addcsvdata <FieldName> <String> to gam \
<UserTypeEntity> print messages that adds additional columns of data to \
the CSV file output.
7.28.12
Updated gam delete project to handle the following error:
ERROR: 400: failedPrecondition - Project not active
7.28.11
Removed all options/fields referencing inheritance from gam \
create|update|info|print org as this option/field is deprecated.
7.28.10
Added a command gam print course-counts that displays the count of the number of \
courses in which a teacher or student is a participant.
7.28.09
Fixed bug in gam print cigroups ... descriptionmatchpattern [not] \
<REMatchPattern> that caused a trap.
7.28.08
Updated gam <UserTypeEntity> print|show chatmessages to cache the sender \
UID to email address map so that each sender UID only has to be looked up once; \
this improves performance.
7.28.07
Fixed bug in gam report users ... aggregatebydate|aggregatebyuser where \
accounts:used_quota_in_percentage was incorrectly displayed.
7.28.06
Updated gam <UserTypeEntity> info|print|show calendars and gam calendars \
<CalendarEntity> print|show settings to display the new dataOwner field
7.28.04
Updated commands that display Chrome device counts to display the date in the output.
7.28.03
Improved commands to display Chrome device counts.
7.28.02
Added commands to display Chrome device counts.
7.28.01
Updated gam <UserTypeEntity> show fileinfo <DriveFileEntity> to \
display displayName as the key field of a permission not deleted.
7.28.00
Added option addcsvdata <FieldName> <String> to gam report [usage] \
customers|users that adds additional columns of data to the CSV file output. \
This will be most useful when reading a CSV of user information and you want to \
include some of the user information, e.g., orgUnitPath, in the output.
gam redirect csv ./Users.csv print users fields ou
gam redirect csv ./UserStorageInfo.csv multiprocess csv Users.csv gam report \
users user "~primaryEmail" parameters \
accounts:drive_used_quota_in_mb,accounts:gmail_used_quota_in_mb,accounts:gplus_photos_used_quota_in_mb,accounts:total_quota_in_mb,accounts:used_quota_in_mb,accounts:used_quota_in_percentage \
addcsvdata orgUnitPath "~orgUnitPath"
7.27.05
Added option addcsvdata <FieldName> <String> to gam print courses \
that adds additional columns of data to the CSV file output.
The following scope is no longer necessary: Cloud Identity API - Groups Beta \
(Enables group locking/unlocking) as this scope Cloud Identity API - Groups now \
provides group locking/unlocking.
7.27.04
Added options to gam <UserTypeEntity> create delegate that support sending \
email notifications when a user adds a delegate.
7.27.03
Updated gam <UserTypeEntity> create|update|sync chatmember role \
specification to role member|manager|owner. This is the mapping between the Chat \
UI and Chat API; GAM uses the Chat UI role names.
UI: Member, API: ROLE_MEMBER
UI: Manager, API: ROLE_ASSISTANT_MANAGER
UI: Owner, API: ROLE_MANAGER
Updated gam <UserTypeEntity> update chatspace options for permission settings.
[managemembersandgroups owners|managers|members]
[modifyspacedetails owners|managers|members]
[togglehistory owners|managers|members]
[useatmentionall owners|managers|members]
[manageapps owners|managers|members]
[managewebhooks owners|managers|members]
[replymessages owners|managers|members]
7.27.02
Added option clearattachments <String> to gam [<UserTypeMessage>] \
update chatmessage that clears all attachments from a Chat message. If \
<ChatContent> is not specified, the current message text is retained and \
<String> is appended; <String> must be specified but can be empty in \
which case the current message test is preserved as-is.
7.27.01
Fixed bug in gam <UserTypeEntity> claim ownership <DriveFileEntity> \
... onlyUsers|skipusers <UserTypeEntity> where the email addresses in \
onlyUsers|skipusers <UserTypeEntity> were not normalized.
7.27.00
Added debug_redaction Boolean variable to gam.cfg. When True, the default, \
sensitive data like access/refresh tokens, client secret and authorization codes \
are redacted from debug output. This allows you to post debug output without \
compromising your account information. Even with debug redaction, anything \
shared publicly should be double-checked for sensitive content.
7.25.01
Fixed bug in gam config timezone <String> to handle timezone abbreviations \
correctly; they were incorrectly shifted to lowercase.
7.25.00
Removed a capabilty added in 7.24.00 that allowed reading command data from \
Google Docs and Sheets when a user's service account access to Drive and Sheets \
had been disabled. Jay was concerned that this change could be exploited to give \
access to all user's files.
This capability has been replaced by issuing the following commands. The admin \
specified in gam oauth create can read command data from Docs and Sheets to \
which it has access.
gam config commanddata_clientaccess true save
gam oauth create
Enable the following and proceed to authorization.
[*] 42) Drive API - commanddata_clientaccess
[*] 54) Sheets API - commanddata_clientaccess
Fixed in bug in gam report that caused a trap with either of the thismonth or \
previousmonths options were used.
Upgraded to Python 3.14.0.
7.24.01
Updated GAM to handle the following error that occurs when GAM tries to \
authenticate as a user that has been disabled by Google.
ERROR: Authentication Token Error - invalid_account: Forbidden
7.24.00
If you want to disable a user's service account access to Drive and Sheets but \
still allow reading command data from Google Docs and Sheets, issue the \
following command and make these settings:
gam user user@domain.com update serviceaccount
[ ] 20) Drive API (supports readonly)
[*] 21) Drive API - read command data
[ ] 42) Sheets API (supports readonly)
[*] 43) Sheets API - read command data
7.23.07
Fixed bug in gam print|show admins where all admin assignments were not \
displayed when types <AdminAssigneeTypeList> was not specified, i.e., all \
assignments should be displayed.
7.23.06
Added option types <AdminAssigneeTypeList> to gam print|show admins that \
allows filtering of admin assignments by the type of the assignee; by default, \
all assignee types are displayed.
<AdminAssigneeType> ::= group|user|serviceaccount|unknown
<AdminAssigneeTypeList> ::= \
"<AdminAssigneeType>(,<AdminAssigneeType>)*"
7.23.05
Added option recursive to gam print|show admins that will display assignments to \
the members of security groups assigned to roles; the security group membership \
is recursively expanded.
7.23.04
Added option addcsvdata <FieldName> <String> to gam \
<UserTypeEntity> print events and gam calendars <CalendarEntity> \
print events that adds additional columns of data to the CSV file output. An \
example would be to get the calendar name in addition to the calendar ID when \
printing events.
gam redirect csv ./Resources.csv print resources fields email,name
gam redirect csv ./ResourceEventCounts.csv multiprocess redirect stderr - \
multiprocess csv Resources.csv gam calendar "~resourceEmail" print \
events starttime -1y countsonly addcsvdata calendarName \
"~resourceName"
Upgraded to OpenSSL 3.6.0.
7.23.03
Upgraded to OpenSSL 3.5.4.
7.23.02
Added option oneitemperrow to 'gam print course-materials|course-work` to have \
each of a course's materials displayed on a separate row with all of the other \
course fields. This produces a CSV file that can be used in subsequent commands \
to process the materials without further script processing.
7.23.00
Added chat_max_results variable to gam.cfg.
chat_max_results
When retrieving lists of Chat items from API,
how many should be retrieved in each API call
Default: 100
Range: 1 - 1000
Previously, this vaule was always set to 1000 which could cause errors.
7.22.07
Added options showdetails and returnidonly to gam create|copy vaultquery.
Added option <JSONData> to gam create vaultexport|vaultquery and gam print \
vaultcounts``.
7.22.06
Added commands to create, copy and delete Vault saved queries.
gam create vaultquery <MatterItem> [name <String>]
corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
[scope all_data|held_data|unprocessed_data]
(accounts <EmailAddressEntity>) | (orgunit|org|ou \
<OrgUnitPath>) | everyone
(documentids (<DriveFileIDList>|(select \
<FileSelector>|<CSVFileSelector>))) |
(shareddrives|teamdrives (<SharedDriveIDList>|(select \
<FileSelector>|<CSVFileSelector>))) |
[(includeshareddrives <Boolean>)|(shareddrivesoption \
included|included_if_account_is_not_a_member|not_included)]
(sitesurl (<URLList>||(select \
<FileSelector>|<CSVFileSelector>)))
[driveversiondate <Date>|<Time>]
[includerooms <Boolean>]
(rooms (<ChatSpaceList>|(select \
<FileSelector>|<CSVFileSelector>))) |
[terms <String>] [start|starttime <Date>|<Time>] \
[end|endtime <Date>|<Time>] [timezone <TimeZone>]
[locationquery <StringList>] [peoplequery <StringList>] \
[minuswords <StringList>]
[responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] \
[calendarversiondate <Date>|<Time>]
(covereddata calllogs|textmessages|voicemails)*
[shownames] [formatjson]
gam copy vaultquery <MatterItem> <QueryItem> [targetmatter \
<MatterItem"] [name <String>]
[shownames] [formatjson]
gam delete vaultquery <QueryItem> matter <MatterItem>
gam delete vaultquery <MatterItem> <QueryItem>
Added a variant of gam print vaultcounts that gets its query parameters from a \
saved Vault query.
gam print vaultcounts [todrive <ToDriveAttributes>*]
matter <MatterItem> <QueryItem>
[wait <Integer>]
7.22.05
Added a variant of gam create vaultexport that gets its query parameters from a \
saved Vault query.
gam create vaultexport|export matter <MatterItem> [name <String>]
vaultquery <QueryItem>
[driveclientsideencryption any|encrypted|unencrypted]
[includeaccessinfo <Boolean>]
[excludedrafts <Boolean>] [mailclientsideencryption \
any|encrypted|unencrypted]
[showconfidentialmodecontent <Boolean>] [usenewexport \
<Boolean>] [exportlinkeddrivefiles <Boolean>]
[format ics|mbox|pst|xml]
[region any|europe|us] [showdetails|returnidonly]
7.22.04
Added a variant of gam create vaulthold that gets its parameters from a saved \
Vault query.
gam create vaulthold matter <MatterItem> [name <String>]
vaultquery <QueryItem>
[showdetails|returnidonly]
7.22.03
Fix backwards compatability bug introduced in 7.22.00 for gam print users that \
changed suspended from a field name to a query option; it is now correctly \
interpreted as a field name.
7.22.02
An update to the httplib2 library caused GAM proxy connections to fail; this has \
been fixed by including the pysocks library needed by the latest httplib2 \
library.
7.22.00
Expanded <UserTypeEntity> to allow specification of non-archived/archived \
users.
See Collections of Users
These commands have also been updated to deal with archived users:
gam print aliases
gam update groups
gam info orgs
gam print orgs
gam print users
Added datetime <DateTimeFormat> command that can be embedded in Gam batch \
files. The current time is formatted with <DateTimeFormat> and subsequent \
lines in <BatchContent> will have %datetime% replaced with the formatted \
time value.
7.21.03
Added option notifyrecoveryemail to gam create user and gam \
<UserTypeEntity> update user password <String> that sends the \
passsword notification email to the user's recovery email address (if defined).
7.21.02
GAM now builds on macOS 26 Tahoe and properly identifies the OS.
A custom build of the cryptography library is no longer needed for Windows arm64 \
builds as the project now releases their own build for the OS.
Upgrade to OpenSSL 3.5.3 latest
7.21.01
Replaced datetime, dateutil, calendar and iso8601 Python libraries with arrow \
library. This should have no performance impact; report any problems.
You can now use timezone names when setting timezone in gam.cfg.
gam config timezone America/Los_Angeles save
7.20.04
Cleaned up Python library imports: googleapiclient, iso8601
7.20.03
Rebranded license SKU 1010470004 from Gemini Education to Google AI Pro for \
Education.
Additional updates to student groups in Google Classroom.
7.20.02
Upgraded gam create course-studentgroups to allow specification of multiple \
student group titles; multiple student groups can be created in a single \
command.
((title <String>)|(select <StringEntity))+
7.20.01
Added option showaccesssettings to gam [<UserTypeEntity>] print|show \
chatspaces. When listing Chat Spaces, the Chat API does not return the \
accessSettings field; if you need to see this field, add showaccesssettings to \
the command. This requires an additional Chat API call per chat space of type \
SPACE to get the accessSettings field.
7.20.00
Added initial support for student groups in Google Classroom. This is a work in \
progress and requires Developer Preview membership.
7.19.03
Fixed bug where specifying a <UserItem> as id:1234567890 could lead to \
errors like this:
ERROR: 400: invalidArgument - Resource name has invalid email.
|
| 2025-08-29 15:50:22 by Thomas Klausner | Files touched by this commit (1) |
Log message:
gam: fix tool dependency
Prefer REPLACE_PYTHON to CHECK_INTERPRETER_SKIP.
|
2025-08-29 15:42:24 by Stephen Borrill | Files touched by this commit (4) |  |
Log message:
gam: update to 7.19.02
Changes since 7.10.07:
7.19.02
Update gam info user <UserItem> to eliminate 5 second delay when getting \
license info.
7.19.01
Updated gam <UserTypeEntity> print|show signature to handle the following \
error that occurs when an alias is specified:
ERROR: 404: notFound - Requested entity was not found.
7.19.00
Eliminated drive_v3_beta and meet_v2_beta from gam.cfg as the API betas are no \
longer used.
Updated Meet API scopes so that GAM can read metadata about additional Meet spaces.
[*] 34) Meet API - Manage/Display Meeting Spaces
[*] 35) Meet API - Read Meeting Spaces metadata
7.18.07
Updated gam <UserTypeEntity> print drivelastmodification to put addcsvdata \
columns after User,id,name rather than after the last column.
7.18.06
Updated gam <UserTypeEntity> delete|modify messages to improve the \
handling of the following error:
quotaExceeded - User-rate limit exceeded
7.18.05
Added support for Inbound SSO OIDC profiles.
Currently, if you enter gam select <SectionName> and nothing else on the \
command line, GAM performs no action. Now, it will be treated as if you entered: \
gam select <SectionName> save
Updated to Python 3.13.7.
7.18.04
Added commands to display/manage Alert Center Pub/Sub notifications.
See: https://github.com/GAM-team/GAM/wiki/Alert-Center#configuring-settings
7.18.03
Updated gam oauth create to give a warning if the number of selected scopes will \
probably cause Google to generate a "Something went wrong" error.
7.18.02
Upgraded to OpenSSL 3.5.2.
7.18.01
Added option nosystemroles to gam print|show adminroles that causes GAM to only \
display non-system roles.
Added option formatjson to gam info|print|show adminroles; this will be most \
useful when the privileges option is used.
Updated gam create|update adminrole to allow specification of privileges with \
JSON data: privileges <JSONData>. These two updates make it easier to copy \
admin roles.
Updated gam create|update adminrole to allow output of the created/updated role \
data in CSV format; by default, GAM displays <RoleName>(<RoleID>) \
created|updated.
csv [todrive <ToDriveAttribute>*] [formatjson [quotechar \
<Character>]] (addcsvdata <FieldName> <String>)*
7.18.00
Added commands to display Business Profile Accounts. These are special purpose \
commands and will not generally be used.
gam show businessprofileaccounts
gam print businessprofileaccounts [todrive <ToDriveAttribute>*]
7.17.03
Fixed bug in gam <UserItem> print|show chatspaces asadmin fields \
<ChatSpaceFieldNameList> that caused a trap when displayname was not in \
<ChatSpaceFieldNameList>.
7.17.02
Updated gam <UserTypeEntity> print|show webmastersites to handle the \
following error that occurs if you haven't updated your project to include the \
Google Search Console API:
ERROR: 403: permissionDenied - Google Search Console API has not been used in \
project 111055363999 before or it is disabled. Enable it by visiting \
https://console.developers.google.com/apis/api/searchconsole.googleapis.com/overview?project=111055363999 \
then retry. If you enabled this API recently, wait a few minutes for the action \
to propagate to our systems and retry.
7.17.01
Fixed bug in gam <UserTypeEntity> show webmastersites that caused a trap.
7.17.00
Added commands to discover Sites and WebResources that managed users (previously \
unmanaged) may have access to for better governance and visibility. These are \
special purpose commands and will not generally be used.
gam <UserTypeEntity> show webresources
gam <UserTypeEntity> print webresources [todrive <ToDriveAttribute>*]
gam <UserTypeEntity> show webmastersites
gam <UserTypeEntity> print webmastersites [todrive <ToDriveAttribute>*]
7.16.01
The Drive API now supports setting download restrictions on individual files.
Added downloadrestictions and <DriveDownloadRestrictionsSubfieldName> to \
<DriveFieldName>.
<DriveDownloadRestrictionsSubfieldName> ::=
downloadrestrictions.itemdownloadrestriction|
downloadrestrictions.effectivedownloadrestrictionwithcontext
Added itemdownloadrestriction (restrictedforreaders [<Boolean>]) \
(restrictedforwriters [<Boolean>]) to <DriveFileAttribute>.
From the Drive API documentation:
itemDownloadRestriction - The download restriction of the file applied directly \
by the owner or organizer. This does not take into account shared drive settings \
or DLP rules.
effectiveDownloadRestrictionWithContext - Output only. The effective download \
restriction applied to this file. This considers all restriction settings and \
DLP rules.
restrictedForReaders - Whether download and copy is restricted for readers.
restrictedForWriters - Whether download and copy is restricted for writers. If \
true, download is also restricted for readers.
7.16.00
Removed drive_v3_native_names from gam.cfg; GAM now only uses Drive API v3 \
fields names on output. If you had drive_v3_native_names = False in gam.cfg or \
are updating from Legacy GAM:
See: https://github.com/GAM-team/GAM/wiki/Drive-REST-API-v3
7.15.01
Added downloadrestrictions.restrictedforreaders and \
downloadrestrictions.restrictedforwriters to \
<SharedDriveRestrictionsSubfieldName>; previously, only the abbreviations \
downloadrestrictedforreaders and downloadrestrictedforwriters were supported \
(they are still supported).
Updated gam <UserTypeEntity> copy drivefile to handle unexpected data \
returned by Google that caused a trap.
7.15.00
Updated gam print shareddriveorganizers to make shownoorganizerdrives default to \
True as documented; it was defaulting to False.
Cleaned up code for processing Python dictionary structures; this should have no \
noticable effect.
7.14.04
Fixed bug in gam print|show cigroups cimember <UserItem> that generated \
the following error:
ERROR: Cloud Identity Group: groups/-, Print Failed: Error(4013): Insufficient \
permissions to retrieve memberships.
Updated gam <UserTypeEntity> update user suspended off and gam \
<UserTypeEntity> unsuspend users to handle the following error that occurs \
when trying to unsuspend a user that has been suspended for abuse:
ERROR: 412: adminCannotUnsuspend - Cannot restore a user suspended for abuse.
See: https://support.google.com/a/answer/1110339
7.14.03
Fixed bug in gam print cigroup-members includederivedmembership that caused a trap.
7.14.02
Fixed bug in gam print|show cigroups|cigroups-members cimember <UserItem> \
that generated the following error:
Cloud Identity Group Print Failed: Request contains an invalid argument.
7.14.01
Don't install yubikey library via pip by default. To install with yubikey \
support use pip install gam7[yubikey]
7.14.00
Added commands to display Google Tag Manager accounts, containers, workspaces, \
tags and user permissions.
See: https://github.com/GAM-team/GAM/wiki/Users-Tag-Manager
7.13.03
Added option csv [todrive <ToDriveAttribute>*] [formatjson [quotechar \
<Character>]]] to gam create chromeprofilecommand so that command details \
are displayed in CSV format.
Added option commands \
<ChromeProfileCommandNameList>|<FileSelector>|<CSVFileSelector> \
to <ChromeProfileNameEntity> so that gam print|show chromeprofilecommands \
can directly display the commands generated by gam create chromeprofilecommand \
with the csv option.
7.13.02
Fixed bug in gam create chromeprofilecommand where select|filter were not recognized.
Updated gam create datatransfer <OldOwnerID> datastudio <NewOwnerID> \
that generated the following error due to an unhandled API change:
ERROR: Invalid choice (google data studio): Expected <calendar|looker \
studio|drive and docs>
7.13.01
Enhanced gam create|print|show chromeprofilecommand to allow specification of \
multiple Chrome browser profiles rather than just one.
<ChromeProfilePermanentID> ::= <String>
<ChromeProfileName> ::= \
customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | \
<ChromeProfilePermanentID>
<ChromeProfileNameList> ::= \
"<ChromeProfileName>(,<ChromeProfileName>)*"
<ChromeProfileNameEntity> ::=
<ChromeProfileNameEntity> ::=
<ChromeProfileNameList> |
(select <FileSelector>|<CSVFileSelector>) |
(filter <String> (filtertime<String> <Time>)* [orderby \
<ChromeProfileOrderByFieldName> [ascending|descending]])
gam create|print_show chromeprofilecommand <ChromeProfileNameEntity>
7.13.00
Added commands that send remote commands to Chrome browser profiles and display \
the results; at the moment, these commands can clear the browser cache and \
cookies.
See: \
https://github.com/GAM-team/GAM/wiki/Chrome-Profile-Management#create-a-chrome-profile-command
7.12.02
Updated gam print users to handle the following error:
ERROR: 503: serviceNotAvailable - The service is currently unavailable
7.12.01
Added support for plan free in gam create resoldsubscription.
The free plan is exclusive to the Cloud Identity SKU and does not incur any \
billing.
7.12.00
Started updated handling of missing scopes messages in client access commands; \
this is a work in progress.
Updated gam info|show shareddrive to handle changes in the Drive API that caused \
traps.
Added downloadrestrictedforreaders and downloadrestrictedforwriters to \
<SharedDriveRestrictionsSubfieldName> to support new Shared Drive \
restrictions.
Updated gam course <CourseID> create|update announcement to accept input \
from a literal string, a file or a Google Doc.
<CourseAnnouncementContent> ::=
((text <String>)|
(textfile <FileName> [charset <Charset>])|
(gdoc <UserGoogleDoc>)|
(gcsdoc <StorageBucketObjectName>))
Added command gam check suspended <UserItem> that checks the suspension \
status of a user and sets the return code to 0 if the user is not suspended or \
26 if it is.
$ gam check suspended testok@domain.com
User: testok@domain.com, Account Suspended: False
$ echo $?
0
$ gam check suspended testsusp@domain.com
User: testsusp@domain.com, Account Suspended: True, Suspension Reason: ADMIN
$ echo $?
26
Updated gam <UserTypeEntity> sendemail to verify that one of \
recipient|to|from immediately follows sendemail.
7.11.00
Added commands to manage classroom/course announcements.
See: \
https://github.com/GAM-team/GAM/wiki/Classroom-Courses#manage-course-announcements
Upgraded to OpenSSL 3.5.1.
7.10.10
Added choices text and hyperlink to option showwebviewlink in gam \
[<UserTypeEntity>] print|show shareddrives.
showwebviewlink text - Displays \
https://drive.google.com/drive/folders/<SharedDriveID>
showwebviewlink hyperlink - Displays \
=HYPERLINK("https://drive.google.com/drive/folders/<SharedDriveID>", \
"<SharedDriveName>")
7.10.09
Added option showwebviewlink to gam [<UserTypeEntity>] print|show \
shareddrives that displays the web view link for the Shared Drive: \
https://drive.google.com/drive/folders/<SharedDriveID>.
7.10.08
Fixed bug in commands that modify messages where the labelids \
<LabelIdList> option could not be used unless one of these options was \
also specified: query, matchlabel, ids; it can be now be used by itself.
|
2025-06-30 14:36:42 by Stephen Borrill | Files touched by this commit (2) |  |
Log message:
gam: update to 7.10.07
Changes since 7.10.01:
7.10.07
Updated gam <UserTypeEntity> copy|move drivefile to hanndle additional \
instances of the cannotModifyInheritedPermission error.
Added license SKU Google AI Ultra for Business
ProductID - 101047
SKUID - 1010470008 | geminiultra
7.10.06
Added option clientstates to gam print devices to include client states in \
device output.
7.10.05
Google renamed an error: cannotModifyInheritedTeamDrivePermission became \
cannotModifyInheritedPermission. GAM will now handle the new error.
7.10.04
Updated gam report <ActivityApplicationName> to accept accept application \
names as defined in the Reports API discovery document; this means that GAM does \
not have to be updated when Google defines a new application name.
gemini_in_workspace_apps is now available in gam report.
7.10.03
Fixed bug in commands that modify messages where the labelids \
<LabelIdList> option was not being applied.
7.10.02
Added option labelids <LabelIdList> to all commands that process messages; \
this option causes GAM to only return messages with labels that match all of the \
specified label IDs.
Updated gam <UserTypeEntity> print|show forms to always display \
isPublished and isAcceptingResponses in publishSettings/publishState regardless \
of their value; the API doesn't return these values when they are False.
|
2025-06-20 17:41:26 by Stephen Borrill | Files touched by this commit (2) |  |
Log message:
gam: update to 7.10.01
Changs since 7.05.08:
7.10.01
Added options ispublished [<Boolean>] and isacceptingresponses \
[<Boolean>] to gam <UserTypeEntity> create|update form.
7.10.00
Added commands to manage/display Chat Custom Emojis.
See: https://github.com/GAM-team/GAM/wiki/Users-Chat#manage-chat-emojis
See: https://github.com/GAM-team/GAM/wiki/Users-Chat#display-chat-emojis
Updated gam <UserItem> print|show chatspaces|chatmembers asadmin to \
display the spaces in ascending display name order.
7.09.07
Added webviewlink to <FileTreeFieldName> for use in gam \
<UserTypeEntity> print|show filetree.
7.09.06
Upddated gam print|show shareddrives, gam print|show shareddriveacls, gam print \
shareddriveorganizers to display the Shared Drives in ascending name order; the \
API returns them in an unidentifiable order.
7.09.05
Improved output of gam info|show chromeschemas [std] to more accurately display \
the schemas.
Fixed bugs in gam update chromepolicy that caused invalid error messaages.
7.09.04
Fixed bug in gam whatis <EmailItem> where the check for an invitable user \
always failed.
Fixed bug in gam print shareddriveorganizers where no organizers were displayed \
when domain in gam.cfg was blank.
Updated to Python 3.13.5
7.09.03
Updated gam <UserTypeEntity> create focustime|outofoffice ... timerange \
<Time> <Time> to check that the first <Time> is less than the \
second Time; previously the event was not created.
For new installs the enforce_expansive_access Boolean variable in gam.cfg now \
defaults to True. For existing installations, if enforce_expansive_access has \
not been added to gam.cfg, a default value of True will be used.
7.09.02
Added command gam info chromeschema std <SchemaName> to display a Chrome \
policy schema in the same format as Legacy GAM.
Improved output of gam show chromeschemas [std] and gam info chromeschema [std] \
to more accurately display the schemas.
7.09.01
Fixed bug in gam <UserTypeEntity> print diskusage where the ownedByMe \
column was blank for the top folder.
Fixed bug in gam update chromepolicy where the following error was generated \
when updating policies with simple numerical values.
ERROR: Missing argument: Expected <value>"
7.09.00
Removed the overly broad service account IAM and Access Management API scope \
https://www.googleapis.com/auth/cloud-platform from DWD. The gam \
<UserTypeEntity> check|Update serviceaccount commands issue an error \
message if this scope is enabled prompting you to update your service account \
authorization so that the scope can be removed.
GAM commands that need IAM access now use the more limited scope \
https://www.googleapis.com/auth/iam in a non-DWD manner.
Added enforce_expansive_access Boolean variable to gam.cfg that provides the \
default value for option enforceexpansiveaccess in all commands that delete or \
update drive file ACLs/permissions. It's default value is False.
gam <UserTypeEntity> delete permissions
gam <UserTypeEntity> delete drivefileacl
gam <UserTypeEntity> update drivefileacl
gam <UserTypeEntity> copy drivefile
gam <UserTypeEntity> move drivefile
gam <UserTypeEntity> transfer ownership
gam <UserTypeEntity> claim ownership
gam <UserTypeEntity> transfer drive
Fixed bug in gam print shareddriveorganizers that caused a trap when an \
organizer was a deleted user.
Updated to Python 3.13.4
7.08.02
Updated the defaults in gam print shareddriveorganizers to match the most common \
use case, not the script.
domainlist - The workspace primary domain
includetypes - user
oneorganizer - True
shownoorganizerdrives - True
includefileorganizers - False
To select organizers from any domain, use: domainlist ""
These commands produce the same result.
gam redirect csv ./TeamDriveOrganizers.csv print shareddriveorganizers \
domainlist mydomain.com includetypes user oneorganizer shownoorganizerdrives
gam redirect csv ./TeamDriveOrganizers.csv print shareddriveorganizers
7.08.01
Added option shareddrives (<SharedDriveIDList>|(select \
<FileSelector>|<CSVFileSelector>)) to gam print \
shareddriveorganizers that displays organizers for a specific list of Shared \
Drive IDs.
See: \
https://github.com/GAM-team/GAM/wiki/Shared-Drives#display-shared-drive-organizers
7.08.00
Added the following command that can be used instead of the \
GetTeamDriveOrganizers.py script.
gam [] print shareddriveorganizers [todrive *] [adminaccessasadmin] \
[shareddriveadminquery|query ] [orgunit|org|ou ] [matchname ] [domainlist ] \
[includetypes ] [oneorganizer []] [shownorganizerdrives [false|true|only]] \
[includefileorganizers []] [delimiter ]
See: \
https://github.com/GAM-team/GAM/wiki/Shared-Drives#display-shared-drive-organizers
The command defaults match the script defaults:
* `domainlist` - All domains
* `includetypes` - user,group
* `oneorganizer` - False
* `shownoorganizerdrives` - True
* `includefileorganizers` - False
For example, to get a single user organizer from your domain for all Shared \
Drives including no organizer drives:
gam redirect csv ./TeamDriveOrganizers.csv print shareddriveorganizers \
domainlist mydomain.com includetypes user oneorganizer shownoorganizerdrives
7.07.17
Added option `oneuserperrow` to `gam print devices` to have each of a
device's users displayed on a separate row with all of the other device fields.
7.07.16
Added `chromeostype`, `diskspaceusage` and `faninfo` to `<CrOSFieldName>` \
for use in `gam info|print cros`.
Fixed bugs/cleaned output in `gam info|print cros`.
7.07.15
Added option `shareddrivesoption \
included|included_if_account_is_not_a_member|not_included` to `gam create \
vaultexport`.
The previous option `includeshareddrives <Boolean>` is mapped as follows:
* `includeshareddrives false` - `shareddrivesoption \
included_if_account_is_not_a_member`
* `includeshareddrives true` - `shareddrivesoption included`
7.07.14
Update `gam setup chat` output to include the following that shows the actual \
Cloud Pub/Sub Topic Name.
You'll use projects//topics/no-topic in Connection settings Cloud Pub/Sub Topic Name
7.07.13
Added option `showitemcountonly` to `gam [<UserTypeEntity>] print|show \
shareddrives` that causes GAM to display the
number of Shared Drives on stdout; no CSV file is written.
7.07.12
Fixed bug in `gam print|show oushareddrives` that caused a trap.
Improved getting Shared Drive names from IDs when accessing Shared Drives in \
external workspaces.
7.07.11
Updated `gam calendars <CalendarEntity> update events` and `gam \
<UserTypeEntity> update events <UserCalendarEntity>`
to handle the following error:
ERROR: 400: badRequest - Bad Request
Updated `gam <UserTypeEntity> move drivefile` to handle the following error:
ERROR: 400: shareOutNotPermitted
7.07.10
Updated `gam calendars <CalendarEntity> update events` and `gam \
<UserTypeEntity> update events <UserCalendarEntity>`
to handle the following error:
ERROR: 400: eventTypeRestriction - Attendees cannot be added to 'fromGmail' \
event with this visibility setting.
7.07.09
Updated `gam calendars <CalendarEntity> update events` and `gam \
<UserTypeEntity> update events <UserCalendarEntity>`
to handle the following error:
gamlib.glgapi.serviceNotAvailable: Authentication backend unavailable.
7.07.08
Fixed bug in `gam <UserTypeEntity> print filelist ... countsonly` that \
issued an
incorrect warning message like the following when `redirect csv <FileName> \
multiprocess` was specified.
WARNING: csv_output_row_filter column "^name$" does not match any \
output columns
7.07.07
Fixed bug in `gam report <ActivityApplictionName> ... countsonly \
eventrowfilter` that issued an
incorrect warning message like the following when `redirect csv <FileName> \
multiprocess` was specified.
WARNING: csv_output_row_filter column "^doc_title$" does not match any \
output columns
7.07.06
Added option `eventrowfilter` to `gam calendars <CalendarEntity> print \
events ... countsonly`
and `gam <UserTypeEntity> print events <UserCalendarEntity> ... \
countsonly` that causes
GAM to apply `config csv_output_row_filter` to the event details rather than the \
event counts.
This will be useful when `<EventSelectProperty>` and \
`<EventMatchProperty>` do not have the
capabilty to select the events of interest; e.g., you want to filter based on \
the event `created` property.
Dropped the extraneous `id` column for `gam calendars <CalendarEntity> \
print events ... countsonly`
and `gam <UserTypeEntity> print events <UserCalendarEntity> ... \
countsonly`.
7.07.05
Updated `gam <UserTypeEntity> move drivefile` to recognize the API error: \
`ERROR: 400: shareOutWarning`.
7.07.04
Updated `gam create vaultexport ... rooms <ChatSpaceList>` to strip \
`spaces/` from the Chat Space IDs.
Updated `gam <UserTypeEntity> copy drivefile` to recognize the API error: \
`ERROR: 400: shareOutWarning`.
7.07.03
Updated `gam create vaultexport` to allow allow specifying a list of items in a \
search method
with `shareddrives|rooms|sitesurl select \
<FileSelector>|<CSVFileSelector>`.
7.07.02
Fixed bug in `redirect csv ... transpose` where a CSV file with multiple rows \
was not properly transposed.
7.07.01
Fixed bug in `gam print|show chromepolicies` that caused a trap. Made additional
updates to handle changes in the Chrome Policy API.
7.07.00
As of mid-October 2024, Google deprecated the API that retrieved the Global \
Address List.
The following commands have been eliminated.
gam info gal gam print gal gam show gal
These commands are a work-around for `gam print gal`.
gam config csv_output_row_filter \
"includeInGlobalAddressList:boolean:true" redirect csv ./UserGAL.csv \
print users fields name,gal gam config csv_output_row_filter \
"includeInGlobalAddressList:boolean:true" batch_size 25 redirect csv \
./GroupGAL.csv print groups fields name,gal
7.06.14
Updated `create|update adminrole` to allow specifying a collection of privileges
with `privileges select <FileSelector>|<CSVFileSelector>` which \
makes copying roles much simpler.
Added option `role <RoleItem>` to `gam print|show adminroles` to allow \
display of information
for a specific role.
7.06.13
Updated `gam print group-members ... recursive` and `gam print cigroup-members \
... recursive`
to expand groups representing chat spaces.
7.06.12
Deleted commands to display Analytic UA properties; the API has been deprecated.
gam print|show analyticuaproperties
7.06.11
Improved `gam checkconn`.
Updated `gam print group-members` and `gam print cigroup-members` to recognize \
members
that are groups representing chat spaces. For now, these groups are not expanded when
`recursive` is specified.
7.06.10
Added the following license SKU.
1010020034 - Google Workspace Frontline Plus
7.06.09
Added `gemini` and `geminiforworkspace` to `<ActivityApplicationName>` for \
use in
`gam report <ActivityApplicationName>`.
7.06.08
Fixed problem where Yubikeys caused a trap.
7.06.07
Updated private key rotation progress messages in `gam create|use|update project`
and `gam upload sakey`.
Updated `gam use project` to display the following error message when the \
specifed project
already has a service account.
Re-run the command specify a new service account name with: saname '
7.06.06
Native support for Windows 11 Arm-based devices.
Renamed some MacOS and Linux binary installer files to align on terminology. \
Everything is "arm64" now, no "aarch64".
7.06.05
Updated code in `gam delete|update chromepolicy` to handle the \
`policyTargetKey[additionalTargetKeys]`
field in a more general manner for future use.
7.06.04
Fixed bug in `gam report <ActivityApplictionName>` where a report with no \
activities
was not displaying any output.
7.06.03
Fixed bug in `gam <UserTypeEntity> print|show drivelastmodification` that \
caused a trap
when an empty drive was specified.
7.06.02
Updated `gam <UserTypeEntity> print|show filecounts ... \
showlastmodification` to include
file mimetype and path information for the last modified file.
Added simple commands to get information about the last modified file on a drive.
By default, a user's My Drive is processed; optionally, a Shared Drive can be \
processed.
gam print drivelastmodification [todrive ] [select ] [pathdelimiter ] \
(addcsvdata ) gam show drivelastmodification [select ] [pathdelimiter ]
7.06.01
Updated `gam <UserTypeEntity> create|update drivefileacl ... expiration \
<Time>`
to handle additional API errors.
Updated to Python 3.13.3.
7.06.00
Upgraded to OpenSSL 3.5.0.
Fixed bug in `gam print cigroups` where `createTime`, `updateTime` and `statusTime`
were not converted according to `gam.cfg timezone`.
7.05.22
Updated progress messages for `gam <UserTypeEntity> print \
filelist|filecounts|filesharecounts|filetree select shareddriveid \
<SharedDriveID>`
to display the ID of the SharedDrive that is being accessed.
Getting all Drive Files/Folders for user@domain.com on Shared Drive ID: \
<SharedDriveID Got 33 Drive Files/Folders for user@domain.com on Shared Drive \
ID: ...
7.05.21
Fixed bug in `gam update chromepolicy` that generated an error like the following
when JSON data was read from a file.
ERROR: JSON: {'error': {'code': 400, 'message': 'Invalid enum value: \
{prefix}{value} for enum type: \
chrome.policy.api.v1.devicepolicy.AllowNewUsersEnum', 'status': \
'INVALID_ARGUMENT'}}
Fixed bug in `gam create chromepolicyimage` that caused a trap.
7.05.20
Updated code to validate both `<RegularExpression>` and \
`<ReplacementString>`
in the following command line options; this will expose errors when the command
is being parsed rather than at run-time.
replaceregex replacedescription replacefilename
7.05.19
Added `replaceregex <RegularExpression> <ReplacementString> \
<Tag> <String>` to the following commands:
gam sendemail subject gam sendemail subject
The `<RegularExpression>` is used as a match pattern against \
`<String>` to produce `<ReplacementString>`.
Instances of `{Tag}` will be replaced by `<ReplacementString>` in the \
message subject and body.
Added `replaceregex <RegularExpression> <ReplacementString> \
<Tag> <UserReplacement>` to the following commands:
gam create user gam update user gam update users gam update users gam draft \
message gam import message gam insert messageo gam create sendas gam update \
sendas gam signature gam vacation subject
The `<RegularExpression>` is used as a match pattern against \
`<UserReplacement>` to produce `<ReplacementString>`.
Instances of `{Tag}` will be replaced by `<ReplacementString>` in the \
indicated items.
For example, when adding a phone number to a signature, an unformatted number \
can be formatted:
replaceregex "(\d{3})(\d{3})(\d{4})" "(\1) \2-\3" Phone \
"9876543210" replaces 9876543210 with (987) 654-3210
replaceregex "(+\d{2})(\d{3})(\d{3})(\d{3})" "\1 \2 \3 \4" \
Phone "+61987654321" replaces +61421221506 with +61 987 654 321
7.05.18
Updated `gam calendars <CalendarEntity> show events` and `gam \
<UserTypeEntity> show events`
to display the event description according to `show_convert_cr_nl` in `gam.cfg`;
previously, GAM assumed `show_convert_cr_nl = true`.
show_convert_cr_nl = false description: Line 1 Line 2 Line 3
show_convert_cr_nl = true description: Line 1\nLine 2\nLine 3\n
7.05.17
Updated commands that delete drive ACLs to handle the following error:
ERROR: 403: cannotDeletePermission - The authenticated user does not have the \
required access to delete the permission.
7.05.16
Added option `transpose [<Boolean>]` to `redirect csv` that causes
GAM to transpose CSV output rows and columns. This will most useful
when a `countsonly` option is used in a `print` or `report` command.
7.05.15
Updated `gam <UserTypeEntity> get drivefile` and `gam \
<UserTypeEntity> create drivefile`
to allow downloading and uploading of Google Apps Scripts.
$ gam user user1@domain.com get drivefile \
1ZY-YkS3E0OKipALra_XzfIh9cvxoILSbb8TRdHBFCpyB_mXI_J8FmjHv format json User: \
user1@domain.com, Download 1 Drive File User: user1@domain.com, Drive File: Test \
Project, Downloaded to: /Users/gamteam/GamWork/Test Project.json, Type: Google \
Doc $ gam user user2@domain.com create drivefile localfile "Test \
Project.json" mimetype application/vnd.google-apps.script+json \
drivefilename "Test Project" User: user2@domain.com, Drive File: Test \
Project(1Ok_svw55VTreZ5CzcViJDLfEzVRi-Un8D9eG6I5pIeVyRl2YsmNiy3C_), Created with \
content from: Test Project.json
7.05.14
Added the following License SKU:
ProductId SKUId Display Name 101039 1010390002 Assured Controls Plus
7.05.13
Updated license product names to match Google.
7.05.12
Fixed bug in `gam update chromepolicy` where `appid` was misinterpreted for \
`chrome.devices.kiosk` policies
and an error was generated.
ERROR: Chrome Policy Schema: customers/C123abc456/policySchemas/, Does not exist
7.05.11
Added the following License SKUs:
ProductId SKUId Display Name Google-Apps 1010070001 Google Workspace for \
Education Fundamentals Google-Apps 1010070004 Google Workspace for Education \
Gmail Only 101034 1010340007 Google Workspace for Education Fundamentals - \
Archived User
7.05.10
Updated various chat space commands to handle the following error:
ERROR: 503: serviceNotAvailable - The service is currently unavailable
7.05.09
Fixed bug in `gam calendars <CalendarEntity> print events matchfield \
attendeesstatus required accepted \
resource_calendar@resource.calendar.google.com`
that caused a trap.
|
| 2025-04-25 13:01:06 by Thomas Klausner | Files touched by this commit (2) |
Log message:
gam: adapt for setuptools 78
Bump PKGREVISION.
|