gam7 7.23.7__tar.gz → 7.24.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.23.7 → gam7-7.24.0}/PKG-INFO +1 -1
- {gam7-7.23.7 → gam7-7.24.0}/src/GamUpdate.txt +13 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/__init__.py +23 -21
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glapi.py +20 -4
- {gam7-7.23.7 → gam7-7.24.0}/wiki/GamUpdates.md +5 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Vault-Takeout.md +3 -3
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Version-and-Help.md +3 -3
- {gam7-7.23.7 → gam7-7.24.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/actions/decrypt.sh +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/actions/entitlements.plist +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/stale.yml +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/workflows/build.yml +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/.github/workflows/pypi.yml +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/LICENSE +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/README.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/pyproject.toml +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/.gitignore +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/GamCommands.txt +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/LICENSE +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/README.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/callgam.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/__main__.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/__init__.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/auth.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/client.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/core.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/data.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/http.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/http_core.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/service.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/token_store.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/atom/url.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/cacerts.pem +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/service.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam-install.sh +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam-setup.bat +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam.exe.manifest +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam.spec +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/gam.wxs +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/license.rtf +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/tools/hooks/hook-httplib2.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/tools/mkGamRef.py +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/tools/openssl.props +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/tools/ssd.mjs +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/src/version_info.txt.in +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/00scratch.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Addresses.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Administrators.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Alert-Center.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Aliases.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Authorization.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Basic-Items.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Calendars-Access.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Calendars-Events.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Calendars.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Classroom-StudentGroups.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Customer.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Domains-Verification.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Domains.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Drive-Items.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/GAM-Release-Process.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/GAM7-FAQ.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Global-Address-List.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Groups-Membership.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Groups.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Home.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Licenses.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/List-Items.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/List.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Organizational-Units.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Other-Resources.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Permission-Matches.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/README.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Rclone.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Reports.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Reseller.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Resources.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Schemas.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Scripts.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Send-Email.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Shared-Drives.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Sites.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Tag-Replace.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Todrive.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Calendars.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Chat.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Contacts.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Forms.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Meet.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Photo.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Tasks.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Tokens.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users-YouTube.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Users.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/_Sidebar.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/gam.cfg.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Android-Installation.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-BulkOperations.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-CalendarExamples.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Chat-Bot.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Command-Reference-Email.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Command-Reference-Users.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Custom-Schemas.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Data-Transfers.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-DomainVerification.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-ExamplesCSV.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-GAM-options-files.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-GAM3CSVListings.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Home.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-LicenseExamples.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Managing-Admins.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Managing-Devices.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Printers.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-ResellerCommands.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-SecurityExamples.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.23.7 → gam7-7.24.0}/wiki/legacy/l-_Footer.md +0 -0
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
7.24.00
|
|
2
|
+
|
|
3
|
+
If you want to disable a user's service account access to Drive and Sheets but still allow reading command data from Google Docs and Sheets,
|
|
4
|
+
issue the following command and make these settings:
|
|
5
|
+
```
|
|
6
|
+
gam user user@domain.com update serviceaccount
|
|
7
|
+
|
|
8
|
+
[ ] 20) Drive API (supports readonly)
|
|
9
|
+
[*] 21) Drive API - read command data
|
|
10
|
+
[ ] 42) Sheets API (supports readonly)
|
|
11
|
+
[*] 43) Sheets API - read command data
|
|
12
|
+
```
|
|
13
|
+
|
|
1
14
|
7.23.07
|
|
2
15
|
|
|
3
16
|
Fixed bug in `gam print|show admins` where all admin assignments were not displayed when
|
|
@@ -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.24.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
|
|
@@ -3049,9 +3049,10 @@ def getGDocData(gformat):
|
|
|
3049
3049
|
mimeType = GDOC_FORMAT_MIME_TYPES[gformat]
|
|
3050
3050
|
user = getEmailAddress()
|
|
3051
3051
|
fileIdEntity = getDriveFileEntity(queryShortcutsOK=False)
|
|
3052
|
-
|
|
3052
|
+
_, drive = buildGAPIServiceObject(chooseSaAPI(API.DRIVECD, API.DRIVE3), user)
|
|
3053
3053
|
if not drive:
|
|
3054
3054
|
sys.exit(GM.Globals[GM.SYSEXITRC])
|
|
3055
|
+
_, _, jcount = _validateUserGetFileIDs(user, 0, 0, fileIdEntity, drive=drive)
|
|
3055
3056
|
if jcount == 0:
|
|
3056
3057
|
getGDocSheetDataFailedExit([Ent.USER, user], Msg.NO_ENTITIES_FOUND.format(Ent.Singular(Ent.DRIVE_FILE)))
|
|
3057
3058
|
if jcount > 1:
|
|
@@ -3105,14 +3106,15 @@ def getGSheetData():
|
|
|
3105
3106
|
user = getEmailAddress()
|
|
3106
3107
|
fileIdEntity = getDriveFileEntity(queryShortcutsOK=False)
|
|
3107
3108
|
sheetEntity = getSheetEntity(False)
|
|
3108
|
-
user, drive
|
|
3109
|
+
user, drive = buildGAPIServiceObject(chooseSaAPI(API.DRIVECD, API.DRIVE3), user)
|
|
3109
3110
|
if not drive:
|
|
3110
3111
|
sys.exit(GM.Globals[GM.SYSEXITRC])
|
|
3112
|
+
_, _, jcount = _validateUserGetFileIDs(user, 0, 0, fileIdEntity, drive=drive)
|
|
3111
3113
|
if jcount == 0:
|
|
3112
3114
|
getGDocSheetDataFailedExit([Ent.USER, user], Msg.NO_ENTITIES_FOUND.format(Ent.Singular(Ent.DRIVE_FILE)))
|
|
3113
3115
|
if jcount > 1:
|
|
3114
3116
|
getGDocSheetDataFailedExit([Ent.USER, user], Msg.MULTIPLE_ENTITIES_FOUND.format(Ent.Plural(Ent.DRIVE_FILE), jcount, ','.join(fileIdEntity['list'])))
|
|
3115
|
-
_, sheet = buildGAPIServiceObject(API.SHEETS, user)
|
|
3117
|
+
_, sheet = buildGAPIServiceObject(chooseSaAPI(API.SHEETSCD, API.SHEETS), user)
|
|
3116
3118
|
if not sheet:
|
|
3117
3119
|
sys.exit(GM.Globals[GM.SYSEXITRC])
|
|
3118
3120
|
fileId = fileIdEntity['list'][0]
|
|
@@ -4801,8 +4803,6 @@ def defaultSvcAcctScopes():
|
|
|
4801
4803
|
saScopes[scope['api']].extend(scope['scope'])
|
|
4802
4804
|
saScopes[API.DRIVEACTIVITY].append(API.DRIVE_SCOPE)
|
|
4803
4805
|
saScopes[API.DRIVE2] = saScopes[API.DRIVE3]
|
|
4804
|
-
saScopes[API.DRIVETD] = saScopes[API.DRIVE3]
|
|
4805
|
-
saScopes[API.SHEETSTD] = saScopes[API.SHEETS]
|
|
4806
4806
|
return saScopes
|
|
4807
4807
|
|
|
4808
4808
|
def _getSvcAcctData():
|
|
@@ -5609,6 +5609,12 @@ def getSaUser(user):
|
|
|
5609
5609
|
GM.Globals[GM.CURRENT_CLIENT_API_SCOPES] = currentClientAPIScopes
|
|
5610
5610
|
return userEmail
|
|
5611
5611
|
|
|
5612
|
+
def chooseSaAPI(api1, api2):
|
|
5613
|
+
_getSvcAcctData()
|
|
5614
|
+
if api1 in GM.Globals[GM.SVCACCT_SCOPES]:
|
|
5615
|
+
return api1
|
|
5616
|
+
return api2
|
|
5617
|
+
|
|
5612
5618
|
def buildGAPIServiceObject(api, user, i=0, count=0, displayError=True):
|
|
5613
5619
|
userEmail = getSaUser(user)
|
|
5614
5620
|
httpObj = getHttpObj(cache=GM.Globals[GM.CACHE_DIR])
|
|
@@ -8030,7 +8036,7 @@ class CSVPrintFile():
|
|
|
8030
8036
|
|
|
8031
8037
|
def getDriveObject():
|
|
8032
8038
|
if not GC.Values[GC.TODRIVE_CLIENTACCESS]:
|
|
8033
|
-
_, drive = buildGAPIServiceObject(API.DRIVETD, self.todrive['user'])
|
|
8039
|
+
_, drive = buildGAPIServiceObject(chooseSaAPI(API.DRIVETD, API.DRIVE3), self.todrive['user'])
|
|
8034
8040
|
if not drive:
|
|
8035
8041
|
invalidTodriveUserExit(Ent.USER, Msg.NOT_FOUND)
|
|
8036
8042
|
else:
|
|
@@ -8183,7 +8189,7 @@ class CSVPrintFile():
|
|
|
8183
8189
|
if result['mimeType'] != MIMETYPE_GA_SPREADSHEET:
|
|
8184
8190
|
invalidTodriveFileIdExit([], f'{Msg.NOT_A} {Ent.Singular(Ent.SPREADSHEET)}', tdfileidLocation)
|
|
8185
8191
|
if not GC.Values[GC.TODRIVE_CLIENTACCESS]:
|
|
8186
|
-
_, sheet = buildGAPIServiceObject(API.SHEETSTD, self.todrive['user'])
|
|
8192
|
+
_, sheet = buildGAPIServiceObject(chooseSaAPI(API.SHEETSTD, API.SHEETS), self.todrive['user'])
|
|
8187
8193
|
if sheet is None:
|
|
8188
8194
|
invalidTodriveUserExit(Ent.USER, Msg.NOT_FOUND)
|
|
8189
8195
|
else:
|
|
@@ -8696,7 +8702,7 @@ class CSVPrintFile():
|
|
|
8696
8702
|
sheetTitle += tdtime.strftime(self.todrive['sheettimeformat'])
|
|
8697
8703
|
action = Act.Get()
|
|
8698
8704
|
if not GC.Values[GC.TODRIVE_CLIENTACCESS]:
|
|
8699
|
-
user, drive = buildGAPIServiceObject(API.DRIVETD, self.todrive['user'])
|
|
8705
|
+
user, drive = buildGAPIServiceObject(chooseSaAPI(API.DRIVETD, API.DRIVE3), self.todrive['user'])
|
|
8700
8706
|
if not drive:
|
|
8701
8707
|
closeFile(csvFile)
|
|
8702
8708
|
return
|
|
@@ -8729,7 +8735,7 @@ class CSVPrintFile():
|
|
|
8729
8735
|
if result['mimeType'] != MIMETYPE_GA_SPREADSHEET:
|
|
8730
8736
|
todriveCSVErrorExit(entityValueList, f'{Msg.NOT_A} {Ent.Singular(Ent.SPREADSHEET)}')
|
|
8731
8737
|
if not GC.Values[GC.TODRIVE_CLIENTACCESS]:
|
|
8732
|
-
_, sheet = buildGAPIServiceObject(API.SHEETSTD, user)
|
|
8738
|
+
_, sheet = buildGAPIServiceObject(chooseSaAPI(API.SHEETSTD, API.SHEETS), user)
|
|
8733
8739
|
if sheet is None:
|
|
8734
8740
|
return
|
|
8735
8741
|
else:
|
|
@@ -8877,7 +8883,7 @@ class CSVPrintFile():
|
|
|
8877
8883
|
(self.todrive['sheetEntity'] or self.todrive['locale'] or self.todrive['timeZone'] or
|
|
8878
8884
|
self.todrive['sheettitle'] or self.todrive['cellwrap'] or self.todrive['cellnumberformat'])):
|
|
8879
8885
|
if not GC.Values[GC.TODRIVE_CLIENTACCESS]:
|
|
8880
|
-
_, sheet = buildGAPIServiceObject(API.SHEETSTD, user)
|
|
8886
|
+
_, sheet = buildGAPIServiceObject(chooseSaAPI(API.SHEETSTD, API.SHEETS), user)
|
|
8881
8887
|
if sheet is None:
|
|
8882
8888
|
return
|
|
8883
8889
|
else:
|
|
@@ -16263,7 +16269,7 @@ def _showCustomerLicenseInfo(customerInfo, FJQC):
|
|
|
16263
16269
|
while True:
|
|
16264
16270
|
try:
|
|
16265
16271
|
result = callGAPI(rep.customerUsageReports(), 'get',
|
|
16266
|
-
throwReasons=[GAPI.INVALID, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED],
|
|
16272
|
+
throwReasons=[GAPI.INVALID, GAPI.FAILED_PRECONDITION, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED],
|
|
16267
16273
|
date=tryDate, customerId=customerInfo['id'],
|
|
16268
16274
|
fields='warnings,usageReports', parameters=parameters)
|
|
16269
16275
|
usageReports = numUsersAvailable(result)
|
|
@@ -16276,7 +16282,7 @@ def _showCustomerLicenseInfo(customerInfo, FJQC):
|
|
|
16276
16282
|
if fullData == 0:
|
|
16277
16283
|
continue
|
|
16278
16284
|
break
|
|
16279
|
-
except GAPI.invalid as e:
|
|
16285
|
+
except (GAPI.invalid, GAPI.failedPrecondition) as e:
|
|
16280
16286
|
tryDate = _adjustTryDate(str(e), 0, -1, tryDate)
|
|
16281
16287
|
if not tryDate:
|
|
16282
16288
|
return
|
|
@@ -17052,10 +17058,7 @@ def doPrintShowAdmins():
|
|
|
17052
17058
|
if assignedTo not in assignedToIdEmailMap:
|
|
17053
17059
|
emailTypes = ALL_ASSIGNEE_TYPES if admin.get('assigneeType', '') != 'group' else ['group']
|
|
17054
17060
|
assigneeEmail, assigneeType = convertUIDtoEmailAddressWithType(f'uid:{assignedTo}', cd, sal, emailTypes=emailTypes)
|
|
17055
|
-
|
|
17056
|
-
assignedToField = ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP[assigneeType]
|
|
17057
|
-
else:
|
|
17058
|
-
assignedToField = 'assignedToUnknown'
|
|
17061
|
+
assignedToField = ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP.get(assigneeType, 'assignedToUnknown')
|
|
17059
17062
|
if assignedToField == 'assignedToUnknown':
|
|
17060
17063
|
assigneeEmail = True
|
|
17061
17064
|
assignedToIdEmailMap[assignedTo] = {'assignedToField': assignedToField, 'assigneeEmail': assigneeEmail}
|
|
@@ -17084,6 +17087,7 @@ def doPrintShowAdmins():
|
|
|
17084
17087
|
typesSet = set()
|
|
17085
17088
|
kwargs = {}
|
|
17086
17089
|
rolePrivileges = {}
|
|
17090
|
+
allGroupRoles = ','.join(sorted(ALL_GROUP_ROLES))
|
|
17087
17091
|
fieldsList = PRINT_ADMIN_FIELDS+['assigneeType']
|
|
17088
17092
|
assignedToIdEmailMap = {}
|
|
17089
17093
|
while Cmd.ArgumentsRemaining():
|
|
@@ -17098,7 +17102,6 @@ def doPrintShowAdmins():
|
|
|
17098
17102
|
pass
|
|
17099
17103
|
elif myarg == 'recursive':
|
|
17100
17104
|
recursive = True
|
|
17101
|
-
allGroupRoles = ','.join(sorted(ALL_GROUP_ROLES))
|
|
17102
17105
|
memberOptions = initMemberOptions()
|
|
17103
17106
|
memberOptions[MEMBEROPTION_INCLUDEDERIVEDMEMBERSHIP] = True
|
|
17104
17107
|
memberOptions[MEMBEROPTION_DISPLAYMATCH] = False
|
|
@@ -17136,7 +17139,7 @@ def doPrintShowAdmins():
|
|
|
17136
17139
|
return
|
|
17137
17140
|
except GAPI.notFound as e:
|
|
17138
17141
|
entityActionFailedExit([Ent.ADMIN_ROLE, kwargs['roleId']], str(e))
|
|
17139
|
-
except
|
|
17142
|
+
except GAPI.serviceNotAvailable as e:
|
|
17140
17143
|
entityActionFailedExit([Ent.ADMINISTRATOR, userKey], str(e))
|
|
17141
17144
|
except (GAPI.badRequest, GAPI.customerNotFound):
|
|
17142
17145
|
accessErrorExit(cd)
|
|
@@ -17164,7 +17167,6 @@ def doPrintShowAdmins():
|
|
|
17164
17167
|
groupMembers[assignedTo] = membersList[:]
|
|
17165
17168
|
if not _setNamesFromIds(admin, _getPrivileges(admin)):
|
|
17166
17169
|
continue
|
|
17167
|
-
expandedAdmins.append(admin)
|
|
17168
17170
|
if not groupMembers[assignedTo]:
|
|
17169
17171
|
expandedAdmins.append(admin)
|
|
17170
17172
|
continue
|
|
@@ -17203,7 +17205,7 @@ def doPrintShowAdmins():
|
|
|
17203
17205
|
else:
|
|
17204
17206
|
for admin in expandedAdmins:
|
|
17205
17207
|
admin.pop('assigneeType', None)
|
|
17206
|
-
admin.pop('assignedToField')
|
|
17208
|
+
admin.pop('assignedToField', None)
|
|
17207
17209
|
if not oneItemPerRow or 'rolePrivileges' not in admin:
|
|
17208
17210
|
csvPF.WriteRowTitles(flattenJSON(admin))
|
|
17209
17211
|
else:
|
|
@@ -60,6 +60,7 @@ DIRECTORY = 'directory'
|
|
|
60
60
|
DOCS = 'docs'
|
|
61
61
|
DRIVE2 = 'drive2'
|
|
62
62
|
DRIVE3 = 'drive3'
|
|
63
|
+
DRIVECD = 'drivecd'
|
|
63
64
|
DRIVETD = 'drivetd'
|
|
64
65
|
DRIVEACTIVITY = 'driveactivity'
|
|
65
66
|
DRIVELABELS = 'drivelabels'
|
|
@@ -91,6 +92,7 @@ SERVICEACCOUNTLOOKUP = 'serviceaccountlookup'
|
|
|
91
92
|
SERVICEMANAGEMENT = 'servicemanagement'
|
|
92
93
|
SERVICEUSAGE = 'serviceusage'
|
|
93
94
|
SHEETS = 'sheets'
|
|
95
|
+
SHEETSCD = 'sheetscd'
|
|
94
96
|
SHEETSTD = 'sheetstd'
|
|
95
97
|
SITEVERIFICATION = 'siteVerification'
|
|
96
98
|
STORAGE = 'storage'
|
|
@@ -253,7 +255,8 @@ _INFO = {
|
|
|
253
255
|
DOCS: {'name': 'Docs API', 'version': 'v1', 'v2discovery': True},
|
|
254
256
|
DRIVE2: {'name': 'Drive API v2', 'version': 'v2', 'v2discovery': False, 'mappedAPI': 'drive'},
|
|
255
257
|
DRIVE3: {'name': 'Drive API v3', 'version': 'v3', 'v2discovery': False, 'mappedAPI': 'drive'},
|
|
256
|
-
|
|
258
|
+
DRIVECD: {'name': 'Drive API v3 - read command data', 'version': 'v3', 'v2discovery': False, 'mappedAPI': 'drive'},
|
|
259
|
+
DRIVETD: {'name': 'Drive API v3 - write todrive data', 'version': 'v3', 'v2discovery': False, 'mappedAPI': 'drive'},
|
|
257
260
|
DRIVEACTIVITY: {'name': 'Drive Activity API v2', 'version': 'v2', 'v2discovery': True},
|
|
258
261
|
DRIVELABELS_ADMIN: {'name': 'Drive Labels API - Admin', 'version': 'v2', 'v2discovery': True, 'mappedAPI': DRIVELABELS},
|
|
259
262
|
DRIVELABELS_USER: {'name': 'Drive Labels API - User', 'version': 'v2', 'v2discovery': True, 'mappedAPI': DRIVELABELS},
|
|
@@ -283,7 +286,8 @@ _INFO = {
|
|
|
283
286
|
SERVICEMANAGEMENT: {'name': 'Service Management API', 'version': 'v1', 'v2discovery': True},
|
|
284
287
|
SERVICEUSAGE: {'name': 'Service Usage API', 'version': 'v1', 'v2discovery': True},
|
|
285
288
|
SHEETS: {'name': 'Sheets API', 'version': 'v4', 'v2discovery': True},
|
|
286
|
-
|
|
289
|
+
SHEETSCD: {'name': 'Sheets API - read command data', 'version': 'v4', 'v2discovery': True, 'mappedAPI': SHEETS},
|
|
290
|
+
SHEETSTD: {'name': 'Sheets API - write todrive data', 'version': 'v4', 'v2discovery': True, 'mappedAPI': SHEETS},
|
|
287
291
|
SITEVERIFICATION: {'name': 'Site Verification API', 'version': 'v1', 'v2discovery': True},
|
|
288
292
|
STORAGE: {'name': 'Cloud Storage API', 'version': 'v1', 'v2discovery': True},
|
|
289
293
|
STORAGEREAD: {'name': 'Cloud Storage API - Read', 'version': 'v1', 'v2discovery': True, 'mappedAPI': STORAGE},
|
|
@@ -750,9 +754,15 @@ _SVCACCT_SCOPES = [
|
|
|
750
754
|
]
|
|
751
755
|
|
|
752
756
|
_SVCACCT_SPECIAL_SCOPES = [
|
|
753
|
-
{'name': 'Drive API -
|
|
757
|
+
{'name': 'Drive API - read command data',
|
|
758
|
+
'api': DRIVECD,
|
|
759
|
+
'subscopes': [],
|
|
760
|
+
'offByDefault': True,
|
|
761
|
+
'scope': DRIVE_SCOPE+'.readonly'},
|
|
762
|
+
{'name': 'Drive API - write todrive data',
|
|
754
763
|
'api': DRIVETD,
|
|
755
764
|
'subscopes': [],
|
|
765
|
+
'offByDefault': True,
|
|
756
766
|
'scope': DRIVE_SCOPE},
|
|
757
767
|
{'name': 'Gmail API - Full Access - read only',
|
|
758
768
|
'api': GMAIL,
|
|
@@ -764,8 +774,14 @@ _SVCACCT_SPECIAL_SCOPES = [
|
|
|
764
774
|
'subscopes': [],
|
|
765
775
|
'offByDefault': True,
|
|
766
776
|
'scope': GMAIL_SEND_SCOPE},
|
|
767
|
-
{'name': 'Sheets API -
|
|
777
|
+
{'name': 'Sheets API - read command data',
|
|
778
|
+
'api': SHEETSCD,
|
|
779
|
+
'offByDefault': True,
|
|
780
|
+
'subscopes': [],
|
|
781
|
+
'scope': 'https://www.googleapis.com/auth/spreadsheets.readonly'},
|
|
782
|
+
{'name': 'Sheets API - write todrive data',
|
|
768
783
|
'api': SHEETSTD,
|
|
784
|
+
'offByDefault': True,
|
|
769
785
|
'subscopes': [],
|
|
770
786
|
'scope': 'https://www.googleapis.com/auth/spreadsheets'},
|
|
771
787
|
]
|
|
@@ -10,6 +10,11 @@ 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.23.07
|
|
14
|
+
|
|
15
|
+
Fixed bug in `gam print|show admins` where all admin assignments were not displayed when
|
|
16
|
+
`types <AdminAssigneeTypeList>` was not specified, i.e., all assignments should be displayed.
|
|
17
|
+
|
|
13
18
|
### 7.23.06
|
|
14
19
|
|
|
15
20
|
Added option `types <AdminAssigneeTypeList>` to `gam print|show admins` that allows filtering
|
|
@@ -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.23.
|
|
255
|
+
GAM 7.23.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 Tahoe 26.0.1 x86_64
|
|
@@ -990,7 +990,7 @@ writes the credentials into the file oauth2.txt.
|
|
|
990
990
|
C:\>del C:\GAMConfig\oauth2.txt
|
|
991
991
|
C:\>gam version
|
|
992
992
|
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
|
993
|
-
GAM 7.
|
|
993
|
+
GAM 7.23.07 - https://github.com/GAM-team/GAM - pythonsource
|
|
994
994
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
995
995
|
Python 3.13.7 64-bit final
|
|
996
996
|
Windows-10-10.0.17134 AMD64
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
- [Delete Vault Saved Queries](#delete-vault-saved-queries)
|
|
28
28
|
- [Display Vault Saved Queries](#display-vault-saved-queries)
|
|
29
29
|
- [Takeout](#takeout)
|
|
30
|
-
- [Copy a Takeout Bucket](#copy-a-
|
|
30
|
+
- [Copy a Takeout Bucket](#copy-a-takeout-bucket)
|
|
31
31
|
- [Download a Takeout Bucket](#download-a-takeout-bucket)
|
|
32
32
|
|
|
33
33
|
## API documentation
|
|
@@ -848,7 +848,7 @@ gam create vaultquery <MatterItem> [name <String>]
|
|
|
848
848
|
[<JSONData>]
|
|
849
849
|
[shownames]
|
|
850
850
|
[showdetails|returnidonly|formatjson]
|
|
851
|
-
|
|
851
|
+
```
|
|
852
852
|
|
|
853
853
|
If `name <String>` is omitted, the query is named `GAM <corpus> Query - <Time>`
|
|
854
854
|
|
|
@@ -928,7 +928,7 @@ Select fields to display:
|
|
|
928
928
|
|
|
929
929
|
The `shownames` argument controls whether org unit and shared drive names are displayed in queries; additional API calls are required to get the names.
|
|
930
930
|
|
|
931
|
-
|
|
931
|
+
## Takeout
|
|
932
932
|
Many thanks to Jay for these commands and documentation.
|
|
933
933
|
|
|
934
934
|
GAM 6.42.00 and newer support copying and downloading Google Cloud Storage (GCS) buckets generated by [organization-wide Takeout](https://support.google.com/a/answer/100458?hl=en).
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Print the current version of Gam with details
|
|
4
4
|
```
|
|
5
5
|
gam version
|
|
6
|
-
GAM 7.23.
|
|
6
|
+
GAM 7.23.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 Tahoe 26.0.1 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.23.
|
|
18
|
+
GAM 7.23.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 Tahoe 26.0.1 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.23.
|
|
30
|
+
GAM 7.23.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 Tahoe 26.0.1 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
|
|
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
|