* agreedToTerms is now read-only
* Fix sync devices
* assetTag if specified is part of sync device key
* Handle missing assetTags
* Leave agreedtoterms as an undocumented option
* More assetTag processing, the field is not returned from the API if it's empty
* Fix DriveFileAttribute formatting
* memberKey has been replaced by preferredMemberKey
* Correct license name
* If notdemail.txt is present, write_csv_file will not send an email
* Initialize pageToken for each namespace
* Update group sync to do removes before adds
This gets around problem when a group contains a primary address and a sync is performed with an alias. With adds first you get a duplicate error; with removes first the primary address in the group is replaced with the alias.
* Add defaultsender to group settings
* Update requirements.txt
Adding `pathvalidate` to requrements
* Update __init__.py
Adding `pathvalidate` to make correct filename on other then ascii encodings.
* Updating with sanitize_filename
* Removing unused variable.
* Add GAM_CSV_ROW_DROP_FILTER
Allow regex column names in GAM_CSV_ROW_FILTER and GAM_CSV_ROW_DROP_FILTER.
```
# Get users with managers
$ export GAM_CSV_ROW_FILTER="relations.*.type:regex:manager"
$ gam print users query "orgUnitPath='/Test'" relations
Getting all Users in G Suite account that match query (orgUnitPath='/Test') (may take some time on a large account)...
Got 17 Users: dick@domain.com - tom@domain.com
primaryEmail,relations,relations.0.value,relations.0.type,relations.1.value,relations.1.type
testuser1@domain.com,,admin@rdschool.net,manager,,
testuser2@domain.com,,testuser1@domain.com,manager,,
# Get users without managers
$ export GAM_CSV_ROW_DROP_FILTER="relations.*.type:regex:manager"
$ gam print users query "orgUnitPath='/Test'" relations
Getting all Users in G Suite account that match query (orgUnitPath='/Test') (may take some time on a large account)...
Got 17 Users: dick@domain.com - tom@domain.com
primaryEmail,relations,relations.0.value,relations.0.type,relations.1.value,relations.1.type
dick@domain.com,,,,,
harry@domain.com,,,,,
testadmin@domain.com,,,,,
...
* Update var.py to 5.31
* Multiple updates
Add member to print cigroups|cigroup-members to select groups to display
Drop Google-Coordinate product ID
Update print|show driveactivity to Drive Activity API v2
Check for more parents than 1 in create|update drivefile
Update documentation
Allow times_to_check_status with gam getcommand cros
Display deviceId and commandId when issuing/getting commands
* Fix orgunit references in vault
* Rename member to enterprisemember in print cigroups|cigroup-members
Give error message indication the Enterprise license is required
* Add lastKnownNetwork to CrOS fields
* Soft fail when deleting user photo
* Fix bug in PR #1273
* Add view all|company|personal to print devices
Update documentation
* sync devices cleanup
* Update sync devices documentation
* Cleanup;
The advantage here is that they will be no filter errors unless you specify a particular view and a filter that doesn't match
* Simplify selection of devices to print
Default - all
Positve choices
Negative choices - backwards compatible