gam7 7.22.7__tar.gz → 7.23.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of gam7 might be problematic. Click here for more details.
- {gam7-7.22.7 → gam7-7.23.0}/PKG-INFO +1 -1
- {gam7-7.22.7 → gam7-7.23.0}/src/GamUpdate.txt +12 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/__init__.py +20 -14
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glcfg.py +4 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glentity.py +2 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/GamUpdates.md +6 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +1 -1
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Reports.md +1 -1
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Vault-Takeout.md +58 -15
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Version-and-Help.md +3 -3
- {gam7-7.22.7 → gam7-7.23.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/actions/decrypt.sh +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/actions/entitlements.plist +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/stale.yml +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/build.yml +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/pypi.yml +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/LICENSE +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/README.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/pyproject.toml +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/.gitignore +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/GamCommands.txt +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/LICENSE +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/README.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/callgam.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/__main__.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/__init__.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/auth.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/client.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/core.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/data.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/http.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/http_core.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/service.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/token_store.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/url.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/cacerts.pem +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/service.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam-install.sh +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam-setup.bat +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam.exe.manifest +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam.spec +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/gam.wxs +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/license.rtf +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/tools/hooks/hook-httplib2.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/tools/mkGamRef.py +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/tools/openssl.props +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/tools/ssd.mjs +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/src/version_info.txt.in +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/00scratch.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Addresses.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Administrators.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Alert-Center.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Aliases.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Authorization.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Basic-Items.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Calendars-Access.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Calendars-Events.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Calendars.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-StudentGroups.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Customer.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Domains-Verification.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Domains.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Drive-Items.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM-Release-Process.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM7-FAQ.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Global-Address-List.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Groups-Membership.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Groups.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Home.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Licenses.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/List-Items.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/List.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Organizational-Units.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Other-Resources.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Permission-Matches.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/README.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Rclone.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Reseller.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Resources.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Schemas.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Scripts.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Send-Email.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Shared-Drives.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Sites.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Tag-Replace.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Todrive.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Calendars.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Chat.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Contacts.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Forms.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Meet.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Photo.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Tasks.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Tokens.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-YouTube.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Users.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/_Sidebar.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/gam.cfg.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Android-Installation.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-BulkOperations.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-CalendarExamples.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Chat-Bot.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Email.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Users.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Custom-Schemas.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Data-Transfers.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-DomainVerification.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ExamplesCSV.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM-options-files.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM3CSVListings.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Home.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-LicenseExamples.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Managing-Admins.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Managing-Devices.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Printers.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ResellerCommands.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-SecurityExamples.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-_Footer.md +0 -0
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
7.23.00
|
|
2
|
+
|
|
3
|
+
Added `chat_max_results` variable to `gam.cfg`.
|
|
4
|
+
```
|
|
5
|
+
chat_max_results
|
|
6
|
+
When retrieving lists of Chat items from API,
|
|
7
|
+
how many should be retrieved in each API call
|
|
8
|
+
Default: 100
|
|
9
|
+
Range: 1 - 1000
|
|
10
|
+
```
|
|
11
|
+
Previously, this vaule was always set to 1000 which could cause errors.
|
|
12
|
+
|
|
1
13
|
7.22.07
|
|
2
14
|
|
|
3
15
|
Added options `showdetails` and `returnidonly` to `gam create|copy vaultquery`.
|
|
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
|
28
|
-
__version__ = '7.
|
|
28
|
+
__version__ = '7.23.00'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -26579,7 +26579,7 @@ def printShowChatEmojis(users):
|
|
|
26579
26579
|
pageMessage=_getChatPageMessage(Ent.CHAT_EMOJI, user, i, count, pfilter),
|
|
26580
26580
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
|
26581
26581
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
26582
|
-
pageSize=
|
|
26582
|
+
pageSize=GC.Values[GC.CHAT_MAX_RESULTS], filter=pfilter)
|
|
26583
26583
|
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
26584
26584
|
exitIfChatNotConfigured(chat, kvList, str(e), i, count)
|
|
26585
26585
|
continue
|
|
@@ -26649,7 +26649,14 @@ def getChatSpaceParameters(myarg, body, typeChoicesMap, updateMask):
|
|
|
26649
26649
|
|
|
26650
26650
|
CHAT_MEMBER_ROLE_MAP = {
|
|
26651
26651
|
'member': 'ROLE_MEMBER',
|
|
26652
|
-
'manager': 'ROLE_MANAGER'
|
|
26652
|
+
'manager': 'ROLE_MANAGER',
|
|
26653
|
+
'owner': 'ROLE_OWNER',
|
|
26654
|
+
}
|
|
26655
|
+
|
|
26656
|
+
CHAT_ROLE_ENTITY_TYPE_MAP = {
|
|
26657
|
+
'ROLE_MEMBER': Ent.CHAT_MEMBER_USER,
|
|
26658
|
+
'ROLE_MANAGER': Ent.CHAT_MANAGER_USER,
|
|
26659
|
+
'ROLE_OWNER': Ent.CHAT_OWNER_USER,
|
|
26653
26660
|
}
|
|
26654
26661
|
|
|
26655
26662
|
CHAT_MEMBER_TYPE_MAP = {
|
|
@@ -27006,7 +27013,6 @@ def _getChatSpaceSearchParms(myarg, queries, queryTimes, OBY):
|
|
|
27006
27013
|
return False
|
|
27007
27014
|
return True
|
|
27008
27015
|
|
|
27009
|
-
CHAT_PAGE_SIZE = 1000
|
|
27010
27016
|
CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP = {
|
|
27011
27017
|
'createtime': 'createTime',
|
|
27012
27018
|
'lastactivetime': 'lastActiveTime',
|
|
@@ -27086,7 +27092,7 @@ def printShowChatSpaces(users):
|
|
|
27086
27092
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
|
27087
27093
|
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
|
27088
27094
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
27089
|
-
fields=fields, pageSize=
|
|
27095
|
+
fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargsCS)
|
|
27090
27096
|
if showAccessSettings:
|
|
27091
27097
|
for space in spaces:
|
|
27092
27098
|
if space['spaceType'] == 'SPACE':
|
|
@@ -27152,7 +27158,7 @@ def _getChatSpaceMembers(cd, chatSpace, ciGroupName):
|
|
|
27152
27158
|
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, 0, 0, qfilter),
|
|
27153
27159
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
|
27154
27160
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
27155
|
-
parent=chatSpace, fields=fields, pageSize=
|
|
27161
|
+
parent=chatSpace, fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargsUAA)
|
|
27156
27162
|
for member in members:
|
|
27157
27163
|
_getChatMemberEmail(cd, member)
|
|
27158
27164
|
gmember = {}
|
|
@@ -27289,7 +27295,7 @@ def createChatMember(users):
|
|
|
27289
27295
|
missingArgumentExit('space')
|
|
27290
27296
|
if not userList and not groupList:
|
|
27291
27297
|
missingArgumentExit('user|members|group|groups')
|
|
27292
|
-
userEntityType =
|
|
27298
|
+
userEntityType = CHAT_ROLE_ENTITY_TYPE_MAP[role]
|
|
27293
27299
|
userMembers = []
|
|
27294
27300
|
for user in userList:
|
|
27295
27301
|
userMembers.append({'member': {'name': f'users/{user}', 'type': mtype}})
|
|
@@ -27546,7 +27552,7 @@ def syncChatMembers(users):
|
|
|
27546
27552
|
unknownArgumentExit()
|
|
27547
27553
|
if not parent:
|
|
27548
27554
|
missingArgumentExit('space')
|
|
27549
|
-
userEntityType =
|
|
27555
|
+
userEntityType = CHAT_ROLE_ENTITY_TYPE_MAP[role]
|
|
27550
27556
|
userMembers = {}
|
|
27551
27557
|
syncUsersSet = set()
|
|
27552
27558
|
for user in userList:
|
|
@@ -27576,7 +27582,7 @@ def syncChatMembers(users):
|
|
|
27576
27582
|
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, i, count, qfilter),
|
|
27577
27583
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
|
27578
27584
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
27579
|
-
parent=parent, showGroups=groupsSpecified, pageSize=
|
|
27585
|
+
parent=parent, showGroups=groupsSpecified, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargs, **kwargsUAA)
|
|
27580
27586
|
for member in members:
|
|
27581
27587
|
if 'member' in member:
|
|
27582
27588
|
if member['member']['type'] == mtype and member['role'] == role:
|
|
@@ -27777,7 +27783,7 @@ def printShowChatMembers(users):
|
|
|
27777
27783
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
|
27778
27784
|
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
|
27779
27785
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
27780
|
-
fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=
|
|
27786
|
+
fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=GC.Values[GC.CHAT_MAX_RESULTS],
|
|
27781
27787
|
**kwargsCS)
|
|
27782
27788
|
for space in sorted(spaces, key=lambda k: k[sortName]):
|
|
27783
27789
|
if space['spaceType'] == 'SPACE' and 'membershipCount' in space:
|
|
@@ -27794,7 +27800,7 @@ def printShowChatMembers(users):
|
|
|
27794
27800
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
|
27795
27801
|
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
|
27796
27802
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
27797
|
-
fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=
|
|
27803
|
+
fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=GC.Values[GC.CHAT_MAX_RESULTS],
|
|
27798
27804
|
**kwargsCS)
|
|
27799
27805
|
for space in sorted(spaces, key=lambda k: k[sortName]):
|
|
27800
27806
|
# if 'membershipCount' in space:
|
|
@@ -27825,7 +27831,7 @@ def printShowChatMembers(users):
|
|
|
27825
27831
|
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, j, jcount, qfilter),
|
|
27826
27832
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
|
27827
27833
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
27828
|
-
parent=parentName, fields=fields, pageSize=
|
|
27834
|
+
parent=parentName, fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargs, **kwargsUAA)
|
|
27829
27835
|
for member in members:
|
|
27830
27836
|
_getChatMemberEmail(cd, member)
|
|
27831
27837
|
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
@@ -28139,7 +28145,7 @@ def printShowChatMessages(users):
|
|
|
28139
28145
|
pageMessage=_getChatPageMessage(Ent.CHAT_MESSAGE, user, i, count, qfilter),
|
|
28140
28146
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
|
28141
28147
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
28142
|
-
pageSize=
|
|
28148
|
+
pageSize=GC.Values[GC.CHAT_MAX_RESULTS], parent=parentName, filter=pfilter, showDeleted=showDeleted,
|
|
28143
28149
|
fields=fields)
|
|
28144
28150
|
for message in messages:
|
|
28145
28151
|
if 'sender' in message:
|
|
@@ -28257,7 +28263,7 @@ def printShowChatEvents(users):
|
|
|
28257
28263
|
pageMessage=_getChatPageMessage(Ent.CHAT_EVENT, user, i, count, qfilter),
|
|
28258
28264
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
|
28259
28265
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
28260
|
-
pageSize=
|
|
28266
|
+
pageSize=GC.Values[GC.CHAT_MAX_RESULTS], parent=parentName, filter=pfilter)
|
|
28261
28267
|
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
28262
28268
|
exitIfChatNotConfigured(chat, kvList, str(e), i, count)
|
|
28263
28269
|
continue
|
|
@@ -69,6 +69,8 @@ CACHE_DISCOVERY_ONLY = 'cache_discovery_only'
|
|
|
69
69
|
CHANNEL_CUSTOMER_ID = 'channel_customer_id'
|
|
70
70
|
# Character set of batch, csv, data files
|
|
71
71
|
CHARSET = 'charset'
|
|
72
|
+
# When retrieving lists of Chat items from API, how many should be retrieved in each chunk
|
|
73
|
+
CHAT_MAX_RESULTS = 'chat_max_results'
|
|
72
74
|
# When retrieving lists of Google Classroom items from API, how many should be retrieved in each chunk
|
|
73
75
|
CLASSROOM_MAX_RESULTS = 'classroom_max_results'
|
|
74
76
|
# Path to client_secrets.json
|
|
@@ -335,6 +337,7 @@ Defaults = {
|
|
|
335
337
|
CACHE_DISCOVERY_ONLY: TRUE,
|
|
336
338
|
CHARSET: DEFAULT_CHARSET,
|
|
337
339
|
CHANNEL_CUSTOMER_ID: '',
|
|
340
|
+
CHAT_MAX_RESULTS: '100',
|
|
338
341
|
CLASSROOM_MAX_RESULTS: '0',
|
|
339
342
|
CLIENT_SECRETS_JSON: FN_CLIENT_SECRETS_JSON,
|
|
340
343
|
CLOCK_SKEW_IN_SECONDS: '10',
|
|
@@ -502,6 +505,7 @@ VAR_INFO = {
|
|
|
502
505
|
CACHE_DISCOVERY_ONLY: {VAR_TYPE: TYPE_BOOLEAN, VAR_SIGFILE: 'allcache.txt', VAR_SFFT: (TRUE, FALSE)},
|
|
503
506
|
CHARSET: {VAR_TYPE: TYPE_STRING, VAR_ENVVAR: 'GAM_CHARSET', VAR_LIMITS: (1, None)},
|
|
504
507
|
CHANNEL_CUSTOMER_ID: {VAR_TYPE: TYPE_STRING, VAR_LIMITS: (0, None)},
|
|
508
|
+
CHAT_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (1, 1000)},
|
|
505
509
|
CLASSROOM_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (0, 1000)},
|
|
506
510
|
CLIENT_SECRETS_JSON: {VAR_TYPE: TYPE_FILE, VAR_ENVVAR: 'CLIENTSECRETS', VAR_ACCESS: os.R_OK},
|
|
507
511
|
CLOCK_SKEW_IN_SECONDS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (10, 3600)},
|
|
@@ -96,6 +96,7 @@ class GamEntity():
|
|
|
96
96
|
CHAT_MEMBER_USER = 'chmu'
|
|
97
97
|
CHAT_MESSAGE = 'chms'
|
|
98
98
|
CHAT_MESSAGE_ID = 'chmi'
|
|
99
|
+
CHAT_OWNER_USER = 'chou'
|
|
99
100
|
CHAT_SPACE = 'chsp'
|
|
100
101
|
CHAT_THREAD = 'chth'
|
|
101
102
|
CHILD_ORGANIZATIONAL_UNIT = 'corg'
|
|
@@ -462,6 +463,7 @@ class GamEntity():
|
|
|
462
463
|
CHAT_MEMBER: ['Chat Members', 'Chat Member'],
|
|
463
464
|
CHAT_MEMBER_GROUP: ['Chat Group Members', 'Chat Group Member'],
|
|
464
465
|
CHAT_MEMBER_USER: ['Chat User Members', 'Chat User Member'],
|
|
466
|
+
CHAT_OWNER_USER: ['Chat User Owners', 'Chat User Owner'],
|
|
465
467
|
CHAT_SPACE: ['Chat Spaces', 'Chat Space'],
|
|
466
468
|
CHAT_THREAD: ['Chat Threads', 'Chat Thread'],
|
|
467
469
|
CHILD_ORGANIZATIONAL_UNIT: ['Child Organizational Units', 'Child Organizational Unit'],
|
|
@@ -10,6 +10,12 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
|
|
10
10
|
|
|
11
11
|
See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
|
|
12
12
|
|
|
13
|
+
### 7.22.07
|
|
14
|
+
|
|
15
|
+
Added options `showdetails` and `returnidonly` to `gam create|copy vaultquery`.
|
|
16
|
+
|
|
17
|
+
Added option `<JSONData>` to `gam create vaultexport|vaultquery and `gam print vaultcounts``.
|
|
18
|
+
|
|
13
19
|
### 7.22.06
|
|
14
20
|
|
|
15
21
|
Added commands to create, copy and delete Vault saved queries.
|
|
@@ -252,7 +252,7 @@ writes the credentials into the file oauth2.txt.
|
|
|
252
252
|
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
|
253
253
|
admin@server:/Users/admin$ gam version
|
|
254
254
|
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
|
255
|
-
GAM 7.22.
|
|
255
|
+
GAM 7.22.07 - https://github.com/GAM-team/GAM - pyinstaller
|
|
256
256
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
257
257
|
Python 3.13.7 64-bit final
|
|
258
258
|
MacOS Sequoia 15.6.1 x86_64
|
|
@@ -378,7 +378,7 @@ Select the users for whom information is desired.
|
|
|
378
378
|
* `showorgunit` - Add a column labelled `orgUnitPath` to the output; an additional API call is made to get the email addresses of the users in `<OrgUnitPath>`
|
|
379
379
|
* `select <UserTypeEntity>` - A selected collection of users, e.g., `select group staff@domain.com`; there is one API call per user
|
|
380
380
|
|
|
381
|
-
By default, when `user all` is specified (or no user specification in supplied), GAM backs up looking for data with a (basically) random user. If the
|
|
381
|
+
By default, when `user all` is specified (or no user specification in supplied), GAM backs up looking for data with a (basically) random user. If the random
|
|
382
382
|
doesn't have any data, the command reports that no data was found. Use `allverifyuser <UserItem>` to specify a specific user to use to search for data.
|
|
383
383
|
|
|
384
384
|
Specify the report date; the default is today's date.
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
- [Query documentation](#query-documentation)
|
|
4
4
|
- [Python Regular Expressions](Python-Regular-Expressions) Match function
|
|
5
5
|
- [Definitions](#definitions)
|
|
6
|
+
- [Special quoting](#special-quoting)
|
|
6
7
|
- [Vault Matters](#vault-matters)
|
|
7
8
|
- [Create Vault Matters](#create-vault-matters)
|
|
8
9
|
- [Manage Vault Matters](#manage-vault-matters)
|
|
@@ -57,6 +58,7 @@
|
|
|
57
58
|
<EmailAddressList> ::= "<EmailAddess>(,<EmailAddress>)*"
|
|
58
59
|
<EmailAddressEntity> ::= <EmailAddressList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
|
59
60
|
See: https://github.com/GAM-team/GAM/wiki/Collections-of-Items
|
|
61
|
+
<JSONData> ::= (json [charset <Charset>] <String>) | (json file <FileName> [charset <Charset>]) |
|
|
60
62
|
<TimeZone> ::= <String>
|
|
61
63
|
See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
62
64
|
<UniqueID> ::= id:<String>
|
|
@@ -76,6 +78,7 @@
|
|
|
76
78
|
<ExportStatusList> ::= "<ExportStatus>(,<ExportStatus>)*"
|
|
77
79
|
<HoldItem> ::= <UniqueID>|<String>
|
|
78
80
|
<MatterItem> ::= <UniqueID>|<String>
|
|
81
|
+
<MatterItemList> ::= "<MatterItem>(,<MatterItem>)*"
|
|
79
82
|
<MatterState> ::= open|closed|deleted
|
|
80
83
|
<MatterStateList> ::= "<MatterState>(,<MatterState>)*"
|
|
81
84
|
<QueryItem> ::= <UniqueID>|<String>
|
|
@@ -141,9 +144,29 @@
|
|
|
141
144
|
<VaultQueryFieldNameList> ::= "<VaultQueryFieldName>(,<VaultQueryFieldName>)*"
|
|
142
145
|
|
|
143
146
|
```
|
|
147
|
+
|
|
144
148
|
You specify matters, exports and holds by ID (`<UniqueID>`) or name (`<String>`). The API requires an ID, so if you specify a name,
|
|
145
149
|
GAM has to make additional API calls to convert the name to an ID.
|
|
146
150
|
|
|
151
|
+
## Special quoting
|
|
152
|
+
You specify a single matter with `matter <MatterItem>` and a list of matters with `matters <MatterItemList>`.
|
|
153
|
+
|
|
154
|
+
As matter names can contain spaces, some care must be used when entering `<MatterItem>` and `<MatterItemList>` with names.
|
|
155
|
+
|
|
156
|
+
Suppose you have a matter `Foo Bar`. To get information about a specific export: `gam info vaultexport "Foo Bar" <ExportItem>`
|
|
157
|
+
|
|
158
|
+
The shell strips the `"` leaving a single argument `Foo Bar`; gam correctly processes the argument.
|
|
159
|
+
|
|
160
|
+
Suppose you enter the command: `gam show vaultexports matters "Foo Bar"`
|
|
161
|
+
|
|
162
|
+
The shell strips the `"` leaving a single argument `Foo Bar`; gam splits the argument on space leaving two items and then tries to process `Foo` and `Bar`, not what you want.
|
|
163
|
+
|
|
164
|
+
You must enter: `gam info show vaultexports matters "'Foo Bar'"`
|
|
165
|
+
|
|
166
|
+
The shell strips the `"` leaving a single argument `'Foo Bar'`; gam splits the argument on space while honoring the `'` leaving one item `Foo Bar` and correctly processes the item.
|
|
167
|
+
|
|
168
|
+
For quoting rules, see: [List Quoting Rules](Command-Line-Parsing)
|
|
169
|
+
|
|
147
170
|
## Vault Matters
|
|
148
171
|
## Create Vault Matters
|
|
149
172
|
Create a Google Vault matter.
|
|
@@ -232,12 +255,13 @@ gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
|
232
255
|
(accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
|
|
233
256
|
[terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
234
257
|
[excludedrafts <Boolean>]
|
|
258
|
+
[<JSONData>]
|
|
235
259
|
[wait <Integer>]
|
|
236
260
|
```
|
|
237
261
|
Specify the search method, this is optional:
|
|
238
262
|
* `accounts <EmailAddressEntity>` - Search all accounts specified in `<EmailAddressEntity>`
|
|
239
263
|
* `orgunit|org|ou <OrgUnitPath>` - Search all accounts in the OU `<OrgUnitPath>`
|
|
240
|
-
* `everyone` - Search for all accounts in the organization
|
|
264
|
+
* `everyone|entireorg` - Search for all accounts in the organization
|
|
241
265
|
|
|
242
266
|
For `corpus mail|group`, you can specify search terms to limit the search.
|
|
243
267
|
* `terms <String>` - [Vault search](https://support.google.com/vault/answer/2474474)
|
|
@@ -246,6 +270,8 @@ For `corpus mail|group`, you can specify time limits on the search:
|
|
|
246
270
|
* `start|starttime <Date>|<Time>` - The start time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
|
|
247
271
|
* `end|endtime <Date>|<Time>` - The end time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
|
|
248
272
|
|
|
273
|
+
You can specify query options with `<JSONData>`.
|
|
274
|
+
|
|
249
275
|
Check the status of a previous count operation with the name from a previous command.
|
|
250
276
|
```
|
|
251
277
|
gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
@@ -283,6 +309,7 @@ gam create vaultexport|export matter <MatterItem> [name <String>]
|
|
|
283
309
|
[locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
284
310
|
[responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
285
311
|
(covereddata calllogs|textmessages|voicemails)*
|
|
312
|
+
[<JSONData>]
|
|
286
313
|
[driveclientsideencryption any|encrypted|unencrypted]
|
|
287
314
|
[includeaccessinfo <Boolean>]
|
|
288
315
|
[excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
|
|
@@ -308,7 +335,7 @@ Specify the corpus of data, this option is required:
|
|
|
308
335
|
Specify the search method, this option is required:
|
|
309
336
|
* `accounts <EmailAddressEntity>` - Search all accounts specified in `<EmailAddressEntity>`
|
|
310
337
|
* `orgunit|org|ou <OrgUnitPath>` - Search all accounts in the OU `<OrgUnitPath>`
|
|
311
|
-
* `everyone` - Search for all accounts in the organization
|
|
338
|
+
* `everyone|entireorg` - Search for all accounts in the organization
|
|
312
339
|
* `documentids <DriveFileIDList>` - Search for all drive files specified in `<DriveFileIDList>`
|
|
313
340
|
* `documentids select <FileSelector>|<CSVFileSelector>` - Search for all drive files specified in `<FileSelector>|<CSVFileSelector>`
|
|
314
341
|
* `shareddrives|teamdrives <SharedDriveIDList>` - Search for all accounts in the Shared Drives specified in `<SharedDriveIDList>`
|
|
@@ -349,10 +376,6 @@ For `corpus calendar`, you can specify advanced search options:
|
|
|
349
376
|
* Search the current version of the Calendar event, but export the contents of the last version saved before 12:00 AM UTC on the specified date.
|
|
350
377
|
* Enter the date in UTC.
|
|
351
378
|
|
|
352
|
-
For `corpus calendar`, you can specify the format of the exported data:
|
|
353
|
-
* `format ics` - Export in ICS format, this is the default
|
|
354
|
-
* `format pst` - Export in PST format
|
|
355
|
-
|
|
356
379
|
For `corpus drive`, you can specify advanced search options:
|
|
357
380
|
* `driveversiondate <Date>|<Time>` - Search the versions of the Drive file as of the reference date. These timestamps are in GMT and rounded down to the given date.
|
|
358
381
|
* `includeshareddrives False` - Mapped to `sharedrivesoption included_if_account_is_not_a_member`
|
|
@@ -360,6 +383,16 @@ For `corpus drive`, you can specify advanced search options:
|
|
|
360
383
|
* `sharedrivesoption included` - Resources in shared drives are included in the search
|
|
361
384
|
* `sharedrivesoption included_if_account_is_not_a_member` - Resources in shared drives where account is not a member are included in the search, this is the default
|
|
362
385
|
* `sharedrivesoption not_included` - Resources in shared drives are not included in the search
|
|
386
|
+
|
|
387
|
+
For `corpus hangouts_chat` you can specify advanced search options:
|
|
388
|
+
* `includerooms False` - Do not include rooms, this is the default
|
|
389
|
+
* `includerooms True` - Include rooms
|
|
390
|
+
|
|
391
|
+
You can specify query options with `<JSONData>`.
|
|
392
|
+
|
|
393
|
+
## Vault Export options
|
|
394
|
+
|
|
395
|
+
For `corpus drive`, you can specify advanced search options:
|
|
363
396
|
* `driveclientsideencryption any` - Include both client-side encrypted and unencrypted content in search, this is the default.
|
|
364
397
|
* `driveclientsideencryption encrypted` - Include client-side encrypted content only in search.
|
|
365
398
|
* `driveclientsideencryption unencrypted` - Include client-side unencrypted content only in search.
|
|
@@ -368,10 +401,6 @@ For `corpus drive`, you can specify whether to include access information for us
|
|
|
368
401
|
* `includeaccessinfo False` - Do not include access information for users with indirect access, this is the default
|
|
369
402
|
* `includeaccessinfo True` - Include access information for users with indirect access
|
|
370
403
|
|
|
371
|
-
For `corpus hangouts_chat` you can specify advanced search options:
|
|
372
|
-
* `includerooms False` - Do not include rooms, this is the default
|
|
373
|
-
* `includerooms True` - Include rooms
|
|
374
|
-
|
|
375
404
|
For `corpus mail`, you can specify advanced search options:
|
|
376
405
|
* `excludedrafts False` - Do not exclude drafts, this is the default
|
|
377
406
|
* `excludedrafts True` - Exclude drafts
|
|
@@ -405,8 +434,7 @@ For `corpus groups`, `corpus hangouts_chat`, `corpus mail` and `corpus voice`, y
|
|
|
405
434
|
* `format mbox` - Export in MBOX format, this is the default
|
|
406
435
|
* `format pst` - Export in PST format
|
|
407
436
|
|
|
408
|
-
For `corpus voice` you can specify the data covered by the export,
|
|
409
|
-
multiple values are allowed.:
|
|
437
|
+
For `corpus voice` you can specify the data covered by the export, multiple values are allowed.:
|
|
410
438
|
* `covereddata calllogs` - Call logs
|
|
411
439
|
* `covereddata textmessages` - Voice text messages
|
|
412
440
|
* `covereddata voicemail` - Voicemail
|
|
@@ -817,8 +845,10 @@ gam create vaultquery <MatterItem> [name <String>]
|
|
|
817
845
|
[locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
818
846
|
[responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
819
847
|
(covereddata calllogs|textmessages|voicemails)*
|
|
820
|
-
[
|
|
821
|
-
|
|
848
|
+
[<JSONData>]
|
|
849
|
+
[shownames]
|
|
850
|
+
[showdetails|returnidonly|formatjson]
|
|
851
|
+
``
|
|
822
852
|
|
|
823
853
|
If `name <String>` is omitted, the query is named `GAM <corpus> Query - <Time>`
|
|
824
854
|
|
|
@@ -826,10 +856,17 @@ The `shownames` argument controls whether org unit and shared drive names are di
|
|
|
826
856
|
|
|
827
857
|
See: [Vault Query options](#vault-query-options)
|
|
828
858
|
|
|
859
|
+
Use the `showdetails` option to have the full details of the saved query displayed.
|
|
860
|
+
|
|
861
|
+
Use the `returnidonly` option to have only the saved query ID displayed.
|
|
862
|
+
|
|
863
|
+
Use the `formatjson` option to have only the saved query JSON displayed.
|
|
864
|
+
|
|
829
865
|
## Copy Vault Saved Queries
|
|
830
866
|
```
|
|
831
867
|
gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem>] [name <String>]
|
|
832
|
-
[shownames]
|
|
868
|
+
[shownames]
|
|
869
|
+
[showdetails|returnidonly|formatjson]
|
|
833
870
|
```
|
|
834
871
|
|
|
835
872
|
If `targetmatter <MatterItem>` is omitted, the query is copied in the source matter.
|
|
@@ -840,6 +877,12 @@ If `name <String>` is omitted:
|
|
|
840
877
|
|
|
841
878
|
The `shownames` argument controls whether org unit and shared drive names are displayed in queries; additional API calls are required to get the names.
|
|
842
879
|
|
|
880
|
+
Use the `showdetails` option to have the full details of the saved query displayed.
|
|
881
|
+
|
|
882
|
+
Use the `returnidonly` option to have only the saved query ID displayed.
|
|
883
|
+
|
|
884
|
+
Use the `formatjson` option to have only the saved query JSON displayed.
|
|
885
|
+
|
|
843
886
|
## Delete Vault Saved Queries
|
|
844
887
|
```
|
|
845
888
|
gam delete vaultquery <QueryItem> matter <MatterItem>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Print the current version of Gam with details
|
|
4
4
|
```
|
|
5
5
|
gam version
|
|
6
|
-
GAM 7.22.
|
|
6
|
+
GAM 7.22.07 - https://github.com/GAM-team/GAM - pyinstaller
|
|
7
7
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
8
8
|
Python 3.13.7 64-bit final
|
|
9
9
|
macOS Sequoia 15.7 x86_64
|
|
@@ -15,7 +15,7 @@ Time: 2023-06-02T21:10:00-07:00
|
|
|
15
15
|
Print the current version of Gam with details and time offset information
|
|
16
16
|
```
|
|
17
17
|
gam version timeoffset
|
|
18
|
-
GAM 7.22.
|
|
18
|
+
GAM 7.22.07 - https://github.com/GAM-team/GAM - pyinstaller
|
|
19
19
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
20
20
|
Python 3.13.7 64-bit final
|
|
21
21
|
macOS Sequoia 15.7 x86_64
|
|
@@ -27,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second
|
|
|
27
27
|
Print the current version of Gam with extended details and SSL information
|
|
28
28
|
```
|
|
29
29
|
gam version extended
|
|
30
|
-
GAM 7.22.
|
|
30
|
+
GAM 7.22.07 - https://github.com/GAM-team/GAM - pyinstaller
|
|
31
31
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
32
32
|
Python 3.13.7 64-bit final
|
|
33
33
|
macOS Sequoia 15.7 x86_64
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|