diff --git a/src/GamCommands.txt b/src/GamCommands.txt index eaf18e2b..887a210d 100644 --- a/src/GamCommands.txt +++ b/src/GamCommands.txt @@ -6869,7 +6869,7 @@ gam show messages|threads [labelmatchpattern ] [sendermatchpattern ] [countsonly|positivecountsonly] [useronly] [headers all|] [dateheaderformat iso|rfc2822|] [dateheaderconverttimezone []] - [showlabels] [showbody] [showdate] [showsize] [showsnippet] + [showlabels] [delimiter ] [showbody] [showdate] [showsize] [showsnippet] [showattachments [attachmentnamepattern ] [noshowtextplain]] [saveattachments [attachmentnamepattern ]] [targetfolder ] [overwrite []] @@ -6879,9 +6879,9 @@ gam print messages|threads [todrive *] [labelmatchpattern ] [sendermatchpattern ] [countsonly|positivecountsonly] [useronly] [headers all|] [dateheaderformat iso|rfc2822| [dateheaderconverttimezone []]] - [showlabels] [showbody] [showdate] [showsize] [showsnippet] + [showlabels] [delimiter ] [showbody] [showdate] [showsize] [showsnippet] [showattachments [attachmentnamepattern ]] - [convertcrnl] [delimiter ] + [convertcrnl] # Users - Gmail - Profile diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt new file mode 100644 index 00000000..bc2835b8 --- /dev/null +++ b/src/GamUpdate.txt @@ -0,0 +1,16302 @@ +7.00.00 + +Merged GAM-Team version + +6.61.09 + +Updated `gam oauth create` to handle case where Google takes a very long time to respond +after you have allowed access to the scopes. + +6.61.08 + +Updated `gam print messages showlabels` to include a column `LabelsCount` to +display the number of labels a message has. Use option `useronly` to limit the labels to user labels. + +Updated `gam print messages` to display these columns, if applicable, as the +last columns in the CSV file. +``` +SizeEstimate, LabelsCount, Labels, Snippet, Body +``` + +6.61.07 + +Improved action messages in `gam update org|ou sync [removetoou ]`. + +6.61.06 + +Added option `csv` to `gam check group|groups` that displays +the results in CSV format. +``` +$ gam user testuser check groups csv testgroup1,testgroup2,alladmin +User: testuser@domain.com, Check in 3 Groups +user,group,role +testuser@domain.com,alladmin@domain.com,Not a MEMBER|OWNER|MANAGER +testuser@domain.com,testgroup1@domain.com,MEMBER +testuser@domain.com,testgroup2@domain.com,MANAGER +``` + +6.61.05 + +Fixed bug in `gam print contacts` that caused a trap when `show_gettings = False` in gam.cfg. + +6.61.04 + +Updated `gam create shareddrive ` to wait longer between creating the Drive +and updating any attributes that could not be specified as part of the creation; i.e., +``, `hidden`, `customtheme`, `color` and `orgunit`. +The initial wait is 30 seconds. Previously, GAM was not waiting long enough; +the Drive would be created but the update would fail; the attributes were not set. + +6.61.03 + +Updated processing of ` externalid` to allow an empty `custom` type. +``` +externalid account|customer|login_id|network|organization|(custom )| +``` +These are equivalent ways of expressing an empty custom type: +``` +externalid "" "Value" +externalid custom "" "Value" +``` + +6.61.02 + +Fixed bug in `gam update groups sync` introduced in 6.60.31 that caused this error: +``` +ERROR: 409: generic409 - Member already exists. +``` + +6.61.01 + +Added option `noactionifalias` to `gam delete groups ` that prevents GAM from deleting a +group if `` specifies an alias rather than a primary email address. + +6.61.00 + +Following Jay's lead, added `no_short_urls` variable to `gam.cfg`. When false, the long scopes URLs in `gam oauth create` and +`gam check|update serviceaccount` will be shortened at the site `https://gam-shortn.appspot.com`; the shortened +URL redirects to the long URL. For existing configurations, `no_short_urls` defaults to true; the long URLs are used as is. +For new configurations the `no_short_urls` defaults to false unless there is a file named `noshorturls.txt` in the folder +specified by the environment variable `OLDGAMPATH`. + +6.60.31 + +Added option `addcsvdata ` to `gam print forms|formresponses`. This adds additional columns of data to the CSV file output. +This can be used to combine form information from several GAM commands. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Forms#combine-form-information + +Following Jay's lead, projects can now be created with consumer accounts. + +6.60.30 + +Added option `countsonly` to `gam print|show formresponses` that causes GAM to display +the number of responses to a form rather than displaying the response details. + +6.60.29 + +Updated `gam delete|print emptydrivefolders` to show the path to the deleted folder +rather than just its name. Added an option to allow a starting point other that the root of My Drive or a Shared Drive. +Improved the commands performance. + +6.60.28 + +Fixed bug in `gam print filelist countsonly showsource stripcrsfromname` where +carriage returns, linefeeds and nulls were not stripped from file names. + +6.60.27 + +Updated `gam print filelist countsonly` to process `addcsvdata `. +Additional fields are added before `Size` if present, otherwise `Total`. + +6.60.26 + +Added option `orgunit|org|ou ` to `gam print|show teamdrives` that limits the display +to Shared Drives in the specified Org Unit. + +6.60.25 + +Added option `orgunit|org|ou ` to `gam print|show teamdriveacls` that limits the display +of permissions to Shared Drives in the specified Org Unit. + +6.60.24 + +Updated `gam info|show|print chatmessages` to show the sender email address +when the sender is a human. + +6.60.23 + +Fixed bug in `config csv_input_row_filter|csv_output_row_filter` where "field:date=today" was being processeed as "field:date>today". + +6.60.22 + +Added option `pathdelimiter ` to `gam create drivefolderpath` to simplify +specifying folder paths where a folder name contains a `/`. In the example, some folder has a '/' in it's name +so specifying `pathdelimiter "|"` allows `fullpath` to be properly processed. `pathdelimiter` defaults to '/'. +``` +gam user user@domain.com create drivefolderpath pathdelimiter "|" fullpath "My Drive|Top Folder|Middle/Folder|Bottom Folder" +``` + +6.60.21 + +Fixed bug in `gam copy|create|update drivefile` where processing the following `` attributes +was not correct. Previously, if multiple properties of the same visibility were specified, only the first was processed; +now, all values are processed. +``` +privateproperty +publicproperty +property [private|public] +``` + +6.60.20 + +Updated `gam get document|drivefile ` to handle shortcuts by downloading +the file that the shortcut references as the shortcut itself is not downloadable. If you do not want +this behavior and want GAM to report an error, use the option `donotfollowshortcuts`. + +6.60.19 + +Updated `gam archive messages` to handle the following error: +``` +ERROR: 400: failedPrecondition - Precondition check failed. +``` + +6.60.18 + +Updated `gam print|show tokens` to handle the following error that occurs +when a group email address is specified rather than a user email address. +``` +ERROR: 400: badRequest - Type not supported: userKey +``` + +6.60.17 + +Fixed bug in `gam move drivefile` that caused an error when moving the contents +of a source Shared Drive to a target Shared Drive when `mergewithparents` was not specified or was +explicitly set False. + +6.60.16 + +Updated commands that create files to handle the following error: +``` +403: storageQuotaExceeded - The user's Drive storage quota has been exceeded. +``` + +6.60.15 + +Updated `gam print chromesnvalidity` to do case insenstitive serial number comparisons. + +6.60.14 + +Added command to help verify Chrome device serial number validity. +``` +gam print chromesnvalidity [todrive *] + cros_sn [listlimit ] + [delimiter ] +``` +See: https://github.com/taers232c/GAMADV-XTD3/wiki/ChromeOS-Devices#check-chromeos-device-serial-number-validity + +6.60.13 + +Updated `gam print|show chatspaces` to handle the following error: +``` +Error: 403: permissionDenied - Permission denied to perform the requested action on the specified resource +``` + +6.60.12 + +Added option `tdretaintitle []` that, when `True` and used with `tdfileid `, +causes GAM to not modify the CSV filename. + +6.60.11 + +Fixed bug in `gam print addresses` where non-editable user/group aliases were not displayed. + +6.60.10 + +Added a command to get information about a direct message chat space between two users. +``` +gam info chatspacedm + [formatjson] +``` + +6.60.09 + +Added option `csv [todrive *] [formatjson [quotechar ]]]` +to these commands so that event details are displayed in CSV format. +``` +gam calendar|calendars create|import|update event +gam create|import|update event +``` + +Added option `additionalmembers [] ` to `gam update group|groups sync` +that can be used to specify members in addition to those specified with ``. +``` +gam update group teachers@domain.com sync member additionalmembers counselor@domain.com ou /Teachers +``` + +Added commands to display Analytic account/property/datastream information. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Analytics-Admin + +6.60.08 + +Upgraded to Python 3.11.4 where possible. + +6.60.07 + +Simplified specifying a Chat space name; previously, the `space` keyword was required; +now, it can be omittted and you can just enter `spaces/`. +``` + ::= spaces/ | space | space spaces/ +``` + +6.60.06 + +Fixed bug in `gam print aliases` that caused a trap. + +6.60.05 + +Updated Chrome Policy commands to handle the following error: +``` +ERROR: 403: permissionDenied - The caller does not have permission. +``` + +6.60.04 + +Updated `gam copy|move drivefile ` to disallow copying/moving +a folder into itself. + +6.60.03 + +Updated commands to delete chatmembers; `delete chatmembers` now deletes members by +specifying a chat space and user email addresses; `remove chatmembers` deletes members by +specifying chatmember names. +``` +gam delete chatmember space + ((user )|(members ))+ +gam remove chatmember members +``` + +6.60.02 + +Added option `` to `gam create chatspace` to allow sending an initial message +to the newly created chatspace. + +6.60.01 + +Updated `gam create chatspace` to support chatspace types `GROUP_CHAT` and `DIRECT_MESSAGE` +and to allow specification of members. + +6.60.00 + +Added initial support for user chat spaces. This is a work in progress, test and report any problems. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Chat + +Improved performance of `gam delete|move|update othercontacts`. + +Upgraded to OpenSSL 3.1.1 where possible. + +6.59.18 + +Updated `gam update drivefile ` to handle the following error: +``` +ERROR: 403: fileWriterTeamDriveMoveInDisabled - The domain administrator has not allowed writers to move items into a shared drive. +``` + +6.59.17 + +Added option `pathdelimiter ` to the following commands that causes GAM to separate +components in a folder path with `` rather than the default character `/`. +This can help avoid confusion when Google folder names contain a `/`. + +Previously, on Windows, path components were separated by `\\` when written to a CSV file and +`\` when written to stdout; now, `/` or `` will be used in all cases. +``` +gam info drivefile +gam show fileinfo +gam print filelist +gam print|show filepaths +gam transfer ownership +gam claim ownership +``` + +6.59.16 + +Updated ` whocancontactowner` to include option `all_owners_can_contact`. + +6.59.15 + +Updated error reporting in `gam delete|update chromepolicy ` to show the `` as originally entered +when an unknown `` is specified; previously, it was shown in lowercase which could cause confusion. + +Updated column order in `gam print chromeschemas` to move `schemaName`, `policyDescription` and `policyApiLifecycle.*` +to follow column `name`. + +Added columns `policyDescription` and `policyApiLifecycleStage` to `gam print chromeschemas formatjson` +to follow column `name`. + +6.59.14 + +Improve bug fix for `gam print groups|grouptree|groupslist`. + +6.59.13 + +Fixed bug in `gam print groups|grouptree|groupslist` that caused the following +error whan an email address contained an apostrophe. +``` +WARNING: Got 0 Groups: Invalid Member - test.o'user@domain.com +``` + +Fixed bug in `gam print|show contacts ... filtercontactgroup ` that returned +no contacts when neither `allfields` or `fields ` was specifiecd. + +6.59.12 + +Fixed bug in `gam create user ... immutableous ... createifnotfound` +that generated the following error when the user `` did not exist and needed to be created. +``` +User: , Service not applicable/Does not exist +``` + +6.59.11 + +Updated `gam print|show chromepolicies` to query the following nameapaces when +`namespace ` is not specified. Previously, only the namespaces +marked with a `*` were queried. `chrome.devices.managedguest` was added in 6.59.10. +``` +chrome.users * +chrome.users.apps * +chrome.users.appsconfig +chrome.devices * +chrome.devices.kiosk * +chrome.devices.kiosk.apps +chrome.devices.managedguest * +chrome.devices.managedguest.apps +chrome.networks.cellular +chrome.networks.certificates +chrome.networks.ethernet +chrome.networks.globalsettings +chrome.networks.vpn +chrome.networks.wifi +chrome.printers +chrome.printservers +``` + +6.59.10 + +Fixed bug in `gam print|show chromepolicies` where policies in namespace `chrome.devices.managedguest` +were not displayed unless it was specified in `namespace `. + +Improved error messages in `gam move events`. + +6.59.09 + +Added option `addnumericsuffixonduplicate ` to `gam create user ` that +will attempt to create a unique `` when the original value is a duplicate user address. +If `` is `@`, up to `` attempts will be made +to create a unique ``; `` defaults to 0. +``` +1@ +2@ +... +``` + +6.59.08 + +Fixed bug in `csv_output_row_filter "FieldName:dateNever"` that didn't properly detect matches. +For example, the following command would not display users that had never logged in. +``` +gam config csv_output_row_filter "lastLoginTime:date=Never" print users lastlogintime +``` + +6.59.07 + +Added option `immutableous ` to `gam update user ... org ` that +does not update the user's OU to `` if `` appears in ``. All other +fields are updated. + +This can be used when a SIS outputs user data to be updated but students temporarily in special purpose +OUs should not be updated to the SIS specified OU. `` and `` must both +specify OU paths, not IDs. +``` +gam csv SISdata.csv gam update user "~primaryEmail" suspended off firstname "~First Name" lastname "~Last Name" + ou "~OU" immutableous "'/Students/Lower School/Restricted,'/Students/Middle School/Restricted'" +``` + +6.59.06 + +Added option `sources ` to `gam print|show peopleprofile` +that allows specification of the sources of the data to display. By default, data from all sources is displayed. +``` + ::= + account|accounts| + domain|domains| + profile|profiles + ::= "(,)*" +``` + +Added option `updatefilepermissions []` to `gam move drivefile `. +Previously, file permissions were not updated in the command; now, when `updatefilepermissions` is true, +file permissions will be removed/created as specified by the following noptions: +``` +excludepermissionsfromdomains +includepermissionsfromdomains +mappermissionsdomain +``` +Additionally, permissions referencing deleted groups/users will be removed. + +The permissions are updated on the file before it is moved. + +Test before using in production. + +6.59.05 + +Added option `includepermissionsfromdomains ` to the following commands +that copies only those permissions that reference any domain in ``. +It is mutually exclusive with `exludepermissionsfromdomains `. +``` +gam copy|sync teamdriveacls +gam copy|sync teamdriveacls +gam copy|move drivefile +``` + +6.59.04 + +Fixed bug in `gam print|show filesharecounts` where ACLs for deleted user/groups +were miscounted as external shares. + +6.59.03 + +Cleaned up `Getting/Got` messages for several commands. + +Improved performance of `gam print admins`. + +6.59.02 + +Updated the Analytic account/property commands to use service account access so that data +can be retrieved for any user. + +Fixed bug where the Analytics Admin API was not being added in `gam update project` +forcing you to manually enable it. + +6.59.01 + +Updated `gam checkconnection` to check connections to the following sites: +``` +Contacts API - Domain Shared Contacts - www.google.com +Email Audit API - apps-apis.google.com +Sites API - sites.google.com +``` + +6.59.00 + +Added commands to display Analytic account/property information. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Analytics-Admin + +6.58.03 + +Fixed bug in `gam [] print shareddriveacls oneitemperrow shownopermissionsdrives true` +where the Shared Drives with no ACLs were not shown; they were shown if `oneitemperrow` was omitted. + +6.58.02 + +Updated `gam print filelist ... filepath|fullpath` to not display parent information +for orphans. Previously, GAM would incorrectly display: +``` +...,parents,parents.0.id,parents.0.isRoot,... +...,1,Orphans,False,... +``` +Now the corrected display is: +``` +...,parents,parents.0.id,parents.0.isRoot,... +...,,,,... +``` +This change makes the output the same as when `filepath|fullpath` is omitted. + +6.58.01 + +Added the following options to tag replace processing to allow control of the case of replacement data. + +You can control the case of the letters in `replace ` and `replace `. + * `{PC}...{Tag1}...{Tag2}...{/PC}` - For all sequences of letters between `{PC}` and `{/PC}`, the first letter is converted to uppercase, subsequent letters to lowercase. + * `{UC}...{Tag1}...{Tag2}...{/UC}` - All letters between `{UC}` and `{/UC}` will be converted to uppercase + * `{LC}...{Tag1}...{Tag2}...{/LC}` - All letters between `{LC}` and `{/LC}` will be converted to lowercase + +6.58.00 + +Added `license_max_results` variable to `gam.cfg`. When retrieving licenses from License API, +this variable controls how many should be retrieved in each chunk. The default value is 100; the range is 100-1000. +As of 2023-04-27, larger numbers cause Google to return an incorrect numbert of licenses. + +6.57.11 + +Fixed bug where the `csv_output_header_force` variable in `gam.cfg` was being interpreted as +a list of `` rather than a list of `` as documented. + +6.57.10 + +When doing commands similar to these: +``` +gam redirect csv - multiprocess todrive csv Users.csv gam user "~primaryEmail" print filelist ... +gam config auto_batch_min 1 redirect csv - multiprocess todrive print filelist ... +``` +GAM was including the name of the last user processed in the title of the uploaded Google Sheet; +as this is not accurate, it has been eliminated. + +6.57.09 + +Added `emailaddresslist ` to `` that allows matching any email address in a list. + +6.57.08 + +Updated `gam print|show contacts|othercontacts` to retry the following error: +``` +serviceNotAvailable - The service is currently unavailable. +``` + +6.57.07 + +Updated code to recognize the following Google Drive API error that is issued when Google +doesn't recognize an email address as valid. +``` +$ gam user user@domain.com print filelist query "'j@ab.net' in writers" fields id,name +Getting all Drive Files/Folders that match query ('me' in owners and ('j@ab.net' in writers)) for user@domain.com + +ERROR: 400: badRequest - Bad Request +$ gam user user@domain.com print filelist query "'j@ab.com' in writers" fields id,name +Getting all Drive Files/Folders that match query ('me' in owners and ('j@ab.com' in writers)) for user@domain.com +Got 0 Drive Files/Folders that matched query ('me' in owners and ('j@ab.com' in writers)) for user@domain.com... +Owner,id,name +``` + +6.57.06 + +Added `inherited ` to `` that applies only to Shared Drive files/folders; +this makes it easy to identify files/folders on Shared Drive with non-inherited permissions. +``` +gam user organizer@domain.com print filelist select teamdriveid fields id,name,mimetype pm inherited false em pmfilter oneitemperrow +``` +This clause will always cause a permission match failure on My Drive files/folders. + +6.57.05 + +Updated `gam batch ` and `gam tbatch ` commands to accept lines with the following form: +``` +clear keyword +``` +This can improve performance as subsequent lines in `` will not be scanned for `%keyword%`. + +6.57.04 + +Updated `gam batch ` and `gam tbatch ` commands to accept lines with the following form: +``` +set keyword value +``` +Subsequent lines in `` will have `%keyword%` replaced with `value`. + +6.57.03 + +Updated `gam info|print|show contacts|othercontacts` and +`gam info|print|show peoplecontacts|peopleprofiles` to default to displaying the fields `names,emailaddresses,phonenumbers` +as documented rather than all fields. + +6.57.02 + +Following Jay's lead, removed Google bug (237397223) workaround code in +`gam print devices|deviceusers|crostelemetry` as the bug is now fixed. + +6.57.01 + +Updated `gam vacation` to handle the following error: +``` +ERROR: 400: failedPrecondition - Precondition check failed. +``` +What the error means is unknown to me at the moment. + +Updated GAM so that when the current project ID is required, it will first try to get it from oauth2service.json and +if not successful, try to get it from client_secrets.json. There are cases, e.g., when DASA is enabled, +that client_secrets.json is not present. + +Previously, GAM checked for the existence of client_secrets.json on every command; this check has been +eliminated as the file is only required by `gam oauth create`. + +6.57.00 + +Following Jay's lead, updated `gam create admin` to allow assignment of a delegated admin role to a group. +Updated `gam print admins` to display whether a role is assigned to a user or a group. + +Updated version number to align with Standard GAM. + +6.54.06 + +Added options `users ` and `groups ` to `gam print aliases` that is more +efficient for getting aliases for specific users and groups. + +Added option `select ` to `gam print aliases` that allows specification of a list users by ``; +e.g., a group or an org unit. + +Added option `delimiter ` to `gam print aliases` that is applicable when option `onerowpertarget` is specified. +Previously, multiple aliases were separated by a space character. Now, by default, the aliases are separated by the `csv_output_field_delimiter' from `gam.cfg`. +The option `delimiter ` overrides that value. + +6.54.05 + +Added option `addcsvdata ` to `gam print aliases`. This adds additional columns of data to the CSV file output. +This can be used when printing aliases for departed employees to indicate the new target for the user's alises. Subsequent +commands using the CSV file can reassign the aliases to the new target. + +6.54.04 + +Updated `gam print|show channelcustomerentitlements` to handle the following error when +none of `gam.cfg/channel_customer_id` or command line arguments `channelcustomerid` or `name` are set. +``` +ERROR: Parameter "parent" value "accounts/C03kt1789/customers/" does not match the pattern "^accounts/[^/]+/customers/[^/]+$" +``` + +6.54.03 + +By special request, British spelling of various keywords/arguments is now available. +``` +backgroundcolor backgroundcolour +color colour +colorindex colourindex +costcenter costcentre +fileorganizer fileorganiser +foregroundcolor foregroundcolour +license licence +licenses licences +nolicenses nolicences +organization organisation +organizationname organisationname +organizations organisations +organizer organiser +organizeremail organiseremail +organizername organisername +textcolor textcolour +``` + +6.54.02 + +Updated `gam get photo` and `gam get profilephoto` to inspect the +photo data and add the appropriate extension: `jpg`, `png`, `gif`. If the type of the photo can't be +determined, `img` is used as the extenstion. If you use `[filename ]`, `#ext#` will be replaced +with the extension. + +Updated `gam [create|add] sendas [name] ` to allow the +optional argument `name` before `` to make clear that `` is the sendas display name. + +6.54.01 + +Added commands to export messages/threads in EML/raw format. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Gmail-Messages-Threads#export-messagesthreads + +6.54.00 + +Following Jay's lead, updated `gam delete inboundssoassignment ` to allow +more flexibility in selecting assignments to delete. + +Fixed bug in `gam print|show filesharecounts` that would cause a trap. + +Updated `gam print filelist ... fullpath showparent` and `gam print filepath` +to properly display the file path of My Drive. + +Upgraded to Python 3.11.3 where possible. + +Added commands to create and delete Chrome networks. +``` +gam create chromenetwork + +gam delete chromenetwork + +``` + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Chrome-Policies#create-chrome-network + +6.53.03 + +`gam gam print|show svcaccts` now requires password authentication. + +6.53.02 + +Added commands to display the share type counts of a user's files. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Drive-Files-Display#display-file-share-counts + +6.53.01 + +Following Jay's lead, added instructions to `gam create project` to have GAM be a trusted app. + +6.53.00 + +Updated build steps to avoid trap with `gam create project` on M1 Macs. + +Added option `noshowtextplain` to `gam show messages|threads` that suppresses +the default display of `text/plain` attachment content when `showattachments` is specified. + +6.52.08 + +Added `maximumfilesize ` to the following commands to allow selection of files with content of size <= ``. +``` +gam print filelist +gam print|show filetree +gam print|show filecounts +``` + +Added field `workinglocationproperties` to ``. + +* See: https://workspaceupdates.googleblog.com/2023/03/manage-working-location-feature-with-calendar-api.html + +6.52.07 + +Fixed bug in `gam copy drivefile` that caused the following error: +``` +ERROR: 403: parentNotAFolder - The specified parent is not a folder. +``` + +Current time is now printed in `gam version`. + +6.52.06 + +Updated `gam create|update drivefile` to handle the following error that occurs when an attempt is +made to create/move a third-party shortcut on/to a Shared Drive. +``` +ERROR: 403: teamDrivesShortcutFileNotSupported - The application associated with this third-party shortcut file does not support shared drives. +``` + +6.52.05 + +Added option `formatjson` to all commands that display Vault Matters, Exports, Holds and Saved Queries. + +Updated `gam move drivefile` to handle the following error that occurs when an attempt is +made to move a third-party shortcut to a Shared Drive. +``` +ERROR: 403: teamDrivesShortcutFileNotSupported - The application associated with this third-party shortcut file does not support shared drives. +``` + +6.52.04 + +Fixed bug in `gam info vaultquery` and `gam print|show vaultqueries` that caused a trap +when the `query` field was omitted from the `fields `. + +6.52.03 + +Added commands to display Vault Matter saved queries. +``` +gam info vaultquery matter + [fields ] [shownames] +gam info vaultquery + [fields ] [shownames] +gam print vaultqueries [todrive *] [matters ] + [fields ] [shownames] +gam show vaultqueries [matters ] + [fields ] [shownames] +``` + +Updated `gam info resoldcustomer ` to display the customer primary email. + +Following Jay's lead, the following scopes will be off by default as changes to Google Cloud session control +may require frequent use of `gam aouth create`. + +* See: https://workspaceupdates.googleblog.com/2023/03/google-cloud-session-length-default-update.html +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Authorization#introduction + +``` +[ ] 21) Cloud Storage API (Read, Vault/Takeout Download) +[ ] 22) Cloud Storage API (Write, Vault/Takeout Copy) +``` + +6.52.02 + +Following Jay's lead, added the following License SKUs: +``` +1010380001 - AppSheet Core +1010380002 - AppSheet Enterprise Standard +1010380003 - AppSheet Enterprise Plus +``` + +6.52.01 + +Fixed bug where `API calls retry data` was displaying incorrect values when processing CSV files. + +6.52.00 + +Updated process handling for `gam batch|csv`. + +6.51.08 + +Updated `gam create|update user ... ` to exclude additional fields +from the JSON data that can't be copied; the following error was displayed: +``` +User: user@domain.com, Create Failed: Invalid Input: Bad request for +``` + +6.51.07 + +Fixed bug introduced in 6.51.06 that caused a trap in `gam create project`. + +6.51.06 + +Following Jay's lead, added option `validityhours ` to `gam create|replace|update sakeys` and `gam rotate sakey` +that let's you set the length of time a Service Account key is valid. + +6.51.05 + +With input from Jay, further upgraded `gam check serviceaccount` to avoid a trap when a proxy is being used. + +6.51.04 + +Upgraded `gam check serviceaccount` to avoid a trap when a proxy is being used. + +6.51.03 + +* Upgraded to OpenSSL 3.1.0 where possible. + +6.51.02 + +Added support for `externalid`, `im`, `posix`, `relation`, `sshkeys` and `website` subfields in `gam signature` and +`gam create|update sendas` option `replace `. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Tag-Replace + +6.51.01 + +Added option `nogcspath` to `gam download storagefile ` that causes GAM +to store the downloaded file directly into the target folder without any Google Cloud Storage path information. + +6.51.00 + +Added the ability to read data from Google Cloud Storage bucket objects. +``` + ::= + ::= + ::= + https://storage.cloud.google.com//| + https://storage.googleapis.com//| + gs:///| + / +``` +Anywhere you can enter `gdoc|ghtml )` you can enter `gcsdoc|gcshtml `. + +Anywhere you can enter `gsheet )` you can enter `gcscsv `. + +The Type of the Cloud Storage bucket objects must match the option keyword. + +* gcsdoc - text/plain +* gcshtml - text/html +* gcscsv - text/csv + +These options require that scope `Cloud Storage (Read, Vault/Takeout Download)` be enabled in `gam oauth create`. + +Added a command to download a Cloud Storage bucket object. +``` +gam download storagefile + [targetfolder ] +``` + +6.50.14 + +Fixed bug in `gam copy drivefile` that caused a trap. + +Fixed bug where `removefeature` but not `removefeatures` was recognized in `gam update resource`. + +6.50.13 + +Added options `addfeatures ` and `removefeatures ` to ``. +These can be used in in the following commands to make incremental changes to resource features. +``` +gam update resource * +gam update resources * +``` + +Updated processing of `` which is a `` to properly handle `s` containing spaces. +When entering `` with `s`containing spaces, enclose the list in `"` and the names containing spaces in `'`. +``` +features "CameraSet" +features "'Laptop Cart'" +features "CameraSet,'Laptop Cart'" +``` + +6.50.12 + +Handle new trap in `gam forward messages`. + +6.50.11 + +Handle new trap in `gam forward messages`. + +6.50.10 + +Fixed bug in `gam forward messages altcharset ` where `` was marked as an invalid argument. + +Updated `gam copy drivefile ` to allow copying Google Sites. + +6.50.09 + +Added command `gam info adminrole [privileges]` that displays a specific admin role and optionally its privileges. + +Added option `privileges` to `gam print|show admins` that displays the privileges for each role +for the admin. + +6.50.08 + +Added option `altcharset ` to `gam forward messages` to attempt to handle +errors like the following which occur when the message can not be decoded with character set UTF-8. +You can specify an alternate character set, e.g. latin1, that is used if the UTF-8 decode fails. +``` +UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 1643: invalid start byte +``` + +6.50.07 + +Fixed build bug that caused the following error: +``` +ERROR: Discovery File: /usr/local/gamadv-xtd3/datastudio-v1.json, Does not exist or has invalid format, No data +``` + +6.50.06 + +Fixed bug in `gam report usage customer` where an extraneous column `email` was displayed. + +6.50.05 + +Fixed bug in `gam update resoldsubscription` that caused an error: +``` +ERROR: 400: invalid - The seats provided are not valid +``` + +6.50.04 + +Added `allowcontentmanagerstosharefolders` to `` that is used in +`gam create|update teamdrive`. This terminology matches the Admin console setting `Allow Content Managers to share folders`. + +Each pair of commands below are equivalent: +``` +gam update teamdrive allowcontentmanagerstosharefolders true +gam update teamdrive sharingfoldersrequiresorganizerpermission false + +gam update teamdrive allowcontentmanagerstosharefolders false +gam update teamdrive sharingfoldersrequiresorganizerpermission true +``` + +Updated status reporting in `gam update chromepolicy` to supply more details. + +Fixed bug in `gam update chromepolicy` when processing an schema field with an empty list. + +6.50.03 + +Fixed bug in `gam update resoldsubscription` that caused an error: +``` +ERROR: 400: invalid - Request contains an invalid argument. +``` + +6.50.02 + +Fixed bug in `gam create project` where invalid data was written to client_secrets.json. + +6.50.01 + +Fixed YubiKey issue that caused a trap. + +6.50.00 + +Following Jay's lead (with many thanks), added commands to enable running GAM securely on a Google Compute Engine. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Running-GAMADV-XTD3-securely-on-a-Google-Compute-Engine +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Using-GAMADV-XTD3-with-a-delegated-admin-service-account + +Following Jay's lead (with many thanks), added commands to enable using a Yubikey. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Using-GAMADV-XTD3-with-a-YubiKey + +These Wiki pages are a work in progress, contact me if you need help. + +Updated handling of `seats` option in `gam create|update resoldsubscription` to properly assign +the API fields `numberOfSeats` and `maximumNumberOfSeats`. +Previously, this is how the option was processed: + * Plan name `ANNUAL_MONTHLY_PAY` or `ANNUAL_YEARLY_PAY` + * `seats ` - `` was properly passed to the API + * `seats ` - `` was properly passed to the API; `` was passed to the API which ignored it + * Plan name `FLEXIBLE` or `TRIAL` + * `seats ` - `` was improperly passed to the API; an API error was generated + * `seats ` - `` was properly passed to the API; `` was passed to the API which ignored it + +Now, you can still use the above option which has been corrected or you can specify `seats ` which will be properly passed in the correct form to the API based on plan name. + +Hopefully fixed a bug in `gam forward messages` that caused a trap when the subject +contained Latin-1 characters. + +6.42.10 + +Added option `accesstype public|team|announcementonly|restricted` to `gam create|update group`. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Groups#gui-api-group-access-type-settings-mapping + +6.42.09 + +Cleaned up output in `gam print crostelemetry`; fields that are lists weren't being correctly sorted by index. + +6.42.08 + +Added additional fields to ``: +``` +audiostatusreport| +bootperformancereport| +networkinfo| +networkdiagnosticsreport| +peripheralsreport| +thunderboltinfo| +networkdevices| +``` + +6.42.07 + +Improved `gam create|add drivefolderpath` to allow specifying paths +as returned by `gam print filepath`. + +6.42.06 + +Fixed another bug in `gam create|add drivefolderpath` that failed when +trying to build a folder hierarchy on a Shared Drive. + +6.42.05 + +Fixed bug in `gam create|add drivefolderpath` that failed when +trying to build a folder hierarchy on a Shared Drive. + +6.42.04 + +Added a command that creates a folder hierarchy. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Drive-Files-Manage#create-folder-hierarchy + +6.42.03 + +Updated `gam get drivefile ... csvsheet ` to allow +selection of the output format with `format `. Previously, `csv` was always selected and +it is still the default. Valid formats are: `csv,tsv,ods,pdf,xlsx`. + +6.42.02 + +Added `sha1checksum` and `sha256checksum` to ``. +``` +The SHA1/SHA256 checksum associated with a file, if available. +This field is only populated for files with content stored in Google Drive; +it isn't populated for Docs Editors or shortcut files. +``` + +Added option `addcsvdata ` to `gam print filelist` and +`gam print ownership`. This adds additional columns of data to the CSV file output. +``` +Get a list of a user's shortcuts +gam redirect csv ./TSShortcuts.csv user user@domain.com print filelist fields id,name,parents,shortcutdetails showmimetype gshortcut +Headers +Owner,id,name,parents,parents.0.id,parents.0.isRoot,shortcutDetails.targetId,shortcutDetails.targetMimeType + +For each shortcut, get the target file information; add the shortcut id, name and parent to the output +gam redirect csv ./TSShortcutFiles.csv multiprocess csv ./TSShortcuts.csv gam user user@domain.com print filelist select "~shortcutDetails.targetId" norecursion showownedby any + fields id,name,mimetype,parents,owners.emailaddress addcsvdata shortcut.id "~id" addcsvdata shortcut.name "~name" addcsvdata shortcut.parents "~parents.0.id" +Headers +Owner,id,name,mimeType,owners,owners.0.emailAddress,parents,parents.0.id,parents.0.isRoot,shortcut.id,shortcut.name,shortcut.parents +``` + +6.42.01 + +Updated processing of option `matchlabel ` to replace the following characters with a `-` +so that the query generated will work correctly. Previously, only ` ` (space) and `/` were replaced. +``` + &()"|{}/ +``` + +6.42.00 + +Following Jay's lead, added commands commands to copy Google Vault and Organization Takeout data to your own GCS bucket. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Vault-Takeout#copy-vault-exports +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Vault-Takeout#copy-a-takeout-bucket + +Updated `gam create contact` to treat the following options as errors; +previously, they were silently ignored. +``` +addcontactgroup +removecontactgroup +``` + +Updated version number to align with Standard GAM. + +6.32.05 + +Fixed bug in `gam show chromepolicies` that caused a trap. + +Following Jay's lead, added `sharingfoldersrequiresorganizerpermission` to `` and +``. + +* See: https://workspaceupdates.googleblog.com/ + +6.32.04 + +Fixed bug in `gam move drivefile ` where the following +error was not retried when `sendemailifrequired` was specified. +``` + User: user@domain.com, Drive Folder: Test, Permission: noninherited/writer/user/user@external.com, Copy Failed: You are trying to invite user@external.com. Since there is no Google account + associated with this email address, you must check the "Notify people" box to invite this recipient. +``` + +6.32.03 + +Following Jay's lead, updated `gam create project` to handle the following error: +``` +ERROR: 403: Permission 'resourcemanager.projects.get' denied on resource +``` + +6.32.02 + +Added support for `gender` subfields in `gam signature` and +`gam create|update sendas` option `replace `. +``` + ::= + addressmeas| + customgender| + type + ::= + ... + gender.| + ... +``` + +6.32.01 + +Extended `csv_input_row_filter`, `csv_input_row_drop_filter`, `csv_output_row_filter` and `csv_output_row_drop_filter` +to allow specification of filters based on text comparisons. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/CSV-Input-Filtering +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/CSV-Output-Filtering + +6.32.00 + +Added option `oneitemperrow` to `gam print filelist` to have each of a +files permissions displayed on a separate row with all of the other file fields. This produces +a CSV file that can be used in subsequent commands without further script processing. + +Added option `pmfilter` to `gam print filelist` that is used in conjunction +with permission matching. By default, permission matching simply selects which files to display, +all ACLS are displayed. With `pmfilter`, only the ACLs that match are displayed. + +6.31.09 + +Updated `gam gam create label `, `gam create labellist ` +and `gam update labelsettings ` to expand the choices for label colors. +``` + ::= "#" + ::= + #000000|#076239|#0b804b|#149e60|#16a766|#1a764d|#1c4587|#285bac| + #2a9c68|#3c78d8|#3dc789|#41236d|#434343|#43d692|#44b984|#4a86e8| + #653e9b|#666666|#68dfa9|#6d9eeb|#822111|#83334c|#89d3b2|#8e63ce| + #999999|#a0eac9|#a46a21|#a479e2|#a4c2f4|#aa8831|#ac2b16|#b65775| + #b694e8|#b9e4d0|#c6f3de|#c9daf8|#cc3a21|#cccccc|#cf8933|#d0bcf1| + #d5ae49|#e07798|#e4d7f5|#e66550|#eaa041|#efa093|#efefef|#f2c960| + #f3f3f3|#f691b3|#f6c5be|#f7a7c0|#fad165|#fb4c2f|#fbc8d9|#fcda83| + #fcdee8|#fce8b3|#fef1d1|#ffad47|#ffbc6b|#ffd6a2|#ffe6c7|#ffffff + ::= + #16a765|#2da2bb|#42d692|#4986e7|#98d7e4|#a2dcc1| + #b3efd3|#b6cff5|#b99aff|#c2c2c2|#cca6ac|#e3d7ff| + #e7e7e7|#ebdbde|#f2b2a8|#f691b2|#fb4c2f|#fbd3e0| + #fbe983|#fdedc1|#ff7537|#ffad46|#ffc8af|#ffdeb5 + ::= + #04502e|#094228|#0b4f30|#0d3472|#0d3b44|#3d188e| + #464646|#594c05|#662e37|#684e07|#711a36|#7a2e0b| + #7a4706|#8a1c0a|#994a64|#ffffff + +backgroundcolor "||custom:" +textcolor "||custom:" +``` + +6.31.08 + +Updated `csv_output_header_force` variable in `gam.cfg` that is a list of `` +to be the exact list of headers to be included in the CSV file written by a gam print command. +This might be used when the CSV file data is to be uploaded into a database +and some headers may not be present in the output but must be included for the upload to work. + +6.31.07 + +Added `csv_output_header_force` variable to `gam.cfg` that is a list of `` +that are forced for inclusion in the CSV file written by a gam print command. +This might be used when the CSV file data is to be uploaded into a database +and some headers may not be present in the output but must be included for the upload to work. + +6.31.06 + +Added support for new ChromeOS device fields: +``` + ::= + deprovisionreason| + firstenrollmenttime| + lastdeprovisiontimestamp| +``` + +6.31.05 + +Google can return an error `Internal error` on API calls; by default, GAM retries these API calls an additional 9 times +for a total of 10 tries. In some cases, determined by experience, the additional retries are unlikely to succeed and +GAM performs 1 additional retry rather than 9 for a total of 2 tries. + +Added `bail_on_internal_error_tries` variable to `gam.cfg` that is used by GAM to control +the total number of tries for these API calls; Google seems to be sending this error when it is very busy. +The default value is 2 and values from 1 to 10 are allowed. +This is a rare event, this is an experiment to see if retrying these errors more times leads to success. + +6.31.04 + +Added commands to display Chrome Devices Needing Attention counts. +``` +gam print chromeneedsattn [todrive *] + [(ou )|(ou_and_children )| + (ous )|(ous_and_children )] + [formatjson [quotechar ]] +gam show chromeneedsattn + [(ou )|(ou_and_children )| + (ous )|(ous_and_children )] + [formatjson] +``` + +6.31.03 + +Added commands to display Chrome Auto Update Expiration counts. +``` +gam print chromeaues [todrive *] + [(ou )|(ou_and_children )| + (ous )|(ous_and_children )] + [minauedate ] [maxauedate ] + [formatjson [quotechar ]] +gam show chromeaues + [(ou )|(ou_and_children )| + (ous )|(ous_and_children )] + [minauedate ] [maxauedate ] + [formatjson] +``` + +6.31.02 + +Updated `gam vacation` to process `(replace )*` in the subject. + +6.31.01 + +Added option `nofile` to `gam get photo|profilephoto` that causes GAM to suppress +writing the photo data to a file. This would typicically be used when you are capturing the photo data +written to stdout. + +6.31.00 + +Added `retry_api_service_not_available` variable to `gam.cfg` that is used to have GAM retry +`Service not applicable` errors on API calls; Google seems to be sending this error when it is very busy. +This is a rare event, this is an experiment to see if GAM can identify these errors and retry them. + +6.30.18 + +Fixed bug in `gam move drivefile` where the modified time of files was inappropriately being changed. + +6.30.17 + +Updated code for `gam get profilephoto size ` to account for API documentation error. + +6.30.16 + +Added option `nodefault` to `gam get profilephoto` that causes GAM to display an +error message and set the return code to 50 if the user has a default profile photo. + +6.30.15 + +Added option `gphoto |` to `gam update photo` +that specifies an owner and file to be used as the source of the photo. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Photo + +6.30.14 + +Fixed bug in `gam print|show peopleprofile fields ...` where metadata was being displayed +even when `showmetadata` was not specified. + +6.30.13 + +Fixed bug in `gam show fileinfo fields shortcutdetails.targetid` that caused a trap. + +Added option `size ` to `gam get profilephoto` that specifies the size in pixels of the file to download. + +6.30.12 + +Updated `gam update group update [] [[delivery] ] ` +to handle the following error when `` is an external member. +``` +ERROR: 404: resourceNotFound - Does not exist +``` +This is a Google bug where some external members can't be updated by email address. + +6.30.11 + +Added option `emailmatchpattern [not] ` to `gam delete group|groups` +that allows deleting a user from all groups of which they are a member based on (not) matching the group email address. + +6.30.10 + +Added the ability to specify fields when displaying calendars. + +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Calendars +* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Calendars + +6.30.09 + +Added the following shortcuts to ``: +``` +* my_top_files - "'me' in owners and mimeType != application/vnd.google-apps.folder and 'root' in parents" +* my_top_folders - "'me' in owners and mimeType = application/vnd.google-apps.folder and 'root' in parents" +* my_top_items - "'me' in owners and 'root' in parents" +``` + +6.30.08 + +Following Jay's lead, added the following License SKUs: +``` +1010390001 - Assured Controls +1010400001 - Beyond Corp Enterprise +``` + +6.30.07 + +Added option `sheetsfields ` to `gam print|show sheet ` +that lets you specfiy the desired subfields from the `sheets` field of a spreadsheet that should be displayed. +By default, all `sheets` subfields are displayed. +``` + ::= + bandedranges| + basicfilter| + charts| + columngroups| + conditionalformats| + data| + developermetadata| + filterviews| + merges| + properties| + protectedranges| + rowgroups| + slicers + ::= "(,)*" +``` + +6.30.06 + +Fixed bug in `gam create|update|delete drivefileacl ... updatesheetprotectedranges` +that caused a trap. + +6.30.05 + +Cleaned up code for option `updatesheetprotectedranges` in `gam create|update|delete drivefileacl `. + +6.30.04 + +Improved output formatting for field `sheets` in `gam info sheet `. + +6.30.03 + +Updated `gam create|update drivefileacl ` commands to handle the following error. +``` +ERROR: 403: fileOrganizerOnFoldersInSharedDriveOnly - FileOrganizer role is only allowed on folders. +``` + +Added option `updatesheetprotectedranges` to `gam create|update|delete drivefileacl ` +commands that causes GAM to update Sheet Protected Ranges if `` is a Google Sheet. + +6.30.02 + +Fixed error message in `gam print cigroups` when an invalid field was specified. + +6.30.01 + +Fixed bug in `gam create cigroup name +` where the group name was set to `` rather than ``. + +6.30.00 + +Added option `returnidonly` to `gam show fileinfo ` +that causes GAM to return just the file ID of the files in `` file as output. +``` +$ gam user user@domain.com show fileinfo root returnidonly +0AHYenC8f12ALUk9xyz + +$ gam user testsimple show fileinfo name "Test File" returnidonly +0B3YenC8f12ALflhUTmtNS3E2Vk9LSUpBVXRSUG5lQ29GWkRtWHM1VzU1blc4ZW1pb2FnNTA +``` + +Changed the display format of file paths for files on Shared Drives. + +* Old format - SharedDrive(TS Shared Drive 6)/TS SD6 Folder/TS TD6 Doc +* New format -SharedDrives/TS Shared Drive 6/TS SD6 Folder/TS TD6 Doc + +Added option `returnpathonly` to `gam show filepath ` +that causes GAM to return just the file path of the files in `` file as output. +``` +$ gam user user@domain.com show filepath name "Test File" returnpathonly +My Drive/Classroom/Test File + +$ gam user user@domain.com show filepath 0AJ6mqwXP9wHxUk9xyz returnpathonly +TS Shared Drive 6 + +$ gam user testsimple show filepath 0AJ6mqwXP9wHxUk9xyz returnpathonly fullpath +SharedDrives/TS Shared Drive 6 + +$ gam user user@domain.com show filepath teamdriveid 0AJ6mqwXP9wHxUk9xyz teamdrivefilename "TS TD6 Doc" returnpathonly +SharedDrives/TS Shared Drive 6//TS SD6 Folder/TS TD6 Doc +``` + +Added command `gam comment *` that displays the comment data on stdout. +This can be used to validate `csv_input_row_filters` and column value extraction. +``` +$ more Comment.csv +col1,col2 +aaa,111 +bbb,222 +ccc,333 +$ gam config csv_input_row_drop_filter "col1:regex:bbb" csv Comment.csv gam comment "Col1:~~col1~~" "Col2:~~col2~~" +2022-12-16T12:41:50.045-08:00,0/2,Using 2 processes... +Col1:aaa Col2:111 +Col1:ccc Col2:333 +``` + +Updated `gam create|delete license ` to take a list of SKUs. + +Updated `gam create user ... license ` to take a list of SKUs. + +Updated `gam sync license ` to take a list of SKUs and +added option `allskus|onesku` that is required when multiple SKUs are specified. + +* `allskus` indicates that users in `` will be updated to have all of the SKUs in ``. + * This is typically used when assigning different types of licenses, such as an Enterprise license and a Voice license. +* `onesku` indicates that users in `` with none of the licenses in`` will be updated to have the first available license SKU in ``. + * This is typically used with Google Education Plus or Google Education Standard licenses, which are split across multiple SKUs. + +Added option `basic` to `gam print cigroups` that causes GAM to display the basic +Cloud Identity Group fields, i.e., those fields that do not require an additional API call per group. + +Following Jay's lead, added option `query ` to `gam print cigroups`. + +6.29.21 + +Fixed bugs in `gam selectfilter` that caused traps or inappropriate error messages. + +6.29.20 + +Fixed bug in `gam archive messages ` that caused a trap. + +6.29.19 + +Fixed bug introduced in 6.29.17 in `todrive` that caused a trap. + +6.29.18 + +Added the following variables to `gam.cfg` to provide more flexibility when multiple row filters are specified. + +* `csv_input_row_filter_mode allmatch|anymatch` + * `allmatch` - all filters must match to include in input; this is the default and is the current behavior + * `anymatch` - any filter must match to include in input +* `csv_input_row_drop_filter_mode allmatch|anymatch` + * `allmatch` - all filters must match to drop from input + * `anymatch` - any filter must match to drop from input; this is the default and is the current behavior +* `csv_output_row_filter_mode allmatch|anymatch` + * `allmatch` - all filters must match to include in output; this is the default and is the current behavior + * `anymatch` - any filter must match to include in output +* `csv_output_row_drop_filter_mode allmatch|anymatch` + * `allmatch` - all filters must match to drop from output + * `anymatch` - any filter must match to drop from output; this is the default and is the current behavior + +6.29.17 + +Added option `todrive tdcellnumberformat text|number` that causes GAM to set the Sheet Number format when uploading files with `todrive`. +If the option is not specified, no number format is specified. + +6.29.16 + +Fixed bug introduced in 6.29.15 that caused an error like this: +``` +ERROR: Config File: gam.cfg, Section: DEFAULT, Item: todrive_locale, Value: "en_us", Expected: ,ar-eg,az-az,be-by,bg-bg,bn-in,ca-es,cs-cz,cy-gb,da-dk,de-ch,de-de,el-gr,en-au,en-ca,en-gb,en-ie,en-us,es-ar,es-bo,es-cl,es +``` + +6.29.15 + +Updated `gam [] info|print|show drivelabels languagecode ` to use the BCP-47 language code. + +6.29.14 + +Added option `stripcrsfromtitle` to `gam print|show datastudioassets` that causes carriage returns, +linefeeds and nulls to be stripped from asset titles. + +6.29.13 + +Updated status messages in `gam delete|update chromepolicy` to be more informative. + +Fixed bug in `gam delete chromepolicy` with schema chrome.users.apps.InstallType. + +6.29.12 + +Fixed issue in `gam update chromepolicy` with schemas `chrome.users.apps.ManagedConfiguration`, +`chrome.devices.managedguest.apps.ManagedConfiguration` and `chrome.devices.kiosk.apps.ManagedConfiguration`. + +6.29.11 + +Improved performance of `gam update chromepolicy`. + +6.29.10 + +Attempted to fix issues in `gam update chromepolicy` with schemas `chrome.users.apps.InstallType` +and `chrome.users.apps.IncludeInChromeWebStoreCollection`. + +6.29.09 + +Fixed bug in `gam create tasklist` that caused a trap. + +Added `countsonly` option to `gam print|show tasks|tasklists` that causes GAM to display +the number of tasks|tasklists for a user rather than listing the details. + +Added option `due