gam7 7.27.2__tar.gz → 7.27.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.27.2 → gam7-7.27.4}/.github/workflows/build.yml +1 -1
- {gam7-7.27.2 → gam7-7.27.4}/PKG-INFO +1 -1
- {gam7-7.27.2 → gam7-7.27.4}/src/GamCommands.txt +37 -29
- {gam7-7.27.2 → gam7-7.27.4}/src/GamUpdate.txt +28 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/__init__.py +122 -51
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glmsgs.py +3 -1
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chat-Bot-Setup-Use.md +12 -2
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Cloud-Identity-Groups.md +1 -1
- {gam7-7.27.2 → gam7-7.27.4}/wiki/GamUpdates.md +35 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Chat.md +35 -26
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-Delegates.md +69 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users.md +17 -20
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Version-and-Help.md +6 -6
- {gam7-7.27.2 → gam7-7.27.4}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/actions/decrypt.sh +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/actions/entitlements.plist +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/stale.yml +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/.github/workflows/pypi.yml +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/LICENSE +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/README.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/pyproject.toml +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/.gitignore +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/LICENSE +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/README.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/callgam.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/__main__.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/__init__.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/auth.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/client.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/core.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/data.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/http.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/http_core.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/service.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/token_store.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/atom/url.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/cacerts.pem +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/service.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam-install.sh +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam-setup.bat +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam.exe.manifest +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam.spec +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/gam.wxs +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/license.rtf +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/tools/hooks/hook-httplib2.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/tools/mkGamRef.py +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/tools/openssl.props +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/tools/ssd.mjs +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/src/version_info.txt.in +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/00scratch.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Addresses.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Administrators.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Alert-Center.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Aliases.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Authorization.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Basic-Items.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Calendars-Access.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Calendars-Events.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Calendars.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Classroom-StudentGroups.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Customer.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Domains-Verification.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Domains.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Drive-Items.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/GAM-Release-Process.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/GAM7-FAQ.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Global-Address-List.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Groups-Membership.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Groups.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Home.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Licenses.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/List-Items.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/List.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Organizational-Units.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Other-Resources.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Permission-Matches.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/README.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Rclone.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Reports.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Reseller.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Resources.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Schemas.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Scripts.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Send-Email.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Shared-Drives.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Sites.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Tag-Replace.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Todrive.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Calendars.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Contacts.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Forms.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Meet.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Photo.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Tasks.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Tokens.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Users-YouTube.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/_Sidebar.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/gam.cfg.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Android-Installation.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-BulkOperations.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-CalendarExamples.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Chat-Bot.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Email.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Users.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Custom-Schemas.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Data-Transfers.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-DomainVerification.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-ExamplesCSV.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-GAM-options-files.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-GAM3CSVListings.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Home.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-LicenseExamples.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Managing-Admins.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Managing-Devices.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Printers.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-ResellerCommands.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-SecurityExamples.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.27.2 → gam7-7.27.4}/wiki/legacy/l-_Footer.md +0 -0
|
@@ -987,7 +987,7 @@ jobs:
|
|
|
987
987
|
$gam report usageparameters customer
|
|
988
988
|
$gam report usage customer parameters gmail:num_emails_sent,accounts:num_1day_logins
|
|
989
989
|
$gam report customer todrive tdnobrowser
|
|
990
|
-
#$gam report users fields accounts:is_less_secure_apps_access_allowed,gmail:last_imap_time,gmail:last_pop_time filters "accounts:last_login_time>
|
|
990
|
+
#$gam report users fields accounts:is_less_secure_apps_access_allowed,gmail:last_imap_time,gmail:last_pop_time filters "accounts:last_login_time>2025-01-01T00:00:00.000Z" todrive tdnobrowser
|
|
991
991
|
$gam report users todrive tdnobrowser
|
|
992
992
|
$gam report admin start -3d todrive tdnobrowser
|
|
993
993
|
$gam print devices nopersonaldevices nodeviceusers filter "serial:$JID$JID$JID$JID-" | $gam csv - gam delete device id ~name
|
|
@@ -4086,7 +4086,7 @@ gam print group-members [todrive <ToDriveAttribute>*]
|
|
|
4086
4086
|
gam create cigroup <EmailAddress>
|
|
4087
4087
|
[copyfrom <GroupItem>] <GroupAttribute>*
|
|
4088
4088
|
[makeowner] [alias|aliases <CIGroupAliasList>]
|
|
4089
|
-
[security|makesecuritygroup]
|
|
4089
|
+
[security|makesecuritygroup] [locked]
|
|
4090
4090
|
[dynamic <QueryDynamicGroup>]
|
|
4091
4091
|
gam update cigroup <GroupEntity> [copyfrom <GroupItem>] <GroupAttribute>
|
|
4092
4092
|
[security|makesecuritygroup|
|
|
@@ -5776,10 +5776,9 @@ gam create|add user <EmailAddress> [ignorenullpassword] <UserAttribute>*
|
|
|
5776
5776
|
[[notify <EmailAddressList>] [notifyrecoveryemail]
|
|
5777
5777
|
[subject <String>]
|
|
5778
5778
|
[notifypassword <String>]
|
|
5779
|
-
[from <EmailAaddress>]
|
|
5780
|
-
[mailbox <EmailAaddress>]
|
|
5779
|
+
[from <EmailAaddress>] [mailbox <EmailAaddress>]
|
|
5781
5780
|
[replyto <EmailAaddress>]
|
|
5782
|
-
[<NotifyMessageContent>]
|
|
5781
|
+
[<NotifyMessageContent>] [html [<Boolean>]]
|
|
5783
5782
|
(replace <Tag> <UserReplacement>)*
|
|
5784
5783
|
(replaceregex <RESearchPattern> <RESubstitution> <Tag> <UserReplacement>)*
|
|
5785
5784
|
]
|
|
@@ -5802,10 +5801,9 @@ gam update user <UserItem> [ignorenullpassword] <UserAttribute>*
|
|
|
5802
5801
|
[[notify <EmailAddressList>] [notifyrecoveryemail]
|
|
5803
5802
|
[subject <String>]
|
|
5804
5803
|
[notifypassword <String>]
|
|
5805
|
-
[from <EmailAaddress>]
|
|
5806
|
-
[mailbox <EmailAddress>]
|
|
5804
|
+
[from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
5807
5805
|
[replyto <EmailAddress>]
|
|
5808
|
-
[<NotifyMessageContent>]
|
|
5806
|
+
[<NotifyMessageContent>] [html [<Boolean>]]
|
|
5809
5807
|
(replace <Tag> <UserReplacement>)*
|
|
5810
5808
|
(replaceregex <RESearchPattern> <RESubstitution> <Tag> <UserReplacement>)*
|
|
5811
5809
|
]
|
|
@@ -5840,10 +5838,9 @@ gam update users <UserTypeEntity> [ignorenullpassword] <UserAttribute>*
|
|
|
5840
5838
|
[[notify <EmailAddressList>] [notifyrecoveryemail]
|
|
5841
5839
|
[subject <String>]
|
|
5842
5840
|
[notifypassword <String>]
|
|
5843
|
-
[from <EmailAddress>]
|
|
5844
|
-
[mailbox <EmailAddress>]
|
|
5841
|
+
[from <EmailAddress>] [mailbox <EmailAddress>]
|
|
5845
5842
|
[replyto <EmailAaddress>]
|
|
5846
|
-
[<NotifyMessageContent>]
|
|
5843
|
+
[<NotifyMessageContent>] [html [<Boolean>]]
|
|
5847
5844
|
(replace <Tag> <UserReplacement>)*
|
|
5848
5845
|
(replaceregex <RESearchPattern> <RESubstitution> <Tag> <UserReplacement>)*
|
|
5849
5846
|
]
|
|
@@ -5877,10 +5874,9 @@ gam <UserTypeEntity> update users [ignorenullpassword] <UserAttribute>*
|
|
|
5877
5874
|
[[notify <EmailAddressList>] [notifyrecoveryemail]
|
|
5878
5875
|
[subject <String>]
|
|
5879
5876
|
[notifypassword <String>]
|
|
5880
|
-
[from <EmailAaddress>]
|
|
5881
|
-
[mailbox <EmailAddress>]
|
|
5877
|
+
[from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
5882
5878
|
[replyto <EmailAddress>]
|
|
5883
|
-
[<NotifyMessageContent>]
|
|
5879
|
+
[<NotifyMessageContent>] [html [<Boolean>]]
|
|
5884
5880
|
(replace <Tag> <UserReplacement>)*
|
|
5885
5881
|
(replaceregex <RESearchPattern> <RESubstitution> <Tag> <UserReplacement>)*
|
|
5886
5882
|
]
|
|
@@ -6428,13 +6424,13 @@ gam <UserTypeEntity> update chatspace <ChatSpace>
|
|
|
6428
6424
|
[type space]
|
|
6429
6425
|
[description <String>] [guidelines|rules <String>]
|
|
6430
6426
|
[history <Boolean>])
|
|
6431
|
-
[managemembersandgroups managers|members]
|
|
6432
|
-
[modifyspacedetails managers|members]
|
|
6433
|
-
[togglehistory managers|members]
|
|
6434
|
-
[useatmentionall managers|members]
|
|
6435
|
-
[manageapps managers|members]
|
|
6436
|
-
[managewebhooks managers|members]
|
|
6437
|
-
[replymessages managers|members]
|
|
6427
|
+
[managemembersandgroups owners|managers|members]
|
|
6428
|
+
[modifyspacedetails owners|managers|members]
|
|
6429
|
+
[togglehistory owners|managers|members]
|
|
6430
|
+
[useatmentionall owners|managers|members]
|
|
6431
|
+
[manageapps owners|managers|members]
|
|
6432
|
+
[managewebhooks owners|managers|members]
|
|
6433
|
+
[replymessages owners|managers|members]
|
|
6438
6434
|
[formatjson]
|
|
6439
6435
|
gam <UserTypeEntity> delete chatspace <ChatSpace>
|
|
6440
6436
|
|
|
@@ -6495,28 +6491,28 @@ gam <UserItem> print chatspaces asadmin [todrive <ToDriveAttribute>*]
|
|
|
6495
6491
|
[formatjson [quotechar <Character>]]
|
|
6496
6492
|
|
|
6497
6493
|
gam <UserTypeEntity> create chatmember <ChatSpace>
|
|
6498
|
-
[type human|bot] [role member|manager]
|
|
6494
|
+
[type human|bot] [role member|manager|owner]
|
|
6499
6495
|
(user <UserItem>)* (members <UserTypeEntity>)*
|
|
6500
6496
|
(group <GroupItem>)* (groups <GroupEntity>)*
|
|
6501
6497
|
[formatjson|returnidonly]
|
|
6502
6498
|
gam <UserTypeEntity> delete chatmember <ChatSpace>
|
|
6503
6499
|
((user <UserItem>)|(members <UserTypeEntity>)|
|
|
6504
6500
|
(group <GroupItem>)|(groups <GroupEntity>))+
|
|
6505
|
-
gam <UserTypeEntity> remove chatmember members <ChatMemberList>
|
|
6501
|
+
`gam <UserTypeEntity> remove chatmember members <ChatMemberList>
|
|
6506
6502
|
gam <UserTypeEntity> update chatmember <ChatSpace>
|
|
6507
|
-
role member|manager
|
|
6503
|
+
role member|manager|owner
|
|
6508
6504
|
((user <UserItem>)|(members <UserTypeEntity>))+
|
|
6509
6505
|
gam <UserTypeEntity> modify chatmember
|
|
6510
|
-
role member|manager
|
|
6506
|
+
role member|manager|owner
|
|
6511
6507
|
members <ChatMemberList>
|
|
6512
6508
|
gam <UserTypeEntity> sync chatmembers <ChatSpace>
|
|
6513
|
-
[role member|manager] [type human|bot]
|
|
6509
|
+
[role member|manager|owner] [type human|bot]
|
|
6514
6510
|
[addonly|removeonly]
|
|
6515
6511
|
[preview [actioncsv]]
|
|
6516
6512
|
(users <UserTypeEntity>)* (groups <GroupEntity>)*
|
|
6517
6513
|
|
|
6518
6514
|
gam <UserItem> create chatmember asadmin <ChatSpace>
|
|
6519
|
-
[type human|bot] [role member|manager]
|
|
6515
|
+
[type human|bot] [role member|manager|owner]
|
|
6520
6516
|
(user <UserItem>)* (members <UserTypeEntity>)*
|
|
6521
6517
|
(group <GroupItem>)* (groups <GroupEntity>)*
|
|
6522
6518
|
[formatjson|returnidonly]
|
|
@@ -6525,13 +6521,13 @@ gam <UserItem> delete chatmember asadmin <ChatSpace>
|
|
|
6525
6521
|
((user <UserItem>)|(members <UserTypeEntity>)|
|
|
6526
6522
|
(group <GroupItem>)|(groups <GroupEntity>))+
|
|
6527
6523
|
gam <UserItem> update chatmember asadmin <ChatSpace>
|
|
6528
|
-
role member|manager
|
|
6524
|
+
role member|manager|owner
|
|
6529
6525
|
((user <UserItem>)|(members <UserTypeEntity>))+
|
|
6530
6526
|
gam <UserItem> modify chatmember asadmin
|
|
6531
|
-
role member|manager
|
|
6527
|
+
role member|manager|owner
|
|
6532
6528
|
members <ChatMemberList>
|
|
6533
6529
|
gam <UserItem> sync chatmembers asadmin <ChatSpace>
|
|
6534
|
-
[role member|manager] [type human|bot]
|
|
6530
|
+
[role member|manager|owner`] [type human|bot]
|
|
6535
6531
|
[addonly|removeonly]
|
|
6536
6532
|
[preview [actioncsv]]
|
|
6537
6533
|
(users <UserTypeEntity>)* (groups <GroupEntity>)*
|
|
@@ -7579,7 +7575,19 @@ gam <UserTypeEntity> deprovision|deprov [popimap] [signout] [turnoff2sv]
|
|
|
7579
7575
|
# Users - Gmail - Delegates
|
|
7580
7576
|
|
|
7581
7577
|
gam <UserTypeEntity> delegate to [convertalias] <UserEntity>
|
|
7578
|
+
[notify [<Boolean>]
|
|
7579
|
+
[subject <String>]
|
|
7580
|
+
[from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
7581
|
+
[replyto <EmailAaddress>]
|
|
7582
|
+
[<NotifyMessageContent>] [html [<Boolean>]]
|
|
7583
|
+
]
|
|
7582
7584
|
gam <UserTypeEntity> create|add delegate|delegates [convertalias] <UserEntity>
|
|
7585
|
+
[notify [<Boolean>]
|
|
7586
|
+
[subject <String>]
|
|
7587
|
+
[from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
7588
|
+
[replyto <EmailAaddress>]
|
|
7589
|
+
[<NotifyMessageContent>] [html [<Boolean>]]
|
|
7590
|
+
]
|
|
7583
7591
|
gam <UserTypeEntity> delete delegate|delegates [convertalias] <UserEntity>
|
|
7584
7592
|
gam <UserTypeEntity> update delegate|delegates [convertalias] [<UserEntity>]
|
|
7585
7593
|
gam <UserTypeEntity> show delegates|delegate [shownames] [csv]
|
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
7.27.04
|
|
2
|
+
|
|
3
|
+
Added options to `gam <UserTypeEntity> create delegate` that support
|
|
4
|
+
sending email notifications when a user adds a delegate.
|
|
5
|
+
|
|
6
|
+
* See: https://github.com/GAM-team/GAM/wiki/Users-Gmail-Delegates#delegation-notification
|
|
7
|
+
|
|
8
|
+
7.27.03
|
|
9
|
+
|
|
10
|
+
Updated `gam <UserTypeEntity> create|update|sync chatmember` role specification to `role member|manager|owner`.
|
|
11
|
+
This is the mapping between the Chat UI and Chat API; GAM uses the Chat UI role names.
|
|
12
|
+
```
|
|
13
|
+
UI: Member, API: ROLE_MEMBER
|
|
14
|
+
UI: Manager, API: ROLE_ASSISTANT_MANAGER
|
|
15
|
+
UI: Owner, API: ROLE_MANAGER
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Updated `gam <UserTypeEntity> update chatspace` options for permission settings.
|
|
19
|
+
```
|
|
20
|
+
[managemembersandgroups owners|managers|members]
|
|
21
|
+
[modifyspacedetails owners|managers|members]
|
|
22
|
+
[togglehistory owners|managers|members]
|
|
23
|
+
[useatmentionall owners|managers|members]
|
|
24
|
+
[manageapps owners|managers|members]
|
|
25
|
+
[managewebhooks owners|managers|members]
|
|
26
|
+
[replymessages owners|managers|members]
|
|
27
|
+
```
|
|
28
|
+
|
|
1
29
|
7.27.02
|
|
2
30
|
|
|
3
31
|
Added option `clearattachments <String>` to `gam [<UserTypeMessage>] update chatmessage`
|
|
@@ -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.27.
|
|
28
|
+
__version__ = '7.27.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
|
|
@@ -26776,14 +26776,14 @@ def getChatSpaceParameters(myarg, body, typeChoicesMap, updateMask):
|
|
|
26776
26776
|
|
|
26777
26777
|
CHAT_MEMBER_ROLE_MAP = {
|
|
26778
26778
|
'member': 'ROLE_MEMBER',
|
|
26779
|
-
'manager': '
|
|
26780
|
-
'owner': '
|
|
26779
|
+
'manager': 'ROLE_ASSISTANT_MANAGER',
|
|
26780
|
+
'owner': 'ROLE_MANAGER',
|
|
26781
26781
|
}
|
|
26782
26782
|
|
|
26783
26783
|
CHAT_ROLE_ENTITY_TYPE_MAP = {
|
|
26784
26784
|
'ROLE_MEMBER': Ent.CHAT_MEMBER_USER,
|
|
26785
|
-
'
|
|
26786
|
-
'
|
|
26785
|
+
'ROLE_ASSISTANT_MANAGER': Ent.CHAT_MANAGER_USER,
|
|
26786
|
+
'ROLE_MANAGER': Ent.CHAT_OWNER_USER,
|
|
26787
26787
|
}
|
|
26788
26788
|
|
|
26789
26789
|
CHAT_MEMBER_TYPE_MAP = {
|
|
@@ -26917,7 +26917,8 @@ CHAT_UPDATE_SPACE_TYPE_MAP = {
|
|
|
26917
26917
|
}
|
|
26918
26918
|
|
|
26919
26919
|
CHAT_SPACE_ROLE_PERMISSIONS_MAP = {
|
|
26920
|
-
'
|
|
26920
|
+
'owners': 'managersAllowed',
|
|
26921
|
+
'managers': 'assistantManagersAllowed',
|
|
26921
26922
|
'members': 'membersAllowed',
|
|
26922
26923
|
}
|
|
26923
26924
|
|
|
@@ -26937,13 +26938,13 @@ CHAT_UPDATE_SPACE_PERMISSIONS_MAP = {
|
|
|
26937
26938
|
# [type space]
|
|
26938
26939
|
# [description <String>] [guidelines|rules <String>]
|
|
26939
26940
|
# [history <Boolean>])
|
|
26940
|
-
# managemembersandgroups managers|members
|
|
26941
|
-
# modifyspacedetails managers|members
|
|
26942
|
-
# togglehistory managers|members
|
|
26943
|
-
# useatmentionall managers|members
|
|
26944
|
-
# manageapps managers|members
|
|
26945
|
-
# managewebhooks managers|members
|
|
26946
|
-
# replymessages managers|members
|
|
26941
|
+
# [managemembersandgroups owners|managers|members]
|
|
26942
|
+
# [modifyspacedetails owners|managers|members]
|
|
26943
|
+
# [togglehistory owners|managers|members]
|
|
26944
|
+
# [useatmentionall owners|managers|members]
|
|
26945
|
+
# [manageapps owners|managers|members]
|
|
26946
|
+
# [managewebhooks owners|managers|members]
|
|
26947
|
+
2# [replymessages owners|managers|members]
|
|
26947
26948
|
# [formatjson]
|
|
26948
26949
|
def updateChatSpace(users):
|
|
26949
26950
|
FJQC = FormatJSONQuoteChar()
|
|
@@ -26961,9 +26962,13 @@ def updateChatSpace(users):
|
|
|
26961
26962
|
body.setdefault('permissionSettings', {})
|
|
26962
26963
|
permissionSetting = CHAT_UPDATE_SPACE_PERMISSIONS_MAP[myarg]
|
|
26963
26964
|
role = getChoice(CHAT_SPACE_ROLE_PERMISSIONS_MAP, mapChoice=True)
|
|
26964
|
-
body['permissionSettings'][permissionSetting] = {
|
|
26965
|
+
body['permissionSettings'][permissionSetting] = {}
|
|
26966
|
+
body['permissionSettings'][permissionSetting][role] = True
|
|
26965
26967
|
if role == 'membersAllowed':
|
|
26966
|
-
body['permissionSettings'][permissionSetting]
|
|
26968
|
+
body['permissionSettings'][permissionSetting]['assistantManagersAllowed'] = True
|
|
26969
|
+
body['permissionSettings'][permissionSetting]['managersAllowed'] = True
|
|
26970
|
+
elif role == 'assistantManagersAllowed':
|
|
26971
|
+
body['permissionSettings'][permissionSetting]['managersAllowed'] = True
|
|
26967
26972
|
updateMask.add(f'permissionSettings.{permissionSetting}')
|
|
26968
26973
|
else:
|
|
26969
26974
|
FJQC.GetFormatJSON(myarg)
|
|
@@ -27337,12 +27342,12 @@ def getGroupMemberID(cd, group, groupList):
|
|
|
27337
27342
|
groupList.append(convertEmailAddressToUID(group, cd, emailType='group'))
|
|
27338
27343
|
|
|
27339
27344
|
# gam <UserTypeEntity> create chatmember <ChatSpace>
|
|
27340
|
-
# [type human|bot] [role member|manager]
|
|
27345
|
+
# [type human|bot] [role member|manager|owner]
|
|
27341
27346
|
# (user <UserItem>)* (members <UserTypeEntity>)*
|
|
27342
27347
|
# (group <GroupItem>)* (groups <GroupEntity>)*
|
|
27343
27348
|
# [formatjson|returnidonly]
|
|
27344
27349
|
# gam <UserItem> create chatmember asadmin <ChatSpace>
|
|
27345
|
-
# [type human|bot] [role member|manager]
|
|
27350
|
+
# [type human|bot] [role member|manager|owner]
|
|
27346
27351
|
# (user <UserItem>)* (members <UserTypeEntity>)*
|
|
27347
27352
|
# (group <GroupItem>)* (groups <GroupEntity>)*
|
|
27348
27353
|
# [formatjson|returnidonly]
|
|
@@ -27471,16 +27476,16 @@ def _deleteChatMembers(chat, kvList, jcount, memberNames, i, count, kwargsUAA):
|
|
|
27471
27476
|
# gam <UserItem> remove chatmember asadmin
|
|
27472
27477
|
# members <ChatMemberList>
|
|
27473
27478
|
# gam <UserTypeEntity> update chatmember <ChatSpace>
|
|
27474
|
-
# role member|manager
|
|
27479
|
+
# role member|manager|owner
|
|
27475
27480
|
# ((user <UserItem>)|(members <UserTypeEntity>))+
|
|
27476
27481
|
# gam <UserTypeEntity> modify chatmember
|
|
27477
|
-
# role member|manager
|
|
27482
|
+
# role member|manager|owner
|
|
27478
27483
|
# members <ChatMemberList>
|
|
27479
27484
|
# gam <UserItem> update chatmember asadmin<ChatSpace>
|
|
27480
|
-
# role member|manager
|
|
27485
|
+
# role member|manager|owner
|
|
27481
27486
|
# ((user <UserItem>)|(members <UserTypeEntity>))+
|
|
27482
27487
|
# gam <UserItem> modify chatmember asadmin
|
|
27483
|
-
# role member|manager
|
|
27488
|
+
# role member|manager|owner
|
|
27484
27489
|
# members <ChatMemberList>
|
|
27485
27490
|
def deleteUpdateChatMember(users):
|
|
27486
27491
|
cd = buildGAPIObject(API.DIRECTORY)
|
|
@@ -27574,7 +27579,7 @@ def deleteUpdateChatMember(users):
|
|
|
27574
27579
|
CHAT_SYNC_PREVIEW_TITLES = ['space', 'member', 'role', 'action', 'message']
|
|
27575
27580
|
|
|
27576
27581
|
# gam <UserTypeEntity> sync chatmembers [asadmin] <ChatSpace>
|
|
27577
|
-
# [role member|manager] [type human|bot]
|
|
27582
|
+
# [role member|manager|owner] [type human|bot]
|
|
27578
27583
|
# [addonly|removeonly]
|
|
27579
27584
|
# [preview [actioncsv]]
|
|
27580
27585
|
# (users <UserTypeEntity>)* (groups <GroupEntity>)*
|
|
@@ -44231,6 +44236,28 @@ USER_JSON_SKIP_FIELDS = ['agreedToTerms', 'aliases', 'creationTime', 'customerId
|
|
|
44231
44236
|
|
|
44232
44237
|
ALLOW_EMPTY_CUSTOM_TYPE = 'allowEmptyCustomType'
|
|
44233
44238
|
|
|
44239
|
+
def getNotifyArguments(myarg, notify, userNotification):
|
|
44240
|
+
if myarg == 'notify':
|
|
44241
|
+
if userNotification:
|
|
44242
|
+
notify['recipients'].extend(getNormalizedEmailAddressEntity(shlexSplit=True, noLower=True))
|
|
44243
|
+
else: #delegateNotificatiomn
|
|
44244
|
+
notify['notify'] = getBoolean()
|
|
44245
|
+
elif myarg == 'subject':
|
|
44246
|
+
notify['subject'] = getString(Cmd.OB_STRING)
|
|
44247
|
+
elif myarg in SORF_MSG_FILE_ARGUMENTS:
|
|
44248
|
+
notify['message'], notify['charset'], notify['html'] = getStringOrFile(myarg)
|
|
44249
|
+
elif myarg == 'html':
|
|
44250
|
+
notify['html'] = getBoolean()
|
|
44251
|
+
elif myarg == 'from':
|
|
44252
|
+
notify['from'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
44253
|
+
elif myarg == 'mailbox':
|
|
44254
|
+
notify['mailbox'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
44255
|
+
elif myarg == 'replyto':
|
|
44256
|
+
notify['replyto'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
44257
|
+
else:
|
|
44258
|
+
return False
|
|
44259
|
+
return True
|
|
44260
|
+
|
|
44234
44261
|
def getUserAttributes(cd, updateCmd, noUid=False):
|
|
44235
44262
|
def getKeywordAttribute(keywords, attrdict, **opts):
|
|
44236
44263
|
if Cmd.ArgumentsRemaining():
|
|
@@ -44346,22 +44373,10 @@ def getUserAttributes(cd, updateCmd, noUid=False):
|
|
|
44346
44373
|
resolveConflictAccount = True
|
|
44347
44374
|
while Cmd.ArgumentsRemaining():
|
|
44348
44375
|
myarg = getArgument()
|
|
44349
|
-
if myarg
|
|
44350
|
-
|
|
44376
|
+
if getNotifyArguments(myarg, notify, True):
|
|
44377
|
+
pass
|
|
44351
44378
|
elif myarg == 'notifyrecoveryemail':
|
|
44352
44379
|
parameters['notifyRecoveryEmail'] = True
|
|
44353
|
-
elif myarg == 'subject':
|
|
44354
|
-
notify['subject'] = getString(Cmd.OB_STRING)
|
|
44355
|
-
elif myarg in SORF_MSG_FILE_ARGUMENTS:
|
|
44356
|
-
notify['message'], notify['charset'], notify['html'] = getStringOrFile(myarg)
|
|
44357
|
-
elif myarg == 'html':
|
|
44358
|
-
notify['html'] = getBoolean()
|
|
44359
|
-
elif myarg == 'from':
|
|
44360
|
-
notify['from'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
44361
|
-
elif myarg == 'replyto':
|
|
44362
|
-
notify['replyto'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
44363
|
-
elif myarg == 'mailbox':
|
|
44364
|
-
notify['mailbox'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
44365
44380
|
elif PwdOpts.ProcessArgument(myarg, notify, notFoundBody):
|
|
44366
44381
|
pass
|
|
44367
44382
|
elif _getTagReplacement(myarg, tagReplacements, True):
|
|
@@ -44767,12 +44782,12 @@ def createUserAddAliases(cd, user, aliasList, i, count):
|
|
|
44767
44782
|
# [license <SKUID> [product|productid <ProductID>]]
|
|
44768
44783
|
# [[notify <EmailAddressList>] [notifyrecoveryemail]
|
|
44769
44784
|
# [subject <String>]
|
|
44770
|
-
# [
|
|
44771
|
-
# [from <EmailAaddress>]
|
|
44785
|
+
# [from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
44772
44786
|
# [replyto <EmailAaddress>]
|
|
44773
|
-
# [<
|
|
44774
|
-
#
|
|
44775
|
-
#
|
|
44787
|
+
# [notifypassword <String>]
|
|
44788
|
+
# [<NotifyMessageContent>] [html [<Boolean>]]
|
|
44789
|
+
# (replace <Tag> <UserReplacement>)*
|
|
44790
|
+
# (replaceregex <REMatchPattern> <RESubstitution> <Tag> <UserReplacement>)*]
|
|
44776
44791
|
# [logpassword <FileName>] [ignorenullpassword]
|
|
44777
44792
|
# [addnumericsuffixonduplicate <Number>]
|
|
44778
44793
|
def doCreateUser():
|
|
@@ -44871,12 +44886,12 @@ def verifyUserPrimaryEmail(cd, user, createIfNotFound, i, count):
|
|
|
44871
44886
|
# [alias|aliases <EmailAddressList>]
|
|
44872
44887
|
# [[notify <EmailAddressList>] [notifyrecoveryemail]
|
|
44873
44888
|
# [subject <String>]
|
|
44874
|
-
# [
|
|
44875
|
-
# [from <EmailAaddress>]
|
|
44889
|
+
# [from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
44876
44890
|
# [replyto <EmailAaddress>]
|
|
44877
|
-
# [<NotifyMessageContent>
|
|
44891
|
+
# [<NotifyMessageContent> [html [<Boolean>]]
|
|
44878
44892
|
# (replace <Tag> <UserReplacement>)*
|
|
44879
44893
|
# (replaceregex <REMatchPattern> <RESubstitution> <Tag> <UserReplacement>)*]
|
|
44894
|
+
# [notifypassword <String>]]
|
|
44880
44895
|
# [notifyonupdate [<Boolean>]]
|
|
44881
44896
|
# [logpassword <FileName>] [ignorenullpassword]
|
|
44882
44897
|
def updateUsers(entityList):
|
|
@@ -73918,14 +73933,58 @@ def printShowMessages(users):
|
|
|
73918
73933
|
def printShowThreads(users):
|
|
73919
73934
|
printShowMessagesThreads(users, Ent.THREAD)
|
|
73920
73935
|
|
|
73936
|
+
def sendCreateDelegateNotification(user, delegate, basenotify, i=0, count=0, msgFrom=None):
|
|
73937
|
+
# Substitute for #user#, #delegate#
|
|
73938
|
+
def _substituteForPattern(field, pattern, value):
|
|
73939
|
+
if field.find('#') == -1:
|
|
73940
|
+
return field
|
|
73941
|
+
return field.replace(pattern, value)
|
|
73942
|
+
|
|
73943
|
+
def _makeSubstitutions(field):
|
|
73944
|
+
notify[field] = _substituteForPattern(notify[field], '#user#', user)
|
|
73945
|
+
notify[field] = _substituteForPattern(notify[field], '#delegate#', delegate)
|
|
73946
|
+
|
|
73947
|
+
notify = basenotify.copy()
|
|
73948
|
+
if not notify['subject']:
|
|
73949
|
+
notify['subject'] = Msg.CREATE_DELEGATE_NOTIFY_SUBJECT
|
|
73950
|
+
_makeSubstitutions('subject')
|
|
73951
|
+
if not notify['message']:
|
|
73952
|
+
notify['message'] = Msg.CREATE_DELEGATE_NOTIFY_MESSAGE
|
|
73953
|
+
elif notify['html']:
|
|
73954
|
+
notify['message'] = notify['message'].replace('\r', '').replace('\\n', '<br/>')
|
|
73955
|
+
else:
|
|
73956
|
+
notify['message'] = notify['message'].replace('\r', '').replace('\\n', '\n')
|
|
73957
|
+
_makeSubstitutions('message')
|
|
73958
|
+
if 'from' in notify:
|
|
73959
|
+
msgFrom = notify['from']
|
|
73960
|
+
msgReplyTo = notify.get('replyto', None)
|
|
73961
|
+
mailBox = notify.get('mailbox', None)
|
|
73962
|
+
send_email(notify['subject'], notify['message'], delegate, i, count,
|
|
73963
|
+
msgFrom=msgFrom, msgReplyTo=msgReplyTo, html=notify['html'], charset=notify['charset'], mailBox=mailBox)
|
|
73964
|
+
|
|
73921
73965
|
# gam <UserTypeEntity> create delegate|delegates [convertalias] <UserEntity>
|
|
73966
|
+
# [notify [<Boolean>]
|
|
73967
|
+
# [subject <String>]
|
|
73968
|
+
# [from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
73969
|
+
# [replyto <EmailAaddress>]
|
|
73970
|
+
# [<NotifyMessageContent>] [html [<Boolean>]]
|
|
73971
|
+
# ]
|
|
73922
73972
|
# gam <UserTypeEntity> delete delegate|delegates [convertalias] <UserEntity>
|
|
73923
73973
|
def processDelegates(users):
|
|
73924
73974
|
cd = buildGAPIObject(API.DIRECTORY)
|
|
73925
|
-
|
|
73975
|
+
createCmd = Act.Get() != Act.DELETE
|
|
73926
73976
|
aliasAllowed = not checkArgumentPresent(['convertalias'])
|
|
73927
73977
|
delegateEntity = getUserObjectEntity(Cmd.OB_USER_ENTITY, Ent.DELEGATE)
|
|
73928
|
-
|
|
73978
|
+
notify = {'notify': False, 'subject': '', 'message': '', 'html': False, 'charset': UTF8}
|
|
73979
|
+
if createCmd:
|
|
73980
|
+
while Cmd.ArgumentsRemaining():
|
|
73981
|
+
myarg = getArgument()
|
|
73982
|
+
if getNotifyArguments(myarg, notify, False):
|
|
73983
|
+
pass
|
|
73984
|
+
else:
|
|
73985
|
+
unknownArgumentExit()
|
|
73986
|
+
else:
|
|
73987
|
+
checkForExtraneousArguments()
|
|
73929
73988
|
i, count, users = getEntityArgument(users)
|
|
73930
73989
|
for user in users:
|
|
73931
73990
|
i += 1
|
|
@@ -73937,25 +73996,37 @@ def processDelegates(users):
|
|
|
73937
73996
|
for delegate in delegates:
|
|
73938
73997
|
j += 1
|
|
73939
73998
|
delegateEmail = convertUIDtoEmailAddress(delegate, cd=cd, emailTypes=['user', 'group'], aliasAllowed=aliasAllowed)
|
|
73999
|
+
kvList = [Ent.USER, user, Ent.DELEGATE, delegateEmail]
|
|
73940
74000
|
try:
|
|
73941
|
-
if
|
|
73942
|
-
callGAPI(gmail.users().settings().delegates(),
|
|
74001
|
+
if createCmd:
|
|
74002
|
+
callGAPI(gmail.users().settings().delegates(), 'create',
|
|
73943
74003
|
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.ALREADY_EXISTS, GAPI.FAILED_PRECONDITION, GAPI.INVALID,
|
|
73944
74004
|
GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
|
73945
74005
|
userId='me', body={'delegateEmail': delegateEmail})
|
|
74006
|
+
entityActionPerformed(kvList, j, jcount)
|
|
74007
|
+
if notify['notify']:
|
|
74008
|
+
Ind.Increment()
|
|
74009
|
+
sendCreateDelegateNotification(user, delegateEmail, notify, j, jcount)
|
|
74010
|
+
Ind.Decrement()
|
|
73946
74011
|
else:
|
|
73947
|
-
callGAPI(gmail.users().settings().delegates(),
|
|
74012
|
+
callGAPI(gmail.users().settings().delegates(), 'delete',
|
|
73948
74013
|
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.INVALID_INPUT, GAPI.PERMISSION_DENIED],
|
|
73949
74014
|
userId='me', delegateEmail=delegateEmail)
|
|
73950
|
-
|
|
74015
|
+
entityActionPerformed(kvList, j, jcount)
|
|
73951
74016
|
except (GAPI.alreadyExists, GAPI.failedPrecondition, GAPI.invalid,
|
|
73952
74017
|
GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
73953
|
-
entityActionFailedWarning(
|
|
74018
|
+
entityActionFailedWarning(kvList, str(e), j, jcount)
|
|
73954
74019
|
except GAPI.serviceNotAvailable:
|
|
73955
74020
|
userGmailServiceNotEnabledWarning(user, i, count)
|
|
73956
74021
|
Ind.Decrement()
|
|
73957
74022
|
|
|
73958
74023
|
# gam <UserTypeEntity> delegate to [convertalias] <UserEntity>
|
|
74024
|
+
# [notify [<Boolean>]
|
|
74025
|
+
# [subject <String>]
|
|
74026
|
+
# [from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
74027
|
+
# [replyto <EmailAaddress>]
|
|
74028
|
+
# [<NotifyMessageContent>] [html [<Boolean>]]
|
|
74029
|
+
# ]
|
|
73959
74030
|
def delegateTo(users):
|
|
73960
74031
|
checkArgumentPresent('to', required=True)
|
|
73961
74032
|
processDelegates(users)
|
|
@@ -224,6 +224,8 @@ COUNT_N_EXCEEDS_MAX_TO_PROCESS_M = 'Count {0} exceeds maximum to {1} {2}'
|
|
|
224
224
|
CORRUPT_FILE = 'Corrupt file'
|
|
225
225
|
COULD_NOT_FIND_ANY_YUBIKEY = 'Could not find any YubiKey\n'
|
|
226
226
|
COULD_NOT_FIND_YUBIKEY_WITH_SERIAL = 'Could not find YubiKey with serial number {0}\n'
|
|
227
|
+
CREATE_DELEGATE_NOTIFY_MESSAGE = '#user# has granted you #delegate# access to read, delete and send mail on their behalf.'
|
|
228
|
+
CREATE_DELEGATE_NOTIFY_SUBJECT = '#user# mail delegation to #delegate#'
|
|
227
229
|
CREATE_USER_NOTIFY_MESSAGE = 'Hello #givenname# #familyname#,\n\nYou have a new account at #domain#\nAccount details:\nUsername: #user#\nPassword: #password#\nStart using your new account by signing in at\nhttps://www.google.com/accounts/AccountChooser?Email=#user#&continue=https://workspace.google.com/dashboard\n'
|
|
228
230
|
CREATE_USER_NOTIFY_SUBJECT = 'Welcome to #domain#'
|
|
229
231
|
CSV_DATA_ALREADY_SAVED = 'CSV data already saved'
|
|
@@ -516,7 +518,7 @@ To set up Google Chat for your current project, please go to:
|
|
|
516
518
|
|
|
517
519
|
and follow the instructions at:
|
|
518
520
|
|
|
519
|
-
https://github.com/GAM-team/GAM/wiki/Chat-Bot#set-up-a-chat-bot
|
|
521
|
+
https://github.com/GAM-team/GAM/wiki/Chat-Bot-Setup-Use#set-up-a-chat-bot
|
|
520
522
|
|
|
521
523
|
You'll use projects/{1}/topics/no-topic in Connection settings Cloud Pub/Sub Topic Name
|
|
522
524
|
"""
|
|
@@ -43,7 +43,7 @@ Even if you're not going to use GAM as a Chat Bot, you have to configure a Chat
|
|
|
43
43
|
* Uncheck "Build this Chat app as a Workspace add-on."
|
|
44
44
|
* Enter an App name and Description of your choosing.
|
|
45
45
|
* For the Avatar URL you can use `https://dummyimage.com/384x256/4d4d4d/0011ff.png&text=+GAM` or a public URL to an image of your own choosing.
|
|
46
|
-
*
|
|
46
|
+
* Inƒ Functionality, uncheck both "Receive 1:1 messages" and "Join spaces and group conversations" if present
|
|
47
47
|
* In Connection settings, choose "Cloud Pub/Sub" and enter `projects/<ProjectID>/topics/no-topic` for the Topic Name. Replace `<ProjectID>` with your GAM project ID. GAM doesn't yet listen to pub/sub so this option is not used.
|
|
48
48
|
* In Visibility, uncheck "Make this Chat app available to specific people and groups in Domain Workspace".
|
|
49
49
|
* Click Save.
|
|
@@ -288,7 +288,7 @@ gam create chatmessage spaces spaces/AAAADi-pvqc gdoc announcements@domain.com n
|
|
|
288
288
|
Updates and rewrites an existing Chat message. Message will show as edited and no notification will be sent to members.
|
|
289
289
|
```
|
|
290
290
|
gam update chatmessage name <ChatMessage>
|
|
291
|
-
<ChatContent>
|
|
291
|
+
[<ChatContent>] [clearattachments <String>]
|
|
292
292
|
```
|
|
293
293
|
Specify the source of the message:
|
|
294
294
|
* `text <String>` - The message is `<String>`
|
|
@@ -296,12 +296,22 @@ Specify the source of the message:
|
|
|
296
296
|
* `gdoc <UserGoogleDoc>` - The message is read from a Google Doc.
|
|
297
297
|
* `gcsdoc <StorageBucketObjectName>` - The message is read from a Google Cloud Storage file.
|
|
298
298
|
|
|
299
|
+
The option `clearattachments <String>` can be used to clear all attachments from a Chat message.
|
|
300
|
+
If `<ChatContent>` is not specified, the current message text is retained and `<String>` is appended;
|
|
301
|
+
`<String>` must be specified but can be empty in which case the current message test is preserved as-is.
|
|
302
|
+
|
|
299
303
|
### Example
|
|
304
|
+
|
|
300
305
|
This example updates an existing chat message with new text.
|
|
301
306
|
```
|
|
302
307
|
gam update chatmessage name spaces/AAAADi-pvqc/messages/PKJrx90ooIU.PKJrx90ooIU text "HELLO CHAT?"
|
|
303
308
|
```
|
|
304
309
|
|
|
310
|
+
This example clears attachments from a chat message and appends ` - Attachments cleared`
|
|
311
|
+
to the current message text.
|
|
312
|
+
```
|
|
313
|
+
gam update chatmessage name spaces/AAAADi-pvqc/messages/PKJrx90ooIU.PKJrx90ooIU clearattachments " - Attachments cleared"
|
|
314
|
+
```
|
|
305
315
|
----
|
|
306
316
|
|
|
307
317
|
## Delete a Chat Message
|
|
@@ -245,7 +245,7 @@ to set `<GroupAttribute>`.
|
|
|
245
245
|
gam create cigroup <EmailAddress>
|
|
246
246
|
[copyfrom <GroupItem>] <GroupAttribute>*
|
|
247
247
|
[makeowner] [alias|aliases <CIGroupAliasList>]
|
|
248
|
-
[security|makesecuritygroup]
|
|
248
|
+
[security|makesecuritygroup] [locked]
|
|
249
249
|
[dynamic <QueryDynamicGroup>]
|
|
250
250
|
gam update cigroup <GroupEntity> [copyfrom <GroupItem>] <GroupAttribute>
|
|
251
251
|
[security|makesecuritygroup|
|
|
@@ -10,6 +10,41 @@ 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.27.04
|
|
14
|
+
|
|
15
|
+
Added options to `gam <UserTypeEntity> create delegate` that support
|
|
16
|
+
sending email notifications when a user adds a delegate.
|
|
17
|
+
|
|
18
|
+
* See: https://github.com/GAM-team/GAM/wiki/Users-Gmail-Delegates#delegation-notification
|
|
19
|
+
|
|
20
|
+
### 7.27.03
|
|
21
|
+
|
|
22
|
+
Updated `gam <UserTypeEntity> create|update|sync chatmember` role specification to `role member|manager|owner`.
|
|
23
|
+
This is the mapping between the Chat UI and Chat API; GAM uses the Chat UI role names.
|
|
24
|
+
```
|
|
25
|
+
UI: Member, API: ROLE_MEMBER
|
|
26
|
+
UI: Manager, API: ROLE_ASSISTANT_MANAGER
|
|
27
|
+
UI: Owner, API: ROLE_MANAGER
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Updated `gam <UserTypeEntity> update chatspace` options for permission settings.
|
|
31
|
+
```
|
|
32
|
+
[managemembersandgroups owners|managers|members]
|
|
33
|
+
[modifyspacedetails owners|managers|members]
|
|
34
|
+
[togglehistory owners|managers|members]
|
|
35
|
+
[useatmentionall owners|managers|members]
|
|
36
|
+
[manageapps owners|managers|members]
|
|
37
|
+
[managewebhooks owners|managers|members]
|
|
38
|
+
[replymessages owners|managers|members]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 7.27.02
|
|
42
|
+
|
|
43
|
+
Added option `clearattachments <String>` to `gam [<UserTypeMessage>] update chatmessage`
|
|
44
|
+
that clears all attachments from a Chat message. If `<ChatContent>` is not specified,
|
|
45
|
+
the current message text is retained and `<String>` is appended; `<String>` must be specified
|
|
46
|
+
but can be empty in which case the current message test is preserved as-is.
|
|
47
|
+
|
|
13
48
|
### 7.27.01
|
|
14
49
|
|
|
15
50
|
Fixed bug in `gam <UserTypeEntity> claim ownership <DriveFileEntity> ... onlyUsers|skipusers <UserTypeEntity>`
|
|
@@ -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.27.
|
|
255
|
+
GAM 7.27.04 - https://github.com/GAM-team/GAM - pyinstaller
|
|
256
256
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
257
257
|
Python 3.14.0 64-bit final
|
|
258
258
|
macOS Tahoe 26.0.1 x86_64
|
|
@@ -990,7 +990,7 @@ writes the credentials into the file oauth2.txt.
|
|
|
990
990
|
C:\>del C:\GAMConfig\oauth2.txt
|
|
991
991
|
C:\>gam version
|
|
992
992
|
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
|
993
|
-
GAM 7.27.
|
|
993
|
+
GAM 7.27.04 - https://github.com/GAM-team/GAM - pythonsource
|
|
994
994
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
995
995
|
Python 3.14.0 64-bit final
|
|
996
996
|
Windows-10-10.0.17134 AMD64
|