gam7 7.27.3__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.3 → gam7-7.27.4}/.github/workflows/build.yml +1 -1
- {gam7-7.27.3 → gam7-7.27.4}/PKG-INFO +1 -1
- {gam7-7.27.3 → gam7-7.27.4}/src/GamCommands.txt +20 -12
- {gam7-7.27.3 → gam7-7.27.4}/src/GamUpdate.txt +7 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/__init__.py +96 -30
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glmsgs.py +2 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/GamUpdates.md +28 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Chat.md +24 -25
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-Delegates.md +69 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users.md +17 -20
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Version-and-Help.md +6 -6
- {gam7-7.27.3 → gam7-7.27.4}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/actions/decrypt.sh +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/actions/entitlements.plist +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/stale.yml +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/.github/workflows/pypi.yml +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/LICENSE +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/README.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/pyproject.toml +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/.gitignore +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/LICENSE +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/README.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/callgam.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/__main__.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/__init__.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/auth.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/client.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/core.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/data.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/http.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/http_core.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/service.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/token_store.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/atom/url.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/cacerts.pem +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/service.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam-install.sh +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam-setup.bat +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam.exe.manifest +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam.spec +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/gam.wxs +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/license.rtf +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/tools/hooks/hook-httplib2.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/tools/mkGamRef.py +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/tools/openssl.props +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/tools/ssd.mjs +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/src/version_info.txt.in +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/00scratch.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Addresses.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Administrators.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Alert-Center.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Aliases.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Authorization.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Basic-Items.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Calendars-Access.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Calendars-Events.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Calendars.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Classroom-StudentGroups.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Customer.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Domains-Verification.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Domains.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Drive-Items.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/GAM-Release-Process.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/GAM7-FAQ.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Global-Address-List.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Groups-Membership.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Groups.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Home.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Licenses.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/List-Items.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/List.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Organizational-Units.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Other-Resources.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Permission-Matches.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/README.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Rclone.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Reports.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Reseller.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Resources.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Schemas.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Scripts.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Send-Email.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Shared-Drives.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Sites.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Tag-Replace.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Todrive.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Calendars.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Contacts.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Forms.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Meet.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Photo.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Tasks.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Tokens.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Users-YouTube.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/_Sidebar.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/gam.cfg.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Android-Installation.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-BulkOperations.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-CalendarExamples.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Chat-Bot.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Email.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Command-Reference-Users.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Custom-Schemas.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Data-Transfers.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-DomainVerification.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-ExamplesCSV.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-GAM-options-files.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-GAM3CSVListings.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Home.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-LicenseExamples.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Managing-Admins.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Managing-Devices.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Printers.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-ResellerCommands.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-SecurityExamples.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.27.3 → gam7-7.27.4}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.27.3 → 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
|
|
@@ -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
|
]
|
|
@@ -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,10 @@
|
|
|
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
|
+
|
|
1
8
|
7.27.03
|
|
2
9
|
|
|
3
10
|
Updated `gam <UserTypeEntity> create|update|sync chatmember` role specification to `role member|manager|owner`.
|
|
@@ -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
|
|
@@ -44236,6 +44236,28 @@ USER_JSON_SKIP_FIELDS = ['agreedToTerms', 'aliases', 'creationTime', 'customerId
|
|
|
44236
44236
|
|
|
44237
44237
|
ALLOW_EMPTY_CUSTOM_TYPE = 'allowEmptyCustomType'
|
|
44238
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
|
+
|
|
44239
44261
|
def getUserAttributes(cd, updateCmd, noUid=False):
|
|
44240
44262
|
def getKeywordAttribute(keywords, attrdict, **opts):
|
|
44241
44263
|
if Cmd.ArgumentsRemaining():
|
|
@@ -44351,22 +44373,10 @@ def getUserAttributes(cd, updateCmd, noUid=False):
|
|
|
44351
44373
|
resolveConflictAccount = True
|
|
44352
44374
|
while Cmd.ArgumentsRemaining():
|
|
44353
44375
|
myarg = getArgument()
|
|
44354
|
-
if myarg
|
|
44355
|
-
|
|
44376
|
+
if getNotifyArguments(myarg, notify, True):
|
|
44377
|
+
pass
|
|
44356
44378
|
elif myarg == 'notifyrecoveryemail':
|
|
44357
44379
|
parameters['notifyRecoveryEmail'] = True
|
|
44358
|
-
elif myarg == 'subject':
|
|
44359
|
-
notify['subject'] = getString(Cmd.OB_STRING)
|
|
44360
|
-
elif myarg in SORF_MSG_FILE_ARGUMENTS:
|
|
44361
|
-
notify['message'], notify['charset'], notify['html'] = getStringOrFile(myarg)
|
|
44362
|
-
elif myarg == 'html':
|
|
44363
|
-
notify['html'] = getBoolean()
|
|
44364
|
-
elif myarg == 'from':
|
|
44365
|
-
notify['from'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
44366
|
-
elif myarg == 'replyto':
|
|
44367
|
-
notify['replyto'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
44368
|
-
elif myarg == 'mailbox':
|
|
44369
|
-
notify['mailbox'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
44370
44380
|
elif PwdOpts.ProcessArgument(myarg, notify, notFoundBody):
|
|
44371
44381
|
pass
|
|
44372
44382
|
elif _getTagReplacement(myarg, tagReplacements, True):
|
|
@@ -44772,12 +44782,12 @@ def createUserAddAliases(cd, user, aliasList, i, count):
|
|
|
44772
44782
|
# [license <SKUID> [product|productid <ProductID>]]
|
|
44773
44783
|
# [[notify <EmailAddressList>] [notifyrecoveryemail]
|
|
44774
44784
|
# [subject <String>]
|
|
44775
|
-
# [
|
|
44776
|
-
# [from <EmailAaddress>]
|
|
44785
|
+
# [from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
44777
44786
|
# [replyto <EmailAaddress>]
|
|
44778
|
-
# [<
|
|
44779
|
-
#
|
|
44780
|
-
#
|
|
44787
|
+
# [notifypassword <String>]
|
|
44788
|
+
# [<NotifyMessageContent>] [html [<Boolean>]]
|
|
44789
|
+
# (replace <Tag> <UserReplacement>)*
|
|
44790
|
+
# (replaceregex <REMatchPattern> <RESubstitution> <Tag> <UserReplacement>)*]
|
|
44781
44791
|
# [logpassword <FileName>] [ignorenullpassword]
|
|
44782
44792
|
# [addnumericsuffixonduplicate <Number>]
|
|
44783
44793
|
def doCreateUser():
|
|
@@ -44876,12 +44886,12 @@ def verifyUserPrimaryEmail(cd, user, createIfNotFound, i, count):
|
|
|
44876
44886
|
# [alias|aliases <EmailAddressList>]
|
|
44877
44887
|
# [[notify <EmailAddressList>] [notifyrecoveryemail]
|
|
44878
44888
|
# [subject <String>]
|
|
44879
|
-
# [
|
|
44880
|
-
# [from <EmailAaddress>]
|
|
44889
|
+
# [from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
44881
44890
|
# [replyto <EmailAaddress>]
|
|
44882
|
-
# [<NotifyMessageContent>
|
|
44891
|
+
# [<NotifyMessageContent> [html [<Boolean>]]
|
|
44883
44892
|
# (replace <Tag> <UserReplacement>)*
|
|
44884
44893
|
# (replaceregex <REMatchPattern> <RESubstitution> <Tag> <UserReplacement>)*]
|
|
44894
|
+
# [notifypassword <String>]]
|
|
44885
44895
|
# [notifyonupdate [<Boolean>]]
|
|
44886
44896
|
# [logpassword <FileName>] [ignorenullpassword]
|
|
44887
44897
|
def updateUsers(entityList):
|
|
@@ -73923,14 +73933,58 @@ def printShowMessages(users):
|
|
|
73923
73933
|
def printShowThreads(users):
|
|
73924
73934
|
printShowMessagesThreads(users, Ent.THREAD)
|
|
73925
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
|
+
|
|
73926
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
|
+
# ]
|
|
73927
73972
|
# gam <UserTypeEntity> delete delegate|delegates [convertalias] <UserEntity>
|
|
73928
73973
|
def processDelegates(users):
|
|
73929
73974
|
cd = buildGAPIObject(API.DIRECTORY)
|
|
73930
|
-
|
|
73975
|
+
createCmd = Act.Get() != Act.DELETE
|
|
73931
73976
|
aliasAllowed = not checkArgumentPresent(['convertalias'])
|
|
73932
73977
|
delegateEntity = getUserObjectEntity(Cmd.OB_USER_ENTITY, Ent.DELEGATE)
|
|
73933
|
-
|
|
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()
|
|
73934
73988
|
i, count, users = getEntityArgument(users)
|
|
73935
73989
|
for user in users:
|
|
73936
73990
|
i += 1
|
|
@@ -73942,25 +73996,37 @@ def processDelegates(users):
|
|
|
73942
73996
|
for delegate in delegates:
|
|
73943
73997
|
j += 1
|
|
73944
73998
|
delegateEmail = convertUIDtoEmailAddress(delegate, cd=cd, emailTypes=['user', 'group'], aliasAllowed=aliasAllowed)
|
|
73999
|
+
kvList = [Ent.USER, user, Ent.DELEGATE, delegateEmail]
|
|
73945
74000
|
try:
|
|
73946
|
-
if
|
|
73947
|
-
callGAPI(gmail.users().settings().delegates(),
|
|
74001
|
+
if createCmd:
|
|
74002
|
+
callGAPI(gmail.users().settings().delegates(), 'create',
|
|
73948
74003
|
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.ALREADY_EXISTS, GAPI.FAILED_PRECONDITION, GAPI.INVALID,
|
|
73949
74004
|
GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
|
73950
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()
|
|
73951
74011
|
else:
|
|
73952
|
-
callGAPI(gmail.users().settings().delegates(),
|
|
74012
|
+
callGAPI(gmail.users().settings().delegates(), 'delete',
|
|
73953
74013
|
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.INVALID_INPUT, GAPI.PERMISSION_DENIED],
|
|
73954
74014
|
userId='me', delegateEmail=delegateEmail)
|
|
73955
|
-
|
|
74015
|
+
entityActionPerformed(kvList, j, jcount)
|
|
73956
74016
|
except (GAPI.alreadyExists, GAPI.failedPrecondition, GAPI.invalid,
|
|
73957
74017
|
GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
73958
|
-
entityActionFailedWarning(
|
|
74018
|
+
entityActionFailedWarning(kvList, str(e), j, jcount)
|
|
73959
74019
|
except GAPI.serviceNotAvailable:
|
|
73960
74020
|
userGmailServiceNotEnabledWarning(user, i, count)
|
|
73961
74021
|
Ind.Decrement()
|
|
73962
74022
|
|
|
73963
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
|
+
# ]
|
|
73964
74030
|
def delegateTo(users):
|
|
73965
74031
|
checkArgumentPresent('to', required=True)
|
|
73966
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'
|
|
@@ -10,6 +10,34 @@ 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
|
+
|
|
13
41
|
### 7.27.02
|
|
14
42
|
|
|
15
43
|
Added option `clearattachments <String>` to `gam [<UserTypeMessage>] update chatmessage`
|
|
@@ -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
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- [Chat Space Permissions](#chat-space-permissions)
|
|
8
8
|
- [Manage Chat Spaces](#manage-chat-spaces)
|
|
9
9
|
- [Display Chat Spaces](#display-chat-spaces)
|
|
10
|
+
- [UI API member role mapping](#ui-api-mwmber-role-mapping)
|
|
10
11
|
- [Manage Chat Members](#manage-chat-members)
|
|
11
12
|
- [Display Chat Members](#display-chat-members)
|
|
12
13
|
- [Manage Chat Messages](#manage-chat-messages)
|
|
@@ -211,7 +212,7 @@ For `type space`, the following apply:
|
|
|
211
212
|
* `description <String>` - Optional
|
|
212
213
|
* `guidelines <String>` - Optional
|
|
213
214
|
* `history <Boolean>` - Optional
|
|
214
|
-
* `announcement|collaboration` - Initial permission settings; default is `collaboration
|
|
215
|
+
* `announcement|collaboration` - Initial permission settings; default is `collaboration`
|
|
215
216
|
|
|
216
217
|
For `type groupchat`, the following apply:
|
|
217
218
|
* `members <UserTypeEntity>` - Required, must specify between 2 and 20 users
|
|
@@ -244,30 +245,19 @@ gam <UserTypeEntity> update chatspace <ChatSpace>
|
|
|
244
245
|
[type space]
|
|
245
246
|
[description <String>] [guidelines|rules <String>]
|
|
246
247
|
[history <Boolean>])
|
|
247
|
-
[managemembersandgroups managers|members]
|
|
248
|
-
[modifyspacedetails managers|members]
|
|
249
|
-
[togglehistory managers|members]
|
|
250
|
-
[useatmentionall managers|members]
|
|
251
|
-
[manageapps managers|members]
|
|
252
|
-
[managewebhooks managers|members]
|
|
253
|
-
[replymessages managers|members]
|
|
248
|
+
[managemembersandgroups owners|managers|members]
|
|
249
|
+
[modifyspacedetails owners|managers|members]
|
|
250
|
+
[togglehistory owners|managers|members]
|
|
251
|
+
[useatmentionall owners|managers|members]
|
|
252
|
+
[manageapps owners|managers|members]
|
|
253
|
+
[managewebhooks owners|managers|members]
|
|
254
|
+
[replymessages owners|managers|members]
|
|
254
255
|
[formatjson]
|
|
255
256
|
```
|
|
256
257
|
A groupchat space can be upgraded to a space by specifying `type space` and `displayname <String>`.
|
|
257
258
|
|
|
258
259
|
The `restricted|audience` options can not be combined with options `displayname,type,description,guidelines,history`.
|
|
259
260
|
|
|
260
|
-
You can manage permissions for chat spaces with the following options that are available with Developer Preview.
|
|
261
|
-
[managemembersandgroups managers|members]
|
|
262
|
-
[modifyspacedetails managers|members]
|
|
263
|
-
[togglehistory managers|members]
|
|
264
|
-
[useatmentionall managers|members]
|
|
265
|
-
[manageapps managers|members]
|
|
266
|
-
[managewebhooks managers|members]
|
|
267
|
-
[postmessages managers|members]
|
|
268
|
-
[replymessages managers|members]
|
|
269
|
-
|
|
270
|
-
|
|
271
261
|
By default, Gam displays the information about the created chatspace as an indented list of keys and values.
|
|
272
262
|
* `formatjson` - Display the fields in JSON format.
|
|
273
263
|
|
|
@@ -432,11 +422,20 @@ When using the `formatjson` option, double quotes are used extensively in the da
|
|
|
432
422
|
The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
|
|
433
423
|
`quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
|
|
434
424
|
|
|
425
|
+
## UI API member role mapping
|
|
426
|
+
GAM uses the Chat UI role names.
|
|
427
|
+
|
|
428
|
+
| UI setting | API setting |
|
|
429
|
+
|------------|------------|
|
|
430
|
+
| Member | ROLE_MEMBER |
|
|
431
|
+
| Manager | ROLE_ASSISTANT_MANAGER |
|
|
432
|
+
| Owner | ROLE_MANAGER |
|
|
433
|
+
|
|
435
434
|
## Manage Chat Members
|
|
436
435
|
### Add members to a user's chat space
|
|
437
436
|
```
|
|
438
437
|
gam <UserTypeEntity> create chatmember <ChatSpace>
|
|
439
|
-
[type human|bot] [role member|manager]
|
|
438
|
+
[type human|bot] [role member|manager|owner]
|
|
440
439
|
(user <UserItem>)* (members <UserTypeEntity>)*
|
|
441
440
|
(group <GroupItem>)* (groups <GroupEntity>)*
|
|
442
441
|
[formatjson|returnidonly]
|
|
@@ -462,7 +461,7 @@ gam <UserTypeEntity> remove chatmember members <ChatMemberList>
|
|
|
462
461
|
Creating memberships for users outside the administrator's Google Workspace organization isn't supported using asadmin.
|
|
463
462
|
```
|
|
464
463
|
gam <UserItem> create chatmember asadmin <ChatSpace>
|
|
465
|
-
[type human|bot] [role member|manager]
|
|
464
|
+
[type human|bot] [role member|manager|owner]
|
|
466
465
|
(user <UserItem>)* (members <UserTypeEntity>)*
|
|
467
466
|
(group <GroupItem>)* (groups <GroupEntity>)*
|
|
468
467
|
[formatjson|returnidonly]
|
|
@@ -488,13 +487,13 @@ gam <UserItem> remove chatmember asadmin members <ChatMemberList>
|
|
|
488
487
|
Update members by specifying a chat space, user/group email addresses and role.
|
|
489
488
|
```
|
|
490
489
|
gam <UserTypeEntity> update chatmember <ChatSpace>
|
|
491
|
-
role member|manager
|
|
490
|
+
role member|manager|owner
|
|
492
491
|
((user <UserItem>)|(members <UserTypeEntity>))+
|
|
493
492
|
```
|
|
494
493
|
Update members by specifying chatmember names and role.
|
|
495
494
|
```
|
|
496
495
|
gam <UserTypeEntity> modify chatmember
|
|
497
|
-
role member|manager
|
|
496
|
+
role member|manager|owner
|
|
498
497
|
members <ChatMemberList>
|
|
499
498
|
```
|
|
500
499
|
|
|
@@ -502,13 +501,13 @@ gam <UserTypeEntity> modify chatmember
|
|
|
502
501
|
Update members by specifying a chat space, user/group email addresses and role.
|
|
503
502
|
```
|
|
504
503
|
gam <UserItem> update chatmember asadmin <ChatSpace>
|
|
505
|
-
role member|manager
|
|
504
|
+
role member|manager|owner
|
|
506
505
|
((user <UserItem>)|(members <UserTypeEntity>))+
|
|
507
506
|
```
|
|
508
507
|
Update members by specifying chatmember names and role.
|
|
509
508
|
```
|
|
510
509
|
gam <UserItem> modify chatmember asadmin
|
|
511
|
-
role member|manager
|
|
510
|
+
role member|manager|owner
|
|
512
511
|
members <ChatMemberList>
|
|
513
512
|
```
|
|
514
513
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
- [API documentation](#api-documentation)
|
|
4
4
|
- [Definitions](#definitions)
|
|
5
5
|
- [Aliases](#aliases)
|
|
6
|
+
- [Delegation Notification](#delegation-notification)
|
|
6
7
|
- [Create Gmail delegates](#create-gmail-delegates)
|
|
7
8
|
- [Delete Gmail delegates](#delete-gmail-delegates)
|
|
8
9
|
- [Update Gmail delegates](#update-gmail-delegates)
|
|
@@ -31,6 +32,23 @@ mail delegation is enabled. In the admin console, go to Apps/Google Workspace/Gm
|
|
|
31
32
|
<UserEntity> ::=
|
|
32
33
|
<UserList> | <FileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
|
33
34
|
See: https://github.com/GAM-team/GAM/wiki/Collections-of-Users
|
|
35
|
+
|
|
36
|
+
<StorageBucketName> ::= <String>
|
|
37
|
+
<StorageObjectName> ::= <String>
|
|
38
|
+
<StorageBucketObjectName> ::=
|
|
39
|
+
https://storage.cloud.google.com/<StorageBucketName>/<StorageObjectName>|
|
|
40
|
+
https://storage.googleapis.com/<StorageBucketName>/<StorageObjectName>|
|
|
41
|
+
gs://<StorageBucketName>/<StorageObjectName>|
|
|
42
|
+
<StorageBucketName>/<StorageObjectName>
|
|
43
|
+
|
|
44
|
+
<UserGoogleDoc> ::=
|
|
45
|
+
<EmailAddress> <DriveFileIDEntity>|<DriveFileNameEntity>|(<SharedDriveEntity> <SharedDriveFileNameEntity>)
|
|
46
|
+
|
|
47
|
+
<NotifyMessageContent> ::=
|
|
48
|
+
(message|textmessage|htmlmessage <String>)|
|
|
49
|
+
(file|textfile|htmlfile <FileName> [charset <Charset>])|
|
|
50
|
+
(gdoc|ghtml <UserGoogleDoc>)|
|
|
51
|
+
(gcsdoc|gcshtml <StorageBucketObjectName>)
|
|
34
52
|
```
|
|
35
53
|
## Aliases
|
|
36
54
|
|
|
@@ -39,11 +57,61 @@ The `convertalias` option causes GAM to make an extra API call per user in `<Use
|
|
|
39
57
|
to convert aliases to primary email addresses. If you know that all of the email addresses
|
|
40
58
|
in `<UserEntity>` are primary, you can omit `convertalias` and avoid the extra API calls.
|
|
41
59
|
|
|
60
|
+
## Delegation Notification
|
|
61
|
+
When creating a delegate, you can send a message to the delegate.
|
|
62
|
+
```
|
|
63
|
+
[notify [<Boolean>]
|
|
64
|
+
[subject <String>]
|
|
65
|
+
[from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
66
|
+
[replyto <EmailAddress>]
|
|
67
|
+
[<NotifyMessageContent>] [html [<Boolean>]]
|
|
68
|
+
]
|
|
69
|
+
```
|
|
70
|
+
* `notify [<Boolean>]` - Should notification be sent
|
|
71
|
+
|
|
72
|
+
In the subject and message, these strings will be replaced with the specified values:
|
|
73
|
+
* `#user#` - user's email address
|
|
74
|
+
* `#delegate#` - delegate's email address
|
|
75
|
+
|
|
76
|
+
If subject is not specified, the following value will be used:
|
|
77
|
+
* `#user# mail delegation to #delegate#`
|
|
78
|
+
|
|
79
|
+
`<NotifyMessageContent>` is the message, there are four ways to specify it:
|
|
80
|
+
* `message|textmessage|htmlmessage <String>` - Use `<String>` as the message
|
|
81
|
+
* `file|htmlfile <FileName> [charset <Charset>]` - Read the message from `<FileName>`
|
|
82
|
+
* `gdoc|ghtml <UserGoogleDoc>` - Read the message from `<UserGoogleDoc>`
|
|
83
|
+
* `gcsdoc|gcshtml <StorageBucketObjectName>` - Read the message from the Google Cloud Storage file `<StorageBucketObjectName>`
|
|
84
|
+
|
|
85
|
+
If `<NotifyMessageContent>`is not specified, the following value will be used:
|
|
86
|
+
* `#user# has granted you #delegate# access to read, delete and send mail on their behalf.`
|
|
87
|
+
|
|
88
|
+
Unless specified in `<NotifyMessageContent>`, messages are sent as plain text,
|
|
89
|
+
use `html` or `html true` to indicate that the message is HTML.
|
|
90
|
+
|
|
91
|
+
Use `\n` in `message <String>` to indicate a line break; no other special characters are recognized.
|
|
92
|
+
|
|
93
|
+
By default, the email is sent from the admin user identified in oauth2.txt, `gam oauth info` will show the value.
|
|
94
|
+
Use `from <EmailAddress>` to specify an alternate from address.
|
|
95
|
+
Use `mailbox <EmailAddress>` if `from <EmailAddress>` specifies a group; GAM has to login as a user to be able to send a message.
|
|
96
|
+
Gam gets no indication as to the status of the message delivery; the from user will get a non-delivery receipt if the message could not be sent to the delegate.
|
|
97
|
+
|
|
42
98
|
## Create Gmail delegates
|
|
43
99
|
These two commands are equivalent.
|
|
44
100
|
```
|
|
45
101
|
gam <UserTypeEntity> add delegate|delegates [convertalias] <UserEntity>
|
|
102
|
+
[[notify <EmailAddressList>]
|
|
103
|
+
[subject <String>]
|
|
104
|
+
[from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
105
|
+
[replyto <EmailAaddress>]
|
|
106
|
+
[<NotifyMessageContent>]
|
|
107
|
+
]
|
|
46
108
|
gam <UserTypeEntity> delegate|delegates to [convertalias] <UserEntity>
|
|
109
|
+
[[notify <EmailAddressList>]
|
|
110
|
+
[subject <String>]
|
|
111
|
+
[from <EmailAaddress>] [mailbox <EmailAddress>]
|
|
112
|
+
[replyto <EmailAaddress>]
|
|
113
|
+
[<NotifyMessageContent>]
|
|
114
|
+
]
|
|
47
115
|
```
|
|
48
116
|
### Example
|
|
49
117
|
|
|
@@ -51,6 +119,7 @@ To give Bob access to Fred's mailbox as a delegate:
|
|
|
51
119
|
|
|
52
120
|
```
|
|
53
121
|
gam user fred@domain.com add delegate bob@domain.com
|
|
122
|
+
gam user fred@domain.com delegate to bob@domain.com
|
|
54
123
|
```
|
|
55
124
|
|
|
56
125
|
## Delete Gmail delegates
|