gam7 7.12.2__tar.gz → 7.13.1__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.

Files changed (319) hide show
  1. {gam7-7.12.2 → gam7-7.13.1}/PKG-INFO +1 -1
  2. {gam7-7.12.2 → gam7-7.13.1}/src/GamCommands.txt +40 -8
  3. {gam7-7.12.2 → gam7-7.13.1}/src/GamUpdate.txt +34 -11
  4. {gam7-7.12.2 → gam7-7.13.1}/src/gam/__init__.py +182 -11
  5. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glclargs.py +4 -1
  6. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glentity.py +2 -0
  7. {gam7-7.12.2 → gam7-7.13.1}/src/setup.cfg +2 -1
  8. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chrome-Profile-Management.md +46 -7
  9. {gam7-7.12.2 → gam7-7.13.1}/wiki/GamUpdates.md +14 -0
  10. {gam7-7.12.2 → gam7-7.13.1}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  11. {gam7-7.12.2 → gam7-7.13.1}/wiki/Version-and-Help.md +6 -6
  12. {gam7-7.12.2 → gam7-7.13.1}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  13. {gam7-7.12.2 → gam7-7.13.1}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  14. {gam7-7.12.2 → gam7-7.13.1}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  15. {gam7-7.12.2 → gam7-7.13.1}/.github/ISSUE_TEMPLATE.txt +0 -0
  16. {gam7-7.12.2 → gam7-7.13.1}/.github/actions/decrypt.sh +0 -0
  17. {gam7-7.12.2 → gam7-7.13.1}/.github/actions/entitlements.plist +0 -0
  18. {gam7-7.12.2 → gam7-7.13.1}/.github/actions/package_exclusions.txt +0 -0
  19. {gam7-7.12.2 → gam7-7.13.1}/.github/stale.yml +0 -0
  20. {gam7-7.12.2 → gam7-7.13.1}/.github/workflows/build.yml +0 -0
  21. {gam7-7.12.2 → gam7-7.13.1}/.github/workflows/codeql-analysis.yml +0 -0
  22. {gam7-7.12.2 → gam7-7.13.1}/.github/workflows/get-cacerts.yml +0 -0
  23. {gam7-7.12.2 → gam7-7.13.1}/.github/workflows/pushwiki.yml +0 -0
  24. {gam7-7.12.2 → gam7-7.13.1}/.github/workflows/pypi.yml +0 -0
  25. {gam7-7.12.2 → gam7-7.13.1}/.pre-commit-config.yaml +0 -0
  26. {gam7-7.12.2 → gam7-7.13.1}/LICENSE +0 -0
  27. {gam7-7.12.2 → gam7-7.13.1}/README.md +0 -0
  28. {gam7-7.12.2 → gam7-7.13.1}/pyproject.toml +0 -0
  29. {gam7-7.12.2 → gam7-7.13.1}/src/.gitignore +0 -0
  30. {gam7-7.12.2 → gam7-7.13.1}/src/LICENSE +0 -0
  31. {gam7-7.12.2 → gam7-7.13.1}/src/README.md +0 -0
  32. {gam7-7.12.2 → gam7-7.13.1}/src/cacerts.pem +0 -0
  33. {gam7-7.12.2 → gam7-7.13.1}/src/callgam.py +0 -0
  34. {gam7-7.12.2 → gam7-7.13.1}/src/gam/__main__.py +0 -0
  35. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/__init__.py +0 -0
  36. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/auth.py +0 -0
  37. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/client.py +0 -0
  38. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/core.py +0 -0
  39. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/data.py +0 -0
  40. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/http.py +0 -0
  41. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/http_core.py +0 -0
  42. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/http_interface.py +0 -0
  43. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/mock_http.py +0 -0
  44. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/mock_http_core.py +0 -0
  45. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/mock_service.py +0 -0
  46. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/service.py +0 -0
  47. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/token_store.py +0 -0
  48. {gam7-7.12.2 → gam7-7.13.1}/src/gam/atom/url.py +0 -0
  49. {gam7-7.12.2 → gam7-7.13.1}/src/gam/cacerts.pem +0 -0
  50. {gam7-7.12.2 → gam7-7.13.1}/src/gam/cbcm-v1.1beta1.json +0 -0
  51. {gam7-7.12.2 → gam7-7.13.1}/src/gam/contactdelegation-v1.json +0 -0
  52. {gam7-7.12.2 → gam7-7.13.1}/src/gam/datastudio-v1.json +0 -0
  53. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/__init__.py +0 -0
  54. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glaction.py +0 -0
  55. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glapi.py +0 -0
  56. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glcfg.py +0 -0
  57. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glgapi.py +0 -0
  58. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glgdata.py +0 -0
  59. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glglobals.py +0 -0
  60. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glindent.py +0 -0
  61. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glmsgs.py +0 -0
  62. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glskus.py +0 -0
  63. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/gluprop.py +0 -0
  64. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/glverlibs.py +0 -0
  65. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gamlib/yubikey.py +0 -0
  66. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/__init__.py +0 -0
  67. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/alt/__init__.py +0 -0
  68. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/alt/app_engine.py +0 -0
  69. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/alt/appengine.py +0 -0
  70. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/apps/__init__.py +0 -0
  71. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/apps/audit/__init__.py +0 -0
  72. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/apps/audit/service.py +0 -0
  73. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  74. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/apps/contacts/service.py +0 -0
  75. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/apps/service.py +0 -0
  76. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/service.py +0 -0
  77. {gam7-7.12.2 → gam7-7.13.1}/src/gam/gdata/urlfetch.py +0 -0
  78. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/__init__.py +0 -0
  79. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/_auth.py +0 -0
  80. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/_helpers.py +0 -0
  81. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/channel.py +0 -0
  82. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/discovery.py +0 -0
  83. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  84. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  85. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  86. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  87. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/errors.py +0 -0
  88. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/http.py +0 -0
  89. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/mimeparse.py +0 -0
  90. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/model.py +0 -0
  91. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/schema.py +0 -0
  92. {gam7-7.12.2 → gam7-7.13.1}/src/gam/googleapiclient/version.py +0 -0
  93. {gam7-7.12.2 → gam7-7.13.1}/src/gam/iso8601/__init__.py +0 -0
  94. {gam7-7.12.2 → gam7-7.13.1}/src/gam/iso8601/iso8601.py +0 -0
  95. {gam7-7.12.2 → gam7-7.13.1}/src/gam/meet-v2beta.json +0 -0
  96. {gam7-7.12.2 → gam7-7.13.1}/src/gam/serviceaccountlookup-v1.json +0 -0
  97. {gam7-7.12.2 → gam7-7.13.1}/src/gam/six.py +0 -0
  98. {gam7-7.12.2 → gam7-7.13.1}/src/gam-install.sh +0 -0
  99. {gam7-7.12.2 → gam7-7.13.1}/src/gam-setup.bat +0 -0
  100. {gam7-7.12.2 → gam7-7.13.1}/src/gam.exe.manifest +0 -0
  101. {gam7-7.12.2 → gam7-7.13.1}/src/gam.py +0 -0
  102. {gam7-7.12.2 → gam7-7.13.1}/src/gam.spec +0 -0
  103. {gam7-7.12.2 → gam7-7.13.1}/src/gam.wxs +0 -0
  104. {gam7-7.12.2 → gam7-7.13.1}/src/license.rtf +0 -0
  105. {gam7-7.12.2 → gam7-7.13.1}/src/requirements-dev.txt +0 -0
  106. {gam7-7.12.2 → gam7-7.13.1}/src/requirements.txt +0 -0
  107. {gam7-7.12.2 → gam7-7.13.1}/src/setup.py +0 -0
  108. {gam7-7.12.2 → gam7-7.13.1}/src/tools/a_atleast_b.py +0 -0
  109. {gam7-7.12.2 → gam7-7.13.1}/src/tools/gen-wix-xml-filelist.py +0 -0
  110. {gam7-7.12.2 → gam7-7.13.1}/src/tools/mkGamRef.py +0 -0
  111. {gam7-7.12.2 → gam7-7.13.1}/src/tools/openssl.props +0 -0
  112. {gam7-7.12.2 → gam7-7.13.1}/src/version_info.txt.in +0 -0
  113. {gam7-7.12.2 → gam7-7.13.1}/wiki/00scratch.md +0 -0
  114. {gam7-7.12.2 → gam7-7.13.1}/wiki/Addresses.md +0 -0
  115. {gam7-7.12.2 → gam7-7.13.1}/wiki/Administrators.md +0 -0
  116. {gam7-7.12.2 → gam7-7.13.1}/wiki/Alert-Center.md +0 -0
  117. {gam7-7.12.2 → gam7-7.13.1}/wiki/Aliases.md +0 -0
  118. {gam7-7.12.2 → gam7-7.13.1}/wiki/Authorization.md +0 -0
  119. {gam7-7.12.2 → gam7-7.13.1}/wiki/BNF-Syntax.md +0 -0
  120. {gam7-7.12.2 → gam7-7.13.1}/wiki/Basic-Items.md +0 -0
  121. {gam7-7.12.2 → gam7-7.13.1}/wiki/Bulk-Processing.md +0 -0
  122. {gam7-7.12.2 → gam7-7.13.1}/wiki/CSV-Input-Filtering.md +0 -0
  123. {gam7-7.12.2 → gam7-7.13.1}/wiki/CSV-Output-Filtering.md +0 -0
  124. {gam7-7.12.2 → gam7-7.13.1}/wiki/CSV-Special-Characters.md +0 -0
  125. {gam7-7.12.2 → gam7-7.13.1}/wiki/Calendars-Access.md +0 -0
  126. {gam7-7.12.2 → gam7-7.13.1}/wiki/Calendars-Events.md +0 -0
  127. {gam7-7.12.2 → gam7-7.13.1}/wiki/Calendars.md +0 -0
  128. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chat-Bot.md +0 -0
  129. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chrome-AUE-Counts.md +0 -0
  130. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  131. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chrome-Installed-Apps.md +0 -0
  132. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  133. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chrome-Policies.md +0 -0
  134. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chrome-Printers.md +0 -0
  135. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chrome-Version-Counts.md +0 -0
  136. {gam7-7.12.2 → gam7-7.13.1}/wiki/Chrome-Version-History.md +0 -0
  137. {gam7-7.12.2 → gam7-7.13.1}/wiki/ChromeOS-Devices.md +0 -0
  138. {gam7-7.12.2 → gam7-7.13.1}/wiki/Classroom-Courses.md +0 -0
  139. {gam7-7.12.2 → gam7-7.13.1}/wiki/Classroom-Guardians.md +0 -0
  140. {gam7-7.12.2 → gam7-7.13.1}/wiki/Classroom-Invitations.md +0 -0
  141. {gam7-7.12.2 → gam7-7.13.1}/wiki/Classroom-Membership.md +0 -0
  142. {gam7-7.12.2 → gam7-7.13.1}/wiki/Cloud-Channel.md +0 -0
  143. {gam7-7.12.2 → gam7-7.13.1}/wiki/Cloud-Identity-Devices.md +0 -0
  144. {gam7-7.12.2 → gam7-7.13.1}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  145. {gam7-7.12.2 → gam7-7.13.1}/wiki/Cloud-Identity-Groups.md +0 -0
  146. {gam7-7.12.2 → gam7-7.13.1}/wiki/Cloud-Identity-Policies.md +0 -0
  147. {gam7-7.12.2 → gam7-7.13.1}/wiki/Cloud-Storage.md +0 -0
  148. {gam7-7.12.2 → gam7-7.13.1}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  149. {gam7-7.12.2 → gam7-7.13.1}/wiki/Collections-of-Items.md +0 -0
  150. {gam7-7.12.2 → gam7-7.13.1}/wiki/Collections-of-Users.md +0 -0
  151. {gam7-7.12.2 → gam7-7.13.1}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  152. {gam7-7.12.2 → gam7-7.13.1}/wiki/Command-Line-Parsing.md +0 -0
  153. {gam7-7.12.2 → gam7-7.13.1}/wiki/Command-Logging-Progress.md +0 -0
  154. {gam7-7.12.2 → gam7-7.13.1}/wiki/Context-Aware-Access-Levels.md +0 -0
  155. {gam7-7.12.2 → gam7-7.13.1}/wiki/Customer.md +0 -0
  156. {gam7-7.12.2 → gam7-7.13.1}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  157. {gam7-7.12.2 → gam7-7.13.1}/wiki/Domain-SharedContacts.md +0 -0
  158. {gam7-7.12.2 → gam7-7.13.1}/wiki/Domains-Verification.md +0 -0
  159. {gam7-7.12.2 → gam7-7.13.1}/wiki/Domains.md +0 -0
  160. {gam7-7.12.2 → gam7-7.13.1}/wiki/Downloads-Installs.md +0 -0
  161. {gam7-7.12.2 → gam7-7.13.1}/wiki/Drive-File-Selection.md +0 -0
  162. {gam7-7.12.2 → gam7-7.13.1}/wiki/Drive-Items.md +0 -0
  163. {gam7-7.12.2 → gam7-7.13.1}/wiki/Drive-REST-API-v3.md +0 -0
  164. {gam7-7.12.2 → gam7-7.13.1}/wiki/Email-Audit-Monitor.md +0 -0
  165. {gam7-7.12.2 → gam7-7.13.1}/wiki/Find-File-Owner.md +0 -0
  166. {gam7-7.12.2 → gam7-7.13.1}/wiki/GAM-Public-Chat-Room.md +0 -0
  167. {gam7-7.12.2 → gam7-7.13.1}/wiki/GAM-Return-Codes.md +0 -0
  168. {gam7-7.12.2 → gam7-7.13.1}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  169. {gam7-7.12.2 → gam7-7.13.1}/wiki/GAM7-on-Android-Devices.md +0 -0
  170. {gam7-7.12.2 → gam7-7.13.1}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  171. {gam7-7.12.2 → gam7-7.13.1}/wiki/Google-Data-Transfers.md +0 -0
  172. {gam7-7.12.2 → gam7-7.13.1}/wiki/Google-Network-Addresses.md +0 -0
  173. {gam7-7.12.2 → gam7-7.13.1}/wiki/Groups-Membership.md +0 -0
  174. {gam7-7.12.2 → gam7-7.13.1}/wiki/Groups.md +0 -0
  175. {gam7-7.12.2 → gam7-7.13.1}/wiki/HTTPS-Proxy.md +0 -0
  176. {gam7-7.12.2 → gam7-7.13.1}/wiki/Home.md +0 -0
  177. {gam7-7.12.2 → gam7-7.13.1}/wiki/How-to-Install-GAM7.md +0 -0
  178. {gam7-7.12.2 → gam7-7.13.1}/wiki/How-to-Uninstall-GAM7.md +0 -0
  179. {gam7-7.12.2 → gam7-7.13.1}/wiki/How-to-Update-GAM7.md +0 -0
  180. {gam7-7.12.2 → gam7-7.13.1}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  181. {gam7-7.12.2 → gam7-7.13.1}/wiki/Inbound-SSO.md +0 -0
  182. {gam7-7.12.2 → gam7-7.13.1}/wiki/Install-GAM-as-Python-Library.md +0 -0
  183. {gam7-7.12.2 → gam7-7.13.1}/wiki/Licenses.md +0 -0
  184. {gam7-7.12.2 → gam7-7.13.1}/wiki/List-Items.md +0 -0
  185. {gam7-7.12.2 → gam7-7.13.1}/wiki/List.md +0 -0
  186. {gam7-7.12.2 → gam7-7.13.1}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  187. {gam7-7.12.2 → gam7-7.13.1}/wiki/Mobile-Devices.md +0 -0
  188. {gam7-7.12.2 → gam7-7.13.1}/wiki/Organizational-Units.md +0 -0
  189. {gam7-7.12.2 → gam7-7.13.1}/wiki/Other-Resources.md +0 -0
  190. {gam7-7.12.2 → gam7-7.13.1}/wiki/Permission-Matches.md +0 -0
  191. {gam7-7.12.2 → gam7-7.13.1}/wiki/Python-Regular-Expressions.md +0 -0
  192. {gam7-7.12.2 → gam7-7.13.1}/wiki/README.md +0 -0
  193. {gam7-7.12.2 → gam7-7.13.1}/wiki/Rclone.md +0 -0
  194. {gam7-7.12.2 → gam7-7.13.1}/wiki/Reports.md +0 -0
  195. {gam7-7.12.2 → gam7-7.13.1}/wiki/Reseller.md +0 -0
  196. {gam7-7.12.2 → gam7-7.13.1}/wiki/Resources.md +0 -0
  197. {gam7-7.12.2 → gam7-7.13.1}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  198. {gam7-7.12.2 → gam7-7.13.1}/wiki/SSL-Root-CA-Certificates.md +0 -0
  199. {gam7-7.12.2 → gam7-7.13.1}/wiki/Schemas.md +0 -0
  200. {gam7-7.12.2 → gam7-7.13.1}/wiki/Scripts.md +0 -0
  201. {gam7-7.12.2 → gam7-7.13.1}/wiki/Send-Email.md +0 -0
  202. {gam7-7.12.2 → gam7-7.13.1}/wiki/Shared-Drives.md +0 -0
  203. {gam7-7.12.2 → gam7-7.13.1}/wiki/Sites.md +0 -0
  204. {gam7-7.12.2 → gam7-7.13.1}/wiki/Tag-Replace.md +0 -0
  205. {gam7-7.12.2 → gam7-7.13.1}/wiki/Todrive.md +0 -0
  206. {gam7-7.12.2 → gam7-7.13.1}/wiki/Unmanaged-Accounts.md +0 -0
  207. {gam7-7.12.2 → gam7-7.13.1}/wiki/Upgrade-Benefits.md +0 -0
  208. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Analytics-Admin.md +0 -0
  209. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Application-Specific-Passwords.md +0 -0
  210. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Backup-Verification-Codes.md +0 -0
  211. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Calendars-Access.md +0 -0
  212. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Calendars-Events.md +0 -0
  213. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Calendars.md +0 -0
  214. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Chat.md +0 -0
  215. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Classification-Labels.md +0 -0
  216. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Classroom-Profile.md +0 -0
  217. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Contacts-Delegates.md +0 -0
  218. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Contacts.md +0 -0
  219. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Deprovision.md +0 -0
  220. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Activity-Settings.md +0 -0
  221. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Cleanup.md +0 -0
  222. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Comments.md +0 -0
  223. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Copy-Move.md +0 -0
  224. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Files-Display.md +0 -0
  225. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Files-Manage.md +0 -0
  226. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Orphans.md +0 -0
  227. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Ownership.md +0 -0
  228. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Permissions.md +0 -0
  229. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Query.md +0 -0
  230. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Revisions.md +0 -0
  231. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Shortcuts.md +0 -0
  232. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Drive-Transfer.md +0 -0
  233. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Forms.md +0 -0
  234. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-CSE.md +0 -0
  235. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-Delegates.md +0 -0
  236. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-Filters.md +0 -0
  237. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-Forwarding.md +0 -0
  238. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-Labels.md +0 -0
  239. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  240. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-Profile.md +0 -0
  241. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-S-MIME.md +0 -0
  242. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  243. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Gmail-Settings.md +0 -0
  244. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Group-Membership.md +0 -0
  245. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Keep-Notes.md +0 -0
  246. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Looker-Studio.md +0 -0
  247. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Meet.md +0 -0
  248. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-People-Contacts-Profiles.md +0 -0
  249. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Photo.md +0 -0
  250. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Profile-Photo.md +0 -0
  251. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Profile-Sharing.md +0 -0
  252. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Shared-Drives.md +0 -0
  253. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  254. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Spreadsheets.md +0 -0
  255. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Tasks.md +0 -0
  256. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-Tokens.md +0 -0
  257. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users-YouTube.md +0 -0
  258. {gam7-7.12.2 → gam7-7.13.1}/wiki/Users.md +0 -0
  259. {gam7-7.12.2 → gam7-7.13.1}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  260. {gam7-7.12.2 → gam7-7.13.1}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  261. {gam7-7.12.2 → gam7-7.13.1}/wiki/Vault-Takeout.md +0 -0
  262. {gam7-7.12.2 → gam7-7.13.1}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  263. {gam7-7.12.2 → gam7-7.13.1}/wiki/_Sidebar.md +0 -0
  264. {gam7-7.12.2 → gam7-7.13.1}/wiki/gam.cfg.md +0 -0
  265. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-AdminSettingsExamples.md +0 -0
  266. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Android-Installation.md +0 -0
  267. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-BulkOperations.md +0 -0
  268. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-CalendarExamples.md +0 -0
  269. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Chat-Bot.md +0 -0
  270. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Chrome-Browser-Management.md +0 -0
  271. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Chrome-OS-Installation.md +0 -0
  272. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Chrome-Policy-Settings.md +0 -0
  273. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Cloud-Identity-Groups.md +0 -0
  274. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  275. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Command-Reference-Calendars.md +0 -0
  276. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Command-Reference-Definitions.md +0 -0
  277. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Command-Reference-Drive.md +0 -0
  278. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Command-Reference-Email.md +0 -0
  279. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  280. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Command-Reference-Groups.md +0 -0
  281. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Command-Reference-Users.md +0 -0
  282. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  283. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  284. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-CreatingClientSecretsFile.md +0 -0
  285. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Custom-Schemas.md +0 -0
  286. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Data-Transfers.md +0 -0
  287. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-DomainVerification.md +0 -0
  288. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-ExamplesAccountAuditing.md +0 -0
  289. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-ExamplesCSV.md +0 -0
  290. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-ExamplesEmailSettings.md +0 -0
  291. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-ExamplesOrganizations.md +0 -0
  292. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-GAM-Discussion-Group.md +0 -0
  293. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  294. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-GAM-options-files.md +0 -0
  295. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  296. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-GAM3CSVListings.md +0 -0
  297. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-GAM3DirectoryCommands.md +0 -0
  298. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-GAM3GroupSettings.md +0 -0
  299. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-GAM7-FAQ.md +0 -0
  300. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  301. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-GoogleDriveManagement.md +0 -0
  302. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  303. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Home.md +0 -0
  304. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  305. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Inbound-SSO-Settings.md +0 -0
  306. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-LicenseExamples.md +0 -0
  307. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Managing-Admins.md +0 -0
  308. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  309. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Managing-Devices.md +0 -0
  310. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Managing-Google-Classroom.md +0 -0
  311. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-OAuthKeyManagement.md +0 -0
  312. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Printers.md +0 -0
  313. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-ResellerCommands.md +0 -0
  314. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  315. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-SecurityExamples.md +0 -0
  316. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-UnmanagedUsersExamples.md +0 -0
  317. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Use-a-Yubikey.md +0 -0
  318. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  319. {gam7-7.12.2 → gam7-7.13.1}/wiki/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.12.2
