gam7 7.20.0__tar.gz → 7.20.2__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.20.0 → gam7-7.20.2}/PKG-INFO +1 -1
- {gam7-7.20.0 → gam7-7.20.2}/src/GamCommands.txt +9 -7
- {gam7-7.20.0 → gam7-7.20.2}/src/GamUpdate.txt +13 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/__init__.py +59 -31
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glclargs.py +1 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Classroom-StudentGroups.md +61 -3
- {gam7-7.20.0 → gam7-7.20.2}/wiki/GamUpdates.md +12 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Chat.md +22 -5
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Version-and-Help.md +6 -6
- {gam7-7.20.0 → gam7-7.20.2}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/actions/decrypt.sh +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/actions/entitlements.plist +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/stale.yml +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/workflows/build.yml +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.github/workflows/pypi.yml +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/.pre-commit-config.yaml +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/LICENSE +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/README.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/pyproject.toml +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/.gitignore +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/LICENSE +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/README.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/cacerts.pem +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/callgam.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/__main__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/auth.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/client.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/core.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/data.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/http.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/http_core.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/service.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/token_store.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/atom/url.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/cacerts.pem +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/service.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/_auth.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/_helpers.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/channel.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/discovery.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/errors.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/http.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/mimeparse.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/model.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/schema.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/googleapiclient/version.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/iso8601/__init__.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/iso8601/iso8601.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam/six.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam-install.sh +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam-setup.bat +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam.exe.manifest +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam.spec +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/gam.wxs +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/license.rtf +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/requirements-dev.txt +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/tools/mkGamRef.py +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/tools/openssl.props +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/tools/ssd.mjs +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/src/version_info.txt.in +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/00scratch.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Addresses.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Administrators.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Alert-Center.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Aliases.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Authorization.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Basic-Items.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Calendars-Access.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Calendars-Events.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Calendars.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Customer.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Domains-Verification.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Domains.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Drive-Items.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Global-Address-List.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Groups-Membership.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Groups.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Home.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Licenses.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/List-Items.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/List.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Organizational-Units.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Other-Resources.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Permission-Matches.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/README.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Rclone.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Reports.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Reseller.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Resources.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Schemas.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Scripts.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Send-Email.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Shared-Drives.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Sites.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Tag-Replace.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Todrive.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Calendars.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Contacts.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Forms.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Meet.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Photo.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Tasks.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Tokens.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users-YouTube.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Users.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/_Sidebar.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/gam.cfg.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-AdminSettingsExamples.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Android-Installation.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-BulkOperations.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-CalendarExamples.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Chat-Bot.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Command-Reference-Drive.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Command-Reference-Email.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Command-Reference-Groups.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Command-Reference-Users.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Custom-Schemas.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Data-Transfers.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-DomainVerification.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-ExamplesCSV.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-ExamplesOrganizations.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-GAM-options-files.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-GAM3CSVListings.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-GAM3GroupSettings.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-GAM7-FAQ.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-GoogleDriveManagement.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Home.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-LicenseExamples.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Managing-Admins.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Managing-Devices.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-OAuthKeyManagement.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Printers.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-ResellerCommands.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-SecurityExamples.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Use-a-Yubikey.md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.20.0 → gam7-7.20.2}/wiki/l-_Footer.md +0 -0
|
@@ -1246,6 +1246,8 @@ Specify a collection of items by directly specifying them; the item type is dete
|
|
|
1246
1246
|
<SiteACLScopeList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
|
1247
1247
|
<SiteEntity> ::=
|
|
1248
1248
|
<SiteList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
|
1249
|
+
<StringEntity> ::=
|
|
1250
|
+
<StringList> | <FileSelector> | <CSVFileSelector>
|
|
1249
1251
|
<StudentGroupEntity> ::=
|
|
1250
1252
|
<StudentGroupIDList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector>
|
|
1251
1253
|
<TagManagerAccountPathEntity> ::=
|
|
@@ -2000,10 +2002,10 @@ gam info chatspace <ChatSpace>
|
|
|
2000
2002
|
[fields <ChatSpaceFieldNameList>]
|
|
2001
2003
|
[formatjson]
|
|
2002
2004
|
gam show chatspaces
|
|
2003
|
-
[fields <ChatSpaceFieldNameList>]
|
|
2005
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
2004
2006
|
[formatjson]
|
|
2005
2007
|
gam print chatspaces [todrive <ToDriveAttribute>*]
|
|
2006
|
-
[fields <ChatSpaceFieldNameList>]
|
|
2008
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
2007
2009
|
[formatjson [quotechar <Character>]]
|
|
2008
2010
|
|
|
2009
2011
|
<ChatMemberFieldName> ::=
|
|
@@ -3396,7 +3398,7 @@ gam print course-works [todrive <ToDriveAttribute>*]
|
|
|
3396
3398
|
|
|
3397
3399
|
gam create course-studentgroups
|
|
3398
3400
|
(course|class <CourseEntity>)*|([teacher <UserItem>] [student <UserItem>] [states <CourseStateList>])
|
|
3399
|
-
title <String>
|
|
3401
|
+
((title <String>)|(select <StringEntity))+
|
|
3400
3402
|
[csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]
|
|
3401
3403
|
gam update course-studentgroups <CourseID> <StudentGroupID> title <String>
|
|
3402
3404
|
gam delete course-studentgroups <CourseID> <StudentGroupIDEntity>
|
|
@@ -6409,11 +6411,11 @@ gam <UserTypeEntity> info chatspacedm <UserItem>
|
|
|
6409
6411
|
[formatjson]
|
|
6410
6412
|
gam <UserTypeEntity> show chatspaces
|
|
6411
6413
|
[types <ChatSpaceTypeList>]
|
|
6412
|
-
[fields <ChatSpaceFieldNameList>]
|
|
6414
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
6413
6415
|
[formatjson]
|
|
6414
6416
|
gam <UserTypeEntity> print chatspaces [todrive <ToDriveAttribute>*]
|
|
6415
6417
|
[types <ChatSpaceTypeList>]
|
|
6416
|
-
[fields <ChatSpaceFieldNameList>]
|
|
6418
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
6417
6419
|
[formatjson [quotechar <Character>]]
|
|
6418
6420
|
|
|
6419
6421
|
gam <UserItem> info chatspace asadmin <ChatSpace>
|
|
@@ -6422,12 +6424,12 @@ gam <UserItem> info chatspace asadmin <ChatSpace>
|
|
|
6422
6424
|
gam <UserItem> show chatspaces asadmin
|
|
6423
6425
|
[query <String>] [querytime<String> <Time>]
|
|
6424
6426
|
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
|
6425
|
-
[fields <ChatSpaceFieldNameList>]
|
|
6427
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
6426
6428
|
[formatjson]
|
|
6427
6429
|
gam <UserItem> print chatspaces asadmin [todrive <ToDriveAttribute>*]
|
|
6428
6430
|
[query <String>] [querytime<String> <Time>]
|
|
6429
6431
|
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
|
6430
|
-
[fields <ChatSpaceFieldNameList>]
|
|
6432
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
6431
6433
|
[formatjson [quotechar <Character>]]
|
|
6432
6434
|
|
|
6433
6435
|
gam <UserTypeEntity> create chatmember <ChatSpace>
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
7.20.02
|
|
2
|
+
|
|
3
|
+
Upgraded `gam create course-studentgroups` to allow specification of multiple student group titles;
|
|
4
|
+
multiple student groups can be created in a single command.
|
|
5
|
+
* `((title <String>)|(select <StringEntity))+`
|
|
6
|
+
|
|
7
|
+
7.20.01
|
|
8
|
+
|
|
9
|
+
Added option `showaccesssettings` to `gam [<UserTypeEntity>] print|show chatspaces`. When listing
|
|
10
|
+
Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this field,
|
|
11
|
+
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
12
|
+
to get the `accessSettings` field.
|
|
13
|
+
|
|
1
14
|
7.20.00
|
|
2
15
|
|
|
3
16
|
Added initial support for student groups in Google Classroom. This is a work in progress and requires Developer Preview membership.
|
|
@@ -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.20.
|
|
28
|
+
__version__ = '7.20.02'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -27004,31 +27004,33 @@ CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP = {
|
|
|
27004
27004
|
|
|
27005
27005
|
# gam [<UserTypeEntity>] show chatspaces
|
|
27006
27006
|
# [types <ChatSpaceTypeList>]
|
|
27007
|
-
# [fields <ChatSpaceFieldNameList>]
|
|
27007
|
+
# [fields <ChatSpaceFieldNameList>] [showaccesssettings]
|
|
27008
27008
|
# [formatjson]
|
|
27009
27009
|
# gam [<UserTypeEntity>] print chatspaces [todrive <ToDriveAttribute>*]
|
|
27010
27010
|
# [types <ChatSpaceTypeList>]
|
|
27011
|
-
# [fields <ChatSpaceFieldNameList>]
|
|
27011
|
+
# [fields <ChatSpaceFieldNameList>] [showaccesssettings]
|
|
27012
27012
|
# [formatjson [quotechar <Character>]]
|
|
27013
27013
|
# gam <UserItem> show chatspaces asadmin
|
|
27014
27014
|
# [query <String>] [querytime<String> <Time>]
|
|
27015
27015
|
# [orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
|
27016
|
-
# [fields <ChatSpaceFieldNameList>]
|
|
27016
|
+
# [fields <ChatSpaceFieldNameList>] [showaccesssettings]
|
|
27017
27017
|
# [formatjson]
|
|
27018
27018
|
# gam <UserItem> print chatspaces asadmin [todrive <ToDriveAttribute>*]
|
|
27019
27019
|
# [query <String>] [querytime<String> <Time>]
|
|
27020
27020
|
# [orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
|
27021
|
-
# [fields <ChatSpaceFieldNameList>]
|
|
27021
|
+
# [fields <ChatSpaceFieldNameList>] [showaccesssettings]
|
|
27022
27022
|
# [formatjson [quotechar <Character>]]
|
|
27023
27023
|
def printShowChatSpaces(users):
|
|
27024
27024
|
csvPF = CSVPrintFile(['User', 'name'] if not isinstance(users, list) else ['name']) if Act.csvFormat() else None
|
|
27025
27025
|
FJQC = FormatJSONQuoteChar(csvPF)
|
|
27026
27026
|
OBY = OrderBy(CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP)
|
|
27027
27027
|
useAdminAccess, api, kwargsCS = _getChatAdminAccess(API.CHAT_SPACES_ADMIN, API.CHAT_SPACES)
|
|
27028
|
+
kwargsSAS = {'useAdminAccess': useAdminAccess}
|
|
27028
27029
|
fieldsList = []
|
|
27029
27030
|
queries = []
|
|
27030
27031
|
queryTimes = {}
|
|
27031
27032
|
pfilter = ''
|
|
27033
|
+
showAccessSettings = False
|
|
27032
27034
|
if useAdminAccess:
|
|
27033
27035
|
function = 'search'
|
|
27034
27036
|
queries = ['customer = "customers/my_customer" AND spaceType = "SPACE"']
|
|
@@ -27044,8 +27046,12 @@ def printShowChatSpaces(users):
|
|
|
27044
27046
|
pass
|
|
27045
27047
|
elif useAdminAccess and _getChatSpaceSearchParms(myarg, queries, queryTimes, OBY):
|
|
27046
27048
|
pass
|
|
27049
|
+
elif myarg == 'showaccesssettings':
|
|
27050
|
+
showAccessSettings = True
|
|
27047
27051
|
else:
|
|
27048
27052
|
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
|
27053
|
+
if showAccessSettings and fieldsList:
|
|
27054
|
+
fieldsList.extend(['name', 'spaceType'])
|
|
27049
27055
|
fields = getItemFieldsFromFieldsList('spaces', fieldsList)
|
|
27050
27056
|
i, count, users = getEntityArgument(users)
|
|
27051
27057
|
if useAdminAccess:
|
|
@@ -27070,6 +27076,17 @@ def printShowChatSpaces(users):
|
|
|
27070
27076
|
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
|
27071
27077
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
27072
27078
|
fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargsCS)
|
|
27079
|
+
if showAccessSettings:
|
|
27080
|
+
for space in spaces:
|
|
27081
|
+
if space['spaceType'] == 'SPACE':
|
|
27082
|
+
try:
|
|
27083
|
+
result = callGAPI(chat.spaces(), 'get',
|
|
27084
|
+
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
|
|
27085
|
+
GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
|
27086
|
+
name=space['name'], fields='accessSettings', **kwargsSAS)
|
|
27087
|
+
space.update(result)
|
|
27088
|
+
except (GAPI.notFound, GAPI.invalidArgument, GAPI.internalError, GAPI.permissionDenied, GAPI.failedPrecondition):
|
|
27089
|
+
pass
|
|
27073
27090
|
except (GAPI.notFound, GAPI.invalidArgument, GAPI.internalError, GAPI.permissionDenied) as e:
|
|
27074
27091
|
exitIfChatNotConfigured(chat, kvList, str(e), i, count)
|
|
27075
27092
|
continue
|
|
@@ -51216,7 +51233,7 @@ def printShowClassroomProfile(users):
|
|
|
51216
51233
|
|
|
51217
51234
|
# gam create course-studentgroups
|
|
51218
51235
|
# (course|class <CourseEntity>)*|([teacher <UserItem>] [student <UserItem>] [states <CourseStateList>])
|
|
51219
|
-
# title <String>
|
|
51236
|
+
# ((title <String>)|(select <StringEntity))+
|
|
51220
51237
|
# [csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]
|
|
51221
51238
|
def doCreateCourseStudentGroups():
|
|
51222
51239
|
croom = buildGAPIObject(API.CLASSROOM)
|
|
@@ -51226,10 +51243,13 @@ def doCreateCourseStudentGroups():
|
|
|
51226
51243
|
courseShowProperties = _initCourseShowProperties(['name'])
|
|
51227
51244
|
useOwnerAccess = GC.Values[GC.USE_COURSE_OWNER_ACCESS]
|
|
51228
51245
|
kwargs = {'courseId': None, 'body': {}}
|
|
51246
|
+
titles = []
|
|
51229
51247
|
while Cmd.ArgumentsRemaining():
|
|
51230
51248
|
myarg = getArgument()
|
|
51231
51249
|
if myarg == 'title':
|
|
51232
|
-
|
|
51250
|
+
titles.append(getString(Cmd.OB_STRING))
|
|
51251
|
+
elif myarg == 'select':
|
|
51252
|
+
titles.extend(getEntityList(Cmd.OB_STRING_ENTITY, shlexSplit=True))
|
|
51233
51253
|
elif _getCourseSelectionParameters(myarg, courseSelectionParameters):
|
|
51234
51254
|
pass
|
|
51235
51255
|
elif myarg == 'csv':
|
|
@@ -51239,8 +51259,9 @@ def doCreateCourseStudentGroups():
|
|
|
51239
51259
|
csvPF.GetTodriveParameters()
|
|
51240
51260
|
else:
|
|
51241
51261
|
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
|
51242
|
-
if
|
|
51262
|
+
if not titles:
|
|
51243
51263
|
missingArgumentExit('title')
|
|
51264
|
+
jcount = len(titles)
|
|
51244
51265
|
if csvPF and FJQC.formatJSON:
|
|
51245
51266
|
csvPF.SetJSONTitles(['courseId', 'courseName', 'JSON'])
|
|
51246
51267
|
coursesInfo = _getCoursesInfo(croom, courseSelectionParameters, courseShowProperties, useOwnerAccess)
|
|
@@ -51255,29 +51276,36 @@ def doCreateCourseStudentGroups():
|
|
|
51255
51276
|
if not ocroom:
|
|
51256
51277
|
continue
|
|
51257
51278
|
kwargs['courseId'] = courseId
|
|
51258
|
-
|
|
51259
|
-
|
|
51260
|
-
|
|
51261
|
-
|
|
51262
|
-
|
|
51263
|
-
|
|
51264
|
-
|
|
51265
|
-
|
|
51266
|
-
|
|
51267
|
-
|
|
51268
|
-
|
|
51269
|
-
|
|
51270
|
-
|
|
51271
|
-
|
|
51272
|
-
|
|
51273
|
-
|
|
51274
|
-
|
|
51275
|
-
|
|
51276
|
-
|
|
51277
|
-
|
|
51278
|
-
|
|
51279
|
-
|
|
51280
|
-
|
|
51279
|
+
entityPerformActionNumItems([Ent.COURSE, courseId], jcount, Ent.COURSE_STUDENTGROUP, i, count)
|
|
51280
|
+
Ind.Increment()
|
|
51281
|
+
j = 0
|
|
51282
|
+
for title in titles:
|
|
51283
|
+
j += 1
|
|
51284
|
+
kwargs['body']['title'] = title
|
|
51285
|
+
kvList = [Ent.COURSE, courseId, Ent.COURSE_STUDENTGROUP, None]
|
|
51286
|
+
try:
|
|
51287
|
+
studentGroup = callGAPI(ocroom.courses().studentGroups(), 'create',
|
|
51288
|
+
throwReasons=[GAPI.NOT_FOUND, GAPI.SERVICE_NOT_AVAILABLE, GAPI.NOT_IMPLEMENTED,
|
|
51289
|
+
GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED],
|
|
51290
|
+
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
51291
|
+
previewVersion='V1_20250630_PREVIEW',
|
|
51292
|
+
**kwargs)
|
|
51293
|
+
kvList[-1] = f"{studentGroup['title']}({studentGroup['id']})"
|
|
51294
|
+
if not csvPF:
|
|
51295
|
+
entityActionPerformed(kvList, j, jcount)
|
|
51296
|
+
elif not FJQC.formatJSON:
|
|
51297
|
+
csvPF.WriteRow({'courseId': courseId, 'courseName': course['name'],
|
|
51298
|
+
'studentGroupId': studentGroup['id'], 'studentGroupTitle': studentGroup['title']})
|
|
51299
|
+
else:
|
|
51300
|
+
csvPF.WriteRowNoFilter({'courseId': courseId, 'courseName': course['name'],
|
|
51301
|
+
'JSON': json.dumps(cleanJSON(studentGroup), ensure_ascii=False, sort_keys=True)})
|
|
51302
|
+
except GAPI.notFound as e:
|
|
51303
|
+
entityActionFailedWarning(kvList, str(e), j, jcount)
|
|
51304
|
+
except (GAPI.serviceNotAvailable, GAPI.notImplemented) as e:
|
|
51305
|
+
entityActionFailedExit([Ent.COURSE, courseId], str(e), j, jcount)
|
|
51306
|
+
except (GAPI.forbidden, GAPI.permissionDenied) as e:
|
|
51307
|
+
ClientAPIAccessDeniedExit(str(e))
|
|
51308
|
+
Ind.Decrement()
|
|
51281
51309
|
if csvPF:
|
|
51282
51310
|
csvPF.writeCSVfile('Course Student Groups')
|
|
51283
51311
|
|
|
@@ -1057,6 +1057,7 @@ class GamCLArgs():
|
|
|
1057
1057
|
OB_SPREADSHEET_RANGE_LIST = 'SpreadsheetRangeList'
|
|
1058
1058
|
OB_STATE_NAME_LIST = "StateNameList"
|
|
1059
1059
|
OB_STRING = 'String'
|
|
1060
|
+
OB_STRING_ENTITY = 'StringEntity'
|
|
1060
1061
|
OB_STRING_LIST = 'StringList'
|
|
1061
1062
|
OB_STUDENTGROUP_ID = 'StudentGroupID'
|
|
1062
1063
|
OB_STUDENTGROUP_ID_ENTITY = 'StudentGroupIDEntity'
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
- [API documentation](#api-documentation)
|
|
4
4
|
- [Definitions](#definitions)
|
|
5
5
|
- [Special quoting for course aliases](#special-quoting-for-course-aliases)
|
|
6
|
+
- [Special quoting for lists of titles](#special-quoting-for-lists-of-titles)
|
|
6
7
|
- [Manage student groups](#manage-student-groups)
|
|
7
8
|
- [Display student groups](#display-student-groups)
|
|
8
9
|
- [Display student group counts](#display-student-group-counts)
|
|
@@ -12,6 +13,7 @@
|
|
|
12
13
|
|
|
13
14
|
## Notes
|
|
14
15
|
These commands wera added in version 7.20.00.
|
|
16
|
+
|
|
15
17
|
To use these commands your project must be enrolled the Developer Preview program.
|
|
16
18
|
* https://developers.google.com/workspace/preview
|
|
17
19
|
|
|
@@ -36,7 +38,7 @@ You will need an API key
|
|
|
36
38
|
Issue the following GAM command:
|
|
37
39
|
`gam config developer_preview_api_key <API Key Value> save`
|
|
38
40
|
|
|
39
|
-
Once you get an email from Google that your project has been registered you can use these commands.
|
|
41
|
+
Once you get an email from Google saying that your project has been registered you can use these commands.
|
|
40
42
|
|
|
41
43
|
## API documentation
|
|
42
44
|
* [Google Classroom API](https://developers.google.com/classroom/reference/rest)
|
|
@@ -59,6 +61,11 @@ Once you get an email from Google that your project has been registered you can
|
|
|
59
61
|
<CourseState> ::= active|archived|provisioned|declined|suspended
|
|
60
62
|
<CourseStateList> ::= all|"<CourseState>(,<CourseState>)*"
|
|
61
63
|
|
|
64
|
+
<StringList> ::= "<String>(,<String>)*"
|
|
65
|
+
<StringEntity> ::=
|
|
66
|
+
<StringList> | <FileSelector> | <CSVFileSelector>
|
|
67
|
+
See: https://github.com/GAM-team/GAM/wiki/Collections-of-Items
|
|
68
|
+
|
|
62
69
|
<StudentGroupID> ::= <Number>
|
|
63
70
|
<StudentGroupIDList> ::= "<StudentGroupID>(,<StudentGroupID>)*"
|
|
64
71
|
<StudentGroupEntity> ::=
|
|
@@ -81,15 +88,33 @@ The shell strips the `"` leaving a single argument `'d:Math Class'`; as gam is e
|
|
|
81
88
|
|
|
82
89
|
For multiple aliases you must enter: `gam info courses "'d:Math Class','d:Science Class'"`
|
|
83
90
|
|
|
91
|
+
## Special quoting for lists of titles
|
|
92
|
+
As student group titles can contain spaces, some care must be used when entering `selevct <StringList>`.
|
|
93
|
+
|
|
94
|
+
Suppose you want to create a student group `Advanced Students`. `gam create course-studentgroups course <CourseID> title "Advanced Students"`
|
|
95
|
+
|
|
96
|
+
The shell strips the `"` leaving a single argument `Advanced Math`; gam correctly processes the argument as it is expecting a single title.
|
|
97
|
+
|
|
98
|
+
Suppose you enter the command: `gam create course-studentgroups course <CourseID> select "Advanced Students"`
|
|
99
|
+
|
|
100
|
+
The shell strips the `"` leaving a single argument `Advanced Students`; as gam is expecting a list, it splits the argument on space leaving two items and then tries to process `Advanced` and `Students`, not what you want.
|
|
101
|
+
|
|
102
|
+
You must enter: `gam create course-studentgroups course <CourseID> select "'Advanced Students'"`
|
|
103
|
+
|
|
104
|
+
The shell strips the `"` leaving a single argument `'Advanced Students'`; as gam is expecting a list, it splits the argument on space while honoring the `'` leaving one item `Advanced Students` and correctly processes the item.
|
|
105
|
+
|
|
106
|
+
For multiple titles you can enter either of the following:
|
|
107
|
+
* `gam create course-studentgroups course <CourseID> select "'Advanced Students','Beginner Students'"`
|
|
108
|
+
* `gam create course-studentgroups course <CourseID> title"Advanced Students" title "Beginner Students"`
|
|
109
|
+
|
|
84
110
|
See: [Lists and Collections](Lists-and-Collections)
|
|
85
111
|
|
|
86
112
|
## Manage student groups
|
|
87
113
|
|
|
88
|
-
These commands can process multiple courses and `add` and `delete` can process multiple students/teachers.
|
|
89
114
|
```
|
|
90
115
|
gam create course-studentgroups
|
|
91
116
|
(course|class <CourseEntity>)*|([teacher <UserItem>] [student <UserItem>] [states <CourseStateList>])
|
|
92
|
-
title <String>
|
|
117
|
+
((title <String>)|(select <StringEntity))+
|
|
93
118
|
[csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]
|
|
94
119
|
gam update course-studentgroups <CourseID> <StudentGroupID> title <String>
|
|
95
120
|
gam delete course-studentgroups <CourseID> <StudentGroupIDEntity>
|
|
@@ -97,6 +122,11 @@ gam clear course-studentgroups
|
|
|
97
122
|
(course|class <CourseEntity>)*|([teacher <UserItem>] [student <UserItem>] [states <CourseStateList>])
|
|
98
123
|
```
|
|
99
124
|
|
|
125
|
+
When creating student groups, the API does not check for duplicate titles; you can have multiple student grpups
|
|
126
|
+
with the same title; they will have unique `<StudentGroupID>s`.
|
|
127
|
+
|
|
128
|
+
The `update|delete course-studentgroups` commands manage a specific course.
|
|
129
|
+
|
|
100
130
|
By default, the `create|clear course-studentgroups` commands manage student group information about all courses.
|
|
101
131
|
|
|
102
132
|
To manage student group information for a specific set of courses, use the following option; it can be repeated to select multiple courses.
|
|
@@ -110,6 +140,34 @@ To manage student group information for courses based on their state, use the fo
|
|
|
110
140
|
By default, all course states are selected.
|
|
111
141
|
* `states <CourseStateList>` - Display courses with any of the specified states.
|
|
112
142
|
|
|
143
|
+
By default, when a student group is created, you will get output like this:
|
|
144
|
+
```
|
|
145
|
+
Course: <CourseID>, Course Student Group: <Title>(<StudentGroupId>), Added
|
|
146
|
+
```
|
|
147
|
+
If you use the `csv` option, you will get output like this:
|
|
148
|
+
```
|
|
149
|
+
courseId,courseName,studentGroupId,studentGroupTitle
|
|
150
|
+
<CourseID>,<CourseName>,<StudentGroupID>,<Title>
|
|
151
|
+
```
|
|
152
|
+
This gives you a record the the student group IDs.
|
|
153
|
+
|
|
154
|
+
### Example
|
|
155
|
+
```
|
|
156
|
+
$ more titles.csv
|
|
157
|
+
title
|
|
158
|
+
Advanced Students
|
|
159
|
+
Middle Students
|
|
160
|
+
Beginner Students
|
|
161
|
+
|
|
162
|
+
$ gam redirect csv ./StudentGroups.csv add coursestudentgroups course <CourseID> select csvfile titles.csv:title csv
|
|
163
|
+
|
|
164
|
+
$ more StudentGroups.csv
|
|
165
|
+
courseId,courseName,studentGroupId,studentGroupTitle
|
|
166
|
+
<CourseID>,<CourseName>,796177544247,Advanced Students
|
|
167
|
+
<CourseID>,<CourseName>,796177718666,Middle Students
|
|
168
|
+
<CourseID>,<CourseName>,796177727901,Beginner Students
|
|
169
|
+
```
|
|
170
|
+
|
|
113
171
|
## Display student groups
|
|
114
172
|
```
|
|
115
173
|
gam print course-studentgroups [todrive <ToDriveAttribute>*]
|
|
@@ -10,6 +10,18 @@ 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.20.01
|
|
14
|
+
|
|
15
|
+
Added option `showaccesssettings` to `gam [<UserTypeEntity>] print|show chatspaces`. When listing
|
|
16
|
+
Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this field,
|
|
17
|
+
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
18
|
+
to get the `accessSettings` field.
|
|
19
|
+
|
|
20
|
+
### 7.20.00
|
|
21
|
+
|
|
22
|
+
Added initial support for student groups in Google Classroom. This is a work in progress and requires Developer Preview membership.
|
|
23
|
+
* See: https://github.com/GAM-team/GAM/wiki/Classroom-StudentGroups#notes
|
|
24
|
+
|
|
13
25
|
### 7.19.03
|
|
14
26
|
|
|
15
27
|
Fixed bug where specifying a `<UserItem>` as `id:1234567890` could lead to errors like this:
|
|
@@ -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.
|
|
255
|
+
GAM 7.20.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
256
256
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
257
257
|
Python 3.13.7 64-bit final
|
|
258
258
|
MacOS Sequoia 15.6.1 x86_64
|
|
@@ -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.20.01 - 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
|
|
@@ -320,24 +320,32 @@ By default, Gam displays the information as an indented list of keys and values.
|
|
|
320
320
|
```
|
|
321
321
|
gam <UserTypeEntity> show chatspaces
|
|
322
322
|
[types <ChatSpaceTypeList>]
|
|
323
|
-
[fields <ChatSpaceFieldNameList>]
|
|
323
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
324
324
|
[formatjson]
|
|
325
325
|
```
|
|
326
326
|
By default, chat spaces of all types are displayed.
|
|
327
327
|
* `types <ChatSpaceTypeList>` - Display specific types of spaces.
|
|
328
328
|
|
|
329
|
+
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this fieldf,
|
|
330
|
+
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
331
|
+
to get the `accessSettings` field.
|
|
332
|
+
|
|
329
333
|
By default, Gam displays the information as an indented list of keys and values.
|
|
330
334
|
* `formatjson` - Display the fields in JSON format.
|
|
331
335
|
|
|
332
336
|
```
|
|
333
337
|
gam <UserTypeEntity> print chatspaces [todrive <ToDriveAttribute>*]
|
|
334
338
|
[types <ChatSpaceTypeList>]
|
|
335
|
-
[fields <ChatSpaceFieldNameList>]
|
|
339
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
336
340
|
[formatjson [quotechar <Character>]]
|
|
337
341
|
```
|
|
338
342
|
By default, chat spaces of all types are displayed.
|
|
339
343
|
* `types <ChatSpaceTypeList>` - Display specific types of spaces.
|
|
340
344
|
|
|
345
|
+
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this fieldf,
|
|
346
|
+
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
347
|
+
to get the `accessSettings` field.
|
|
348
|
+
|
|
341
349
|
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
|
|
342
350
|
* `formatjson` - Display the fields in JSON format.
|
|
343
351
|
|
|
@@ -385,13 +393,17 @@ Only spaces of `<ChatSpaceType>` `space` are displayed; spaces of `<ChatSpaceTyp
|
|
|
385
393
|
gam <UserItem> show chatspaces asadmin
|
|
386
394
|
[query <String>] [querytime<String> <Time>]
|
|
387
395
|
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
|
388
|
-
[fields <ChatSpaceFieldNameList>]
|
|
396
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
389
397
|
[formatjson]
|
|
390
398
|
```
|
|
391
399
|
By default, all chat spaces of type SPACE are displayed.
|
|
392
400
|
* `query <String> [querytime<String> <Time>]` - Display selected chat spaces
|
|
393
401
|
* See: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
|
394
402
|
|
|
403
|
+
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this fieldf,
|
|
404
|
+
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
405
|
+
to get the `accessSettings` field.
|
|
406
|
+
|
|
395
407
|
By default, Gam displays the information as an indented list of keys and values.
|
|
396
408
|
* `formatjson` - Display the fields in JSON format.
|
|
397
409
|
|
|
@@ -399,13 +411,17 @@ By default, Gam displays the information as an indented list of keys and values.
|
|
|
399
411
|
gam <UserItem> print chatspaces asadmin [todrive <ToDriveAttribute>*]
|
|
400
412
|
[query <String>] [querytime<String> <Time>]
|
|
401
413
|
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
|
402
|
-
[fields <ChatSpaceFieldNameList>]
|
|
414
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
403
415
|
[formatjson [quotechar <Character>]]
|
|
404
416
|
```
|
|
405
417
|
By default, all chat spaces of type SPACE are displayed.
|
|
406
418
|
* `query <String> [querytime<String> <Time>]` - Display selected chat spaces
|
|
407
419
|
* See: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
|
408
420
|
|
|
421
|
+
When listing Chat Spaces, the Chat API does not return the `accessSettings` field; if you need to see this fieldf,
|
|
422
|
+
add `showaccesssettings` to the command. This requires an additional Chat API call per chat space of type `SPACE`
|
|
423
|
+
to get the `accessSettings` field.
|
|
424
|
+
|
|
409
425
|
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
|
|
410
426
|
* `formatjson` - Display the fields in JSON format.
|
|
411
427
|
|
|
@@ -975,8 +991,9 @@ The `quotechar <Character>` option allows you to choose an alternate quote chara
|
|
|
975
991
|
## Bulk Operations
|
|
976
992
|
### Display information about all chat spaces for a collection of users
|
|
977
993
|
```
|
|
978
|
-
gam config auto_batch_min 1 redirect csv ./ChatSpaces.csv multiprocess [todrive <ToDriveAttribute>*] redirect stdout - multiprocess redirect stderr <UserTypeEntity> print
|
|
994
|
+
gam config auto_batch_min 1 redirect csv ./ChatSpaces.csv multiprocess [todrive <ToDriveAttribute>*] redirect stdout - multiprocess redirect stderr <UserTypeEntity> print chatsacesp
|
|
979
995
|
[types <ChatSpaceTypeList>]
|
|
996
|
+
[fields <ChatSpaceFieldNameList>] [showaccessssettings]
|
|
980
997
|
[formatjson [quotechar <Character>]]
|
|
981
998
|
```
|
|
982
999
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Print the current version of Gam with details
|
|
4
4
|
```
|
|
5
5
|
gam version
|
|
6
|
-
GAM 7.
|
|
6
|
+
GAM 7.20.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
7
7
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
8
8
|
Python 3.13.7 64-bit final
|
|
9
9
|
MacOS Sequoia 15.6.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.
|
|
18
|
+
GAM 7.20.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
19
19
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
20
20
|
Python 3.13.7 64-bit final
|
|
21
21
|
MacOS Sequoia 15.6.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.
|
|
30
|
+
GAM 7.20.01 - https://github.com/GAM-team/GAM - pyinstaller
|
|
31
31
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
32
32
|
Python 3.13.7 64-bit final
|
|
33
33
|
MacOS Sequoia 15.6.1 x86_64
|
|
@@ -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.
|
|
67
|
+
Latest: 7.20.01
|
|
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.
|
|
75
|
+
7.20.01
|
|
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.
|
|
85
|
+
GAM 7.20.01 - https://github.com/GAM-team/GAM
|
|
86
86
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
87
87
|
Python 3.13.7 64-bit final
|
|
88
88
|
MacOS Sequoia 15.6.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
|