gam7 7.13.2__tar.gz → 7.14.0__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.13.2 → gam7-7.14.0}/PKG-INFO +1 -1
- {gam7-7.13.2 → gam7-7.14.0}/src/GamCommands.txt +84 -5
- {gam7-7.13.2 → gam7-7.14.0}/src/GamUpdate.txt +15 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/__init__.py +247 -50
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glapi.py +15 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glclargs.py +13 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glentity.py +11 -1
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glgapi.py +1 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/setup.cfg +1 -1
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Basic-Items.md +8 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chrome-Profile-Management.md +63 -6
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Collections-of-Items.md +11 -1
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Domain-SharedContacts.md +0 -9
- {gam7-7.13.2 → gam7-7.14.0}/wiki/GamUpdates.md +21 -0
- gam7-7.14.0/wiki/Global-Address-List.md +17 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Google-Data-Transfers.md +2 -3
- {gam7-7.13.2 → gam7-7.14.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.13.2 → gam7-7.14.0}/wiki/List-Items.md +4 -0
- gam7-7.14.0/wiki/Users-Tag-Manager.md +132 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Version-and-Help.md +6 -6
- {gam7-7.13.2 → gam7-7.14.0}/wiki/_Sidebar.md +2 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/gam.cfg.md +2 -1
- {gam7-7.13.2 → gam7-7.14.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/actions/decrypt.sh +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/actions/entitlements.plist +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/stale.yml +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/workflows/build.yml +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.github/workflows/pypi.yml +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/.pre-commit-config.yaml +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/LICENSE +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/README.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/pyproject.toml +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/.gitignore +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/LICENSE +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/README.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/cacerts.pem +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/callgam.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/__main__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/auth.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/client.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/core.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/data.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/http.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/http_core.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/service.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/token_store.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/atom/url.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/cacerts.pem +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/service.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/_auth.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/_helpers.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/channel.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/discovery.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/errors.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/http.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/mimeparse.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/model.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/schema.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/googleapiclient/version.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/iso8601/__init__.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/iso8601/iso8601.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam/six.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam-install.sh +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam-setup.bat +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam.exe.manifest +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam.spec +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/gam.wxs +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/license.rtf +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/requirements-dev.txt +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/requirements.txt +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/setup.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/tools/mkGamRef.py +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/tools/openssl.props +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/src/version_info.txt.in +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/00scratch.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Addresses.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Administrators.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Alert-Center.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Aliases.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Authorization.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Calendars-Access.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Calendars-Events.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Calendars.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chat-Bot.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Customer.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Domains-Verification.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Domains.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Drive-Items.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Groups-Membership.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Groups.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Home.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Licenses.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/List.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Organizational-Units.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Other-Resources.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Permission-Matches.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/README.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Rclone.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Reports.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Reseller.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Resources.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Schemas.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Scripts.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Send-Email.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Shared-Drives.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Sites.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Tag-Replace.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Todrive.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Calendars.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Chat.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Contacts.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Forms.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Meet.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Photo.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Tasks.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-Tokens.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users-YouTube.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Users.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-AdminSettingsExamples.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Android-Installation.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-BulkOperations.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-CalendarExamples.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Chat-Bot.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Command-Reference-Drive.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Command-Reference-Email.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Command-Reference-Groups.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Command-Reference-Users.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Custom-Schemas.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Data-Transfers.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-DomainVerification.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-ExamplesCSV.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-ExamplesOrganizations.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-GAM-options-files.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-GAM3CSVListings.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-GAM3GroupSettings.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-GAM7-FAQ.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-GoogleDriveManagement.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Home.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-LicenseExamples.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Managing-Admins.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Managing-Devices.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-OAuthKeyManagement.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Printers.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-ResellerCommands.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-SecurityExamples.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Use-a-Yubikey.md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.13.2 → gam7-7.14.0}/wiki/l-_Footer.md +0 -0
|
@@ -622,6 +622,14 @@ If an item contains spaces, it should be surrounded by ".
|
|
|
622
622
|
gs://<StorageBucketName>/<StorageObjectName>|
|
|
623
623
|
<StorageBucketName>/<StorageObjectName>
|
|
624
624
|
<Tag> ::= <String>
|
|
625
|
+
<TagManagerAccountID> ::= <String>
|
|
626
|
+
<TagManagerAccountPath> ::= accounts/<TagManagerAccountID>
|
|
627
|
+
<TagManagerContainerID> ::= <String>
|
|
628
|
+
<TagManagerContainerPath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>
|
|
629
|
+
<TagManagerWorkspaceID> ::= <String>
|
|
630
|
+
<TagManagerWorkspacePath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>/workspaces/<TagManagerWorkspaceID>
|
|
631
|
+
<TagManagerTagID> ::= <String>
|
|
632
|
+
<TagManagerTagPath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>/workspaces/<TagManagerWorkspaceID>/tags/<TagManagerTagID>
|
|
625
633
|
<TakeoutBucketName> ::= takeout-export-[a-f,0-9,-]*
|
|
626
634
|
<TaskID> ::= <String>
|
|
627
635
|
<TaskListID> ::= <String>
|
|
@@ -685,6 +693,7 @@ If an item contains spaces, it should be surrounded by ".
|
|
|
685
693
|
<CalendarList> ::= "<CalendarItem>(,<CalendarItem>)*"
|
|
686
694
|
<ChatSpaceList> ::= "<ChatSpace>(,<ChatSpace>)*"
|
|
687
695
|
<ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
|
|
696
|
+
<ChromeProfileCommandNameList> ::= "<ChromeProfileCommandName>(,<ChromeProfileCommandName>)*"
|
|
688
697
|
<CIGroupAliasList> ::= "<CIGroupAlias>(,<CIGroupAlias>)*"
|
|
689
698
|
<CIGroupMemberTypeList> ::= "<CIGroupMemberType>(,<CIGroupMemberType>)*"
|
|
690
699
|
<CIPolicyNameList> ::= "<CIPolicyName>(,<CIPolicyName>)*"
|
|
@@ -770,6 +779,9 @@ If an item contains spaces, it should be surrounded by ".
|
|
|
770
779
|
<SharedDriveACLRoleList> ::= "<SharedDriveACLRole>(,<SharedDriveACLRole>)*"
|
|
771
780
|
<SharedDriveIDList> ::= "<SharedDriveID>(,<SharedDriveID>)*"
|
|
772
781
|
<StringList> ::= "<String>(,<String>)*"
|
|
782
|
+
<TagManagerAccountPathList> ::= "<TagManagerAccountPath>(,<TagManagerAccountPath>)*"
|
|
783
|
+
<TagManagerContainerPathList> ::= "<TagManagerContainerPath>(,<TagManagerContainerPath>)*"
|
|
784
|
+
<TagManagerWorkspacePathList> ::= "<TagManagerWorkspacePath>(,<TagManagerWorkspacePath>)*"
|
|
773
785
|
<TasklistIDList> ::= "<TasklistID>(,<TasklistID>)*"
|
|
774
786
|
<TasklistTitleList> ::= "'<TasklistTitle>'(,'<TasklistTitle>')*"
|
|
775
787
|
<TasklistIDTaskIDList> ::= "<TasklistIDTaskID>(,<TasklistIDTaskID>)*"
|
|
@@ -1025,7 +1037,10 @@ Specify a collection of items by directly specifying them; the item type is dete
|
|
|
1025
1037
|
<CalendarEntity> ::=
|
|
1026
1038
|
<CalendarList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
|
1027
1039
|
<ChromeProfileNameEntity> ::=
|
|
1028
|
-
<ChromeProfileNameList> |
|
|
1040
|
+
<ChromeProfileNameList> |
|
|
1041
|
+
(select <FileSelector>|<CSVFileSelector>) |
|
|
1042
|
+
(filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]) |
|
|
1043
|
+
(commands <ChromeProfileCommandNameList>|<FileSelector>|<CSVFileSelector>)
|
|
1029
1044
|
<CIPolicyNameEntity> ::=
|
|
1030
1045
|
<CIPolicyNameList> | <FileSelector> | <CSVFileSelector>
|
|
1031
1046
|
<ClassificationLabelNameEntity> ::=
|
|
@@ -1228,6 +1243,15 @@ Specify a collection of items by directly specifying them; the item type is dete
|
|
|
1228
1243
|
<SiteACLScopeList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
|
1229
1244
|
<SiteEntity> ::=
|
|
1230
1245
|
<SiteList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
|
1246
|
+
<TagManagerAccountPathEntity> ::=
|
|
1247
|
+
<TagManagerAccountPathList> |
|
|
1248
|
+
(select <FileSelector>|<CSVFileSelector>) |
|
|
1249
|
+
<TagManagerContainerPathEntity> ::=
|
|
1250
|
+
<TagManagerContainerPathList> |
|
|
1251
|
+
(select <FileSelector>|<CSVFileSelector>) |
|
|
1252
|
+
<TagManagerWorkspacePathEntity> ::=
|
|
1253
|
+
<TagManagerWorkspacePathList> |
|
|
1254
|
+
(select <FileSelector>|<CSVFileSelector>) |
|
|
1231
1255
|
<TasklistEntity> ::=
|
|
1232
1256
|
<TasklistIDList> | <TaskListTitleList> | <FileSelector> | <CSVFileSelector>
|
|
1233
1257
|
<TasklistIDTaskIDEntity> ::=
|
|
@@ -2228,12 +2252,14 @@ gam show chromeneedsattn
|
|
|
2228
2252
|
|
|
2229
2253
|
<ChromeProfilePermanentID> ::= <String>
|
|
2230
2254
|
<ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
|
|
2231
|
-
<ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
|
|
2232
2255
|
<ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
|
|
2256
|
+
<ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
|
|
2257
|
+
<ChromeProfileCommandNameList> ::= "<ChromeProfileCommandName>(,<ChromeProfileCommandName>)*"
|
|
2233
2258
|
<ChromeProfileNameEntity> ::=
|
|
2234
2259
|
<ChromeProfileNameList> |
|
|
2235
|
-
(select <FileSelector>|<CSVFileSelector>) |
|
|
2236
|
-
(filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]])
|
|
2260
|
+
(select <ChromeProfileNameList>|<FileSelector>|<CSVFileSelector>) |
|
|
2261
|
+
(filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]) |
|
|
2262
|
+
(commands <ChromeProfileCommandNameList>|<FileSelector>|<CSVFileSelector>)
|
|
2237
2263
|
|
|
2238
2264
|
<ChromeProfileFieldName> ::=
|
|
2239
2265
|
affiliationstate|
|
|
@@ -2297,7 +2323,7 @@ gam print chromeprofiles [todrive <ToDriveAttribute>*]
|
|
|
2297
2323
|
|
|
2298
2324
|
gam create chromeprofilecommand <ChromeProfileNameEntity>
|
|
2299
2325
|
[clearcache [<Boolean>]] [clearcookies [<Boolean>]]
|
|
2300
|
-
[formatjson]
|
|
2326
|
+
[csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]
|
|
2301
2327
|
|
|
2302
2328
|
gam info chromeprofilecommand <ChromeProfileCommandName>
|
|
2303
2329
|
[formatjson]
|
|
@@ -8334,6 +8360,59 @@ gam <UserTypeEntity> profile share|shared|unshare|unshared
|
|
|
8334
8360
|
|
|
8335
8361
|
gam <UserTypeEntity> show profile
|
|
8336
8362
|
|
|
8363
|
+
# Users - Tag Manager
|
|
8364
|
+
|
|
8365
|
+
<TagManagerAccountID> ::= <String>
|
|
8366
|
+
<TagManagerAccountPath> ::= accounts/<TagManagerAccountID>
|
|
8367
|
+
<TagManagerAccountPathList> ::= "<TagManagerAccountPath>(,<TagManagerAccountPath>)*"
|
|
8368
|
+
<TagManagerAccountPathEntity> ::=
|
|
8369
|
+
<TagManagerAccountPathList> |
|
|
8370
|
+
(select <FileSelector>|<CSVFileSelector>) |
|
|
8371
|
+
|
|
8372
|
+
<TagManagerContainerID> ::= <String>
|
|
8373
|
+
<TagManagerContainerPath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>
|
|
8374
|
+
<TagManagerContainerPathList> ::= "<TagManagerContainerPath>(,<TagManagerContainerPath>)*"
|
|
8375
|
+
<TagManagerContainerPathEntity> ::=
|
|
8376
|
+
<TagManagerContainerPathList> |
|
|
8377
|
+
(select <FileSelector>|<CSVFileSelector>) |
|
|
8378
|
+
|
|
8379
|
+
<TagManagerWorkspaceID> ::= <String>
|
|
8380
|
+
<TagManagerWorkspacePath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>/workspaces/<TagManagerWorkspaceID>
|
|
8381
|
+
<TagManagerWorkspacePathList> ::= "<TagManagerWorkspacePath>(,<TagManagerWorkspacePath>)*"
|
|
8382
|
+
<TagManagerWorkspacePathEntity> ::=
|
|
8383
|
+
<TagManagerWorkspacePathList> |
|
|
8384
|
+
(select <FileSelector>|<CSVFileSelector>) |
|
|
8385
|
+
|
|
8386
|
+
<TagManagerTagID> ::= <String>
|
|
8387
|
+
<TagManagerTagPath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>/workspaces/<TagManagerWorkspaceID>/tags/<TagManagerTagID>
|
|
8388
|
+
|
|
8389
|
+
gam <UserTypeEntity> show tagmanageraccounts
|
|
8390
|
+
[includegoogletags [<Boolean>]]
|
|
8391
|
+
[formatjson]
|
|
8392
|
+
gam <UserTypeEntity> print tagmanagerccounts [todrive <ToDriveAttribute>*]
|
|
8393
|
+
[includegoogletags [<Boolean>]]
|
|
8394
|
+
[formatjson [quotechar <Character>]]
|
|
8395
|
+
|
|
8396
|
+
gam <UserTypeEntity> show tagmanagercontainers <TagManagerAccountPathEntity>
|
|
8397
|
+
[formatjson]
|
|
8398
|
+
gam <UserTypeEntity> print tagmanagercontainers <TagManagerAccountPathEntity> [todrive <ToDriveAttribute>*]
|
|
8399
|
+
[formatjson [quotechar <Character>]]
|
|
8400
|
+
|
|
8401
|
+
gam <UserTypeEntity> show tagmanagerworkspaces <TagManagerContainerPathEntity>
|
|
8402
|
+
[formatjson]
|
|
8403
|
+
gam <UserTypeEntity> print tagmanagerworkspaces <TagManagerContainerPathEntity> [todrive <ToDriveAttribute>*]
|
|
8404
|
+
[formatjson [quotechar <Character>]]
|
|
8405
|
+
|
|
8406
|
+
gam <UserTypeEntity> show tagmanagertags <TagManagerWorkspacePathEntity>
|
|
8407
|
+
[formatjson]
|
|
8408
|
+
gam <UserTypeEntity> print tagmanagertags <TagManagerWorkspacePathEntity> [todrive <ToDriveAttribute>*]
|
|
8409
|
+
[formatjson [quotechar <Character>]]
|
|
8410
|
+
|
|
8411
|
+
gam <UserTypeEntity> show tagmanagerpermissions <TagManagerAccountPathEntity>
|
|
8412
|
+
[formatjson]
|
|
8413
|
+
gam <UserTypeEntity> print tagmanagerpermissions <TagManagerAccountPathEntity> [todrive <ToDriveAttribute>*]
|
|
8414
|
+
[formatjson [quotechar <Character>]]
|
|
8415
|
+
|
|
8337
8416
|
# Users - Tasks
|
|
8338
8417
|
|
|
8339
8418
|
<TaskAttribute> ::=
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
7.14.00
|
|
2
|
+
|
|
3
|
+
Added commands to display Google Tag Manager accounts, containers, workspaces and tags.
|
|
4
|
+
|
|
5
|
+
* See: https://github.com/GAM-team/GAM/wiki/Users-Tag-Manager
|
|
6
|
+
|
|
7
|
+
7.13.03
|
|
8
|
+
|
|
9
|
+
Added option `csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]`
|
|
10
|
+
to `gam create chromeprofilecommand` so that command details are displayed in CSV format.
|
|
11
|
+
|
|
12
|
+
Added option `commands <ChromeProfileCommandNameList>|<FileSelector>|<CSVFileSelector>` to `<ChromeProfileNameEntity>`
|
|
13
|
+
so that `gam print|show chromeprofilecommands` can directly display the commands generated by
|
|
14
|
+
`gam create chromeprofilecommand` with the `csv` option.
|
|
15
|
+
|
|
1
16
|
7.13.02
|
|
2
17
|
|
|
3
18
|
Fixed bug in `gam create chromeprofilecommand` where `select|filter` were not recognized.
|
|
@@ -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.
|
|
28
|
+
__version__ = '7.14.00'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -24113,7 +24113,10 @@ def infoCrOSDevices(entityList):
|
|
|
24113
24113
|
printKeyValueList([up, ''])
|
|
24114
24114
|
Ind.Increment()
|
|
24115
24115
|
for key, value in sorted(iter(cros[up].items())):
|
|
24116
|
-
|
|
24116
|
+
if key not in CROS_TIME_OBJECTS:
|
|
24117
|
+
printKeyValueList([key, value])
|
|
24118
|
+
else:
|
|
24119
|
+
printKeyValueList([key, formatLocalTime(value)])
|
|
24117
24120
|
Ind.Decrement()
|
|
24118
24121
|
if not noLists:
|
|
24119
24122
|
activeTimeRanges = _filterActiveTimeRanges(cros, True, listLimit, startDate, endDate, activeTimeRangesOrder)
|
|
@@ -25677,24 +25680,28 @@ def doPrintShowChromeProfiles():
|
|
|
25677
25680
|
csvPF.writeCSVfile('Chrome Profiles')
|
|
25678
25681
|
|
|
25679
25682
|
def _getChromeProfileNameList():
|
|
25680
|
-
if not Cmd.PeekArgumentPresent(['select', 'filter', 'filters']):
|
|
25683
|
+
if not Cmd.PeekArgumentPresent(['select', 'commands', 'filter', 'filters']):
|
|
25681
25684
|
return getString(Cmd.OB_CHROMEPROFILE_NAME_LIST).replace(',', ' ').split()
|
|
25682
25685
|
return []
|
|
25683
25686
|
|
|
25684
25687
|
def _initChromeProfileNameParameters():
|
|
25685
25688
|
cm = buildGAPIObject(API.CHROMEMANAGEMENT)
|
|
25686
|
-
return (cm, {'profileNameList': _getChromeProfileNameList(),
|
|
25689
|
+
return (cm, {'profileNameList': _getChromeProfileNameList(),
|
|
25690
|
+
'commandNameList': [],
|
|
25691
|
+
'customerId': _getCustomerId(),
|
|
25687
25692
|
'cbfilter': None, 'filterTimes': {},
|
|
25688
25693
|
'OBY': OrderBy(CHROMEPROFILE_ORDERBY_CHOICE_MAP)})
|
|
25689
25694
|
|
|
25690
25695
|
def _getChromeProfileNameParameters(myarg, parameters):
|
|
25691
|
-
if not parameters['cbfilter'] and myarg == 'select':
|
|
25696
|
+
if not parameters['cbfilter'] and not parameters['commandNameList'] and myarg == 'select':
|
|
25692
25697
|
parameters['profileNameList'].extend(getEntityList(Cmd.OB_CHROMEPROFILE_NAME_LIST))
|
|
25693
|
-
elif not parameters['profileNameList'] and myarg == '
|
|
25698
|
+
elif not parameters['cbfilter'] and not parameters['profileNameList'] and myarg == 'commands':
|
|
25699
|
+
parameters['commandNameList'].extend(getEntityList(Cmd.OB_CHROMEPROFILE_COMMAND_NAME_LIST))
|
|
25700
|
+
elif not parameters['profileNameList'] and not parameters['commandNameList'] and myarg == 'orderby':
|
|
25694
25701
|
parameters['OBY'].GetChoice()
|
|
25695
|
-
elif not parameters['profileNameList'] and myarg.startswith('filtertime'):
|
|
25702
|
+
elif not parameters['profileNameList'] and not parameters['commandNameList'] and myarg.startswith('filtertime'):
|
|
25696
25703
|
parameters['filterTimes'][myarg] = getTimeOrDeltaFromNow()
|
|
25697
|
-
elif not parameters['profileNameList'] and myarg in {'filter', 'filters'}:
|
|
25704
|
+
elif not parameters['profileNameList'] and not parameters['commandNameList'] and myarg in {'filter', 'filters'}:
|
|
25698
25705
|
parameters['cbfilter'] = getString(Cmd.OB_STRING)
|
|
25699
25706
|
else:
|
|
25700
25707
|
return False
|
|
@@ -25703,9 +25710,14 @@ def _getChromeProfileNameParameters(myarg, parameters):
|
|
|
25703
25710
|
def _getChromeProfileNameEntityForCommand(cm, parameters):
|
|
25704
25711
|
if parameters['cbfilter'] is None:
|
|
25705
25712
|
customerId = parameters['customerId']
|
|
25706
|
-
|
|
25707
|
-
|
|
25708
|
-
|
|
25713
|
+
if parameters['profileNameList']:
|
|
25714
|
+
for i, profileName in enumerate(parameters['profileNameList']):
|
|
25715
|
+
if not profileName.startswith('customers'):
|
|
25716
|
+
parameters['profileNameList'][i] = f'customers/{customerId}/profiles/{profileName}'
|
|
25717
|
+
elif parameters['commandNameList']:
|
|
25718
|
+
for i, commandName in enumerate(parameters['commandNameList']):
|
|
25719
|
+
if not commandName.startswith('customers'):
|
|
25720
|
+
parameters['commandNameList'][i] = f'customers/{customerId}/profiles/{commandName}'
|
|
25709
25721
|
return
|
|
25710
25722
|
if parameters['filterTimes']:
|
|
25711
25723
|
for filterTimeName, filterTimeValue in iter(parameters['filterTimes'].items()):
|
|
@@ -25740,13 +25752,23 @@ def _showChromeProfileCommand(profcmd, FJQC, i=0, count=0):
|
|
|
25740
25752
|
showJSON(None, profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS)
|
|
25741
25753
|
Ind.Decrement()
|
|
25742
25754
|
|
|
25755
|
+
def _printChromeProfileCommand(profcmd, csvPF, FJQC):
|
|
25756
|
+
row = flattenJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS)
|
|
25757
|
+
if not FJQC.formatJSON:
|
|
25758
|
+
csvPF.WriteRowTitles(row)
|
|
25759
|
+
elif csvPF.CheckRowTitles(row):
|
|
25760
|
+
csvPF.WriteRowNoFilter({'name': profcmd['name'],
|
|
25761
|
+
'JSON': json.dumps(cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS),
|
|
25762
|
+
ensure_ascii=False, sort_keys=True)})
|
|
25763
|
+
|
|
25743
25764
|
# gam create chromeprofilecommand <ChromeProfileNameEntity>
|
|
25744
25765
|
# [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
|
|
25745
|
-
# [formatjson]
|
|
25766
|
+
# [csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]
|
|
25746
25767
|
def doCreateChromeProfileCommand():
|
|
25747
25768
|
cm, parameters = _initChromeProfileNameParameters()
|
|
25748
25769
|
body = {'commandType': 'clearBrowsingData', 'payload': {}}
|
|
25749
|
-
|
|
25770
|
+
csvPF = None
|
|
25771
|
+
FJQC = FormatJSONQuoteChar(None)
|
|
25750
25772
|
while Cmd.ArgumentsRemaining():
|
|
25751
25773
|
myarg = getArgument()
|
|
25752
25774
|
if _getChromeProfileNameParameters(myarg, parameters):
|
|
@@ -25755,8 +25777,13 @@ def doCreateChromeProfileCommand():
|
|
|
25755
25777
|
body['payload']['clearCache'] = getBoolean()
|
|
25756
25778
|
elif myarg == 'clearcookies':
|
|
25757
25779
|
body['payload']['clearCookies'] = getBoolean()
|
|
25780
|
+
elif myarg == 'csv':
|
|
25781
|
+
csvPF = CSVPrintFile(['name'], 'sortall')
|
|
25782
|
+
FJQC.SetCsvPF(csvPF)
|
|
25783
|
+
elif csvPF and myarg == 'todrive':
|
|
25784
|
+
csvPF.GetTodriveParameters()
|
|
25758
25785
|
else:
|
|
25759
|
-
FJQC.
|
|
25786
|
+
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
|
25760
25787
|
_getChromeProfileNameEntityForCommand(cm, parameters)
|
|
25761
25788
|
count = len(parameters['profileNameList'])
|
|
25762
25789
|
i = 0
|
|
@@ -25766,11 +25793,16 @@ def doCreateChromeProfileCommand():
|
|
|
25766
25793
|
profcmd = callGAPI(cm.customers().profiles().commands(), 'create',
|
|
25767
25794
|
throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED],
|
|
25768
25795
|
parent=profileName, body=body)
|
|
25769
|
-
|
|
25796
|
+
if csvPF is None:
|
|
25797
|
+
_showChromeProfileCommand(profcmd, FJQC, i, count)
|
|
25798
|
+
else:
|
|
25799
|
+
_printChromeProfileCommand(profcmd, csvPF, FJQC)
|
|
25770
25800
|
except (GAPI.notFound) as e:
|
|
25771
25801
|
entityActionFailedWarning([Ent.CHROME_PROFILE_COMMAND, profileName], str(e), i, count)
|
|
25772
25802
|
except (GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
25773
25803
|
entityActionFailedExit([Ent.CHROME_PROFILE_COMMAND, profileName], str(e))
|
|
25804
|
+
if csvPF:
|
|
25805
|
+
csvPF.writeCSVfile('Chrome Profile Commands')
|
|
25774
25806
|
|
|
25775
25807
|
# gam info chromeprofilecommand <ChromeProfileCommandName>
|
|
25776
25808
|
# [formatjson]
|
|
@@ -25794,15 +25826,6 @@ def doInfoChromeProfileCommand():
|
|
|
25794
25826
|
# gam print chromeprofilecommands <ChromeProfilNameEntity> [todrive <ToDriveAttribute>*]
|
|
25795
25827
|
# [formatjson [quotechar <Character>]]
|
|
25796
25828
|
def doPrintShowChromeProfileCommands():
|
|
25797
|
-
def _printProfileCommand(profcmd):
|
|
25798
|
-
row = flattenJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS)
|
|
25799
|
-
if not FJQC.formatJSON:
|
|
25800
|
-
csvPF.WriteRowTitles(row)
|
|
25801
|
-
elif csvPF.CheckRowTitles(row):
|
|
25802
|
-
csvPF.WriteRowNoFilter({'name': profcmd['name'],
|
|
25803
|
-
'JSON': json.dumps(cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS),
|
|
25804
|
-
ensure_ascii=False, sort_keys=True)})
|
|
25805
|
-
|
|
25806
25829
|
csvPF = CSVPrintFile(['name']) if Act.csvFormat() else None
|
|
25807
25830
|
FJQC = FormatJSONQuoteChar(csvPF)
|
|
25808
25831
|
cm, parameters = _initChromeProfileNameParameters()
|
|
@@ -25815,32 +25838,50 @@ def doPrintShowChromeProfileCommands():
|
|
|
25815
25838
|
else:
|
|
25816
25839
|
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
|
25817
25840
|
_getChromeProfileNameEntityForCommand(cm, parameters)
|
|
25818
|
-
|
|
25819
|
-
|
|
25820
|
-
|
|
25821
|
-
|
|
25822
|
-
|
|
25823
|
-
|
|
25824
|
-
|
|
25825
|
-
|
|
25826
|
-
|
|
25827
|
-
|
|
25828
|
-
|
|
25829
|
-
|
|
25830
|
-
|
|
25831
|
-
|
|
25832
|
-
|
|
25833
|
-
|
|
25834
|
-
|
|
25835
|
-
|
|
25836
|
-
|
|
25837
|
-
|
|
25838
|
-
|
|
25839
|
-
|
|
25840
|
-
|
|
25841
|
-
|
|
25842
|
-
|
|
25843
|
-
|
|
25841
|
+
if parameters['profileNameList']:
|
|
25842
|
+
count = len(parameters['profileNameList'])
|
|
25843
|
+
i = 0
|
|
25844
|
+
for profileName in parameters['profileNameList']:
|
|
25845
|
+
i +=1
|
|
25846
|
+
printGettingEntityItemForWhom(Ent.CHROME_PROFILE_COMMAND, profileName, i, count)
|
|
25847
|
+
pageMessage = getPageMessage()
|
|
25848
|
+
try:
|
|
25849
|
+
profcmds = callGAPIpages(cm.customers().profiles().commands(), 'list', 'chromeBrowserProfileCommands',
|
|
25850
|
+
pageMessage=pageMessage,
|
|
25851
|
+
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
|
25852
|
+
parent=profileName, pageSize=100)
|
|
25853
|
+
if not csvPF:
|
|
25854
|
+
jcount = len(profcmds)
|
|
25855
|
+
Ind.Increment()
|
|
25856
|
+
j = 0
|
|
25857
|
+
for profcmd in profcmds:
|
|
25858
|
+
j += 1
|
|
25859
|
+
_showChromeProfileCommand(profcmd, FJQC, j, jcount)
|
|
25860
|
+
Ind.Decrement()
|
|
25861
|
+
else:
|
|
25862
|
+
for profcmd in profcmds:
|
|
25863
|
+
_printChromeProfileCommand(profcmd, csvPF, FJQC)
|
|
25864
|
+
except GAPI.notFound as e:
|
|
25865
|
+
entityActionFailedWarning([Ent.CHROME_PROFILE, profileName], str(e), i, count)
|
|
25866
|
+
except (GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
25867
|
+
entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e))
|
|
25868
|
+
elif parameters['commandNameList']:
|
|
25869
|
+
count = len(parameters['commandNameList'])
|
|
25870
|
+
i = 0
|
|
25871
|
+
for profileCommandName in parameters['commandNameList']:
|
|
25872
|
+
i +=1
|
|
25873
|
+
try:
|
|
25874
|
+
profcmd = callGAPI(cm.customers().profiles().commands(), 'get',
|
|
25875
|
+
throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED],
|
|
25876
|
+
name=profileCommandName)
|
|
25877
|
+
if not csvPF:
|
|
25878
|
+
_showChromeProfileCommand(profcmd, FJQC, i, count)
|
|
25879
|
+
else:
|
|
25880
|
+
_printChromeProfileCommand(profcmd, csvPF, FJQC)
|
|
25881
|
+
except GAPI.notFound as e:
|
|
25882
|
+
entityActionFailedWarning([Ent.CHROME_PROFILE_COMMAND, profileCommandName], str(e), i, count)
|
|
25883
|
+
except (GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
25884
|
+
entityActionFailedExit([Ent.CHROME_PROFILE, profileCommandName], str(e))
|
|
25844
25885
|
if csvPF:
|
|
25845
25886
|
csvPF.writeCSVfile('Chrome Profile Commands')
|
|
25846
25887
|
|
|
@@ -76450,6 +76491,147 @@ def importTasklist(users):
|
|
|
76450
76491
|
tasklist=tasklistId, parent=parent, body=task)
|
|
76451
76492
|
parentIdMap[taskId] = result['id']
|
|
76452
76493
|
|
|
76494
|
+
TAGMANAGER_PARAMETERS = {
|
|
76495
|
+
Ent.TAGMANAGER_ACCOUNT: {'api': API.TAGMANAGER, 'respType': 'account', 'parentEntityType': None,
|
|
76496
|
+
'name': 'name', 'idList': ['accountId']},
|
|
76497
|
+
Ent.TAGMANAGER_CONTAINER: {'api': API.TAGMANAGER, 'respType': 'container', 'parentEntityType': Ent.TAGMANAGER_ACCOUNT,
|
|
76498
|
+
'name': 'name', 'idList': ['accountId', 'containerId']},
|
|
76499
|
+
Ent.TAGMANAGER_WORKSPACE: {'api': API.TAGMANAGER, 'respType': 'workspace', 'parentEntityType': Ent.TAGMANAGER_CONTAINER,
|
|
76500
|
+
'name': 'name', 'idList': ['accountId', 'containerId', 'workspaceId']},
|
|
76501
|
+
Ent.TAGMANAGER_TAG: {'api': API.TAGMANAGER, 'respType': 'tag', 'parentEntityType': Ent.TAGMANAGER_WORKSPACE,
|
|
76502
|
+
'name': 'name', 'idList': ['accountId', 'containerId', 'workspaceId', 'tagId']},
|
|
76503
|
+
Ent.TAGMANAGER_PERMISSION: {'api': API.TAGMANAGER_USERS, 'respType': 'userPermission', 'parentEntityType': Ent.TAGMANAGER_ACCOUNT,
|
|
76504
|
+
'name': 'emailAddress', 'idList': ['accountId']},
|
|
76505
|
+
}
|
|
76506
|
+
|
|
76507
|
+
def printShowTagManagerObjects(users, entityType):
|
|
76508
|
+
csvPF = CSVPrintFile(['User']) if Act.csvFormat() else None
|
|
76509
|
+
FJQC = FormatJSONQuoteChar(csvPF)
|
|
76510
|
+
if entityType == Ent.TAGMANAGER_ACCOUNT:
|
|
76511
|
+
kwargs = {'includeGoogleTags': False}
|
|
76512
|
+
parentList = [None]
|
|
76513
|
+
else:
|
|
76514
|
+
kwargs = {'parent': None}
|
|
76515
|
+
if not checkArgumentPresent('select'):
|
|
76516
|
+
parentList = getString(Cmd.OB_TAGMANAGER_PATH_LIST).replace(',', ' ').split()
|
|
76517
|
+
else:
|
|
76518
|
+
parentList = getEntityList(Cmd.OB_TAGMANAGER_PATH_LIST)
|
|
76519
|
+
parameters = TAGMANAGER_PARAMETERS[entityType]
|
|
76520
|
+
if csvPF:
|
|
76521
|
+
csvPF.AddTitles([parameters['name'], 'path'])
|
|
76522
|
+
while Cmd.ArgumentsRemaining():
|
|
76523
|
+
myarg = getArgument()
|
|
76524
|
+
if csvPF and myarg == 'todrive':
|
|
76525
|
+
csvPF.GetTodriveParameters()
|
|
76526
|
+
elif entityType == Ent.TAGMANAGER_ACCOUNT and myarg == 'includegoogletags':
|
|
76527
|
+
kwargs['includeGoogleTags'] = getBoolean()
|
|
76528
|
+
else:
|
|
76529
|
+
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
|
76530
|
+
i, count, users = getEntityArgument(users)
|
|
76531
|
+
for user in users:
|
|
76532
|
+
i += 1
|
|
76533
|
+
user, svc = buildGAPIServiceObject(parameters['api'], user, i, count)
|
|
76534
|
+
if not svc:
|
|
76535
|
+
continue
|
|
76536
|
+
if entityType == Ent.TAGMANAGER_ACCOUNT:
|
|
76537
|
+
svc = svc.accounts()
|
|
76538
|
+
elif entityType == Ent.TAGMANAGER_CONTAINER:
|
|
76539
|
+
svc = svc.accounts().containers()
|
|
76540
|
+
elif entityType == Ent.TAGMANAGER_WORKSPACE:
|
|
76541
|
+
svc = svc.accounts().containers().workspaces()
|
|
76542
|
+
elif entityType == Ent.TAGMANAGER_TAG:
|
|
76543
|
+
svc = svc.accounts().containers().workspaces().tags()
|
|
76544
|
+
else: #elif entityType == Ent.TAGMANAGER_PERMISSION:
|
|
76545
|
+
svc = svc.accounts().user_permissions()
|
|
76546
|
+
jcount = len(parentList)
|
|
76547
|
+
j = 0
|
|
76548
|
+
for parent in parentList:
|
|
76549
|
+
j += 1
|
|
76550
|
+
if entityType == Ent.TAGMANAGER_ACCOUNT:
|
|
76551
|
+
printGettingAllEntityItemsForWhom(entityType, user, i, count)
|
|
76552
|
+
else:
|
|
76553
|
+
kwargs['parent'] = parent
|
|
76554
|
+
qualifier = f' for {Ent.Singular(parameters["parentEntityType"])}: {parent}'
|
|
76555
|
+
printGettingAllEntityItemsForWhom(entityType, user, i, count, qualifier=qualifier)
|
|
76556
|
+
try:
|
|
76557
|
+
results = callGAPIpages(svc, 'list', parameters['respType'],
|
|
76558
|
+
pageMessage=getPageMessageForWhom(),
|
|
76559
|
+
throwReasons=GAPI.TAGMANAGER_THROW_REASONS,
|
|
76560
|
+
**kwargs)
|
|
76561
|
+
except (GAPI.badRequest, GAPI.invalid, GAPI.notFound) as e:
|
|
76562
|
+
entityActionFailedWarning([Ent.USER, user, entityType, kwargs['parent']], str(e), j, jcount)
|
|
76563
|
+
continue
|
|
76564
|
+
kcount = len(results)
|
|
76565
|
+
if not csvPF:
|
|
76566
|
+
if not FJQC.formatJSON:
|
|
76567
|
+
entityPerformActionNumItems([Ent.USER, user], kcount, entityType, j, jcount)
|
|
76568
|
+
Ind.Increment()
|
|
76569
|
+
k = 0
|
|
76570
|
+
for result in results:
|
|
76571
|
+
k += 1
|
|
76572
|
+
if not FJQC.formatJSON:
|
|
76573
|
+
printEntity([entityType, result['path']], k, kcount)
|
|
76574
|
+
Ind.Increment()
|
|
76575
|
+
printKeyValueList([parameters['name'], result.pop(parameters['name'])])
|
|
76576
|
+
for tmid in parameters['idList']:
|
|
76577
|
+
printKeyValueList([tmid, result.pop(tmid)])
|
|
76578
|
+
showJSON(None, result)
|
|
76579
|
+
Ind.Decrement()
|
|
76580
|
+
else:
|
|
76581
|
+
printLine(json.dumps(cleanJSON(result), ensure_ascii=False, sort_keys=True))
|
|
76582
|
+
Ind.Decrement()
|
|
76583
|
+
else:
|
|
76584
|
+
for result in results:
|
|
76585
|
+
baseRow = {'User': user}
|
|
76586
|
+
for tmid in parameters['idList']:
|
|
76587
|
+
baseRow[tmid] = result.pop(tmid)
|
|
76588
|
+
row = flattenJSON(result, flattened=baseRow)
|
|
76589
|
+
if not FJQC.formatJSON:
|
|
76590
|
+
csvPF.WriteRowTitles(row)
|
|
76591
|
+
elif csvPF.CheckRowTitles(row):
|
|
76592
|
+
row = {'User': user, parameters['name']: result[parameters['name']], 'path': result['path']}
|
|
76593
|
+
row['JSON'] = json.dumps(cleanJSON(result), ensure_ascii=False, sort_keys=True)
|
|
76594
|
+
csvPF.WriteRowNoFilter(row)
|
|
76595
|
+
if csvPF:
|
|
76596
|
+
csvPF.writeCSVfile(Ent.Plural(entityType))
|
|
76597
|
+
|
|
76598
|
+
# gam <UserTypeEntity> show tagmanageraccounts
|
|
76599
|
+
# [includegoogletags [<Boolean>]]
|
|
76600
|
+
# [formatjson]
|
|
76601
|
+
# gam <UserTypeEntity> print tagmanagerccounts [todrive <ToDriveAttribute>*]
|
|
76602
|
+
# [includegoogletags [<Boolean>]]
|
|
76603
|
+
# [formatjson [quotechar <Character>]]
|
|
76604
|
+
def printShowTagManagerAccounts(users):
|
|
76605
|
+
printShowTagManagerObjects(users, Ent.TAGMANAGER_ACCOUNT)
|
|
76606
|
+
|
|
76607
|
+
# gam <UserTypeEntity> show tagmanagercontainers <TagManagerAccountPathEntity>
|
|
76608
|
+
# [formatjson]
|
|
76609
|
+
# gam <UserTypeEntity> print tagmanagercontainers <TagManagerAccountPathEntity> [todrive <ToDriveAttribute>*]
|
|
76610
|
+
# [formatjson [quotechar <Character>]]
|
|
76611
|
+
def printShowTagManagerContainers(users):
|
|
76612
|
+
printShowTagManagerObjects(users, Ent.TAGMANAGER_CONTAINER)
|
|
76613
|
+
|
|
76614
|
+
# gam <UserTypeEntity> show tagmanagerworkspaces <TagManagerContainerPathEntity>
|
|
76615
|
+
# [formatjson]
|
|
76616
|
+
# gam <UserTypeEntity> print tagmanagerworkspaces <TagManagerContainerPathEntity>
|
|
76617
|
+
# [formatjson [quotechar <Character>]]
|
|
76618
|
+
def printShowTagManagerWorkspaces(users):
|
|
76619
|
+
printShowTagManagerObjects(users, Ent.TAGMANAGER_WORKSPACE)
|
|
76620
|
+
|
|
76621
|
+
# gam <UserTypeEntity> show tagmanagertags <TagManagerWorkspacePathEntity>
|
|
76622
|
+
# [formatjson]
|
|
76623
|
+
# gam <UserTypeEntity> print tagmanagertags <TagManagerWorkspacePathEntity> [todrive <ToDriveAttribute>*]
|
|
76624
|
+
# [formatjson [quotechar <Character>]]
|
|
76625
|
+
def printShowTagManagerTags(users):
|
|
76626
|
+
printShowTagManagerObjects(users, Ent.TAGMANAGER_TAG)
|
|
76627
|
+
|
|
76628
|
+
# gam <UserTypeEntity> show tagmanagerpermissions <TagManagerAccountPathEntity>
|
|
76629
|
+
# [formatjson]
|
|
76630
|
+
# gam <UserTypeEntity> print tagmanagerpermissions <TagManagerAccountPathEntity> [todrive <ToDriveAttribute>*]
|
|
76631
|
+
# [formatjson [quotechar <Character>]]
|
|
76632
|
+
def printShowTagManagerPermissions(users):
|
|
76633
|
+
printShowTagManagerObjects(users, Ent.TAGMANAGER_PERMISSION)
|
|
76634
|
+
|
|
76453
76635
|
def getCRMOrgId():
|
|
76454
76636
|
setTrueCustomerId()
|
|
76455
76637
|
_, crm = buildGAPIServiceObject(API.CLOUDRESOURCEMANAGER, None)
|
|
@@ -78178,6 +78360,11 @@ USER_COMMANDS_WITH_OBJECTS = {
|
|
|
78178
78360
|
Cmd.ARG_SITE: deprecatedUserSites,
|
|
78179
78361
|
Cmd.ARG_SITEACL: deprecatedUserSites,
|
|
78180
78362
|
Cmd.ARG_SITEACTIVITY: deprecatedUserSites,
|
|
78363
|
+
Cmd.ARG_TAGMANAGERACCOUNT: printShowTagManagerAccounts,
|
|
78364
|
+
Cmd.ARG_TAGMANAGERCONTAINER: printShowTagManagerContainers,
|
|
78365
|
+
Cmd.ARG_TAGMANAGERPERMISSION: printShowTagManagerPermissions,
|
|
78366
|
+
Cmd.ARG_TAGMANAGERTAG: printShowTagManagerTags,
|
|
78367
|
+
Cmd.ARG_TAGMANAGERWORKSPACE: printShowTagManagerWorkspaces,
|
|
78181
78368
|
Cmd.ARG_TASK: printShowTasks,
|
|
78182
78369
|
Cmd.ARG_TASKLIST: printShowTasklists,
|
|
78183
78370
|
Cmd.ARG_THREAD: printShowThreads,
|
|
@@ -78285,6 +78472,11 @@ USER_COMMANDS_WITH_OBJECTS = {
|
|
|
78285
78472
|
Cmd.ARG_SITE: deprecatedUserSites,
|
|
78286
78473
|
Cmd.ARG_SITEACL: deprecatedUserSites,
|
|
78287
78474
|
Cmd.ARG_SMIME: printShowSmimes,
|
|
78475
|
+
Cmd.ARG_TAGMANAGERACCOUNT: printShowTagManagerAccounts,
|
|
78476
|
+
Cmd.ARG_TAGMANAGERCONTAINER: printShowTagManagerContainers,
|
|
78477
|
+
Cmd.ARG_TAGMANAGERPERMISSION: printShowTagManagerPermissions,
|
|
78478
|
+
Cmd.ARG_TAGMANAGERTAG: printShowTagManagerTags,
|
|
78479
|
+
Cmd.ARG_TAGMANAGERWORKSPACE: printShowTagManagerWorkspaces,
|
|
78288
78480
|
Cmd.ARG_TASK: printShowTasks,
|
|
78289
78481
|
Cmd.ARG_TASKLIST: printShowTasklists,
|
|
78290
78482
|
Cmd.ARG_THREAD: printShowThreads,
|
|
@@ -78524,6 +78716,11 @@ USER_COMMANDS_OBJ_ALIASES = {
|
|
|
78524
78716
|
Cmd.ARG_SITES: Cmd.ARG_SITE,
|
|
78525
78717
|
Cmd.ARG_SITEACLS: Cmd.ARG_SITEACL,
|
|
78526
78718
|
Cmd.ARG_SMIMES: Cmd.ARG_SMIME,
|
|
78719
|
+
Cmd.ARG_TAGMANAGERACCOUNTS: Cmd.ARG_TAGMANAGERACCOUNT,
|
|
78720
|
+
Cmd.ARG_TAGMANAGERCONTAINERS: Cmd.ARG_TAGMANAGERCONTAINER,
|
|
78721
|
+
Cmd.ARG_TAGMANAGERPERMISSIONS: Cmd.ARG_TAGMANAGERPERMISSION,
|
|
78722
|
+
Cmd.ARG_TAGMANAGERTAGS: Cmd.ARG_TAGMANAGERTAG,
|
|
78723
|
+
Cmd.ARG_TAGMANAGERWORKSPACES: Cmd.ARG_TAGMANAGERWORKSPACE,
|
|
78527
78724
|
Cmd.ARG_TASKS: Cmd.ARG_TASK,
|
|
78528
78725
|
Cmd.ARG_TASKLISTS: Cmd.ARG_TASKLIST,
|
|
78529
78726
|
Cmd.ARG_TEAMDRIVE: Cmd.ARG_SHAREDDRIVE,
|
|
@@ -94,6 +94,8 @@ SITEVERIFICATION = 'siteVerification'
|
|
|
94
94
|
STORAGE = 'storage'
|
|
95
95
|
STORAGEREAD = 'storageread'
|
|
96
96
|
STORAGEWRITE = 'storagewrite'
|
|
97
|
+
TAGMANAGER = 'tagmanager'
|
|
98
|
+
TAGMANAGER_USERS = 'tagmanagerusers'
|
|
97
99
|
TASKS = 'tasks'
|
|
98
100
|
VAULT = 'vault'
|
|
99
101
|
YOUTUBE = 'youtube'
|
|
@@ -199,6 +201,7 @@ PROJECT_APIS = [
|
|
|
199
201
|
'sheets.googleapis.com',
|
|
200
202
|
'siteverification.googleapis.com',
|
|
201
203
|
'storage-api.googleapis.com',
|
|
204
|
+
'tagmanager.googleapis.com',
|
|
202
205
|
'tasks.googleapis.com',
|
|
203
206
|
'vault.googleapis.com',
|
|
204
207
|
'youtube.googleapis.com',
|
|
@@ -277,6 +280,8 @@ _INFO = {
|
|
|
277
280
|
STORAGE: {'name': 'Cloud Storage API', 'version': 'v1', 'v2discovery': True},
|
|
278
281
|
STORAGEREAD: {'name': 'Cloud Storage API - Read', 'version': 'v1', 'v2discovery': True, 'mappedAPI': STORAGE},
|
|
279
282
|
STORAGEWRITE: {'name': 'Cloud Storage API - Write', 'version': 'v1', 'v2discovery': True, 'mappedAPI': STORAGE},
|
|
283
|
+
TAGMANAGER: {'name': 'Tag Manager API', 'version': 'v2', 'v2discovery': True},
|
|
284
|
+
TAGMANAGER_USERS: {'name': 'Tag Manager API - Users', 'version': 'v2', 'v2discovery': True, 'mappedAPI': TAGMANAGER},
|
|
280
285
|
TASKS: {'name': 'Tasks API', 'version': 'v1', 'v2discovery': True},
|
|
281
286
|
VAULT: {'name': 'Vault API', 'version': 'v1', 'v2discovery': True},
|
|
282
287
|
YOUTUBE: {'name': 'Youtube API', 'version': 'v3', 'v2discovery': True},
|
|
@@ -696,6 +701,16 @@ _SVCACCT_SCOPES = [
|
|
|
696
701
|
'api': SHEETS,
|
|
697
702
|
'subscopes': READONLY,
|
|
698
703
|
'scope': 'https://www.googleapis.com/auth/spreadsheets'},
|
|
704
|
+
{'name': 'Tag Manager API - read only',
|
|
705
|
+
'api': TAGMANAGER,
|
|
706
|
+
'subscopes': [],
|
|
707
|
+
'offByDefault': True,
|
|
708
|
+
'scope': 'https://www.googleapis.com/auth/tagmanager.readonly'},
|
|
709
|
+
{'name': 'Tag Manager API - Users',
|
|
710
|
+
'api': TAGMANAGER_USERS,
|
|
711
|
+
'subscopes': [],
|
|
712
|
+
'offByDefault': True,
|
|
713
|
+
'scope': 'https://www.googleapis.com/auth/tagmanager.manage.users'},
|
|
699
714
|
{'name': 'Tasks API',
|
|
700
715
|
'api': TASKS,
|
|
701
716
|
'subscopes': READONLY,
|
|
@@ -782,6 +782,16 @@ class GamCLArgs():
|
|
|
782
782
|
ARG_SUSPENDED = 'suspended'
|
|
783
783
|
ARG_SVCACCT = 'svcacct'
|
|
784
784
|
ARG_SVCACCTS = 'svcaccts'
|
|
785
|
+
ARG_TAGMANAGERACCOUNT = 'tagmanageraccount'
|
|
786
|
+
ARG_TAGMANAGERACCOUNTS = 'tagmanageraccounts'
|
|
787
|
+
ARG_TAGMANAGERCONTAINER = 'tagmanagercontainer'
|
|
788
|
+
ARG_TAGMANAGERCONTAINERS = 'tagmanagercontainers'
|
|
789
|
+
ARG_TAGMANAGERPERMISSION = 'tagmanagerpermission'
|
|
790
|
+
ARG_TAGMANAGERPERMISSIONS = 'tagmanagerpermissions'
|
|
791
|
+
ARG_TAGMANAGERTAG = 'tagmanagertag'
|
|
792
|
+
ARG_TAGMANAGERTAGS = 'tagmanagertags'
|
|
793
|
+
ARG_TAGMANAGERWORKSPACE = 'tagmanagerworkspace'
|
|
794
|
+
ARG_TAGMANAGERWORKSPACES = 'tagmanagerworkspaces'
|
|
785
795
|
ARG_TASK = 'task'
|
|
786
796
|
ARG_TASKS = 'tasks'
|
|
787
797
|
ARG_TASKLIST = 'tasklist'
|
|
@@ -859,6 +869,8 @@ class GamCLArgs():
|
|
|
859
869
|
OB_CHAT_THREAD = 'ChatThread'
|
|
860
870
|
OB_CHROMEPROFILE_NAME = 'ChromeProfileName'
|
|
861
871
|
OB_CHROMEPROFILE_NAME_LIST = 'ChromeProfileNameList'
|
|
872
|
+
OB_CHROMEPROFILE_COMMAND_NAME = 'ChromeProfileCommandName'
|
|
873
|
+
OB_CHROMEPROFILE_COMMAND_NAME_LIST = 'ChromeProfileNameCommandList'
|
|
862
874
|
OB_CHROME_VERSION = 'ChromeVersion'
|
|
863
875
|
OB_CIDR_NETMASK = 'CIDRnetmask'
|
|
864
876
|
OB_CIGROUP_ALIAS_LIST = "CIGroupAliasList"
|
|
@@ -1037,6 +1049,7 @@ class GamCLArgs():
|
|
|
1037
1049
|
OB_STRING_LIST = 'StringList'
|
|
1038
1050
|
OB_STUDENT_ITEM = 'StudentItem'
|
|
1039
1051
|
OB_TAG = 'Tag'
|
|
1052
|
+
OB_TAGMANAGER_PATH_LIST = 'TagManagerPathList'
|
|
1040
1053
|
OB_TASK_ID = 'TaskID'
|
|
1041
1054
|
OB_TASKLIST_ID = 'TaskListID'
|
|
1042
1055
|
OB_TASKLIST_ID_ENTITY = 'TaskListIDEntity'
|