3
+ Version: 7.13.1
4
4
  Summary: CLI tool to manage Google Workspace
5
5
  Project-URL: Homepage, https://github.com/GAM-team/GAM
6
6
  Project-URL: Issues, https://github.com/GAM-team/GAM/issues
@@ -381,12 +381,15 @@ If an item contains spaces, it should be surrounded by ".
381
381
  domain:<DomainName>|domain|default
382
382
  <CalendarItem> ::= <EmailAddress>
383
383
  <ChannelCustomerID> ::= <String>
384
- <ChatEmojiName> ::= :<String>:
384
+ <ChatEmojiName> ::= :[0-9a-z_-]+:
385
385
  <ChatEmoji> ::= emojiname <ChatEmojiName> | customemojis/<String>
386
386
  <ChatMember> ::= spaces/<String>/members/<String>
387
387
  <ChatMessage> ::= spaces/<String>/messages/<String>
388
388
  <ChatSpace> ::= spaces/<String> | space <String> | space spaces/<String>
389
389
  <ChatThread> ::= spaces/<String>/threads/<String>
390
+ <ChromeProfilePermanentID> ::= <String>
391
+ <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
392
+ <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
390
393
  <GIGroupAlias> ::= <EmailAddress>
391
394
  <GIGroupItem> ::= <EmailAddress>|<UniqueID>|groups/<String>
