gam7 7.18.2__tar.gz → 7.18.4__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.18.2 → gam7-7.18.4}/PKG-INFO +1 -1
- {gam7-7.18.2 → gam7-7.18.4}/src/GamCommands.txt +5 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/GamUpdate.txt +10 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/__init__.py +74 -6
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glapi.py +1 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glclargs.py +2 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glentity.py +6 -2
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glmsgs.py +1 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Alert-Center.md +14 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Basic-Items.md +1 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/GamUpdates.md +9 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Chat.md +1 -1
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Copy-Move.md +21 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Permissions.md +43 -6
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +4 -1
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Version-and-Help.md +7 -7
- {gam7-7.18.2 → gam7-7.18.4}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/actions/decrypt.sh +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/actions/entitlements.plist +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/stale.yml +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/workflows/build.yml +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.github/workflows/pypi.yml +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/.pre-commit-config.yaml +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/LICENSE +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/README.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/pyproject.toml +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/.gitignore +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/LICENSE +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/README.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/cacerts.pem +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/callgam.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/__main__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/auth.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/client.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/core.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/data.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/http.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/http_core.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/service.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/token_store.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/atom/url.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/cacerts.pem +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/service.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/_auth.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/_helpers.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/channel.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/discovery.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/errors.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/http.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/mimeparse.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/model.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/schema.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/googleapiclient/version.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/iso8601/__init__.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/iso8601/iso8601.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam/six.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam-install.sh +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam-setup.bat +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam.exe.manifest +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam.spec +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/gam.wxs +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/license.rtf +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/requirements-dev.txt +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/tools/mkGamRef.py +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/tools/openssl.props +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/src/version_info.txt.in +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/00scratch.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Addresses.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Administrators.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Aliases.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Authorization.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Calendars-Access.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Calendars-Events.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Calendars.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Customer.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Domains-Verification.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Domains.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Drive-Items.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Global-Address-List.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Groups-Membership.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Groups.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Home.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Licenses.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/List-Items.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/List.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Organizational-Units.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Other-Resources.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Permission-Matches.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/README.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Rclone.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Reports.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Reseller.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Resources.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Schemas.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Scripts.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Send-Email.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Shared-Drives.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Sites.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Tag-Replace.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Todrive.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Calendars.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Contacts.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Forms.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Meet.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Photo.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Tasks.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Tokens.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users-YouTube.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Users.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/_Sidebar.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/gam.cfg.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-AdminSettingsExamples.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Android-Installation.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-BulkOperations.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-CalendarExamples.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Chat-Bot.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Command-Reference-Drive.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Command-Reference-Email.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Command-Reference-Groups.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Command-Reference-Users.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Custom-Schemas.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Data-Transfers.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-DomainVerification.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-ExamplesCSV.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-ExamplesOrganizations.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-GAM-options-files.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-GAM3CSVListings.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-GAM3GroupSettings.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-GAM7-FAQ.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-GoogleDriveManagement.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Home.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-LicenseExamples.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Managing-Admins.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Managing-Devices.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-OAuthKeyManagement.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Printers.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-ResellerCommands.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-SecurityExamples.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Use-a-Yubikey.md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.18.2 → gam7-7.18.4}/wiki/l-_Footer.md +0 -0
|
@@ -539,6 +539,7 @@ If an item contains spaces, it should be surrounded by ".
|
|
|
539
539
|
Must match this Python Regular Expression: [a-zA-Z0-9 '"!-]{4,30}
|
|
540
540
|
<PropertyKey> ::= <String>
|
|
541
541
|
<PropertyValue> ::= <String>
|
|
542
|
+
<PubSubTopicName> ::= <String>
|
|
542
543
|
<QueryAlert> ::= <String>
|
|
543
544
|
See: https://developers.google.com/admin-sdk/alertcenter/guides/query-filters
|
|
544
545
|
<QueryBrowser> ::= <String>
|
|
@@ -1540,6 +1541,10 @@ gam show admins
|
|
|
1540
1541
|
|
|
1541
1542
|
# Alert Center
|
|
1542
1543
|
|
|
1544
|
+
gam show alertsettings
|
|
1545
|
+
gam update alertsettings <PubsubTopicName>
|
|
1546
|
+
gam clear alertsettings
|
|
1547
|
+
|
|
1543
1548
|
gam delete alert <AlertID>
|
|
1544
1549
|
gam undelete alert <AlertID>
|
|
1545
1550
|
gam info alert <AlertID> [formatjson]
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
7.18.04
|
|
2
|
+
|
|
3
|
+
Added commands to display/manage Alert Center Pub/Sub notifications.
|
|
4
|
+
* See: https://github.com/GAM-team/GAM/wiki/Alert-Center#configuring-settings
|
|
5
|
+
|
|
6
|
+
7.18.03
|
|
7
|
+
|
|
8
|
+
Updated `gam oauth create` to give a warning if the number of selected scopes will
|
|
9
|
+
probably cause Google to generate a "Something went wrong" error.
|
|
10
|
+
|
|
1
11
|
7.18.02
|
|
2
12
|
|
|
3
13
|
Upgraded to OpenSSL 3.5.2.
|
|
@@ -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.18.
|
|
28
|
+
__version__ = '7.18.04'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -10672,9 +10672,6 @@ Select all default scopes by entering an 's'; yields [*] for default scopes, [ ]
|
|
|
10672
10672
|
Unselect all scopes by entering a 'u'; yields [ ] for all scopes
|
|
10673
10673
|
Exit without changes/authorization by entering an 'e'
|
|
10674
10674
|
Continue to authorization by entering a 'c'
|
|
10675
|
-
'''
|
|
10676
|
-
if clientAccess:
|
|
10677
|
-
oauth2_menu += ''' Note, if all scopes are selected, Google will probably generate an authorization error
|
|
10678
10675
|
'''
|
|
10679
10676
|
menu = oauth2_menu % tuple(range(numScopes))
|
|
10680
10677
|
selectedScopes = ['*'] * numScopes
|
|
@@ -10776,7 +10773,25 @@ Continue to authorization by entering a 'c'
|
|
|
10776
10773
|
break
|
|
10777
10774
|
sys.stdout.write(f'{ERROR_PREFIX}Invalid input "{choice}"\n')
|
|
10778
10775
|
if selection == 'c':
|
|
10779
|
-
|
|
10776
|
+
if clientAccess:
|
|
10777
|
+
numSelectedScopes = 0
|
|
10778
|
+
i = 0
|
|
10779
|
+
for a_scope in scopesList:
|
|
10780
|
+
if selectedScopes[i] == '*':
|
|
10781
|
+
if a_scope['scope']:
|
|
10782
|
+
numSelectedScopes += 1
|
|
10783
|
+
elif selectedScopes[i] != ' ':
|
|
10784
|
+
numSelectedScopes += 1
|
|
10785
|
+
i += 1
|
|
10786
|
+
if numSelectedScopes <= API.NUM_CLIENT_SCOPES_ERROR_LIMIT:
|
|
10787
|
+
break
|
|
10788
|
+
# If number of scopes is > 48 we'll probably get an error
|
|
10789
|
+
writeStdout(Msg.NUM_SELECTED_CLIENT_SCOPES.format(numSelectedScopes, API.NUM_CLIENT_SCOPES_ERROR_LIMIT))
|
|
10790
|
+
choice = readStdin('\nPlease enter c to continue to authorization or any other key to amend selection: ')
|
|
10791
|
+
if choice and choice.lower() == 'c':
|
|
10792
|
+
break
|
|
10793
|
+
else:
|
|
10794
|
+
break
|
|
10780
10795
|
return selectedScopes
|
|
10781
10796
|
|
|
10782
10797
|
def _localhost_to_ip():
|
|
@@ -27066,6 +27081,8 @@ def _getChatMemberEmail(cd, member):
|
|
|
27066
27081
|
if member['member']['type'] == 'HUMAN':
|
|
27067
27082
|
_, memberUid = member['member']['name'].split('/')
|
|
27068
27083
|
member['member']['email'], _ = convertUIDtoEmailAddressWithType(f'uid:{memberUid}', cd, None, emailTypes=['user'])
|
|
27084
|
+
if member['member']['email'].find('@') == -1:
|
|
27085
|
+
member['member']['email'] = 'id:'+member['member']['email']
|
|
27069
27086
|
elif 'groupMember' in member:
|
|
27070
27087
|
_, memberUid = member['groupMember']['name'].split('/')
|
|
27071
27088
|
member['groupMember']['email'], _ = convertUIDtoEmailAddressWithType(f'uid:{memberUid}', cd, None, emailTypes=['group'])
|
|
@@ -37783,6 +37800,54 @@ def doDeleteOrUndeleteAlert():
|
|
|
37783
37800
|
except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied):
|
|
37784
37801
|
userAlertsServiceNotEnabledWarning(user)
|
|
37785
37802
|
|
|
37803
|
+
def _showAlertSettings(settings):
|
|
37804
|
+
notifications = settings.get('notifications', [])
|
|
37805
|
+
count = len(notifications)
|
|
37806
|
+
entityPerformAction([Ent.ALERT_SETTINGS, None])
|
|
37807
|
+
i = 0
|
|
37808
|
+
for notification in notifications:
|
|
37809
|
+
i += 1
|
|
37810
|
+
printEntity([Ent.NOTIFICATION, None], i, count)
|
|
37811
|
+
Ind.Increment()
|
|
37812
|
+
showJSON(None, notification)
|
|
37813
|
+
Ind.Decrement()
|
|
37814
|
+
|
|
37815
|
+
# gam show alertsettings
|
|
37816
|
+
def doShowAlertSettings():
|
|
37817
|
+
checkForExtraneousArguments()
|
|
37818
|
+
user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail())
|
|
37819
|
+
if not ac:
|
|
37820
|
+
return
|
|
37821
|
+
try:
|
|
37822
|
+
settings = callGAPI(ac.v1beta1(), 'getSettings',
|
|
37823
|
+
throwReasons=GAPI.ALERT_THROW_REASONS)
|
|
37824
|
+
_showAlertSettings(settings)
|
|
37825
|
+
except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied):
|
|
37826
|
+
userAlertsServiceNotEnabledWarning(user)
|
|
37827
|
+
|
|
37828
|
+
# gam update alertsettings <PubsubTopicName>
|
|
37829
|
+
def doUpdateAlertSettings(clear=False):
|
|
37830
|
+
if not clear:
|
|
37831
|
+
body = {'notifications':
|
|
37832
|
+
[{'cloudPubsubTopic': {'topicName': getString(Cmd.OB_PUBSUB_TOPIC_NAME)}}]}
|
|
37833
|
+
else:
|
|
37834
|
+
body = {'notifications': []}
|
|
37835
|
+
checkForExtraneousArguments()
|
|
37836
|
+
user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail())
|
|
37837
|
+
if not ac:
|
|
37838
|
+
return
|
|
37839
|
+
try:
|
|
37840
|
+
settings = callGAPI(ac.v1beta1(), 'updateSettings',
|
|
37841
|
+
throwReasons=GAPI.ALERT_THROW_REASONS,
|
|
37842
|
+
body=body)
|
|
37843
|
+
_showAlertSettings(settings)
|
|
37844
|
+
except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied):
|
|
37845
|
+
userAlertsServiceNotEnabledWarning(user)
|
|
37846
|
+
|
|
37847
|
+
# gam clear alertsettings
|
|
37848
|
+
def doClearAlertSettings():
|
|
37849
|
+
doUpdateAlertSettings(clear=True)
|
|
37850
|
+
|
|
37786
37851
|
ALERT_TIME_OBJECTS = {'createTime', 'startTime', 'endTime'}
|
|
37787
37852
|
|
|
37788
37853
|
def _showAlert(alert, FJQC, i=0, count=0):
|
|
@@ -77170,7 +77235,8 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
77170
77235
|
),
|
|
77171
77236
|
'clear':
|
|
77172
77237
|
(Act.CLEAR,
|
|
77173
|
-
{Cmd.
|
|
77238
|
+
{Cmd.ARG_ALERTSETTINGS: doClearAlertSettings,
|
|
77239
|
+
Cmd.ARG_CONTACT: doClearDomainContacts,
|
|
77174
77240
|
}
|
|
77175
77241
|
),
|
|
77176
77242
|
'close':
|
|
@@ -77491,6 +77557,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
77491
77557
|
Cmd.ARG_ADMIN: doPrintShowAdmins,
|
|
77492
77558
|
Cmd.ARG_ALERT: doPrintShowAlerts,
|
|
77493
77559
|
Cmd.ARG_ALERTFEEDBACK: doPrintShowAlertFeedback,
|
|
77560
|
+
Cmd.ARG_ALERTSETTINGS: doShowAlertSettings,
|
|
77494
77561
|
Cmd.ARG_BROWSER: doPrintShowBrowsers,
|
|
77495
77562
|
Cmd.ARG_BROWSERTOKEN: doPrintShowBrowserTokens,
|
|
77496
77563
|
Cmd.ARG_BUILDING: doPrintShowBuildings,
|
|
@@ -77583,6 +77650,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
77583
77650
|
'update':
|
|
77584
77651
|
(Act.UPDATE,
|
|
77585
77652
|
{Cmd.ARG_ADMINROLE: doCreateUpdateAdminRoles,
|
|
77653
|
+
Cmd.ARG_ALERTSETTINGS: doUpdateAlertSettings,
|
|
77586
77654
|
Cmd.ARG_ALIAS: doCreateUpdateAliases,
|
|
77587
77655
|
Cmd.ARG_BROWSER: doUpdateBrowsers,
|
|
77588
77656
|
Cmd.ARG_BUILDING: doUpdateBuilding,
|
|
@@ -119,6 +119,7 @@ USERINFO_PROFILE_SCOPE = 'https://www.googleapis.com/auth/userinfo.profile' # pr
|
|
|
119
119
|
VAULT_SCOPES = ['https://www.googleapis.com/auth/ediscovery', 'https://www.googleapis.com/auth/ediscovery.readonly']
|
|
120
120
|
REQUIRED_SCOPES = [USERINFO_EMAIL_SCOPE, USERINFO_PROFILE_SCOPE]
|
|
121
121
|
REQUIRED_SCOPES_SET = set(REQUIRED_SCOPES)
|
|
122
|
+
NUM_CLIENT_SCOPES_ERROR_LIMIT = 48
|
|
122
123
|
#
|
|
123
124
|
JWT_APIS = {
|
|
124
125
|
ACCESSCONTEXTMANAGER: [CLOUD_PLATFORM_SCOPE],
|
|
@@ -411,6 +411,7 @@ class GamCLArgs():
|
|
|
411
411
|
ARG_ALERTFEEDBACK = 'alertfeedback'
|
|
412
412
|
ARG_ALERTFEEDBACKS = 'alertfeedbacks'
|
|
413
413
|
ARG_ALERTSFEEDBACK = 'alertsfeedback'
|
|
414
|
+
ARG_ALERTSETTINGS = 'alertsettings'
|
|
414
415
|
ARG_ALIAS = 'alias'
|
|
415
416
|
ARG_ALIASES = 'aliases'
|
|
416
417
|
ARG_ALIASDOMAIN = 'aliasdomain'
|
|
@@ -1013,6 +1014,7 @@ class GamCLArgs():
|
|
|
1013
1014
|
OB_PROJECT_ID_ENTITY = 'ProjectIDEntity'
|
|
1014
1015
|
OB_PROPERTY_KEY = 'PropertyKey'
|
|
1015
1016
|
OB_PROPERTY_VALUE = 'PropertyValue'
|
|
1017
|
+
OB_PUBSUB_TOPIC_NAME = 'PubSubTopicName'
|
|
1016
1018
|
OB_QUERY = 'Query'
|
|
1017
1019
|
OB_QUERY_ITEM = 'QueryItem'
|
|
1018
1020
|
OB_QUERY_LIST = 'QueryList'
|
|
@@ -54,6 +54,7 @@ class GamEntity():
|
|
|
54
54
|
ALERT_ID = 'alri'
|
|
55
55
|
ALERT_FEEDBACK = 'alfb'
|
|
56
56
|
ALERT_FEEDBACK_ID = 'alfi'
|
|
57
|
+
ALERT_SETTINGS = 'alrs'
|
|
57
58
|
ALIAS = 'alia'
|
|
58
59
|
ALIAS_EMAIL = 'alie'
|
|
59
60
|
ALIAS_TARGET = 'alit'
|
|
@@ -285,10 +286,11 @@ class GamEntity():
|
|
|
285
286
|
MIMETYPE = 'mime'
|
|
286
287
|
MOBILE_DEVICE = 'mobi'
|
|
287
288
|
NAME = 'name'
|
|
289
|
+
NONEDITABLE_ALIAS = 'neal'
|
|
288
290
|
NOTE = 'note'
|
|
289
291
|
NOTE_ACL = 'nota'
|
|
290
292
|
NOTES_ACLS = 'naac'
|
|
291
|
-
|
|
293
|
+
NOTIFICATION = 'noti'
|
|
292
294
|
OAUTH2_TXT_FILE = 'oaut'
|
|
293
295
|
OAUTH2SERVICE_JSON_FILE = 'oau2'
|
|
294
296
|
ORGANIZATIONAL_UNIT = 'orgu'
|
|
@@ -414,6 +416,7 @@ class GamEntity():
|
|
|
414
416
|
ALERT_ID: ['Alert IDs', 'Alert ID'],
|
|
415
417
|
ALERT_FEEDBACK: ['Alert Feedbacks', 'Alert Feedback'],
|
|
416
418
|
ALERT_FEEDBACK_ID: ['Alert Feedback IDs', 'Alert Feedback ID'],
|
|
419
|
+
ALERT_SETTINGS: ['Alert Settings', 'Alert Settings'],
|
|
417
420
|
ALIAS: ['Aliases', 'Alias'],
|
|
418
421
|
ALIAS_EMAIL: ['Alias Emails', 'Alias Email'],
|
|
419
422
|
ALIAS_TARGET: ['Alias Targets', 'Alias Target'],
|
|
@@ -645,10 +648,11 @@ class GamEntity():
|
|
|
645
648
|
MIMETYPE: ['MIME Types', 'MIME Type'],
|
|
646
649
|
MOBILE_DEVICE: ['Mobile Devices', 'Mobile Device'],
|
|
647
650
|
NAME: ['Names', 'Name'],
|
|
651
|
+
NONEDITABLE_ALIAS: ['Non-Editable Aliases', 'Non-Editable Alias'],
|
|
648
652
|
NOTE: ['Notes', 'Note'],
|
|
649
653
|
NOTE_ACL: ['Note ACLs', 'Note ACL'],
|
|
650
654
|
NOTES_ACLS: ["'Note's ACLs", "Note's ACLs"],
|
|
651
|
-
|
|
655
|
+
NOTIFICATION: ['Notifications', 'Notification'],
|
|
652
656
|
OAUTH2_TXT_FILE: ['Client OAuth2 File', 'Client OAuth2 File'],
|
|
653
657
|
OAUTH2SERVICE_JSON_FILE: ['Service Account OAuth2 File', 'Service Account OAuth2 File'],
|
|
654
658
|
ORGANIZATIONAL_UNIT: ['Organizational Units', 'Organizational Unit'],
|
|
@@ -433,6 +433,7 @@ NO_SVCACCT_ACCESS_ALLOWED = 'No Service Account Access allowed'
|
|
|
433
433
|
NO_TRANSFER_LACK_OF_DISK_SPACE = 'Transfer not performed due to lack of target drive space.'
|
|
434
434
|
NO_USAGE_PARAMETERS_DATA_AVAILABLE = 'No usage parameters data available.'
|
|
435
435
|
NO_USER_COUNTS_DATA_AVAILABLE = 'No User counts data available.'
|
|
436
|
+
NUM_SELECTED_CLIENT_SCOPES = '\n{0} scopes are selected, if more than {1} scopes are selected, Google will probably generate a "Something went wrong" error\n'
|
|
436
437
|
OAUTH2_GO_TO_LINK_MESSAGE = """
|
|
437
438
|
Go to the following link in a browser on this computer or on another computer:
|
|
438
439
|
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- [Display alerts](#display-alerts)
|
|
8
8
|
- [Manage alert feedback](#manage-alert-feedback)
|
|
9
9
|
- [Display alert feedback](#display-alert-feedback)
|
|
10
|
+
- [Configuring settings](#configuring-settings)
|
|
10
11
|
|
|
11
12
|
## API documentation
|
|
12
13
|
* [Alert Center API](https://developers.google.com/admin-sdk/alertcenter/reference/rest/)
|
|
@@ -18,6 +19,7 @@
|
|
|
18
19
|
## Definitions
|
|
19
20
|
```
|
|
20
21
|
<AlertID> ::= <String>
|
|
22
|
+
<PubSubTopicName> ::= <String>
|
|
21
23
|
<QueryAlert> ::= <String> See: https://developers.google.com/admin-sdk/alertcenter/guides/query-filters
|
|
22
24
|
```
|
|
23
25
|
## Introduction
|
|
@@ -95,3 +97,15 @@ the quote character itself, the column delimiter (comma by default) and new-line
|
|
|
95
97
|
When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output.
|
|
96
98
|
The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
|
|
97
99
|
`quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
|
|
100
|
+
|
|
101
|
+
## Configuring settings
|
|
102
|
+
|
|
103
|
+
Alert Center can be configured to send notifications to a Google Cloud Pub/Sub topic, but it first requires configuration.
|
|
104
|
+
* See https://developers.google.com/workspace/admin/alertcenter/guides/notifications for information.
|
|
105
|
+
|
|
106
|
+
Gam can be used to display or modify the settings:
|
|
107
|
+
```
|
|
108
|
+
gam show alertsettings
|
|
109
|
+
gam update alertsettings <PubSubTopicName>
|
|
110
|
+
gam clear alertsettings
|
|
111
|
+
```
|
|
@@ -436,6 +436,7 @@
|
|
|
436
436
|
Must match this Python Regular Expression: [a-zA-Z0-9 '"!-]{4,30}
|
|
437
437
|
<PropertyKey> ::= <String>
|
|
438
438
|
<PropertyValue> ::= <String>
|
|
439
|
+
<PubSubTopicName> ::= <String>
|
|
439
440
|
<QueryAlert> ::= <String>
|
|
440
441
|
See: https://developers.google.com/admin-sdk/alertcenter/guides/query-filters
|
|
441
442
|
<QueryBrowser> ::= <String>
|
|
@@ -10,6 +10,15 @@ 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.18.03
|
|
14
|
+
|
|
15
|
+
Updated `gam oauth create` to give a warning if the number of selected scopes will
|
|
16
|
+
probably cause Google to generate a "Something went wrong" error.
|
|
17
|
+
|
|
18
|
+
### 7.18.02
|
|
19
|
+
|
|
20
|
+
Upgraded to OpenSSL 3.5.2.
|
|
21
|
+
|
|
13
22
|
### 7.18.01
|
|
14
23
|
|
|
15
24
|
Added option `nosystemroles` to `gam print|show adminroles` that causes GAM
|
|
@@ -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.18.
|
|
255
|
+
GAM 7.18.03 - https://github.com/GAM-team/GAM - pyinstaller
|
|
256
256
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
257
257
|
Python 3.13.5 64-bit final
|
|
258
258
|
MacOS Sequoia 15.6 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.18.
|
|
993
|
+
GAM 7.18.03 - https://github.com/GAM-team/GAM - pythonsource
|
|
994
994
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
995
995
|
Python 3.13.5 64-bit final
|
|
996
996
|
Windows-10-10.0.17134 AMD64
|
|
@@ -464,7 +464,7 @@ gam <UserItem> delete chatmember asadmin <ChatSpace>
|
|
|
464
464
|
|
|
465
465
|
Delete members from a chat space by specifying chatmember names, asadmin
|
|
466
466
|
```
|
|
467
|
-
gam <UserItem> remove chatmember members
|
|
467
|
+
gam <UserItem> remove chatmember asadmin members <ChatMemberList>
|
|
468
468
|
```
|
|
469
469
|
|
|
470
470
|
### Update a members role in a user's chat space
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
- [Move with ownership change](#move-with-ownership-change)
|
|
14
14
|
- [Complex moves](#complex-moves)
|
|
15
15
|
- [Move content of a Shared Drive to another Shared Drive](#move-content-of-a-shared-drive-to-another-shared-drive)
|
|
16
|
+
- [Move content of a Shared Drive to a My Drive](#move-content-of-a-shared-drive-to-a-my-drive)
|
|
16
17
|
|
|
17
18
|
## API documentation
|
|
18
19
|
* [Drive API - Files](https://developers.google.com/drive/api/v3/reference/files)
|
|
@@ -673,8 +674,10 @@ gam user user@domain.com move drivefile teamdriveid 0AC_1AB teamdriveparentid 0A
|
|
|
673
674
|
```
|
|
674
675
|
|
|
675
676
|
If you want the source Shared Drive with ID 0AC_1AB to be contained in a top level folder of the target Shared Drive with ID 0AE_9ZX, omit the `mergewithparent` argument.
|
|
677
|
+
The folder on the target Shared Drive will have the same name as the name of the source Shared Drive; use the `newfilename <DriveFileName>` to use a different name.
|
|
676
678
|
```
|
|
677
679
|
gam user user@domain.com move drivefile teamdriveid 0AC_1AB teamdriveparentid 0AE_9ZX
|
|
680
|
+
gam user user@domain.com move drivefile teamdriveid 0AC_1AB teamdriveparentid 0AE_9ZX newfilename "Copy of source Shared Drive"
|
|
678
681
|
```
|
|
679
682
|
|
|
680
683
|
### Inter-workspace moves
|
|
@@ -692,3 +695,21 @@ User: user@domaina.com, Move 1 Drive File/Folder
|
|
|
692
695
|
User: user@domaina.com, Drive Folder: Shared Drive A(<SharedDriveAID>), Retained
|
|
693
696
|
```
|
|
694
697
|
To get this to work, you must check `Allow people outside of Domain A to access files` on Shared Drive A in domaina.com
|
|
698
|
+
|
|
699
|
+
## Move content of a Shared Drive to a My Drive
|
|
700
|
+
Suppose you have a Shared Drive with ID 0AC_1AB with multiple files and folders, and want to move all of its content to the root of a My Drive.
|
|
701
|
+
|
|
702
|
+
The following command will change the parents of the top level files and folders from 0AC_1AB to the root of the My Drive; the sub files and folders will move along with their top level folder.
|
|
703
|
+
|
|
704
|
+
* No permissions are processed.
|
|
705
|
+
```
|
|
706
|
+
gam user user@domain.com move drivefile teamdriveid 0AC_1AB parentid root mergewithparent
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
If you want the contents of Shared Drive with ID 0AC_1AB to be contained in a top level folder of the My Drive, omit the `mergewithparent` argument.
|
|
710
|
+
The folder on the My Drive will have the same name as the name of the Shared Drive; use the `newfilename <DriveFileName>` to use a different name.
|
|
711
|
+
```
|
|
712
|
+
gam user user@domain.com move drivefile teamdriveid 0AC_1AB parentid root
|
|
713
|
+
gam user user@domain.com move drivefile teamdriveid 0AC_1AB parentid root newfilename "Copy of Shared Drive"
|
|
714
|
+
```
|
|
715
|
+
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
- [Change shares to User1 to shares to User2](#change-shares-to-user1-to-shares-to-user2)
|
|
12
12
|
- [Map All ACLs from an old domain to a new domain](#map-all-acls-from-an-old-domain-to-a-new-domain)
|
|
13
13
|
- [Remove all ACLs for a specific user or group email address](#remove-all-ACLs-for-a-specific-user-or-group-email-address)
|
|
14
|
+
- [Remove anyone-anyoneWithLink ACLs](#remove-anyone-anyonewithlink-acls)
|
|
14
15
|
|
|
15
16
|
## API documentation
|
|
16
17
|
* [Drive API - Permissions](https://developers.google.com/drive/api/v3/reference/permissions)
|
|
@@ -391,15 +392,15 @@ gam config csv_input_row_filter "permission.type:regex:domain" redirect stdout .
|
|
|
391
392
|
### My Drives
|
|
392
393
|
|
|
393
394
|
Get My Drive ACLs sharing to that email address:
|
|
394
|
-
* Replace
|
|
395
|
-
* Replace email@domain.com with actual address
|
|
395
|
+
* Replace `<Type>` with user or group
|
|
396
|
+
* Replace `email@domain.com` with actual email address
|
|
396
397
|
```
|
|
397
398
|
gam config auto_batch_min 1 num_threads 20 redirect csv ./MyDriveShares.csv multiprocess redirect stderr - multiprocess all users print filelist fields id,name,mimetype,basicpermissions query "'email@domain.com' in readers or 'email@domain.com' in writers" pm notrole owner type <Type> emailaddress email@domain.com em pmfilter oneitemperrow
|
|
398
399
|
```
|
|
399
400
|
|
|
400
401
|
Delete those My Drive ACLs.
|
|
401
402
|
```
|
|
402
|
-
gam config num_threads 20 redirect stdout ./DeleteMyDriveShares.txt multiprocess redirect stderr stdout csv MyDriveShares.csv gam user "~Owner" delete drivefleacl "~id" "id:~~
|
|
403
|
+
gam config num_threads 20 redirect stdout ./DeleteMyDriveShares.txt multiprocess redirect stderr stdout csv MyDriveShares.csv gam user "~Owner" delete drivefleacl "~id" "id:~~permission.id~~"
|
|
403
404
|
```
|
|
404
405
|
|
|
405
406
|
Add My Drive ACLs with a different email address and the same role.
|
|
@@ -411,17 +412,18 @@ gam config num_threads 20 redirect stdout ./AddMyDriveShares.txt multiprocess re
|
|
|
411
412
|
Get an organizer for each Shared Drive
|
|
412
413
|
```
|
|
413
414
|
gam redirect csv ./SharedDriveOrganizers.csv print shareddriveorganizers
|
|
415
|
+
```
|
|
414
416
|
|
|
415
417
|
Get Shared Drive ACLs explicitly sharing to that email address:
|
|
416
|
-
* Replace
|
|
417
|
-
* Replace email@domain.com with actual address
|
|
418
|
+
* Replace `<Type>` with user or group
|
|
419
|
+
* Replace `email@domain.com` with actual email address
|
|
418
420
|
```
|
|
419
421
|
gam config num_threads 20 csv_input_row_filter "organizers:regex:^.+$" redirect csv ./SharedDriveShares.csv multiprocess redirect stderr - multiprocess csv SharedDriveOrganizers.csv gam user "~organizers" print filelist select shareddriveid "~id" fields id,name,mimetype,basicpermissions,driveid showdrivename query "'email@domain.com' in readers or 'email@domain.com' in writers" pm type <Type> emailaddress email@domain.com inherited false em pmfilter oneitemperrow
|
|
420
422
|
```
|
|
421
423
|
|
|
422
424
|
Delete those Shared Drive ACLs.
|
|
423
425
|
```
|
|
424
|
-
gam config num_threads 20 redirect stdout ./DeleteSharedDriveShares.txt multiprocess redirect stderr stdout csv SharedDriveShares.csv gam user "~Owner" delete drivefleacl "~id" "id:~~
|
|
426
|
+
gam config num_threads 20 redirect stdout ./DeleteSharedDriveShares.txt multiprocess redirect stderr stdout csv SharedDriveShares.csv gam user "~Owner" delete drivefleacl "~id" "id:~~permission.id~~"
|
|
425
427
|
```
|
|
426
428
|
|
|
427
429
|
Add Shared Drive ACLs with a different email address and the same role.
|
|
@@ -429,4 +431,39 @@ Add Shared Drive ACLs with a different email address and the same role.
|
|
|
429
431
|
gam config num_threads 20 redirect stdout ./ReplaceSharedDriveShares.txt multiprocess redirect stderr stdout csv SharedDriveShares.csv gam user "~Owner" add drivefleacl "~id" "~permission.type" newemail@domain.rom role "~permission.role"
|
|
430
432
|
```
|
|
431
433
|
|
|
434
|
+
## Remove anyone-anyoneWithLink ACLs
|
|
435
|
+
|
|
436
|
+
Here are the queries that will be used in these commands:
|
|
437
|
+
* anyone - query "visibility='anyoneCanFind'"
|
|
438
|
+
* anyoneWithLink - query "visibility='anyoneWithLink'"
|
|
439
|
+
* both - query "(visibility='anyoneCanFind' or visibility='anyoneWithLink')"
|
|
440
|
+
|
|
441
|
+
### My Drives
|
|
442
|
+
|
|
443
|
+
Get My Drive anyone/anyoneWithLink ACLs
|
|
444
|
+
```
|
|
445
|
+
gam config auto_batch_min 1 num_threads 20 redirect csv ./MyDriveShares.csv multiprocess redirect stderr - multiprocess all users print filelist fields id,name,mimetype,basicpermissions <Query> pm type anyone em pmfilter oneitemperrow
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
Delete those My Drive ACLs.
|
|
449
|
+
```
|
|
450
|
+
gam config num_threads 20 redirect stdout ./DeleteMyDriveShares.txt multiprocess redirect stderr stdout csv MyDriveShares.csv gam user "~Owner" delete drivefleacl "~id" "id:~~permission.id~~"
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
### Shared Drives
|
|
454
|
+
Get an organizer for each Shared Drive
|
|
455
|
+
```
|
|
456
|
+
gam redirect csv ./SharedDriveOrganizers.csv print shareddriveorganizers
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
Get Shared Drive anyone/anyoneWithLink ACLs
|
|
460
|
+
```
|
|
461
|
+
gam config num_threads 20 csv_input_row_filter "organizers:regex:^.+$" redirect csv ./SharedDriveShares.csv multiprocess redirect stderr - multiprocess csv SharedDriveOrganizers.csv gam user "~organizers" print filelist select shareddriveid "~id" fields id,name,mimetype,basicpermissions,driveid showdrivename <Query> pm type anyone inherited false em pmfilter oneitemperrow
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
Delete those Shared Drive ACLs.
|
|
465
|
+
```
|
|
466
|
+
gam config num_threads 20 redirect stdout ./DeleteSharedDriveShares.txt multiprocess redirect stderr stdout csv SharedDriveShares.csv gam user "~Owner" delete drivefleacl "~id" "id:~~permission.id~~"
|
|
467
|
+
```
|
|
468
|
+
|
|
432
469
|
|
|
@@ -16,7 +16,10 @@ Delegated admin service accounts (DASA) are regular [GCP service accounts](https
|
|
|
16
16
|
|
|
17
17
|
## Disadvantages
|
|
18
18
|
* DASA accounts can only be delegated admins. [If a task requires super admin rights to perform](https://support.google.com/a/answer/2405986#:~:text=Only%20super%20administrators%20can...), DASA accounts won’t be able to do it.
|
|
19
|
-
Not all Google Admin APIs work with DASA right
|
|
19
|
+
Not all Google Admin APIs work with DASA right no:
|
|
20
|
+
* Google Vault API calls will fail with a DASA account
|
|
21
|
+
* Classroom API calls do not return data
|
|
22
|
+
* Cloud Identity Policies are not available
|
|
20
23
|
* DASA is a delegated admin and can make Workspace / Cloud Identity admin API calls, it does not replace domain-wide delegation (DwD) when using GAM7 commands that interact with Gmail, Drive and Calendar user data.
|
|
21
24
|
* GAM7 support for DASA is still experimental and some things may fail. Please report your findings to the [GAM group](https://groups.google.com/g/google-apps-manager).
|
|
22
25
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Print the current version of Gam with details
|
|
4
4
|
```
|
|
5
5
|
gam version
|
|
6
|
-
GAM 7.18.
|
|
6
|
+
GAM 7.18.03 - https://github.com/GAM-team/GAM - pyinstaller
|
|
7
7
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
8
8
|
Python 3.13.5 64-bit final
|
|
9
9
|
MacOS Sequoia 15.6 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.18.
|
|
18
|
+
GAM 7.18.03 - https://github.com/GAM-team/GAM - pyinstaller
|
|
19
19
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
20
20
|
Python 3.13.5 64-bit final
|
|
21
21
|
MacOS Sequoia 15.6 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.18.
|
|
30
|
+
GAM 7.18.03 - https://github.com/GAM-team/GAM - pyinstaller
|
|
31
31
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
32
32
|
Python 3.13.5 64-bit final
|
|
33
33
|
MacOS Sequoia 15.6 x86_64
|
|
@@ -35,7 +35,7 @@ Path: /Users/Admin/bin/gam7
|
|
|
35
35
|
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
|
36
36
|
Time: 2023-06-02T21:10:00-07:00
|
|
37
37
|
Your system time differs from admin.googleapis.com by less than 1 second
|
|
38
|
-
OpenSSL 3.
|
|
38
|
+
OpenSSL 3.5.2 5 ASug 2025
|
|
39
39
|
cryptography 43.0.3
|
|
40
40
|
filelock 3.16.1
|
|
41
41
|
google-api-python-client 2.149.0
|
|
@@ -64,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64
|
|
|
64
64
|
Path: /Users/Admin/bin/gam7
|
|
65
65
|
Version Check:
|
|
66
66
|
Current: 5.35.08
|
|
67
|
-
Latest: 7.18.
|
|
67
|
+
Latest: 7.18.03
|
|
68
68
|
echo $?
|
|
69
69
|
1
|
|
70
70
|
```
|
|
@@ -72,7 +72,7 @@ echo $?
|
|
|
72
72
|
Print the current version number without details
|
|
73
73
|
```
|
|
74
74
|
gam version simple
|
|
75
|
-
7.18.
|
|
75
|
+
7.18.03
|
|
76
76
|
```
|
|
77
77
|
In Linux/MacOS you can do:
|
|
78
78
|
```
|
|
@@ -82,7 +82,7 @@ echo $VER
|
|
|
82
82
|
Print the current version of Gam and address of this Wiki
|
|
83
83
|
```
|
|
84
84
|
gam help
|
|
85
|
-
GAM 7.18.
|
|
85
|
+
GAM 7.18.03 - https://github.com/GAM-team/GAM
|
|
86
86
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
87
87
|
Python 3.13.5 64-bit final
|
|
88
88
|
MacOS Sequoia 15.6 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
|