When multiple filter expressions are defined:
GAM_CSV_ROW_FILTER - should match only if all expressions match
GAM_CSV_ROW_DROP_FILTER - should match if any expression matches
Currently, the opposite is true
* Document member restrictions
* Fix gam print users allfields custom all to include primaryEmail
If you really want everything say: gam print users full
* 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.