392
395
  <CIGroupMemberType> ::= cbcmbrowser|chromeosdevice|customer|group|other|serviceaccount|user
@@ -681,9 +684,15 @@ If an item contains spaces, it should be surrounded by ".
681
684
  <CalendarACLScopeList> ::= "<CalendarACLScope>(,<CalendarACLScope>)*"
682
685
  <CalendarList> ::= "<CalendarItem>(,<CalendarItem>)*"
683
686
  <ChatSpaceList> ::= "<ChatSpace>(,<ChatSpace>)*"
687
+ <ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
684
688
  <CIGroupAliasList> ::= "<CIGroupAlias>(,<CIGroupAlias>)*"
685
689
  <CIGroupMemberTypeList> ::= "<CIGroupMemberType>(,<CIGroupMemberType>)*"
686
690
  <CIPolicyNameList> ::= "<CIPolicyName>(,<CIPolicyName>)*"
691
+ <ClassificationLabelIDList> ::= "<ClassificationLabelID>(,<ClassificationLabelID>)*"
692
+ <ClassificationLabelNameList> ::= "<ClassificationLabelName>(,<ClassificationLabelName>)*"
693
+ <ClassificationLabelPermissionNameList> ::= "<ClassificationLabelPermissionName>(,<ClassificationLabelPermissionName>)*"
694
+ <ClassificationLabelFieldIDList> ::= "<ClassificationLabelFieldID>(,<ClassificationLabelFieldID>)*"
695
+ <ClassificationLabelSelectionIDList> ::= "<ClassificationLabelSelectionID>(,<ClassificationLabelSelectionID>)*"
687
696
  <ClassroomInvitationIDList> ::= "<ClassroomInvitationID>(,<ClassroomInvitationID>)*"
