gam7 7.22.5__tar.gz → 7.22.7__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.22.5 → gam7-7.22.7}/PKG-INFO +1 -1
- {gam7-7.22.5 → gam7-7.22.7}/src/GamCommands.txt +43 -12
- {gam7-7.22.5 → gam7-7.22.7}/src/GamUpdate.txt +41 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/__init__.py +167 -34
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glclargs.py +1 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/GamUpdates.md +51 -1
- {gam7-7.22.5 → gam7-7.22.7}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +1 -1
- {gam7-7.22.5 → gam7-7.22.7}/wiki/List-Items.md +1 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Permissions.md +1 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Vault-Takeout.md +112 -37
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Version-and-Help.md +3 -3
- {gam7-7.22.5 → gam7-7.22.7}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/actions/decrypt.sh +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/actions/entitlements.plist +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/stale.yml +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/workflows/build.yml +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/.github/workflows/pypi.yml +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/LICENSE +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/README.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/pyproject.toml +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/.gitignore +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/LICENSE +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/README.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/callgam.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/__main__.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/__init__.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/auth.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/client.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/core.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/data.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/http.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/http_core.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/service.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/token_store.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/atom/url.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/cacerts.pem +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/service.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam-install.sh +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam-setup.bat +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam.exe.manifest +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam.spec +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/gam.wxs +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/license.rtf +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/tools/hooks/hook-httplib2.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/tools/mkGamRef.py +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/tools/openssl.props +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/tools/ssd.mjs +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/src/version_info.txt.in +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/00scratch.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Addresses.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Administrators.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Alert-Center.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Aliases.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Authorization.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Basic-Items.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Calendars-Access.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Calendars-Events.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Calendars.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Classroom-StudentGroups.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Customer.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Domains-Verification.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Domains.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Drive-Items.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/GAM-Release-Process.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/GAM7-FAQ.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Global-Address-List.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Groups-Membership.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Groups.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Home.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Licenses.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/List.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Organizational-Units.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Other-Resources.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Permission-Matches.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/README.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Rclone.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Reports.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Reseller.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Resources.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Schemas.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Scripts.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Send-Email.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Shared-Drives.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Sites.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Tag-Replace.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Todrive.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Calendars.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Chat.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Contacts.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Forms.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Meet.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Photo.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Tasks.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Tokens.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users-YouTube.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Users.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/_Sidebar.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/gam.cfg.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Android-Installation.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-BulkOperations.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-CalendarExamples.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Chat-Bot.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Command-Reference-Email.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Command-Reference-Users.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Custom-Schemas.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Data-Transfers.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-DomainVerification.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-ExamplesCSV.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-GAM-options-files.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-GAM3CSVListings.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Home.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-LicenseExamples.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Managing-Admins.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Managing-Devices.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Printers.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-ResellerCommands.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-SecurityExamples.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.22.5 → gam7-7.22.7}/wiki/legacy/l-_Footer.md +0 -0
|
@@ -729,6 +729,7 @@ If an item contains spaces, it should be surrounded by ".
|
|
|
729
729
|
<DomainNameList> ::= "<DomainName>(,<DomainName>)*"
|
|
730
730
|
<DriveFileACLRoleList> ::= "<DriveFileACLRole>(,<DriveFileACLRole>)*"
|
|
731
731
|
<DriveFileACLTypeList> ::= "<DriveFileACLType>(,<DriveFileACLType>)*"
|
|
732
|
+
<DriveFileIDList> ::= "<DriveFileID>(,<DriveFileID>)*"
|
|
732
733
|
<DriveFileList> ::= "<DriveFileItem>(,<DriveFileItem>)*"
|
|
733
734
|
<DriveFilePermissionList> ::= "<DriveFilePermission>(,<DriveFilePermission>)*"
|
|
734
735
|
<DriveFilePermissionIDList> ::= "<DriveFilePermissionID>(,<DriveFilePermissionID>)*"
|
|
@@ -5411,14 +5412,16 @@ gam show vaultmatters|matters [matterstate <MatterStateList>]
|
|
|
5411
5412
|
[formatjson]
|
|
5412
5413
|
|
|
5413
5414
|
gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
5414
|
-
matter <MatterItem>
|
|
5415
|
-
[
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5415
|
+
matter <MatterItem> <QueryItem>
|
|
5416
|
+
[wait <Integer>]
|
|
5417
|
+
gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
5418
|
+
matter <MatterItem>
|
|
5419
|
+
corpus mail|groups
|
|
5419
5420
|
[scope [all_data|held_data|unprocessed_data]]
|
|
5421
|
+
[(accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone]
|
|
5420
5422
|
[terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
5421
5423
|
[excludedrafts <Boolean>]
|
|
5424
|
+
[<JSONData>]
|
|
5422
5425
|
[wait <Integer>]
|
|
5423
5426
|
gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
5424
5427
|
matter <MatterItem> operation <String> [wait <Integer>]
|
|
@@ -5432,18 +5435,20 @@ gam create vaultexport|export matter <MatterItem> [name <String>]
|
|
|
5432
5435
|
[format ics|mbox|pst|xml]
|
|
5433
5436
|
[region any|europe|us] [showdetails|returnidonly]
|
|
5434
5437
|
|
|
5435
|
-
gam create vaultexport|export matter <MatterItem> [name <String>]
|
|
5438
|
+
gam create vaultexport|export matter <MatterItem> [name <String>]
|
|
5439
|
+
corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
|
|
5440
|
+
[scope all_data|held_data|unprocessed_data]
|
|
5436
5441
|
(accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
|
|
5442
|
+
(documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
5437
5443
|
(shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
5438
|
-
(rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
5439
|
-
(sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
|
|
5440
|
-
[scope all_data|held_data|unprocessed_data]
|
|
5441
|
-
[terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
5442
|
-
[locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
5443
|
-
[responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
5444
5444
|
[(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
|
|
5445
|
+
(sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
|
|
5445
5446
|
[driveversiondate <Date>|<Time>]
|
|
5446
5447
|
[includerooms <Boolean>]
|
|
5448
|
+
(rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
5449
|
+
[terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
5450
|
+
[locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
5451
|
+
[responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
5447
5452
|
(covereddata calllogs|textmessages|voicemails)*
|
|
5448
5453
|
[driveclientsideencryption any|encrypted|unencrypted]
|
|
5449
5454
|
[includeaccessinfo <Boolean>]
|
|
@@ -5558,6 +5563,32 @@ gam show vaultholds|holds [matters <MatterItemList>]
|
|
|
5558
5563
|
gam <UserTypeEntity> print vaultholds|holds [todrive <ToDriveAttribute>*]
|
|
5559
5564
|
gam <UserTypeEntity> show vaultholds|holds
|
|
5560
5565
|
|
|
5566
|
+
gam create vaultquery <MatterItem> [name <String>]
|
|
5567
|
+
corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
|
|
5568
|
+
[scope all_data|held_data|unprocessed_data]
|
|
5569
|
+
(accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
|
|
5570
|
+
(documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
5571
|
+
(shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
5572
|
+
[(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
|
|
5573
|
+
(sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
|
|
5574
|
+
[driveversiondate <Date>|<Time>]
|
|
5575
|
+
[includerooms <Boolean>]
|
|
5576
|
+
(rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
5577
|
+
[terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
5578
|
+
[locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
5579
|
+
[responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
5580
|
+
(covereddata calllogs|textmessages|voicemails)*
|
|
5581
|
+
[<JSONData>]
|
|
5582
|
+
[shownames]
|
|
5583
|
+
[showdetails|returnidonly|formatjson]
|
|
5584
|
+
|
|
5585
|
+
gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem>] [name <String>]
|
|
5586
|
+
[shownames]
|
|
5587
|
+
[showdetails|returnidonly|formatjson]
|
|
5588
|
+
|
|
5589
|
+
gam delete vaultquery <QueryItem> matter <MatterItem>
|
|
5590
|
+
gam delete vaultquery <MatterItem> <QueryItem>
|
|
5591
|
+
|
|
5561
5592
|
<VaultQueryFieldName> ::=
|
|
5562
5593
|
createtime |
|
|
5563
5594
|
displayname |
|
|
@@ -1,3 +1,44 @@
|
|
|
1
|
+
7.22.07
|
|
2
|
+
|
|
3
|
+
Added options `showdetails` and `returnidonly` to `gam create|copy vaultquery`.
|
|
4
|
+
|
|
5
|
+
Added option `<JSONData>` to `gam create vaultexport|vaultquery` and `gam print vaultcounts`.
|
|
6
|
+
|
|
7
|
+
7.22.06
|
|
8
|
+
|
|
9
|
+
Added commands to create, copy and delete Vault saved queries.
|
|
10
|
+
```
|
|
11
|
+
gam create vaultquery <MatterItem> [name <String>]
|
|
12
|
+
corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
|
|
13
|
+
[scope all_data|held_data|unprocessed_data]
|
|
14
|
+
(accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
|
|
15
|
+
(documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
16
|
+
(shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
17
|
+
[(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
|
|
18
|
+
(sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
|
|
19
|
+
[driveversiondate <Date>|<Time>]
|
|
20
|
+
[includerooms <Boolean>]
|
|
21
|
+
(rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
22
|
+
[terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
23
|
+
[locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
24
|
+
[responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
25
|
+
(covereddata calllogs|textmessages|voicemails)*
|
|
26
|
+
[shownames] [formatjson]
|
|
27
|
+
|
|
28
|
+
gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem>] [name <String>]
|
|
29
|
+
[shownames] [formatjson]
|
|
30
|
+
|
|
31
|
+
gam delete vaultquery <QueryItem> matter <MatterItem>
|
|
32
|
+
gam delete vaultquery <MatterItem> <QueryItem>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Added a variant of `gam print vaultcounts` that gets its query parameters from a saved Vault query.
|
|
36
|
+
```
|
|
37
|
+
gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
38
|
+
matter <MatterItem> <QueryItem>
|
|
39
|
+
[wait <Integer>]
|
|
40
|
+
```
|
|
41
|
+
|
|
1
42
|
7.22.05
|
|
2
43
|
|
|
3
44
|
Added a variant of `gam create vaultexport` that gets its query parameters from a saved Vault query.
|
|
@@ -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.22.
|
|
28
|
+
__version__ = '7.22.07'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -41716,6 +41716,7 @@ VAULT_SEARCH_METHODS_MAP = {
|
|
|
41716
41716
|
'accounts': 'ACCOUNT',
|
|
41717
41717
|
'chatspace': 'ROOM',
|
|
41718
41718
|
'chatspaces': 'ROOM',
|
|
41719
|
+
'documentids': 'DRIVE_DOCUMENT',
|
|
41719
41720
|
'entireorg': 'ENTIRE_ORG',
|
|
41720
41721
|
'everyone': 'ENTIRE_ORG',
|
|
41721
41722
|
'org': 'ORG_UNIT',
|
|
@@ -41813,11 +41814,13 @@ VAULT_QUERY_ARGS = [
|
|
|
41813
41814
|
# drive
|
|
41814
41815
|
'driveclientsideencryption', 'driveversiondate', 'includeshareddrives', 'includeteamdrives', 'shareddrivesoption',
|
|
41815
41816
|
# hangoutsChat
|
|
41816
|
-
'includerooms',
|
|
41817
|
+
'includerooms',
|
|
41817
41818
|
# mail
|
|
41818
41819
|
'mailclientsideencryption', 'excludedrafts',
|
|
41819
41820
|
# voice
|
|
41820
41821
|
'covereddata',
|
|
41822
|
+
# all
|
|
41823
|
+
'json',
|
|
41821
41824
|
] + list(VAULT_SEARCH_METHODS_MAP.keys())
|
|
41822
41825
|
|
|
41823
41826
|
def _buildVaultQuery(myarg, query, corpusArgumentMap):
|
|
@@ -41831,12 +41834,14 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
|
|
|
41831
41834
|
query['dataScope'] = 'ALL_DATA'
|
|
41832
41835
|
if myarg == 'corpus':
|
|
41833
41836
|
query['corpus'] = getChoice(corpusArgumentMap, mapChoice=True)
|
|
41837
|
+
elif myarg == 'scope':
|
|
41838
|
+
query['dataScope'] = getChoice(VAULT_EXPORT_DATASCOPE_MAP, mapChoice=True)
|
|
41834
41839
|
elif myarg in VAULT_SEARCH_METHODS_MAP:
|
|
41835
|
-
if query.get('
|
|
41840
|
+
if query.get('method'):
|
|
41836
41841
|
Cmd.Backup()
|
|
41837
41842
|
usageErrorExit(Msg.MULTIPLE_SEARCH_METHODS_SPECIFIED.format(formatChoiceList(VAULT_SEARCH_METHODS_MAP)))
|
|
41838
41843
|
searchMethod = VAULT_SEARCH_METHODS_MAP[myarg]
|
|
41839
|
-
query['
|
|
41844
|
+
query['method'] = searchMethod
|
|
41840
41845
|
if searchMethod == 'ACCOUNT':
|
|
41841
41846
|
query['accountInfo'] = {'emails': getNormalizedEmailAddressEntity()}
|
|
41842
41847
|
elif searchMethod == 'ORG_UNIT':
|
|
@@ -41851,8 +41856,8 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
|
|
|
41851
41856
|
query['hangoutsChatInfo'] = {'roomId': roomIds}
|
|
41852
41857
|
elif searchMethod == 'SITES_URL':
|
|
41853
41858
|
query['sitesUrlInfo'] = {'urls': _getQueryList(Cmd.OB_URL_LIST)}
|
|
41854
|
-
|
|
41855
|
-
|
|
41859
|
+
elif searchMethod == 'DRIVE_DOCUMENT':
|
|
41860
|
+
query['driveDocumentInfo'] = {'documentIds': {'ids': _getQueryList(Cmd.OB_DRIVE_FILE_ID_LIST)}}
|
|
41856
41861
|
elif myarg == 'terms':
|
|
41857
41862
|
query['terms'] = getString(Cmd.OB_STRING)
|
|
41858
41863
|
elif myarg in {'start', 'starttime'}:
|
|
@@ -41898,11 +41903,19 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
|
|
|
41898
41903
|
elif myarg == 'covereddata':
|
|
41899
41904
|
query.setdefault('voiceOptions', {'coveredData': []})
|
|
41900
41905
|
query['voiceOptions']['coveredData'].append(getChoice(VAULT_VOICE_COVERED_DATA_MAP, mapChoice=True))
|
|
41906
|
+
# all
|
|
41907
|
+
elif myarg == 'json':
|
|
41908
|
+
jsonData = getJSON([])
|
|
41909
|
+
if 'query' in jsonData:
|
|
41910
|
+
query.update(jsonData['query'])
|
|
41911
|
+
else:
|
|
41912
|
+
query.update(jsonData)
|
|
41913
|
+
|
|
41901
41914
|
|
|
41902
41915
|
def _validateVaultQuery(body, corpusArgumentMap):
|
|
41903
41916
|
if 'corpus' not in body['query']:
|
|
41904
41917
|
missingArgumentExit(f'corpus {formatChoiceList(corpusArgumentMap)}')
|
|
41905
|
-
if '
|
|
41918
|
+
if 'method' not in body['query']:
|
|
41906
41919
|
missingArgumentExit(formatChoiceList(VAULT_SEARCH_METHODS_MAP))
|
|
41907
41920
|
if 'exportOptions' in body:
|
|
41908
41921
|
for corpus, options in VAULT_CORPUS_OPTIONS_MAP.items():
|
|
@@ -41919,18 +41932,20 @@ def _validateVaultQuery(body, corpusArgumentMap):
|
|
|
41919
41932
|
# [region any|europe|us] [showdetails|returnidonly]
|
|
41920
41933
|
# gam create vaultexport|export matter <MatterItem> [name <String>]
|
|
41921
41934
|
# corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
|
|
41922
|
-
#
|
|
41935
|
+
# [scope all_data|held_data|unprocessed_data]
|
|
41936
|
+
# (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
|
|
41937
|
+
# (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
41923
41938
|
# (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
41924
|
-
# (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
41925
|
-
# (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
|
|
41926
|
-
# [scope <all_data|held_data|unprocessed_data>]
|
|
41927
|
-
# [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
41928
|
-
# [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
41929
|
-
# [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
41930
41939
|
# [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
|
|
41940
|
+
# (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
|
|
41931
41941
|
# [driveversiondate <Date>|<Time>]
|
|
41932
41942
|
# [includerooms <Boolean>]
|
|
41943
|
+
# (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
41944
|
+
# [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
41945
|
+
# [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
41946
|
+
# [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
41933
41947
|
# (covereddata calllogs|textmessages|voicemails)*
|
|
41948
|
+
# [<JSONData>]
|
|
41934
41949
|
# [driveclientsideencryption any|encrypted|unencrypted]
|
|
41935
41950
|
# [includeaccessinfo <Boolean>]
|
|
41936
41951
|
# [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
|
|
@@ -41943,6 +41958,7 @@ def doCreateVaultExport():
|
|
|
41943
41958
|
body = {'query': {'dataScope': 'ALL_DATA'}, 'exportOptions': {}}
|
|
41944
41959
|
includeAccessInfo = None
|
|
41945
41960
|
exportFormat = None
|
|
41961
|
+
formatLocation = None
|
|
41946
41962
|
useNewExport = None
|
|
41947
41963
|
showConfidentialModeContent = None
|
|
41948
41964
|
exportLinkedDriveFiles = None
|
|
@@ -41961,6 +41977,7 @@ def doCreateVaultExport():
|
|
|
41961
41977
|
elif myarg == 'includeaccessinfo':
|
|
41962
41978
|
includeAccessInfo = getBoolean()
|
|
41963
41979
|
elif myarg == 'format':
|
|
41980
|
+
formatLocation = Cmd.Location()
|
|
41964
41981
|
exportFormat = getChoice(VAULT_EXPORT_FORMAT_MAP, mapChoice=True)
|
|
41965
41982
|
elif myarg == 'usenewexport':
|
|
41966
41983
|
useNewExport = getBoolean()
|
|
@@ -41981,18 +41998,19 @@ def doCreateVaultExport():
|
|
|
41981
41998
|
if not matterId:
|
|
41982
41999
|
missingArgumentExit('matter')
|
|
41983
42000
|
_validateVaultQuery(body, VAULT_CORPUS_ARGUMENT_MAP)
|
|
41984
|
-
if exportFormat is not None:
|
|
41985
|
-
if not exportFormat in VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']]:
|
|
41986
|
-
invalidChoiceExit(exportFormat, VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']], False)
|
|
41987
|
-
elif body['query']['corpus'] != 'DRIVE':
|
|
41988
|
-
exportFormat = VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']][0]
|
|
41989
42001
|
if 'name' not in body:
|
|
41990
42002
|
body['name'] = f'GAM {body["query"]["corpus"]} Export - {ISOformatTimeStamp(todaysTime())}'
|
|
41991
42003
|
optionsField = VAULT_CORPUS_OPTIONS_MAP[body['query']['corpus']]
|
|
41992
42004
|
if body['query']['corpus'] == 'DRIVE':
|
|
41993
42005
|
if includeAccessInfo is not None:
|
|
41994
|
-
body['exportOptions'][optionsField]
|
|
42006
|
+
body['exportOptions'][optionsField] = {'includeAccessInfo': includeAccessInfo}
|
|
41995
42007
|
else:
|
|
42008
|
+
if exportFormat is not None:
|
|
42009
|
+
if not exportFormat in VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']]:
|
|
42010
|
+
Cmd.SetLocation(formatLocation)
|
|
42011
|
+
invalidChoiceExit(exportFormat, VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']], False)
|
|
42012
|
+
else:
|
|
42013
|
+
exportFormat = VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']][0]
|
|
41996
42014
|
body['exportOptions'][optionsField] = {'exportFormat': exportFormat}
|
|
41997
42015
|
if body['query']['corpus'] == 'MAIL':
|
|
41998
42016
|
if showConfidentialModeContent is not None:
|
|
@@ -42474,7 +42492,7 @@ def _showVaultHold(matterNameId, hold, cd, FJQC, k=0, kcount=0):
|
|
|
42474
42492
|
showJSON(None, hold, timeObjects=VAULT_HOLD_TIME_OBJECTS)
|
|
42475
42493
|
Ind.Decrement()
|
|
42476
42494
|
|
|
42477
|
-
def
|
|
42495
|
+
def _useVaultQueryForHold(v, matterId, matterNameId, body):
|
|
42478
42496
|
_, _, _, query = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
|
|
42479
42497
|
body['corpus'] = query['corpus']
|
|
42480
42498
|
method = query.get('method')
|
|
@@ -42579,7 +42597,7 @@ def doCreateVaultHold():
|
|
|
42579
42597
|
elif myarg == 'name':
|
|
42580
42598
|
body['name'] = getString(Cmd.OB_STRING)
|
|
42581
42599
|
elif matterId is not None and myarg == 'vaultquery':
|
|
42582
|
-
|
|
42600
|
+
_useVaultQueryForHold(v, matterId, matterNameId, body)
|
|
42583
42601
|
usedVaultQuery = True
|
|
42584
42602
|
elif myarg == 'corpus':
|
|
42585
42603
|
body['corpus'] = getChoice(VAULT_CORPUS_ARGUMENT_MAP, mapChoice=True)
|
|
@@ -43038,6 +43056,116 @@ def _showVaultQuery(matterNameId, query, cd, drive, FJQC, k=0, kcount=0):
|
|
|
43038
43056
|
showJSON(None, query, timeObjects=VAULT_QUERY_TIME_OBJECTS)
|
|
43039
43057
|
Ind.Decrement()
|
|
43040
43058
|
|
|
43059
|
+
def doCreateCopyVaultQuery(copyCmd):
|
|
43060
|
+
v = buildGAPIObject(API.VAULT)
|
|
43061
|
+
body = {'query': {'dataScope': 'ALL_DATA'}, 'displayName': ''}
|
|
43062
|
+
matterId, matterNameId = getMatterItem(v)
|
|
43063
|
+
if copyCmd:
|
|
43064
|
+
_, queryName, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
|
|
43065
|
+
targetId = None
|
|
43066
|
+
cd = drive = None
|
|
43067
|
+
FJQC = FormatJSONQuoteChar()
|
|
43068
|
+
returnIdOnly = showDetails = False
|
|
43069
|
+
while Cmd.ArgumentsRemaining():
|
|
43070
|
+
myarg = getArgument()
|
|
43071
|
+
if myarg == 'name':
|
|
43072
|
+
body['displayName'] = getString(Cmd.OB_STRING)
|
|
43073
|
+
elif copyCmd and myarg == 'targetmatter':
|
|
43074
|
+
targetId, targetNameId = getMatterItem(v)
|
|
43075
|
+
elif not copyCmd and myarg in VAULT_QUERY_ARGS:
|
|
43076
|
+
_buildVaultQuery(myarg, body['query'], VAULT_CORPUS_ARGUMENT_MAP)
|
|
43077
|
+
elif myarg == 'shownames':
|
|
43078
|
+
cd = buildGAPIObject(API.DIRECTORY)
|
|
43079
|
+
_, drive = buildGAPIServiceObject(API.DRIVE3, _getAdminEmail())
|
|
43080
|
+
if drive is None:
|
|
43081
|
+
return
|
|
43082
|
+
elif myarg == 'showdetails':
|
|
43083
|
+
showDetails = True
|
|
43084
|
+
returnIdOnly = False
|
|
43085
|
+
elif myarg == 'returnidonly':
|
|
43086
|
+
returnIdOnly = True
|
|
43087
|
+
showDetails = False
|
|
43088
|
+
else:
|
|
43089
|
+
FJQC.GetFormatJSON(myarg)
|
|
43090
|
+
if copyCmd:
|
|
43091
|
+
if targetId is None:
|
|
43092
|
+
targetId = matterId
|
|
43093
|
+
targetNameId = matterNameId
|
|
43094
|
+
if not body['displayName']:
|
|
43095
|
+
body['displayName'] = f'Copy of {queryName}' if matterId == targetId else queryName
|
|
43096
|
+
resultId = targetId
|
|
43097
|
+
resultNameId = targetNameId
|
|
43098
|
+
else:
|
|
43099
|
+
_validateVaultQuery(body, VAULT_CORPUS_ARGUMENT_MAP)
|
|
43100
|
+
if not body['displayName']:
|
|
43101
|
+
body['displayName'] = 'GAM {body["query"]["corpus"]} Query - {ISOformatTimeStamp(todaysTime())}'
|
|
43102
|
+
resultId = matterId
|
|
43103
|
+
resultNameId = matterNameId
|
|
43104
|
+
try:
|
|
43105
|
+
result = callGAPI(v.matters().savedQueries(), 'create',
|
|
43106
|
+
throwReasons=[GAPI.NOT_FOUND, GAPI.BAD_REQUEST, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT, GAPI.ALREADY_EXISTS],
|
|
43107
|
+
matterId=resultId, body=body)
|
|
43108
|
+
if not returnIdOnly:
|
|
43109
|
+
if not FJQC.formatJSON:
|
|
43110
|
+
entityActionPerformed([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, formatVaultNameId(result['displayName'], result['savedQueryId'])])
|
|
43111
|
+
if showDetails or FJQC.formatJSON:
|
|
43112
|
+
_showVaultQuery(resultNameId, result, cd, drive, FJQC)
|
|
43113
|
+
else:
|
|
43114
|
+
writeStdout(f'{result["savedQueryId"]}\n')
|
|
43115
|
+
except (GAPI.notFound, GAPI.badRequest, GAPI.forbidden, GAPI.invalidArgument, GAPI.alreadyExists) as e:
|
|
43116
|
+
entityActionFailedWarning([Ent.VAULT_MATTER, resultNameId, Ent.VAULT_QUERY, body['displayName']], str(e))
|
|
43117
|
+
|
|
43118
|
+
# gam create vaultquery <MatterItem> [name <String>]
|
|
43119
|
+
# corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
|
|
43120
|
+
# [scope all_data|held_data|unprocessed_data]
|
|
43121
|
+
# (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
|
|
43122
|
+
# (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
43123
|
+
# (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
43124
|
+
# [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
|
|
43125
|
+
# (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
|
|
43126
|
+
# [driveversiondate <Date>|<Time>]
|
|
43127
|
+
# [includerooms <Boolean>]
|
|
43128
|
+
# (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
43129
|
+
# [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
43130
|
+
# [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
43131
|
+
# [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
43132
|
+
# (covereddata calllogs|textmessages|voicemails)*
|
|
43133
|
+
# [<JSONData>]
|
|
43134
|
+
# [shownames]
|
|
43135
|
+
# [showdetails|returnidonly|formatjson]
|
|
43136
|
+
def doCreateVaultQuery():
|
|
43137
|
+
doCreateCopyVaultQuery(False)
|
|
43138
|
+
|
|
43139
|
+
# gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem>] [name <String>]
|
|
43140
|
+
# [shownames]
|
|
43141
|
+
# [showdetails|returnidonly|formatjson]
|
|
43142
|
+
def doCopyVaultQuery():
|
|
43143
|
+
doCreateCopyVaultQuery(True)
|
|
43144
|
+
|
|
43145
|
+
# gam delete vaultquery <QueryItem> matter <MatterItem>
|
|
43146
|
+
# gam delete vaultquery <MatterItem> <QueryItem>
|
|
43147
|
+
def doDeleteVaultQuery():
|
|
43148
|
+
v = buildGAPIObject(API.VAULT)
|
|
43149
|
+
if not Cmd.ArgumentIsAhead('matter'):
|
|
43150
|
+
matterId, matterNameId = getMatterItem(v)
|
|
43151
|
+
queryId, queryName, queryNameId, _ = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
|
|
43152
|
+
else:
|
|
43153
|
+
queryName = getString(Cmd.OB_QUERY_ITEM)
|
|
43154
|
+
while Cmd.ArgumentsRemaining():
|
|
43155
|
+
myarg = getArgument()
|
|
43156
|
+
if myarg == 'matter':
|
|
43157
|
+
matterId, matterNameId = getMatterItem(v)
|
|
43158
|
+
queryId, queryName, queryNameId, _ = convertQueryNameToID(v, queryName, matterId, matterNameId)
|
|
43159
|
+
else:
|
|
43160
|
+
unknownArgumentExit()
|
|
43161
|
+
try:
|
|
43162
|
+
callGAPI(v.matters().savedQueries(), 'delete',
|
|
43163
|
+
throwReasons=[GAPI.NOT_FOUND, GAPI.BAD_REQUEST, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT],
|
|
43164
|
+
matterId=matterId, savedQueryId=queryId)
|
|
43165
|
+
entityActionPerformed([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, queryNameId])
|
|
43166
|
+
except (GAPI.notFound, GAPI.badRequest, GAPI.forbidden, GAPI.invalidArgument) as e:
|
|
43167
|
+
entityActionFailedWarning([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, queryNameId], str(e))
|
|
43168
|
+
|
|
43041
43169
|
VAULT_QUERY_FIELDS_CHOICE_MAP = {
|
|
43042
43170
|
'createtime': 'createTime',
|
|
43043
43171
|
'displayname': 'displayName',
|
|
@@ -43523,14 +43651,16 @@ def doPrintShowVaultMatters():
|
|
|
43523
43651
|
PRINT_VAULT_COUNTS_TITLES = ['account', 'count', 'error']
|
|
43524
43652
|
|
|
43525
43653
|
# gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
43526
|
-
# matter <MatterItem>
|
|
43527
|
-
#
|
|
43528
|
-
#
|
|
43529
|
-
#
|
|
43530
|
-
#
|
|
43531
|
-
# [scope
|
|
43654
|
+
# matter <MatterItem> <QueryItem>
|
|
43655
|
+
# [wait <Integer>]
|
|
43656
|
+
# gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
43657
|
+
# matter <MatterItem>
|
|
43658
|
+
# corpus mail|groups
|
|
43659
|
+
# [scope all_data|held_data|unprocessed_data]
|
|
43660
|
+
# (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
|
|
43532
43661
|
# [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
43533
43662
|
# [excludedrafts <Boolean>]
|
|
43663
|
+
# [<JSONData>]
|
|
43534
43664
|
# [wait <Integer>]
|
|
43535
43665
|
# gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
43536
43666
|
# matter <MatterItem> operation <String> [wait <Integer>]
|
|
@@ -43539,18 +43669,19 @@ def doPrintVaultCounts():
|
|
|
43539
43669
|
csvPF = CSVPrintFile(PRINT_VAULT_COUNTS_TITLES, 'sortall')
|
|
43540
43670
|
matterId = name = None
|
|
43541
43671
|
operationWait = 15
|
|
43542
|
-
body = {'view': 'ALL'}
|
|
43543
|
-
query = {}
|
|
43672
|
+
body = {'view': 'ALL', 'query': {}}
|
|
43544
43673
|
while Cmd.ArgumentsRemaining():
|
|
43545
43674
|
myarg = getArgument()
|
|
43546
43675
|
if csvPF and myarg == 'todrive':
|
|
43547
43676
|
csvPF.GetTodriveParameters()
|
|
43548
43677
|
elif myarg == 'matter':
|
|
43549
|
-
matterId,
|
|
43678
|
+
matterId, matterNameId = getMatterItem(v)
|
|
43679
|
+
elif matterId is not None and myarg == 'vaultquery':
|
|
43680
|
+
_, _, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
|
|
43550
43681
|
elif myarg == 'operation':
|
|
43551
43682
|
name = getString(Cmd.OB_STRING)
|
|
43552
43683
|
elif myarg in VAULT_QUERY_ARGS:
|
|
43553
|
-
_buildVaultQuery(myarg, query, VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
|
|
43684
|
+
_buildVaultQuery(myarg, body['query'], VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
|
|
43554
43685
|
elif myarg == 'wait':
|
|
43555
43686
|
operationWait = getInteger(minVal=1)
|
|
43556
43687
|
else:
|
|
@@ -43561,7 +43692,6 @@ def doPrintVaultCounts():
|
|
|
43561
43692
|
operation = {'name': name}
|
|
43562
43693
|
doWait = False
|
|
43563
43694
|
else:
|
|
43564
|
-
body['query'] = query
|
|
43565
43695
|
_validateVaultQuery(body, VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
|
|
43566
43696
|
try:
|
|
43567
43697
|
operation = callGAPI(v.matters(), 'count',
|
|
@@ -43585,7 +43715,7 @@ def doPrintVaultCounts():
|
|
|
43585
43715
|
doWait = True
|
|
43586
43716
|
response = operation.get('response', {})
|
|
43587
43717
|
query = operation['metadata']['query']
|
|
43588
|
-
search_method = query.get('
|
|
43718
|
+
search_method = query.get('method')
|
|
43589
43719
|
# ARGH count results don't include accounts with zero items.
|
|
43590
43720
|
# so we keep track of which accounts we searched and can report
|
|
43591
43721
|
# zero data for them.
|
|
@@ -77976,6 +78106,7 @@ MAIN_ADD_CREATE_FUNCTIONS = {
|
|
|
77976
78106
|
Cmd.ARG_VAULTEXPORT: doCreateVaultExport,
|
|
77977
78107
|
Cmd.ARG_VAULTHOLD: doCreateVaultHold,
|
|
77978
78108
|
Cmd.ARG_VAULTMATTER: doCreateVaultMatter,
|
|
78109
|
+
Cmd.ARG_VAULTQUERY: doCreateVaultQuery,
|
|
77979
78110
|
Cmd.ARG_VERIFY: doCreateSiteVerification,
|
|
77980
78111
|
}
|
|
77981
78112
|
|
|
@@ -78033,6 +78164,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
78033
78164
|
{Cmd.ARG_SHAREDDRIVEACLS: doCopySyncSharedDriveACLs,
|
|
78034
78165
|
Cmd.ARG_STORAGEBUCKET: doCopyCloudStorageBucket,
|
|
78035
78166
|
Cmd.ARG_VAULTEXPORT: doCopyVaultExport,
|
|
78167
|
+
Cmd.ARG_VAULTQUERY: doCopyVaultQuery,
|
|
78036
78168
|
}
|
|
78037
78169
|
),
|
|
78038
78170
|
'create':
|
|
@@ -78097,6 +78229,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
78097
78229
|
Cmd.ARG_VAULTEXPORT: doDeleteVaultExport,
|
|
78098
78230
|
Cmd.ARG_VAULTHOLD: doDeleteVaultHold,
|
|
78099
78231
|
Cmd.ARG_VAULTMATTER: doDeleteVaultMatter,
|
|
78232
|
+
Cmd.ARG_VAULTQUERY: doDeleteVaultQuery,
|
|
78100
78233
|
}
|
|
78101
78234
|
),
|
|
78102
78235
|
'download':
|
|
@@ -1216,6 +1216,7 @@ class GamCLArgs():
|
|
|
1216
1216
|
OB_DOMAIN_NAME_LIST = 'DomainNameList'
|
|
1217
1217
|
OB_DRIVE_FILE_ENTITY = 'DriveFileEntity'
|
|
1218
1218
|
OB_DRIVE_FILE_ID = 'DriveFileID'
|
|
1219
|
+
OB_DRIVE_FILE_ID_LIST = 'DriveFileIDList'
|
|
1219
1220
|
OB_DRIVE_FILE_NAME = 'DriveFileName'
|
|
1220
1221
|
OB_DRIVE_FILE_PERMISSION_ENTITY = 'DriveFilePermissionEntity'
|
|
1221
1222
|
OB_DRIVE_FILE_PERMISSION_ID = 'DriveFilePermissionID'
|
|
@@ -10,7 +10,57 @@ 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
|
-
###
|
|
13
|
+
### 7.22.06
|
|
14
|
+
|
|
15
|
+
Added commands to create, copy and delete Vault saved queries.
|
|
16
|
+
```
|
|
17
|
+
gam create vaultquery <MatterItem> [name <String>]
|
|
18
|
+
corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
|
|
19
|
+
[scope all_data|held_data|unprocessed_data]
|
|
20
|
+
(accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
|
|
21
|
+
(documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
22
|
+
(shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
23
|
+
[(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
|
|
24
|
+
(sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
|
|
25
|
+
[driveversiondate <Date>|<Time>]
|
|
26
|
+
[includerooms <Boolean>]
|
|
27
|
+
(rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
|
|
28
|
+
[terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
|
|
29
|
+
[locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
|
|
30
|
+
[responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
|
|
31
|
+
(covereddata calllogs|textmessages|voicemails)*
|
|
32
|
+
[shownames] [formatjson]
|
|
33
|
+
|
|
34
|
+
gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem"] [name <String>]
|
|
35
|
+
[shownames] [formatjson]
|
|
36
|
+
|
|
37
|
+
gam delete vaultquery <QueryItem> matter <MatterItem>
|
|
38
|
+
gam delete vaultquery <MatterItem> <QueryItem>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Added a variant of `gam print vaultcounts` that gets its query parameters from a saved Vault query.
|
|
42
|
+
```
|
|
43
|
+
gam print vaultcounts [todrive <ToDriveAttributes>*]
|
|
44
|
+
matter <MatterItem> <QueryItem>
|
|
45
|
+
[wait <Integer>]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 7.22.05
|
|
49
|
+
|
|
50
|
+
Added a variant of `gam create vaultexport` that gets its query parameters from a saved Vault query.
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
gam create vaultexport|export matter <MatterItem> [name <String>]
|
|
54
|
+
vaultquery <QueryItem>
|
|
55
|
+
[driveclientsideencryption any|encrypted|unencrypted]
|
|
56
|
+
[includeaccessinfo <Boolean>]
|
|
57
|
+
[excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
|
|
58
|
+
[showconfidentialmodecontent <Boolean>] [usenewexport <Boolean>] [exportlinkeddrivefiles <Boolean>]
|
|
59
|
+
[format ics|mbox|pst|xml]
|
|
60
|
+
[region any|europe|us] [showdetails|returnidonly]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 7.22.04
|
|
14
64
|
|
|
15
65
|
Added a variant of `gam create vaulthold` that gets its parameters from a saved Vault query.
|
|
16
66
|
```
|
|
@@ -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.22.
|
|
255
|
+
GAM 7.22.06 - https://github.com/GAM-team/GAM - pyinstaller
|
|
256
256
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
257
257
|
Python 3.13.7 64-bit final
|
|
258
258
|
MacOS Sequoia 15.6.1 x86_64
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
<DomainNameList> ::= "<DomainName>(,<DomainName>)*"
|
|
44
44
|
<DriveFileACLRoleList> ::= "<DriveFileACLRole>(,<DriveFileACLRole>)*"
|
|
45
45
|
<DriveFileACLTypeList> ::= "<DriveFileACLType>(,<DriveFileACLType>)*"
|
|
46
|
+
<DriveFileIDList> ::= "<DriveFileID>(,<DriveFileID>)*"
|
|
46
47
|
<DriveFileList> ::= "<DriveFileItem>(,<DriveFileItem>)*"
|
|
47
48
|
<DriveFilePermissionList> ::= "<DriveFilePermission>(,<DriveFilePermission>)*"
|
|
48
49
|
<DriveFilePermissionIDList> ::= "<DriveFilePermissionID>(,<DriveFilePermissionID>)*"
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
```
|
|
30
30
|
<DomainName> ::= <String>(.<String>)+
|
|
31
31
|
<EmailAddress> ::= <String>@<DomainName>
|
|
32
|
+
<JSONData> ::= (json [charset <Charset>] <String>) | (json file <FileName> [charset <Charset>]) |
|
|
32
33
|
<UniqueID> ::= id:<String>
|
|
33
34
|
<UserItem> ::= <EmailAddress>|<UniqueID>|<String>
|
|
34
35
|
|