688
697
  <ContactGroupList> ::= "<ContactGroupItem>(,<ContactGroupItem>)*"
689
698
  <ContactIDList> ::= "<ContactID>(,<ContactID>)*"
@@ -1015,6 +1024,8 @@ Specify a collection of items by directly specifying them; the item type is dete
1015
1024
  <CalendarACLScopeList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
1016
1025
  <CalendarEntity> ::=
1017
1026
  <CalendarList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
1027
+ <ChromeProfileNameEntity> ::=
1028
+ <ChromeProfileNameList> | <FileSelector> | <CSVFileSelector>
1018
1029
  <CIPolicyNameEntity> ::=
1019
1030
  <CIPolicyNameList> | <FileSelector> | <CSVFileSelector>
1020
1031
  <ClassificationLabelNameEntity> ::=
@@ -2215,6 +2226,15 @@ gam show chromeneedsattn
2215
2226
 
2216
2227
  # Chrome Profile Management
2217
2228
 
2229
+ <ChromeProfilePermanentID> ::= <String>
2230
+ <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
2231
+ <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
2232
+ <ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
2233
+ <ChromeProfileNameEntity> ::=
2234
+ <ChromeProfileNameList> |
2235
+ (select <FileSelector>|<CSVFileSelector>) |
2236
+ (filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]])
2237
+
2218
2238
  <ChromeProfileFieldName> ::=
2219
2239
  affiliationstate|
2220
2240
  annotatedlocation|
@@ -2265,15 +2285,27 @@ gam delete chromeprofile <ChromeProfileName>
2265
2285
  gam info chromeprofile <ChromeProfileName>
2266
2286
  <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
2267
2287
  gam show chromeprofiles
2268
- [filtertime.* <Time>] [filter <String>]
2288
+ [filter <String> (filtertime<String> <Time>)*]
2269
2289
  [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
2270
2290
  <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
2271
2291
  [formatjson]
2272
2292
  gam print chromeprofiles [todrive <ToDriveAttribute>*]
2273
- [filtertime.* <Time>] [filter <String>]
2293
+ [filter <String> (filtertime<String> <Time>)*]
2274
2294
  [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
2275
2295
  <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
2276
- [[formatjson [quotechar <Character>]]
2296
+ [formatjson [quotechar <Character>]]
2297
+
2298
+ gam create chromeprofilecommand <ChromeProfileNameEntity>
2299
+ [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
2300
+ [formatjson]
2301
+
2302
+ gam info chromeprofilecommand <ChromeProfileCommandName>
2303
+ [formatjson]
2304
+
2305
+ gam show chromeprofilecommands <ChromeProfileNameEntity>
2306
+ [formatjson]
2307
+ gam print chromeprofilecommands <ChromeProfileNameEntity> [todrive <ToDriveAttribute>*]
2308
+ [formatjson [quotechar <Character>]]
2277
2309
 
2278
2310
  # Chrome Versions Counts
2279
2311
 
@@ -4491,7 +4523,7 @@ gam report <ActivityApplicationName> [todrive <ToDriveAttribute>*]
4491
4523
  [(user all|<UserItem>)|(orgunit|org|ou <OrgUnitPath> [showorgunit])|(select <UserTypeEntity>)]
4492
4524
  [([start <Time>] [end <Time>])|(range <Time> <Time>)|
4493
4525
  yesterday|today|thismonth|(previousmonths <Integer>)]
4494
- [filtertime.<String> <Time>] [filter|filters <String>]
4526
+ [filter <String> (filtertime<String> <Time>)*]
4495
4527
  [event|events <EventNameList>] [ip <String>]
4496
4528
  [groupidfilter <String>]
4497
4529
  [maxactivities <Number>] [maxevents <Number>] [maxresults <Number>]
@@ -4538,7 +4570,7 @@ gam report users|user [todrive <ToDriveAttribute>*]
4538
4570
  [(date <Date>)|(range <Date> <Date>)|
4539
4571
  yesterday|today|thismonth|(previousmonths <Integer>)]
4540
4572
  [(nodatechange | limitdatechanges <Integer>) | (fulldatarequired all|<UserServiceNameList>)]
4541
- [filtertime.* <Time>] [filter|filters <String>]
4573
+ [filter <String> (filtertime<String> <Time>)*]
4542
4574
  [(fields|parameters <String>)|(services <UserServiceNameList>)]
4543
4575
  [aggregatebydate|aggregatebyuser [Boolean]]
4544
4576
  [maxresults <Number>]
@@ -7466,10 +7498,10 @@ gam <UserTypeEntity> show forms <DriveFileEntity>
7466
7498
 
7467
7499
  gam <UserTypeEntity> print formresponses <DriveFileEntity> [todrive <ToDriveAttribute>*]
7468
7500
  (addcsvdata <FieldName> <String>)*
7469
- [filtertime.* <Time>] [filter <String>]
7501
+ [filter <String> (filtertime<String> <Time>)*]
7470
7502
  [countsonly|(formatjson [quotechar <Character>])]
7471
7503
  gam <UserTypeEntity> show formresponses <DriveFileEntity>
7472
- [filtertime.* <Time>] [filter <String>]
7504
+ [filter <String> (filtertime<String> <Time>)*]
7473
7505
  [countsonly|formatjson]
7474
7506
 
7475
7507
  # Users - Gmail - Forwarding
@@ -1,3 +1,26 @@
1
+ 7.13.01
2
+
3
+ Enhanced `gam create|print|show chromeprofilecommand` to allow specification
4
+ of multiple Chrome browser profiles rather than just one.
5
+ ```
6
+ <ChromeProfilePermanentID> ::= <String>
7
+ <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
8
+ <ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
9
+ <ChromeProfileNameEntity> ::=
10
+ <ChromeProfileNameList> |
11
+ (select <FileSelector>|<CSVFileSelector>) |
12
+ (filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]])
13
+
14
+ gam create|print_show chromeprofilecommand <ChromeProfileNameEntity>
15
+ ```
16
+
17
+ 7.13.00
18
+
19
+ Added commands that send remote commands to Chrome browser profiles and display the results;
20
+ at the moment, these commands can clear the browser cache and cookies.
21
+
22
+ * See: https://github.com/GAM-team/GAM/wiki/Chrome-Profile-Management#create-a-chrome-profile-command
23
+
1
24
  7.12.02
2
25
 
3
26
  Updated `gam print users` to handle the following error:
@@ -12800,7 +12823,7 @@ gam <UserTypeEntity> update teamdrive <TeamDriveEntity> [adminaccess|asadmin] [n
12800
12823
  Updated gam report users to support new orgUnitID argument in Reports API.
12801
12824
 
12802
12825
  gam report users|user [todrive <ToDriveAttribute>*] [date <Date>] [nodatechange | (fulldatarequired all|<ReportsAppList>)]
12803
- [(user all|<UserItem>)|(orgunit|org|ou <OrgUnitPath>)|(select <UserTypeEntity>)] (filtertime.* <Time>)* [filter|filters <String>] [fields|parameters <String>]
12826
+ [(user all|<UserItem>)|(orgunit|org|ou <OrgUnitPath>)|(select <UserTypeEntity>)] (filtertime<String> <Time>)* [filter|filters <String>] [fields|parameters <String>]
12804
12827
  [maxactivities <Number>] [maxresults <Number>]
12805
12828
 
12806
12829
  Select the users for whom information is desired.
@@ -13391,15 +13414,15 @@ gam print cros query "sync:#querytime1#.." querytime1 -30d
13391
13414
  For example, to print information about CrOS devices synced between 45 days ago and 30 days ago:
13392
13415
  gam print cros query "sync:#querytime1#..#querytime2#" querytime1 -45d querytime2 -30d
13393
13416
 
13394
- Added filtertime.* <Time> option to gam report to allow times, usually relative, to be substituted into the filter <String> option.
13395
- The filtertime.* value replaces the string #filtertime.*# in the filter <String>.
13417
+ Added filtertime<String> <Time> option to gam report to allow times, usually relative, to be substituted into the filter <String> option.
13418
+ The filtertime<String> value replaces the string #filtertime<String># in the filter <String>.
13396
13419
  The characters following filtertime can be any combination of lowercase letters and numbers.
13397
13420
  gam report users|user [todrive <ToDriveAttribute>*] [date <Date>] [nodatechange | (fulldatarequired all|<ReportsAppList>)]
13398
- [(user all|<UserItem>)|(select <UserTypeEntity>)] (filtertime.* <Time>)* [filter|filters <String>] [fields|parameters <String>]
13421
+ [(user all|<UserItem>)|(select <UserTypeEntity>)] (filtertime<String> <Time>)* [filter|filters <String>] [fields|parameters <String>]
13399
13422
  [maxactivities <Number>] [maxresults <Number>]
13400
13423
  gam report admin|calendar|calendars|drive|docs|doc|gplus|groups|group|logins|login|mobile|rules|tokens|token [todrive <ToDriveAttribute>*] [maxresults <Number>] [maxactivities <Number>]
13401
13424
  [([start <Time>] [end <Time>])|yesterday] [(user all|<UserItem>)|(select <UserTypeEntity>)]
13402
- [event <String>] (filtertime.* <Time>)* [filter|filters <String>] [ip <String>] [countsonly] [summary]
13425
+ [event <String>] (filtertime<String> <Time>)* [filter|filters <String>] [ip <String>] [countsonly] [summary]
13403
13426
 
13404
13427
  For example, this command reports on the users that haven't logged in in the last 5 years.
13405
13428
  gam report users parameters accounts:last_login_time filters "accounts:last_login_time<#filtertime#" filtertime -5y
@@ -13555,21 +13578,21 @@ Added units of years to <Date>, <DateTime> and <Time>; a year is 365 days. Added
13555
13578
  never|
13556
13579
  now|today
13557
13580
 
13558
- Added filtertime <Time> option to gam report to allow times, usually relative, to be substituted into the filter <String> option.
13559
- If both filtertime and filter are specified, the filtertime value replaces the string #filtertime# in the filter <String>.
13581
+ Added filtertime<String> <Time> option to gam report to allow times, usually relative, to be substituted into the filter <String> option.
13582
+ If both filtertime<String> and filter are specified, the filtertime value replaces the string #filtertime<String># in the filter <String>.
13560
13583
 
13561
13584
  gam report users|user [todrive <ToDriveAttribute>*] [date <Date>] [nodatechange | (fulldatarequired all|<ReportsAppList>)]
13562
- [(user all|<UserItem>)|(select <UserTypeEntity>)] [filtertime <Time>] [filter|filters <String>] [fields|parameters <String>]
13585
+ [(user all|<UserItem>)|(select <UserTypeEntity>)] [filtertime<String> <Time>] [filter|filters <String>] [fields|parameters <String>]
13563
13586
  [maxactivities <Number>] [maxresults <Number>]
13564
13587
  gam report admin|calendar|calendars|drive|docs|doc|gplus|groups|group|logins|login|mobile|rules|tokens|token [todrive <ToDriveAttribute>*] [maxresults <Number>] [maxactivities <Number>]
13565
13588
  [([start <Time>] [end <Time>])|yesterday] [(user all|<UserItem>)|(select <UserTypeEntity>)]
13566
- [event <String>] [filtertime <Time>] [filter|filters <String>] [ip <String>] [countsonly] [summary]
13589
+ [event <String>] [filtertime<String> <Time>] [filter|filters <String>] [ip <String>] [countsonly] [summary]
13567
13590
 
13568
13591
  For example, this command reports on the users that haven't logged in in the last 5 years.
13569
- gam report users parameters accounts:last_login_time filters "accounts:last_login_time<#filtertime#" filtertime -5y
13592
+ gam report users parameters accounts:last_login_time filters "accounts:last_login_time<#filtertime5y#" filtertime5y -5y
13570
13593
 
13571
13594
  For example, this command reports on the users that haven't ever logged in.
13572
- gam report users parameters accounts:last_login_time filters "accounts:last_login_time==#filtertime#" filtertime never
13595
+ gam report users parameters accounts:last_login_time filters "accounts:last_login_time==#filtertimeNever#" filtertimeNever never
13573
13596
 
13574
13597
  4.60.14
13575
13598
 
@@ -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.12.02'
28
+ __version__ = '7.13.01'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -13641,7 +13641,7 @@ REPORT_ACTIVITIES_TIME_OBJECTS = {'time'}
13641
13641
  # [(user all|<UserItem>)|(orgunit|org|ou <OrgUnitPath> [showorgunit])|(select <UserTypeEntity>)]
13642
13642
  # [([start <Time>] [end <Time>])|(range <Time> <Time>)|
13643
13643
  # yesterday|today|thismonth|(previousmonths <Integer>)]
13644
- # [filtertime.* <Time>] [filter|filters <String>]
13644
+ # [filter <String> (filtertime<String> <Time>)*]
13645
13645
  # [event|events <EventNameList>] [ip <String>]
13646
13646
  # [groupidfilter <String>]
13647
13647
  # [maxactivities <Number>] [maxevents <Number>] [maxresults <Number>]
@@ -13653,7 +13653,7 @@ REPORT_ACTIVITIES_TIME_OBJECTS = {'time'}
13653
13653
  # [(date <Date>)|(range <Date> <Date>)|
13654
13654
  # yesterday|today|thismonth|(previousmonths <Integer>)]
13655
13655
  # [nodatechange | (fulldatarequired all|<UserServiceNameList>)]
13656
- # [filtertime.* <Time>] [filter|filters <String>]
13656
+ # [filter <String> (filtertime<String> <Time>)*]
13657
13657
  # [(fields|parameters <String>)|(services <UserServiceNameList>)]
13658
13658
  # [aggregatebydate|aggregatebyuser [Boolean]]
13659
13659
  # [maxresults <Number>]
@@ -25491,7 +25491,7 @@ def doUpdateBrowsers():
25491
25491
  checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId, i, count)
25492
25492
 
25493
25493
  def _getChromeProfileName():
25494
- profileName = getString(Cmd.OB_CHROMEPROFILE_ID)
25494
+ profileName = getString(Cmd.OB_CHROMEPROFILE_NAME)
25495
25495
  if not profileName.startswith('customers'):
25496
25496
  customerId = _getCustomerId()
25497
25497
  profileName = f'customers/{customerId}/profiles/{profileName}'
@@ -25598,15 +25598,15 @@ CHROMEPROFILE_ORDERBY_CHOICE_MAP = {
25598
25598
  }
25599
25599
 
25600
25600
  # gam show chromeprofiles
25601
- # [filtertime.* <Time>] [filter <String>]
25601
+ # [filter <String> (filtertime<String> <Time>)*]
25602
25602
  # [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
25603
25603
  # <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
25604
25604
  # [formatjson]
25605
25605
  # gam print chromeprofiles [todrive <ToDriveAttribute>*]
25606
- # [filtertime.* <Time>] [filter <String>]
25606
+ # [filter <String> (filtertime<String> <Time>)*]
25607
25607
  # [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
25608
25608
  # <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
25609
- # [[formatjson [quotechar <Character>]]
25609
+ # [formatjson [quotechar <Character>]]
25610
25610
  def doPrintShowChromeProfiles():
25611
25611
  def _printProfile(profile):
25612
25612
  row = flattenJSON(profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS)
@@ -25641,7 +25641,7 @@ def doPrintShowChromeProfiles():
25641
25641
  sortHeaders = True
25642
25642
  else:
25643
25643
  FJQC.GetFormatJSONQuoteChar(myarg, True)
25644
- if filterTimes and filter is not None:
25644
+ if filterTimes and cbfilter is not None:
25645
25645
  for filterTimeName, filterTimeValue in iter(filterTimes.items()):
25646
25646
  cbfilter = cbfilter.replace(f'#{filterTimeName}#', filterTimeValue)
25647
25647
  fields = getItemFieldsFromFieldsList('chromeBrowserProfiles', fieldsList)
@@ -25676,6 +25676,172 @@ def doPrintShowChromeProfiles():
25676
25676
  csvPF.SetSortTitles(['name', 'profileId'])
25677
25677
  csvPF.writeCSVfile('Chrome Profiles')
25678
25678
 
25679
+ def _getChromeProfileNameList():
25680
+ if not Cmd.PeekArgumentPresent(['select', 'filter', 'filters']):
25681
+ return getString(Cmd.OB_CHROMEPROFILE_NAME_LIST).replace(',', ' ').split()
25682
+ return []
25683
+
25684
+ def _initChromeProfileNameParameters():
25685
+ cm = buildGAPIObject(API.CHROMEMANAGEMENT)
25686
+ return (cm, {'profileNameList': _getChromeProfileNameList(), 'customerId': _getCustomerId(),
25687
+ 'cbfilter': None, 'filterTimes': {},
25688
+ 'OBY': OrderBy(CHROMEPROFILE_ORDERBY_CHOICE_MAP)})
25689
+
25690
+ def _getChromeProfileNameParameters(myarg, parameters):
25691
+ if not parameters['cbfilter'] and myarg == 'select':
25692
+ parameters['profileNameList'].extend(getEntityList(Cmd.OB_CHROMEPROFILE_NAME_LIST))
25693
+ elif not parameters['profileNameList'] and myarg == 'orderby':
25694
+ parameters['OBY'].GetChoice()
25695
+ elif not parameters['profileNameList'] and myarg.startswith('filtertime'):
25696
+ parameters['filterTimes'][myarg] = getTimeOrDeltaFromNow()
25697
+ elif not parameters['profileNameList'] and myarg in {'filter', 'filters'}:
25698
+ parameters['cbfilter'] = getString(Cmd.OB_STRING)
25699
+ else:
25700
+ return False
25701
+ return True
25702
+
25703
+ def _getChromeProfileNameEntityForCommand(cm, parameters):
25704
+ if parameters['cbfilter'] is None:
25705
+ customerId = parameters['customerId']
25706
+ for i, profileName in enumerate(parameters['profileNameList']):
25707
+ if not profileName.startswith('customers'):
25708
+ parameters['profileNameList'][i] = f'customers/{customerId}/profiles/{profileName}'
25709
+ return
25710
+ if parameters['filterTimes']:
25711
+ for filterTimeName, filterTimeValue in iter(parameters['filterTimes'].items()):
25712
+ parameters['cbfilter'] = parameters['cbfilter'].replace(f'#{filterTimeName}#', filterTimeValue)
25713
+ printGettingAllAccountEntities(Ent.CHROME_PROFILE, parameters['cbfilter'])
25714
+ pageMessage = getPageMessage()
25715
+ try:
25716
+ feed = yieldGAPIpages(cm.customers().profiles(), 'list', 'chromeBrowserProfiles',
25717
+ pageMessage=pageMessage,
25718
+ throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
25719
+ parent=f'customers/{parameters["customerId"]}', pageSize=200,
25720
+ filter=parameters['cbfilter'], orderBy=parameters['OBY'].orderBy,
25721
+ fields='nextPageToken,chromeBrowserProfiles(name)')
25722
+ for profiles in feed:
25723
+ for profile in profiles:
25724
+ parameters['profileNameList'].append(profile['name'])
25725
+ except (GAPI.invalidArgument, GAPI.permissionDenied) as e:
25726
+ entityActionFailedExit([Ent.CHROME_PROFILE, parameters['cbfilter']], str(e))
25727
+
25728
+ CHROMEPROFILECOMMAND_TIME_OBJECTS = {
25729
+ 'clientExecutionTime',
25730
+ 'issueTime',
25731
+ }
25732
+
25733
+ def _showChromeProfileCommand(profcmd, FJQC, i=0, count=0):
25734
+ if FJQC.formatJSON:
25735
+ printLine(json.dumps(cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS),
25736
+ ensure_ascii=False, sort_keys=True))
25737
+ return
25738
+ printEntity([Ent.CHROME_PROFILE_COMMAND, profcmd['name']], i, count)
25739
+ Ind.Increment()
25740
+ showJSON(None, profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS)
25741
+ Ind.Decrement()
25742
+
25743
+ # gam create chromeprofilecommand <ChromeProfileNameEntity>
25744
+ # [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
25745
+ # [formatjson]
25746
+ def doCreateChromeProfileCommand():
25747
+ cm, parameters = _initChromeProfileNameParameters()
25748
+ body = {'commandType': 'clearBrowsingData', 'payload': {}}
25749
+ FJQC = FormatJSONQuoteChar()
25750
+ while Cmd.ArgumentsRemaining():
25751
+ myarg = getArgument()
25752
+ if myarg == 'clearcache':
25753
+ body['payload']['clearCache'] = getBoolean()
25754
+ elif myarg == 'clearcookies':
25755
+ body['payload']['clearCookies'] = getBoolean()
25756
+ else:
25757
+ FJQC.GetFormatJSON(myarg)
25758
+ _getChromeProfileNameEntityForCommand(cm, parameters)
25759
+ count = len(parameters['profileNameList'])
25760
+ i = 0
25761
+ for profileName in parameters['profileNameList']:
25762
+ i +=1
25763
+ try:
25764
+ profcmd = callGAPI(cm.customers().profiles().commands(), 'create',
25765
+ throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED],
25766
+ parent=profileName, body=body)
25767
+ _showChromeProfileCommand(profcmd, FJQC)
25768
+ except (GAPI.notFound) as e:
25769
+ entityActionFailedWarning([Ent.CHROME_PROFILE_COMMAND, profileName], str(e), i, count)
25770
+ except (GAPI.invalidArgument, GAPI.permissionDenied) as e:
25771
+ entityActionFailedExit([Ent.CHROME_PROFILE_COMMAND, profileName], str(e))
25772
+
25773
+ # gam info chromeprofilecommand <ChromeProfileCommandName>
25774
+ # [formatjson]
25775
+ def doInfoChromeProfileCommand():
25776
+ cm = buildGAPIObject(API.CHROMEMANAGEMENT)
25777
+ profileCommandName = _getChromeProfileName()
25778
+ FJQC = FormatJSONQuoteChar()
25779
+ while Cmd.ArgumentsRemaining():
25780
+ myarg = getArgument()
25781
+ FJQC.GetFormatJSON(myarg)
25782
+ try:
25783
+ profcmd = callGAPI(cm.customers().profiles().commands(), 'get',
25784
+ throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED],
25785
+ name=profileCommandName)
25786
+ _showChromeProfileCommand(profcmd, FJQC)
25787
+ except (GAPI.invalidArgument, GAPI.notFound, GAPI.permissionDenied) as e:
25788
+ entityActionFailedExit([Ent.CHROME_PROFILE, profileCommandName], str(e))
25789
+
25790
+ # gam show chromeprofilecommands <ChromeProfileNameEntity>
25791
+ # [formatjson]
25792
+ # gam print chromeprofilecommands <ChromeProfilNameEntity> [todrive <ToDriveAttribute>*]
25793
+ # [formatjson [quotechar <Character>]]
25794
+ def doPrintShowChromeProfileCommands():
25795
+ def _printProfileCommand(profcmd):
25796
+ row = flattenJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS)
25797
+ if not FJQC.formatJSON:
25798
+ csvPF.WriteRowTitles(row)
25799
+ elif csvPF.CheckRowTitles(row):
25800
+ csvPF.WriteRowNoFilter({'name': profcmd['name'],
25801
+ 'JSON': json.dumps(cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS),
25802
+ ensure_ascii=False, sort_keys=True)})
25803
+
25804
+ csvPF = CSVPrintFile(['name']) if Act.csvFormat() else None
25805
+ FJQC = FormatJSONQuoteChar(csvPF)
25806
+ cm, parameters = _initChromeProfileNameParameters()
25807
+ while Cmd.ArgumentsRemaining():
25808
+ myarg = getArgument()
25809
+ if csvPF and myarg == 'todrive':
25810
+ csvPF.GetTodriveParameters()
25811
+ elif _getChromeProfileNameParameters(myarg, parameters):
25812
+ pass
25813
+ else:
25814
+ FJQC.GetFormatJSONQuoteChar(myarg, True)
25815
+ _getChromeProfileNameEntityForCommand(cm, parameters)
25816
+ count = len(parameters['profileNameList'])
25817
+ i = 0
25818
+ for profileName in parameters['profileNameList']:
25819
+ i +=1
25820
+ printGettingEntityItemForWhom(Ent.CHROME_PROFILE_COMMAND, profileName, i, count)
25821
+ pageMessage = getPageMessage()
25822
+ try:
25823
+ profcmds = callGAPIpages(cm.customers().profiles().commands(), 'list', 'chromeBrowserProfileCommands',
25824
+ pageMessage=pageMessage,
25825
+ throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
25826
+ parent=profileName, pageSize=100)
25827
+ if not csvPF:
25828
+ jcount = len(profcmds)
25829
+ Ind.Increment()
25830
+ j = 0
25831
+ for profcmd in profcmds:
25832
+ j += 1
25833
+ _showChromeProfileCommand(profcmd, FJQC, j, jcount)
25834
+ Ind.Decrement()
25835
+ else:
25836
+ for profcmd in profcmds:
25837
+ _printProfileCommand(profcmd)
25838
+ except (GAPI.notFound) as e:
25839
+ entityActionFailedWarning([Ent.CHROME_PROFILE, profileName], str(e), i, count)
25840
+ except (GAPI.invalidArgument, GAPI.permissionDenied) as e:
25841
+ entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e))
25842
+ if csvPF:
25843
+ csvPF.writeCSVfile('Chrome Profile Commands')
25844
+
25679
25845
  BROWSER_ORDERBY_CHOICE_MAP = {
25680
25846
  'annotatedassetid': 'annotated_asset_id', 'asset': 'annotated_asset_id', 'assetid': 'annotated_asset_id',
25681
25847
  'annotatedlocation': 'annotated_location', 'location': 'annotated_location',
@@ -73269,11 +73435,11 @@ def printShowForms(users):
73269
73435
  FORM_RESPONSE_TIME_OBJECTS = {'createTime', 'lastSubmittedTime'}
73270
73436
 
73271
73437
  # gam <UserTypeEntity> print formresponses <DriveFileEntity> [todrive <ToDriveAttribute>*]
73272
- # [filtertime.* <Time>] [filter <String>]
73438
+ # [filter <String> (filtertime<String> <Time>)*]
73273
73439
  # (addcsvdata <FieldName> <String>)*
73274
73440
  # [countsonly|(formatjson [quotechar <Character>])]
73275
73441
  # gam <UserTypeEntity> show formresponses <DriveFileEntity>
73276
- # [filtertime.* <Time>] [filter <String>]
73442
+ # [filter <String> (filtertime<String> <Time>)*]
73277
73443
  # [countsonly|formatjson]
73278
73444
  def printShowFormResponses(users):
73279
73445
  csvPF = CSVPrintFile(['User', 'formId', 'responseId', 'createTime', 'lastSubmittedTime', 'respondentEmail', 'totalScore'],
@@ -73299,7 +73465,7 @@ def printShowFormResponses(users):
73299
73465
  addCSVData[k] = getString(Cmd.OB_STRING, minLen=0)
73300
73466
  else:
73301
73467
  FJQC.GetFormatJSONQuoteChar(myarg, True)
73302
- if filterTimes and filter is not None:
73468
+ if filterTimes and frfilter is not None:
73303
73469
  for filterTimeName, filterTimeValue in iter(filterTimes.items()):
73304
73470
  frfilter = frfilter.replace(f'#{filterTimeName}#', filterTimeValue)
73305
73471
  if csvPF:
@@ -76616,6 +76782,7 @@ MAIN_ADD_CREATE_FUNCTIONS = {
76616
76782
  Cmd.ARG_CHATMESSAGE: doCreateChatMessage,
76617
76783
  Cmd.ARG_CHROMENETWORK: doCreateChromeNetwork,
76618
76784
  Cmd.ARG_CHROMEPOLICYIMAGE: doCreateChromePolicyImage,
76785
+ Cmd.ARG_CHROMEPROFILECOMMAND: doCreateChromeProfileCommand,
76619
76786
  Cmd.ARG_CIGROUP: doCreateCIGroup,
76620
76787
  Cmd.ARG_CONTACT: doCreateDomainContact,
76621
76788
  Cmd.ARG_COURSE: doCreateCourse,
@@ -76810,6 +76977,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
76810
76977
  Cmd.ARG_CHATSPACE: doInfoChatSpace,
76811
76978
  Cmd.ARG_CHROMEAPP: doInfoChromeApp,
76812
76979
  Cmd.ARG_CHROMEPROFILE: doInfoChromeProfile,
76980
+ Cmd.ARG_CHROMEPROFILECOMMAND: doInfoChromeProfileCommand,
76813
76981
  Cmd.ARG_CHROMESCHEMA: doInfoChromePolicySchemas,
76814
76982
  Cmd.ARG_CIGROUP: doInfoCIGroups,
76815
76983
  Cmd.ARG_CIGROUPMEMBERS: doInfoCIGroupMembers,
@@ -76896,6 +77064,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
76896
77064
  Cmd.ARG_CHROMENEEDSATTN: doPrintShowChromeNeedsAttn,
76897
77065
  Cmd.ARG_CHROMEPOLICY: doPrintShowChromePolicies,
76898
77066
  Cmd.ARG_CHROMEPROFILE: doPrintShowChromeProfiles,
77067
+ Cmd.ARG_CHROMEPROFILECOMMAND: doPrintShowChromeProfileCommands,
76899
77068
  Cmd.ARG_CHROMESCHEMA: doPrintShowChromePolicySchemas,
76900
77069
  Cmd.ARG_CHROMESNVALIDITY: doPrintChromeSnValidity,
76901
77070
  Cmd.ARG_CHROMEVERSIONS: doPrintShowChromeVersions,
@@ -77028,6 +77197,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
77028
77197
  Cmd.ARG_CHROMENEEDSATTN: doPrintShowChromeNeedsAttn,
77029
77198
  Cmd.ARG_CHROMEPOLICY: doPrintShowChromePolicies,
77030
77199
  Cmd.ARG_CHROMEPROFILE: doPrintShowChromeProfiles,
77200
+ Cmd.ARG_CHROMEPROFILECOMMAND: doPrintShowChromeProfileCommands,
77031
77201
  Cmd.ARG_CHROMESCHEMA: doPrintShowChromePolicySchemas,
77032
77202
  Cmd.ARG_CHROMEVERSIONS: doPrintShowChromeVersions,
77033
77203
  Cmd.ARG_CIGROUPMEMBERS: doShowCIGroupMembers,
@@ -77210,6 +77380,7 @@ MAIN_COMMANDS_OBJ_ALIASES = {
77210
77380
  Cmd.ARG_CHROMENETWORKS: Cmd.ARG_CHROMENETWORK,
77211
77381
  Cmd.ARG_CHROMEPOLICIES: Cmd.ARG_CHROMEPOLICY,
77212
77382
  Cmd.ARG_CHROMEPROFILES: Cmd.ARG_CHROMEPROFILE,
77383
+ Cmd.ARG_CHROMEPROFILECOMMANDS: Cmd.ARG_CHROMEPROFILECOMMAND,
77213
77384
  Cmd.ARG_CHROMESCHEMAS: Cmd.ARG_CHROMESCHEMA,
77214
77385
  Cmd.ARG_CIGROUPS: Cmd.ARG_CIGROUP,
77215
77386
  Cmd.ARG_CIGROUPSMEMBERS: Cmd.ARG_CIGROUPMEMBERS,
@@ -485,6 +485,8 @@ class GamCLArgs():
485
485
  ARG_CHROMEPOLICIES = 'chromepolicies'
486
486
  ARG_CHROMEPROFILE = 'chromeprofile'
487
487
  ARG_CHROMEPROFILES = 'chromeprofiles'
488
+ ARG_CHROMEPROFILECOMMAND = 'chromeprofilecommand'
489
+ ARG_CHROMEPROFILECOMMANDS = 'chromeprofilecommands'
488
490
  ARG_CHROMESCHEMA = 'chromeschema'
489
491
  ARG_CHROMESCHEMAS = 'chromeschemas'
490
492
  ARG_CHROMESNVALIDITY = 'chromesnvalidity'
@@ -855,7 +857,8 @@ class GamCLArgs():
855
857
  OB_CHAT_SPACE = 'ChatSpace'
856
858
  OB_CHAT_SPACE_LIST = 'ChatSpaceList'
857
859
  OB_CHAT_THREAD = 'ChatThread'
858
- OB_CHROMEPROFILE_ID = 'ChromeProfileId'
860
+ OB_CHROMEPROFILE_NAME = 'ChromeProfileName'
861
+ OB_CHROMEPROFILE_NAME_LIST = 'ChromeProfileNameList'
859
862
  OB_CHROME_VERSION = 'ChromeVersion'
860
863
  OB_CIDR_NETMASK = 'CIDRnetmask'
861
864
  OB_CIGROUP_ALIAS_LIST = "CIGroupAliasList"
@@ -111,6 +111,7 @@ class GamEntity():
111
111
  CHROME_POLICY_IMAGE = 'cpim'
112
112
  CHROME_POLICY_SCHEMA = 'cpsc'
113
113
  CHROME_PROFILE = 'cpro'
114
+ CHROME_PROFILE_COMMAND = 'cpcm'
114
115
  CHROME_RELEASE = 'crel'
115
116
  CHROME_VERSION = 'cver'
116
117
  CLASSIFICATION_LABEL = 'dlab'
@@ -462,6 +463,7 @@ class GamEntity():
462
463
  CHROME_POLICY_IMAGE: ['Chrome Policy Images', 'Chrome Policy Image'],
463
464
  CHROME_POLICY_SCHEMA: ['Chrome Policy Schemas', 'Chrome Policy Schema'],
464
465
  CHROME_PROFILE: ['Chrome Profiles', 'Chrome Profile'],
466
+ CHROME_PROFILE_COMMAND: ['Chrome Profile Commands', 'Chrome Profile Command'],
465
467
  CHROME_RELEASE: ['Chrome Releases', 'Chrome Release'],
466
468
  CHROME_VERSION: ['Chrome Versions', 'Chrome Version'],
467
469
  CLASSIFICATION_LABEL: ['Classification Labels', 'Classification Label'],
@@ -1,6 +1,7 @@
1
1
  [metadata]
2
2
  name = GAM for Google Workspace
3
- version = attr: gam.var.GAM_VERSION
3
+ #version = attr: gam.var.GAM_VERSION
4
+ version = 7.13.01
4
5
  description = Command line management for Google Workspaces
5
6
  long_description = file: readme.md
6
7
  long_description_content_type = text/markdown
@@ -2,9 +2,11 @@
2
2
  - [API documentation](#api-documentation)
3
3
  - [Introduction](#introduction)
4
4
  - [Definitions](#definitions)
5
- - [Delete Chrome profiles](#delete-chrome-profiles)
6
- - [Display Chrome profiles](#display-chrome-profiles)
5
+ - [Delete Chrome Profiles](#delete-chrome-profiles)
6
+ - [Display Chrome Profiles](#display-chrome-profiles)
7
7
  - [Profile Query Searchable Fields](#profile-query-searchable-fields)
8
+ - [Create a Chrome Profile command](#create-a-chrome-profile-command)
9
+ - [Display Chrome Profile commands](#display-chrome-profile-commands)
8
10
 
9
11
  ## Introduction
10
12
  These features were added in version 7.01.00.
@@ -21,13 +23,15 @@ Follow instructions at: Turn on managed profile reporting
21
23
 
22
24
  ## API documentation
23
25
  * [Chrome Management API - Profiles](https://developers.google.com/chrome/management/reference/rest/v1/customers.profiles)
26
+ * [Chrome Management API - Profile Commands](https://developers.google.com/chrome/management/reference/rest/v1/customers.profiles.commands)
24
27
  * [Turn on Chrome Browser and Profile Reporting](https://support.google.com/chrome/a/answer/9301421)
25
28
 
26
29
  ## Definitions
27
30
  ```
28
31
  <CustomerID> ::= <String>
29
32
  <ChromeProfilePermanentID> ::= <String>
30
- <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID>
33
+ <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
34
+ <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
31
35
 
32
36
  <ChromeProfileFieldName> ::=
33
37
  affiliationstate|
@@ -89,7 +93,7 @@ Select the fields to be displayed:
89
93
  * `<ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]` - Display a selected list of fields
90
94
 
91
95
  By default, Gam displays the information as an indented list of keys and values:
92
- - `formatjson` - Display the fields in JSON format.
96
+ * `formatjson` - Display the fields in JSON format.
93
97
 
94
98
  ```
95
99
  gam show chromeprofiles
@@ -110,14 +114,14 @@ The `filtertime<String> <Time>` value replaces the string `#fiktertime<String>#`
110
114
  The characters following `filtertime` can be any combination of lowercase letters and numbers.
111
115
 
112
116
  By default, Gam displays the information as an indented list of keys and values:
113
- - `formatjson` - Display the fields in JSON format.
117
+ * `formatjson` - Display the fields in JSON format.
114
118
 
115
119
  ```
116
120
  gam print chromeprofiles [todrive <ToDriveAttribute>*]
117
121
  [filtertime.* <Time>] [filter <String>]
118
122
  [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
119
123
  <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
120
- [[formatjson [quotechar <Character>]]
124
+ [formatjson [quotechar <Character>]]
121
125
  ```
122
126
 
123
127
  Use these options to select Chrome profiles; if none are chosen, all Chrome profiles in the account are selected:
@@ -192,4 +196,39 @@ gam print chromeprofiles filter "lastPolicySyncTime >= \"#filtertime1#\" lastPol
192
196
  Print information about Chrome profiles on Windows.
193
197
  ```
194
198
  gam print chromeprofiles filter "osPlatformType=WINDOWS"
195
- ```
199
+ ```
200
+
201
+ ## Create a Chrome Profile command
202
+ ```
203
+ gam create chromeprofilecommand <ChromeProfileName>
204
+ [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
205
+ [formatjson]
206
+ ```
207
+ ## Display Chrome Profile commands
208
+ ```
209
+ gam info chromeprofilecommand <ChromeProfileCommandName>
210
+ [formatjson]
211
+ ```
212
+ By default, Gam displays the information as an indented list of keys and values:
213
+ * `formatjson` - Display the fields in JSON format.
214
+
215
+ ```
216
+ gam show chromeprofilecommands <ChromeProfileName>
217
+ [formatjson]
218
+ ```
219
+
220
+ By default, Gam displays the information as an indented list of keys and values:
221
+ * `formatjson` - Display the fields in JSON format.
222
+ ```
223
+ gam print chromeprofilecommands <ChromeProfileName> [todrive <ToDriveAttribute>*]
224
+ [formatjson [quotechar <Character>]]
225
+ ```
226
+ By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format:
227
+ * `formatjson` - Display the fields in JSON format.
228
+
229
+ By default, when writing CSV files, Gam uses a quote character of double quote `"`. The quote character is used to enclose columns that contain
230
+ the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
231
+ When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output.
232
+ The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
233
+ `quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
234
+