gam7 7.13.1__tar.gz → 7.13.3__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.13.1 → gam7-7.13.3}/PKG-INFO +1 -1
  2. {gam7-7.13.1 → gam7-7.13.3}/src/GamCommands.txt +8 -6
  3. {gam7-7.13.1 → gam7-7.13.3}/src/GamUpdate.txt +19 -0
  4. {gam7-7.13.1 → gam7-7.13.3}/src/gam/__init__.py +93 -53
  5. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glclargs.py +2 -0
  6. {gam7-7.13.1 → gam7-7.13.3}/src/setup.cfg +1 -1
  7. {gam7-7.13.1 → gam7-7.13.3}/wiki/Basic-Items.md +3 -0
  8. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chrome-Profile-Management.md +67 -6
  9. {gam7-7.13.1 → gam7-7.13.3}/wiki/Collections-of-Items.md +7 -0
  10. {gam7-7.13.1 → gam7-7.13.3}/wiki/GamUpdates.md +27 -0
  11. {gam7-7.13.1 → gam7-7.13.3}/wiki/Google-Data-Transfers.md +2 -3
  12. {gam7-7.13.1 → gam7-7.13.3}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  13. {gam7-7.13.1 → gam7-7.13.3}/wiki/List-Items.md +1 -0
  14. {gam7-7.13.1 → gam7-7.13.3}/wiki/Reports.md +3 -3
  15. {gam7-7.13.1 → gam7-7.13.3}/wiki/Shared-Drives.md +2 -0
  16. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Forms.md +9 -7
  17. {gam7-7.13.1 → gam7-7.13.3}/wiki/Version-and-Help.md +7 -6
  18. {gam7-7.13.1 → gam7-7.13.3}/wiki/_Sidebar.md +1 -1
  19. {gam7-7.13.1 → gam7-7.13.3}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  20. {gam7-7.13.1 → gam7-7.13.3}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  21. {gam7-7.13.1 → gam7-7.13.3}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  22. {gam7-7.13.1 → gam7-7.13.3}/.github/ISSUE_TEMPLATE.txt +0 -0
  23. {gam7-7.13.1 → gam7-7.13.3}/.github/actions/decrypt.sh +0 -0
  24. {gam7-7.13.1 → gam7-7.13.3}/.github/actions/entitlements.plist +0 -0
  25. {gam7-7.13.1 → gam7-7.13.3}/.github/actions/package_exclusions.txt +0 -0
  26. {gam7-7.13.1 → gam7-7.13.3}/.github/stale.yml +0 -0
  27. {gam7-7.13.1 → gam7-7.13.3}/.github/workflows/build.yml +0 -0
  28. {gam7-7.13.1 → gam7-7.13.3}/.github/workflows/codeql-analysis.yml +0 -0
  29. {gam7-7.13.1 → gam7-7.13.3}/.github/workflows/get-cacerts.yml +0 -0
  30. {gam7-7.13.1 → gam7-7.13.3}/.github/workflows/pushwiki.yml +0 -0
  31. {gam7-7.13.1 → gam7-7.13.3}/.github/workflows/pypi.yml +0 -0
  32. {gam7-7.13.1 → gam7-7.13.3}/.pre-commit-config.yaml +0 -0
  33. {gam7-7.13.1 → gam7-7.13.3}/LICENSE +0 -0
  34. {gam7-7.13.1 → gam7-7.13.3}/README.md +0 -0
  35. {gam7-7.13.1 → gam7-7.13.3}/pyproject.toml +0 -0
  36. {gam7-7.13.1 → gam7-7.13.3}/src/.gitignore +0 -0
  37. {gam7-7.13.1 → gam7-7.13.3}/src/LICENSE +0 -0
  38. {gam7-7.13.1 → gam7-7.13.3}/src/README.md +0 -0
  39. {gam7-7.13.1 → gam7-7.13.3}/src/cacerts.pem +0 -0
  40. {gam7-7.13.1 → gam7-7.13.3}/src/callgam.py +0 -0
  41. {gam7-7.13.1 → gam7-7.13.3}/src/gam/__main__.py +0 -0
  42. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/__init__.py +0 -0
  43. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/auth.py +0 -0
  44. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/client.py +0 -0
  45. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/core.py +0 -0
  46. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/data.py +0 -0
  47. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/http.py +0 -0
  48. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/http_core.py +0 -0
  49. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/http_interface.py +0 -0
  50. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/mock_http.py +0 -0
  51. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/mock_http_core.py +0 -0
  52. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/mock_service.py +0 -0
  53. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/service.py +0 -0
  54. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/token_store.py +0 -0
  55. {gam7-7.13.1 → gam7-7.13.3}/src/gam/atom/url.py +0 -0
  56. {gam7-7.13.1 → gam7-7.13.3}/src/gam/cacerts.pem +0 -0
  57. {gam7-7.13.1 → gam7-7.13.3}/src/gam/cbcm-v1.1beta1.json +0 -0
  58. {gam7-7.13.1 → gam7-7.13.3}/src/gam/contactdelegation-v1.json +0 -0
  59. {gam7-7.13.1 → gam7-7.13.3}/src/gam/datastudio-v1.json +0 -0
  60. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/__init__.py +0 -0
  61. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glaction.py +0 -0
  62. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glapi.py +0 -0
  63. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glcfg.py +0 -0
  64. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glentity.py +0 -0
  65. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glgapi.py +0 -0
  66. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glgdata.py +0 -0
  67. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glglobals.py +0 -0
  68. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glindent.py +0 -0
  69. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glmsgs.py +0 -0
  70. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glskus.py +0 -0
  71. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/gluprop.py +0 -0
  72. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/glverlibs.py +0 -0
  73. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gamlib/yubikey.py +0 -0
  74. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/__init__.py +0 -0
  75. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/alt/__init__.py +0 -0
  76. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/alt/app_engine.py +0 -0
  77. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/alt/appengine.py +0 -0
  78. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/apps/__init__.py +0 -0
  79. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/apps/audit/__init__.py +0 -0
  80. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/apps/audit/service.py +0 -0
  81. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  82. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/apps/contacts/service.py +0 -0
  83. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/apps/service.py +0 -0
  84. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/service.py +0 -0
  85. {gam7-7.13.1 → gam7-7.13.3}/src/gam/gdata/urlfetch.py +0 -0
  86. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/__init__.py +0 -0
  87. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/_auth.py +0 -0
  88. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/_helpers.py +0 -0
  89. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/channel.py +0 -0
  90. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/discovery.py +0 -0
  91. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  92. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  93. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  94. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  95. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/errors.py +0 -0
  96. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/http.py +0 -0
  97. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/mimeparse.py +0 -0
  98. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/model.py +0 -0
  99. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/schema.py +0 -0
  100. {gam7-7.13.1 → gam7-7.13.3}/src/gam/googleapiclient/version.py +0 -0
  101. {gam7-7.13.1 → gam7-7.13.3}/src/gam/iso8601/__init__.py +0 -0
  102. {gam7-7.13.1 → gam7-7.13.3}/src/gam/iso8601/iso8601.py +0 -0
  103. {gam7-7.13.1 → gam7-7.13.3}/src/gam/meet-v2beta.json +0 -0
  104. {gam7-7.13.1 → gam7-7.13.3}/src/gam/serviceaccountlookup-v1.json +0 -0
  105. {gam7-7.13.1 → gam7-7.13.3}/src/gam/six.py +0 -0
  106. {gam7-7.13.1 → gam7-7.13.3}/src/gam-install.sh +0 -0
  107. {gam7-7.13.1 → gam7-7.13.3}/src/gam-setup.bat +0 -0
  108. {gam7-7.13.1 → gam7-7.13.3}/src/gam.exe.manifest +0 -0
  109. {gam7-7.13.1 → gam7-7.13.3}/src/gam.py +0 -0
  110. {gam7-7.13.1 → gam7-7.13.3}/src/gam.spec +0 -0
  111. {gam7-7.13.1 → gam7-7.13.3}/src/gam.wxs +0 -0
  112. {gam7-7.13.1 → gam7-7.13.3}/src/license.rtf +0 -0
  113. {gam7-7.13.1 → gam7-7.13.3}/src/requirements-dev.txt +0 -0
  114. {gam7-7.13.1 → gam7-7.13.3}/src/requirements.txt +0 -0
  115. {gam7-7.13.1 → gam7-7.13.3}/src/setup.py +0 -0
  116. {gam7-7.13.1 → gam7-7.13.3}/src/tools/a_atleast_b.py +0 -0
  117. {gam7-7.13.1 → gam7-7.13.3}/src/tools/gen-wix-xml-filelist.py +0 -0
  118. {gam7-7.13.1 → gam7-7.13.3}/src/tools/mkGamRef.py +0 -0
  119. {gam7-7.13.1 → gam7-7.13.3}/src/tools/openssl.props +0 -0
  120. {gam7-7.13.1 → gam7-7.13.3}/src/version_info.txt.in +0 -0
  121. {gam7-7.13.1 → gam7-7.13.3}/wiki/00scratch.md +0 -0
  122. {gam7-7.13.1 → gam7-7.13.3}/wiki/Addresses.md +0 -0
  123. {gam7-7.13.1 → gam7-7.13.3}/wiki/Administrators.md +0 -0
  124. {gam7-7.13.1 → gam7-7.13.3}/wiki/Alert-Center.md +0 -0
  125. {gam7-7.13.1 → gam7-7.13.3}/wiki/Aliases.md +0 -0
  126. {gam7-7.13.1 → gam7-7.13.3}/wiki/Authorization.md +0 -0
  127. {gam7-7.13.1 → gam7-7.13.3}/wiki/BNF-Syntax.md +0 -0
  128. {gam7-7.13.1 → gam7-7.13.3}/wiki/Bulk-Processing.md +0 -0
  129. {gam7-7.13.1 → gam7-7.13.3}/wiki/CSV-Input-Filtering.md +0 -0
  130. {gam7-7.13.1 → gam7-7.13.3}/wiki/CSV-Output-Filtering.md +0 -0
  131. {gam7-7.13.1 → gam7-7.13.3}/wiki/CSV-Special-Characters.md +0 -0
  132. {gam7-7.13.1 → gam7-7.13.3}/wiki/Calendars-Access.md +0 -0
  133. {gam7-7.13.1 → gam7-7.13.3}/wiki/Calendars-Events.md +0 -0
  134. {gam7-7.13.1 → gam7-7.13.3}/wiki/Calendars.md +0 -0
  135. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chat-Bot.md +0 -0
  136. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chrome-AUE-Counts.md +0 -0
  137. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  138. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chrome-Installed-Apps.md +0 -0
  139. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  140. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chrome-Policies.md +0 -0
  141. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chrome-Printers.md +0 -0
  142. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chrome-Version-Counts.md +0 -0
  143. {gam7-7.13.1 → gam7-7.13.3}/wiki/Chrome-Version-History.md +0 -0
  144. {gam7-7.13.1 → gam7-7.13.3}/wiki/ChromeOS-Devices.md +0 -0
  145. {gam7-7.13.1 → gam7-7.13.3}/wiki/Classroom-Courses.md +0 -0
  146. {gam7-7.13.1 → gam7-7.13.3}/wiki/Classroom-Guardians.md +0 -0
  147. {gam7-7.13.1 → gam7-7.13.3}/wiki/Classroom-Invitations.md +0 -0
  148. {gam7-7.13.1 → gam7-7.13.3}/wiki/Classroom-Membership.md +0 -0
  149. {gam7-7.13.1 → gam7-7.13.3}/wiki/Cloud-Channel.md +0 -0
  150. {gam7-7.13.1 → gam7-7.13.3}/wiki/Cloud-Identity-Devices.md +0 -0
  151. {gam7-7.13.1 → gam7-7.13.3}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  152. {gam7-7.13.1 → gam7-7.13.3}/wiki/Cloud-Identity-Groups.md +0 -0
  153. {gam7-7.13.1 → gam7-7.13.3}/wiki/Cloud-Identity-Policies.md +0 -0
  154. {gam7-7.13.1 → gam7-7.13.3}/wiki/Cloud-Storage.md +0 -0
  155. {gam7-7.13.1 → gam7-7.13.3}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  156. {gam7-7.13.1 → gam7-7.13.3}/wiki/Collections-of-Users.md +0 -0
  157. {gam7-7.13.1 → gam7-7.13.3}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  158. {gam7-7.13.1 → gam7-7.13.3}/wiki/Command-Line-Parsing.md +0 -0
  159. {gam7-7.13.1 → gam7-7.13.3}/wiki/Command-Logging-Progress.md +0 -0
  160. {gam7-7.13.1 → gam7-7.13.3}/wiki/Context-Aware-Access-Levels.md +0 -0
  161. {gam7-7.13.1 → gam7-7.13.3}/wiki/Customer.md +0 -0
  162. {gam7-7.13.1 → gam7-7.13.3}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  163. {gam7-7.13.1 → gam7-7.13.3}/wiki/Domain-SharedContacts.md +0 -0
  164. {gam7-7.13.1 → gam7-7.13.3}/wiki/Domains-Verification.md +0 -0
  165. {gam7-7.13.1 → gam7-7.13.3}/wiki/Domains.md +0 -0
  166. {gam7-7.13.1 → gam7-7.13.3}/wiki/Downloads-Installs.md +0 -0
  167. {gam7-7.13.1 → gam7-7.13.3}/wiki/Drive-File-Selection.md +0 -0
  168. {gam7-7.13.1 → gam7-7.13.3}/wiki/Drive-Items.md +0 -0
  169. {gam7-7.13.1 → gam7-7.13.3}/wiki/Drive-REST-API-v3.md +0 -0
  170. {gam7-7.13.1 → gam7-7.13.3}/wiki/Email-Audit-Monitor.md +0 -0
  171. {gam7-7.13.1 → gam7-7.13.3}/wiki/Find-File-Owner.md +0 -0
  172. {gam7-7.13.1 → gam7-7.13.3}/wiki/GAM-Public-Chat-Room.md +0 -0
  173. {gam7-7.13.1 → gam7-7.13.3}/wiki/GAM-Return-Codes.md +0 -0
  174. {gam7-7.13.1 → gam7-7.13.3}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  175. {gam7-7.13.1 → gam7-7.13.3}/wiki/GAM7-on-Android-Devices.md +0 -0
  176. {gam7-7.13.1 → gam7-7.13.3}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  177. {gam7-7.13.1 → gam7-7.13.3}/wiki/Google-Network-Addresses.md +0 -0
  178. {gam7-7.13.1 → gam7-7.13.3}/wiki/Groups-Membership.md +0 -0
  179. {gam7-7.13.1 → gam7-7.13.3}/wiki/Groups.md +0 -0
  180. {gam7-7.13.1 → gam7-7.13.3}/wiki/HTTPS-Proxy.md +0 -0
  181. {gam7-7.13.1 → gam7-7.13.3}/wiki/Home.md +0 -0
  182. {gam7-7.13.1 → gam7-7.13.3}/wiki/How-to-Install-GAM7.md +0 -0
  183. {gam7-7.13.1 → gam7-7.13.3}/wiki/How-to-Uninstall-GAM7.md +0 -0
  184. {gam7-7.13.1 → gam7-7.13.3}/wiki/How-to-Update-GAM7.md +0 -0
  185. {gam7-7.13.1 → gam7-7.13.3}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  186. {gam7-7.13.1 → gam7-7.13.3}/wiki/Inbound-SSO.md +0 -0
  187. {gam7-7.13.1 → gam7-7.13.3}/wiki/Install-GAM-as-Python-Library.md +0 -0
  188. {gam7-7.13.1 → gam7-7.13.3}/wiki/Licenses.md +0 -0
  189. {gam7-7.13.1 → gam7-7.13.3}/wiki/List.md +0 -0
  190. {gam7-7.13.1 → gam7-7.13.3}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  191. {gam7-7.13.1 → gam7-7.13.3}/wiki/Mobile-Devices.md +0 -0
  192. {gam7-7.13.1 → gam7-7.13.3}/wiki/Organizational-Units.md +0 -0
  193. {gam7-7.13.1 → gam7-7.13.3}/wiki/Other-Resources.md +0 -0
  194. {gam7-7.13.1 → gam7-7.13.3}/wiki/Permission-Matches.md +0 -0
  195. {gam7-7.13.1 → gam7-7.13.3}/wiki/Python-Regular-Expressions.md +0 -0
  196. {gam7-7.13.1 → gam7-7.13.3}/wiki/README.md +0 -0
  197. {gam7-7.13.1 → gam7-7.13.3}/wiki/Rclone.md +0 -0
  198. {gam7-7.13.1 → gam7-7.13.3}/wiki/Reseller.md +0 -0
  199. {gam7-7.13.1 → gam7-7.13.3}/wiki/Resources.md +0 -0
  200. {gam7-7.13.1 → gam7-7.13.3}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  201. {gam7-7.13.1 → gam7-7.13.3}/wiki/SSL-Root-CA-Certificates.md +0 -0
  202. {gam7-7.13.1 → gam7-7.13.3}/wiki/Schemas.md +0 -0
  203. {gam7-7.13.1 → gam7-7.13.3}/wiki/Scripts.md +0 -0
  204. {gam7-7.13.1 → gam7-7.13.3}/wiki/Send-Email.md +0 -0
  205. {gam7-7.13.1 → gam7-7.13.3}/wiki/Sites.md +0 -0
  206. {gam7-7.13.1 → gam7-7.13.3}/wiki/Tag-Replace.md +0 -0
  207. {gam7-7.13.1 → gam7-7.13.3}/wiki/Todrive.md +0 -0
  208. {gam7-7.13.1 → gam7-7.13.3}/wiki/Unmanaged-Accounts.md +0 -0
  209. {gam7-7.13.1 → gam7-7.13.3}/wiki/Upgrade-Benefits.md +0 -0
  210. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Analytics-Admin.md +0 -0
  211. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Application-Specific-Passwords.md +0 -0
  212. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Backup-Verification-Codes.md +0 -0
  213. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Calendars-Access.md +0 -0
  214. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Calendars-Events.md +0 -0
  215. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Calendars.md +0 -0
  216. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Chat.md +0 -0
  217. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Classification-Labels.md +0 -0
  218. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Classroom-Profile.md +0 -0
  219. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Contacts-Delegates.md +0 -0
  220. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Contacts.md +0 -0
  221. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Deprovision.md +0 -0
  222. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Activity-Settings.md +0 -0
  223. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Cleanup.md +0 -0
  224. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Comments.md +0 -0
  225. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Copy-Move.md +0 -0
  226. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Files-Display.md +0 -0
  227. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Files-Manage.md +0 -0
  228. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Orphans.md +0 -0
  229. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Ownership.md +0 -0
  230. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Permissions.md +0 -0
  231. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Query.md +0 -0
  232. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Revisions.md +0 -0
  233. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Shortcuts.md +0 -0
  234. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Drive-Transfer.md +0 -0
  235. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-CSE.md +0 -0
  236. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-Delegates.md +0 -0
  237. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-Filters.md +0 -0
  238. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-Forwarding.md +0 -0
  239. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-Labels.md +0 -0
  240. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  241. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-Profile.md +0 -0
  242. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-S-MIME.md +0 -0
  243. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  244. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Gmail-Settings.md +0 -0
  245. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Group-Membership.md +0 -0
  246. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Keep-Notes.md +0 -0
  247. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Looker-Studio.md +0 -0
  248. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Meet.md +0 -0
  249. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-People-Contacts-Profiles.md +0 -0
  250. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Photo.md +0 -0
  251. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Profile-Photo.md +0 -0
  252. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Profile-Sharing.md +0 -0
  253. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Shared-Drives.md +0 -0
  254. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  255. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Spreadsheets.md +0 -0
  256. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Tasks.md +0 -0
  257. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-Tokens.md +0 -0
  258. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users-YouTube.md +0 -0
  259. {gam7-7.13.1 → gam7-7.13.3}/wiki/Users.md +0 -0
  260. {gam7-7.13.1 → gam7-7.13.3}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  261. {gam7-7.13.1 → gam7-7.13.3}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  262. {gam7-7.13.1 → gam7-7.13.3}/wiki/Vault-Takeout.md +0 -0
  263. {gam7-7.13.1 → gam7-7.13.3}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  264. {gam7-7.13.1 → gam7-7.13.3}/wiki/gam.cfg.md +0 -0
  265. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-AdminSettingsExamples.md +0 -0
  266. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Android-Installation.md +0 -0
  267. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-BulkOperations.md +0 -0
  268. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-CalendarExamples.md +0 -0
  269. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Chat-Bot.md +0 -0
  270. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Chrome-Browser-Management.md +0 -0
  271. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Chrome-OS-Installation.md +0 -0
  272. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Chrome-Policy-Settings.md +0 -0
  273. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Cloud-Identity-Groups.md +0 -0
  274. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  275. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Command-Reference-Calendars.md +0 -0
  276. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Command-Reference-Definitions.md +0 -0
  277. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Command-Reference-Drive.md +0 -0
  278. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Command-Reference-Email.md +0 -0
  279. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  280. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Command-Reference-Groups.md +0 -0
  281. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Command-Reference-Users.md +0 -0
  282. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  283. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  284. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-CreatingClientSecretsFile.md +0 -0
  285. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Custom-Schemas.md +0 -0
  286. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Data-Transfers.md +0 -0
  287. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-DomainVerification.md +0 -0
  288. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-ExamplesAccountAuditing.md +0 -0
  289. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-ExamplesCSV.md +0 -0
  290. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-ExamplesEmailSettings.md +0 -0
  291. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-ExamplesOrganizations.md +0 -0
  292. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-GAM-Discussion-Group.md +0 -0
  293. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  294. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-GAM-options-files.md +0 -0
  295. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  296. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-GAM3CSVListings.md +0 -0
  297. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-GAM3DirectoryCommands.md +0 -0
  298. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-GAM3GroupSettings.md +0 -0
  299. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-GAM7-FAQ.md +0 -0
  300. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  301. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-GoogleDriveManagement.md +0 -0
  302. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  303. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Home.md +0 -0
  304. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  305. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Inbound-SSO-Settings.md +0 -0
  306. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-LicenseExamples.md +0 -0
  307. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Managing-Admins.md +0 -0
  308. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  309. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Managing-Devices.md +0 -0
  310. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Managing-Google-Classroom.md +0 -0
  311. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-OAuthKeyManagement.md +0 -0
  312. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Printers.md +0 -0
  313. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-ResellerCommands.md +0 -0
  314. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  315. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-SecurityExamples.md +0 -0
  316. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-UnmanagedUsersExamples.md +0 -0
  317. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Use-a-Yubikey.md +0 -0
  318. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  319. {gam7-7.13.1 → gam7-7.13.3}/wiki/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.13.1
3
+ Version: 7.13.3
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
@@ -685,6 +685,7 @@ If an item contains spaces, it should be surrounded by ".
685
685
  <CalendarList> ::= "<CalendarItem>(,<CalendarItem>)*"
686
686
  <ChatSpaceList> ::= "<ChatSpace>(,<ChatSpace>)*"
687
687
  <ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
688
+ <ChromeProfileCommandNameList> ::= "<ChromeProfileCommandName>(,<ChromeProfileCommandName>)*"
688
689
  <CIGroupAliasList> ::= "<CIGroupAlias>(,<CIGroupAlias>)*"
689
690
  <CIGroupMemberTypeList> ::= "<CIGroupMemberType>(,<CIGroupMemberType>)*"
690
691
  <CIPolicyNameList> ::= "<CIPolicyName>(,<CIPolicyName>)*"
@@ -2228,12 +2229,14 @@ gam show chromeneedsattn
2228
2229
 
2229
2230
  <ChromeProfilePermanentID> ::= <String>
2230
2231
  <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
2231
- <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
2232
2232
  <ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
2233
+ <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
2234
+ <ChromeProfileCommandNameList> ::= "<ChromeProfileCommandName>(,<ChromeProfileCommandName>)*"
2233
2235
  <ChromeProfileNameEntity> ::=
2234
2236
  <ChromeProfileNameList> |
2235
- (select <FileSelector>|<CSVFileSelector>) |
2236
- (filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]])
2237
+ (select <ChromeProfileNameList>|<FileSelector>|<CSVFileSelector>) |
2238
+ (filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]) |
2239
+ (commands <ChromeProfileCommandNameList>|<FileSelector>|<CSVFileSelector>)
2237
2240
 
2238
2241
  <ChromeProfileFieldName> ::=
2239
2242
  affiliationstate|
@@ -2297,7 +2300,7 @@ gam print chromeprofiles [todrive <ToDriveAttribute>*]
2297
2300
 
2298
2301
  gam create chromeprofilecommand <ChromeProfileNameEntity>
2299
2302
  [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
2300
- [formatjson]
2303
+ [csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]
2301
2304
 
2302
2305
  gam info chromeprofilecommand <ChromeProfileCommandName>
2303
2306
  [formatjson]
@@ -3444,8 +3447,7 @@ gam print|show transferapps
3444
3447
 
3445
3448
  <DataTransferService> ::=
3446
3449
  calendar|
3447
- currents|
3448
- datastudio|lookerstudio|"google data studio"|
3450
+ datastudio|lookerstudio|"looker studio"|
3449
3451
  googledrive|gdrive|drive|"drive and docs"
3450
3452
  <DataTransferServiceList> ::= "<DataTransferService>(,<DataTransferService>)*"
3451
3453
 
@@ -1,3 +1,22 @@
1
+ 7.13.03
2
+
3
+ Added option `csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]`
4
+ to `gam create chromeprofilecommand` so that command details are displayed in CSV format.
5
+
6
+ Added option `commands <ChromeProfileCommandNameList>|<FileSelector>|<CSVFileSelector>` to `<ChromeProfileNameEntity>`
7
+ so that `gam print|show chromeprofilecommands` can directly display the commands generated by
8
+ `gam create chromeprofilecommand` with the `csv` option.
9
+
10
+ 7.13.02
11
+
12
+ Fixed bug in `gam create chromeprofilecommand` where `select|filter` were not recognized.
13
+
14
+ Updated `gam create datatransfer <OldOwnerID> datastudio <NewOwnerID>` that generated the following
15
+ error due to an unhandled API change.
16
+ ```
17
+ ERROR: Invalid choice (google data studio): Expected <calendar|looker studio|drive and docs>
18
+ ```
19
+
1
20
  7.13.01
2
21
 
3
22
  Enhanced `gam create|print|show chromeprofilecommand` to allow specification
@@ -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.13.01'
28
+ __version__ = '7.13.03'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -17071,14 +17071,14 @@ def _convertTransferAppIDtoName(apps, appID):
17071
17071
  return f'applicationId: {appID}'
17072
17072
 
17073
17073
  DRIVE_AND_DOCS_APP_NAME = 'drive and docs'
17074
- GOOGLE_DATA_STUDIO_APP_NAME = 'google data studio'
17074
+ GOOGLE_LOOKER_STUDIO_APP_NAME = 'looker studio'
17075
17075
 
17076
17076
  SERVICE_NAME_CHOICE_MAP = {
17077
- 'datastudio': GOOGLE_DATA_STUDIO_APP_NAME,
17077
+ 'datastudio': GOOGLE_LOOKER_STUDIO_APP_NAME,
17078
17078
  'drive': DRIVE_AND_DOCS_APP_NAME,
17079
17079
  'googledrive': DRIVE_AND_DOCS_APP_NAME,
17080
17080
  'gdrive': DRIVE_AND_DOCS_APP_NAME,
17081
- 'lookerstudio': GOOGLE_DATA_STUDIO_APP_NAME,
17081
+ 'lookerstudio': GOOGLE_LOOKER_STUDIO_APP_NAME,
17082
17082
  }
17083
17083
 
17084
17084
  def _validateTransferAppName(apps, appName):
@@ -25677,24 +25677,28 @@ def doPrintShowChromeProfiles():
25677
25677
  csvPF.writeCSVfile('Chrome Profiles')
25678
25678
 
25679
25679
  def _getChromeProfileNameList():
25680
- if not Cmd.PeekArgumentPresent(['select', 'filter', 'filters']):
25680
+ if not Cmd.PeekArgumentPresent(['select', 'commands', 'filter', 'filters']):
25681
25681
  return getString(Cmd.OB_CHROMEPROFILE_NAME_LIST).replace(',', ' ').split()
25682
25682
  return []
25683
25683
 
25684
25684
  def _initChromeProfileNameParameters():
25685
25685
  cm = buildGAPIObject(API.CHROMEMANAGEMENT)
25686
- return (cm, {'profileNameList': _getChromeProfileNameList(), 'customerId': _getCustomerId(),
25686
+ return (cm, {'profileNameList': _getChromeProfileNameList(),
25687
+ 'commandNameList': [],
25688
+ 'customerId': _getCustomerId(),
25687
25689
  'cbfilter': None, 'filterTimes': {},
25688
25690
  'OBY': OrderBy(CHROMEPROFILE_ORDERBY_CHOICE_MAP)})
25689
25691
 
25690
25692
  def _getChromeProfileNameParameters(myarg, parameters):
25691
- if not parameters['cbfilter'] and myarg == 'select':
25693
+ if not parameters['cbfilter'] and not parameters['commandNameList'] and myarg == 'select':
25692
25694
  parameters['profileNameList'].extend(getEntityList(Cmd.OB_CHROMEPROFILE_NAME_LIST))
25693
- elif not parameters['profileNameList'] and myarg == 'orderby':
25695
+ elif not parameters['cbfilter'] and not parameters['profileNameList'] and myarg == 'commands':
25696
+ parameters['commandNameList'].extend(getEntityList(Cmd.OB_CHROMEPROFILE_COMMAND_NAME_LIST))
25697
+ elif not parameters['profileNameList'] and not parameters['commandNameList'] and myarg == 'orderby':
25694
25698
  parameters['OBY'].GetChoice()
25695
- elif not parameters['profileNameList'] and myarg.startswith('filtertime'):
25699
+ elif not parameters['profileNameList'] and not parameters['commandNameList'] and myarg.startswith('filtertime'):
25696
25700
  parameters['filterTimes'][myarg] = getTimeOrDeltaFromNow()
25697
- elif not parameters['profileNameList'] and myarg in {'filter', 'filters'}:
25701
+ elif not parameters['profileNameList'] and not parameters['commandNameList'] and myarg in {'filter', 'filters'}:
25698
25702
  parameters['cbfilter'] = getString(Cmd.OB_STRING)
25699
25703
  else:
25700
25704
  return False
@@ -25703,9 +25707,14 @@ def _getChromeProfileNameParameters(myarg, parameters):
25703
25707
  def _getChromeProfileNameEntityForCommand(cm, parameters):
25704
25708
  if parameters['cbfilter'] is None:
25705
25709
  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}'
25710
+ if parameters['profileNameList']:
25711
+ for i, profileName in enumerate(parameters['profileNameList']):
25712
+ if not profileName.startswith('customers'):
25713
+ parameters['profileNameList'][i] = f'customers/{customerId}/profiles/{profileName}'
25714
+ elif parameters['commandNameList']:
25715
+ for i, commandName in enumerate(parameters['commandNameList']):
25716
+ if not commandName.startswith('customers'):
25717
+ parameters['commandNameList'][i] = f'customers/{customerId}/profiles/{commandName}'
25709
25718
  return
25710
25719
  if parameters['filterTimes']:
25711
25720
  for filterTimeName, filterTimeValue in iter(parameters['filterTimes'].items()):
@@ -25740,21 +25749,38 @@ def _showChromeProfileCommand(profcmd, FJQC, i=0, count=0):
25740
25749
  showJSON(None, profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS)
25741
25750
  Ind.Decrement()
25742
25751
 
25752
+ def _printChromeProfileCommand(profcmd, csvPF, FJQC):
25753
+ row = flattenJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS)
25754
+ if not FJQC.formatJSON:
25755
+ csvPF.WriteRowTitles(row)
25756
+ elif csvPF.CheckRowTitles(row):
25757
+ csvPF.WriteRowNoFilter({'name': profcmd['name'],
25758
+ 'JSON': json.dumps(cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS),
25759
+ ensure_ascii=False, sort_keys=True)})
25760
+
25743
25761
  # gam create chromeprofilecommand <ChromeProfileNameEntity>
25744
25762
  # [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
25745
- # [formatjson]
25763
+ # [csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]
25746
25764
  def doCreateChromeProfileCommand():
25747
25765
  cm, parameters = _initChromeProfileNameParameters()
25748
25766
  body = {'commandType': 'clearBrowsingData', 'payload': {}}
25749
- FJQC = FormatJSONQuoteChar()
25767
+ csvPF = None
25768
+ FJQC = FormatJSONQuoteChar(None)
25750
25769
  while Cmd.ArgumentsRemaining():
25751
25770
  myarg = getArgument()
25752
- if myarg == 'clearcache':
25771
+ if _getChromeProfileNameParameters(myarg, parameters):
25772
+ pass
25773
+ elif myarg == 'clearcache':
25753
25774
  body['payload']['clearCache'] = getBoolean()
25754
25775
  elif myarg == 'clearcookies':
25755
25776
  body['payload']['clearCookies'] = getBoolean()
25777
+ elif myarg == 'csv':
25778
+ csvPF = CSVPrintFile(['name'], 'sortall')
25779
+ FJQC.SetCsvPF(csvPF)
25780
+ elif csvPF and myarg == 'todrive':
25781
+ csvPF.GetTodriveParameters()
25756
25782
  else:
25757
- FJQC.GetFormatJSON(myarg)
25783
+ FJQC.GetFormatJSONQuoteChar(myarg, True)
25758
25784
  _getChromeProfileNameEntityForCommand(cm, parameters)
25759
25785
  count = len(parameters['profileNameList'])
25760
25786
  i = 0
@@ -25764,11 +25790,16 @@ def doCreateChromeProfileCommand():
25764
25790
  profcmd = callGAPI(cm.customers().profiles().commands(), 'create',
25765
25791
  throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED],
25766
25792
  parent=profileName, body=body)
25767
- _showChromeProfileCommand(profcmd, FJQC)
25793
+ if csvPF is None:
25794
+ _showChromeProfileCommand(profcmd, FJQC, i, count)
25795
+ else:
25796
+ _printChromeProfileCommand(profcmd, csvPF, FJQC)
25768
25797
  except (GAPI.notFound) as e:
25769
25798
  entityActionFailedWarning([Ent.CHROME_PROFILE_COMMAND, profileName], str(e), i, count)
25770
25799
  except (GAPI.invalidArgument, GAPI.permissionDenied) as e:
25771
25800
  entityActionFailedExit([Ent.CHROME_PROFILE_COMMAND, profileName], str(e))
25801
+ if csvPF:
25802
+ csvPF.writeCSVfile('Chrome Profile Commands')
25772
25803
 
25773
25804
  # gam info chromeprofilecommand <ChromeProfileCommandName>
25774
25805
  # [formatjson]
@@ -25792,15 +25823,6 @@ def doInfoChromeProfileCommand():
25792
25823
  # gam print chromeprofilecommands <ChromeProfilNameEntity> [todrive <ToDriveAttribute>*]
25793
25824
  # [formatjson [quotechar <Character>]]
25794
25825
  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
25826
  csvPF = CSVPrintFile(['name']) if Act.csvFormat() else None
25805
25827
  FJQC = FormatJSONQuoteChar(csvPF)
25806
25828
  cm, parameters = _initChromeProfileNameParameters()
@@ -25813,32 +25835,50 @@ def doPrintShowChromeProfileCommands():
25813
25835
  else:
25814
25836
  FJQC.GetFormatJSONQuoteChar(myarg, True)
25815
25837
  _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))
25838
+ if parameters['profileNameList']:
25839
+ count = len(parameters['profileNameList'])
25840
+ i = 0
25841
+ for profileName in parameters['profileNameList']:
25842
+ i +=1
25843
+ printGettingEntityItemForWhom(Ent.CHROME_PROFILE_COMMAND, profileName, i, count)
25844
+ pageMessage = getPageMessage()
25845
+ try:
25846
+ profcmds = callGAPIpages(cm.customers().profiles().commands(), 'list', 'chromeBrowserProfileCommands',
25847
+ pageMessage=pageMessage,
25848
+ throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
25849
+ parent=profileName, pageSize=100)
25850
+ if not csvPF:
25851
+ jcount = len(profcmds)
25852
+ Ind.Increment()
25853
+ j = 0
25854
+ for profcmd in profcmds:
25855
+ j += 1
25856
+ _showChromeProfileCommand(profcmd, FJQC, j, jcount)
25857
+ Ind.Decrement()
25858
+ else:
25859
+ for profcmd in profcmds:
25860
+ _printChromeProfileCommand(profcmd, csvPF, FJQC)
25861
+ except GAPI.notFound as e:
25862
+ entityActionFailedWarning([Ent.CHROME_PROFILE, profileName], str(e), i, count)
25863
+ except (GAPI.invalidArgument, GAPI.permissionDenied) as e:
25864
+ entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e))
25865
+ elif parameters['commandNameList']:
25866
+ count = len(parameters['commandNameList'])
25867
+ i = 0
25868
+ for profileCommandName in parameters['commandNameList']:
25869
+ i +=1
25870
+ try:
25871
+ profcmd = callGAPI(cm.customers().profiles().commands(), 'get',
25872
+ throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED],
25873
+ name=profileCommandName)
25874
+ if not csvPF:
25875
+ _showChromeProfileCommand(profcmd, FJQC, i, count)
25876
+ else:
25877
+ _printChromeProfileCommand(profcmd, csvPF, FJQC)
25878
+ except GAPI.notFound as e:
25879
+ entityActionFailedWarning([Ent.CHROME_PROFILE_COMMAND, profileCommandName], str(e), i, count)
25880
+ except (GAPI.invalidArgument, GAPI.permissionDenied) as e:
25881
+ entityActionFailedExit([Ent.CHROME_PROFILE, profileCommandName], str(e))
25842
25882
  if csvPF:
25843
25883
  csvPF.writeCSVfile('Chrome Profile Commands')
25844
25884
 
@@ -859,6 +859,8 @@ class GamCLArgs():
859
859
  OB_CHAT_THREAD = 'ChatThread'
860
860
  OB_CHROMEPROFILE_NAME = 'ChromeProfileName'
861
861
  OB_CHROMEPROFILE_NAME_LIST = 'ChromeProfileNameList'
862
+ OB_CHROMEPROFILE_COMMAND_NAME = 'ChromeProfileCommandName'
863
+ OB_CHROMEPROFILE_COMMAND_NAME_LIST = 'ChromeProfileNameCommandList'
862
864
  OB_CHROME_VERSION = 'ChromeVersion'
863
865
  OB_CIDR_NETMASK = 'CIDRnetmask'
864
866
  OB_CIGROUP_ALIAS_LIST = "CIGroupAliasList"
@@ -1,7 +1,7 @@
1
1
  [metadata]
2
2
  name = GAM for Google Workspace
3
3
  #version = attr: gam.var.GAM_VERSION
4
- version = 7.13.01
4
+ version = 7.13.02
5
5
  description = Command line management for Google Workspaces
6
6
  long_description = file: readme.md
7
7
  long_description_content_type = text/markdown
@@ -284,6 +284,9 @@
284
284
  <ChatMessage> ::= spaces/<String>/messages/<String>
285
285
  <ChatSpace> ::= spaces/<String> | space <String> | space spaces/<String>
286
286
  <ChatThread> ::= spaces/<String>/threads/<String>
287
+ <ChromeProfilePermanentID> ::= <String>
288
+ <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
289
+ <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
287
290
  <GIGroupAlias> ::= <EmailAddress>
288
291
  <GIGroupItem> ::= <EmailAddress>|<UniqueID>|groups/<String>
289
292
  <CIGroupMemberType> ::= cbcmbrowser|chromeosdevice|customer|group|other|serviceaccount|user
@@ -5,6 +5,7 @@
5
5
  - [Delete Chrome Profiles](#delete-chrome-profiles)
6
6
  - [Display Chrome Profiles](#display-chrome-profiles)
7
7
  - [Profile Query Searchable Fields](#profile-query-searchable-fields)
8
+ - [Collections of Chrome Profile names for commands](#collections-of-chrome-profile-names-for-commands)
8
9
  - [Create a Chrome Profile command](#create-a-chrome-profile-command)
9
10
  - [Display Chrome Profile commands](#display-chrome-profile-commands)
10
11
 
@@ -27,11 +28,18 @@ Follow instructions at: Turn on managed profile reporting
27
28
  * [Turn on Chrome Browser and Profile Reporting](https://support.google.com/chrome/a/answer/9301421)
28
29
 
29
30
  ## Definitions
31
+ * [`<FileSelector> | <CSVFileSelector>`](Collections-of-Items)
32
+
30
33
  ```
31
34
  <CustomerID> ::= <String>
32
35
  <ChromeProfilePermanentID> ::= <String>
33
36
  <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
34
37
  <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
38
+ <ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
39
+ <ChromeProfileNameEntity> ::=
40
+ <ChromeProfileNameList> |
41
+ (select <FileSelector>|<CSVFileSelector>) |
42
+ (filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]])
35
43
 
36
44
  <ChromeProfileFieldName> ::=
37
45
  affiliationstate|
@@ -97,7 +105,7 @@ By default, Gam displays the information as an indented list of keys and values:
97
105
 
98
106
  ```
99
107
  gam show chromeprofiles
100
- [filtertime.* <Time>] [filter <String>]
108
+ [filter <String> (filtertime<String> <Time>)*]
101
109
  [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
102
110
  <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
103
111
  [formatjson]
@@ -110,7 +118,7 @@ Select the fields to be displayed:
110
118
  * `<ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]` - Display a selected list of fields
111
119
 
112
120
  Use the `filtertime<String> <Time>` option to allow times, usually relative, to be substituted into the `filter <String>` option.
113
- The `filtertime<String> <Time>` value replaces the string `#fiktertime<String>#` in the `filter <String>`.
121
+ The `filtertime<String> <Time>` value replaces the string `#filtertime<String>#` in the `filter <String>`.
114
122
  The characters following `filtertime` can be any combination of lowercase letters and numbers.
115
123
 
116
124
  By default, Gam displays the information as an indented list of keys and values:
@@ -118,7 +126,7 @@ By default, Gam displays the information as an indented list of keys and values:
118
126
 
119
127
  ```
120
128
  gam print chromeprofiles [todrive <ToDriveAttribute>*]
121
- [filtertime.* <Time>] [filter <String>]
129
+ [filter <String> (filtertime<String> <Time>)*]
122
130
  [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
123
131
  <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
124
132
  [formatjson [quotechar <Character>]]
@@ -197,14 +205,30 @@ Print information about Chrome profiles on Windows.
197
205
  ```
198
206
  gam print chromeprofiles filter "osPlatformType=WINDOWS"
199
207
  ```
208
+ ## Collections of Chrome Profile names for commands
209
+ ```
210
+ <ChromeProfileNameEntity> ::=
211
+ <ChromeProfileNameList> |
212
+ (select <FileSelector>|<CSVFileSelector>) |
213
+ (filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]])
214
+ ```
215
+ * `<ChromeProfileNameList>` - List of Chrome profile names
216
+ * `select <FileSelector>|<CSVFileSelector>` - A flat or CSV file containing Chrome profile names
217
+ * `filter <String> (filtertime<String> <Time>)*` - A filter to select Chrome profiles
218
+
219
+ Use the `filtertime<String> <Time>` option to allow times, usually relative, to be substituted into the `filter <String>` option.
220
+ The `filtertime<String> <Time>` value replaces the string `#filtertime<String>#` in the `filter <String>`.
221
+ The characters following `filtertime` can be any combination of lowercase letters and numbers.
200
222
 
201
223
  ## Create a Chrome Profile command
224
+ Clear a Chrome Browser profile cache and/or cookies.
202
225
  ```
203
- gam create chromeprofilecommand <ChromeProfileName>
226
+ gam create chromeprofilecommand <ChromeProfileNameEntity>
204
227
  [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
205
228
  [formatjson]
206
229
  ```
207
230
  ## Display Chrome Profile commands
231
+ Display the status of a specific Chrome Browser profile command.
208
232
  ```
209
233
  gam info chromeprofilecommand <ChromeProfileCommandName>
210
234
  [formatjson]
@@ -212,15 +236,16 @@ gam info chromeprofilecommand <ChromeProfileCommandName>
212
236
  By default, Gam displays the information as an indented list of keys and values:
213
237
  * `formatjson` - Display the fields in JSON format.
214
238
 
239
+ Display the status of selected Chrome Browser profile commands.
215
240
  ```
216
- gam show chromeprofilecommands <ChromeProfileName>
241
+ gam show chromeprofilecommands <ChromeProfileNameEntity>
217
242
  [formatjson]
218
243
  ```
219
244
 
220
245
  By default, Gam displays the information as an indented list of keys and values:
221
246
  * `formatjson` - Display the fields in JSON format.
222
247
  ```
223
- gam print chromeprofilecommands <ChromeProfileName> [todrive <ToDriveAttribute>*]
248
+ gam print chromeprofilecommands <ChromeProfileNameEntity> [todrive <ToDriveAttribute>*]
224
249
  [formatjson [quotechar <Character>]]
225
250
  ```
226
251
  By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format:
@@ -232,3 +257,39 @@ When using the `formatjson` option, double quotes are used extensively in the da
232
257
  The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
233
258
  `quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
234
259
 
260
+ ### Examples
261
+
262
+ For Windows PowerShell, replace `\"` with ``` `" ```.
263
+
264
+ Clear cache and cookies for two specific Chrome profiles:
265
+ ```
266
+ gam create chromeprofilecommand 4c6c0a9f-de78-4285-be86-713fca8cffff,aa03151c-7c1d-41fe-b793-5753e167ffff clearcache clearcookies
267
+ ```
268
+
269
+ Display the status for those Chrome profiles:
270
+ ```
271
+ gam show chromeprofilecommand 4c6c0a9f-de78-4285-be86-713fca8cffff,aa03151c-7c1d-41fe-b793-5753e167ffff
272
+ gam print chromeprofilecommand 4c6c0a9f-de78-4285-be86-713fca8cffff,aa03151c-7c1d-41fe-b793-5753e167ffff
273
+ ```
274
+
275
+ Clear cache and cookies for Chrome profiles in a CSV file named `ChromeProfiles.csv` with a column `name`:
276
+ ```
277
+ gam create chromeprofilecommand select csvfile ChromeProfiles.csv:name clearcache clearcookies
278
+ ```
279
+
280
+ Display the status for those Chrome profiles:
281
+ ```
282
+ gam show chromeprofilecommand select csvfile ChromeProfiles.csv:name
283
+ gam print chromeprofilecommand select csvfile ChromeProfiles.csv:name
284
+ ```
285
+
286
+ Clear cache and cookies for Chrome profiles with last activity more that 60 days ago:
287
+ ```
288
+ gam create chromeprofilecommand filter "lastActivityTime < \"#filtertime1#\"" filtertime1 -60d clearcache clearcookies
289
+ ```
290
+
291
+ Display the status for those Chrome profiles:
292
+ ```
293
+ gam show chromeprofilecommand filter "lastActivityTime < \"#filtertime1#\"" filtertime1 -60d
294
+ gam print chromeprofilecommand filter "lastActivityTime < \"#filtertime1#\"" filtertime1 -60d
295
+ ```
@@ -144,6 +144,10 @@ Data fields identified in a `csvkmd` argument.
144
144
  <CalendarACLScopeList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
145
145
  <CalendarEntity> ::=
146
146
  <CalendarList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
147
+ <ChromeProfileNameEntity> ::=
148
+ <ChromeProfileNameList> |
149
+ (select <FileSelector>|<CSVFileSelector>) |
150
+ (filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]])
147
151
  <CIPolicyNameEntity> ::=
148
152
  <CIPolicyNameList> | <FileSelector> | <CSVFileSelector>
149
153
  <ClassificationLabelNameEntity> ::=
@@ -206,6 +210,7 @@ Data fields identified in a `csvkmd` argument.
206
210
  all_shortcuts |
207
211
  all_3p_shortcuts |
208
212
  all_items |
213
+ my_commentable_items |
209
214
  my_docs |
210
215
  my_files |
211
216
  my_folders |
@@ -231,6 +236,7 @@ Data fields identified in a `csvkmd` argument.
231
236
  others_3p_shortcuts |
232
237
  others_items |
233
238
  writable_files
239
+
234
240
  <DriveFileEntityShortcut> ::=
235
241
  alldrives |
236
242
  mydrive_any |
@@ -246,6 +252,7 @@ Data fields identified in a `csvkmd` argument.
246
252
  sharedwithme_all |
247
253
  sharedwithme_mydrive |
248
254
  sharedwithme_notmydrive
255
+
249
256
  <DriveFileEntity> ::=
250
257
  <DriveFileIDEntity> |
251
258
  <DriveFileNameEntity> |
@@ -10,6 +10,33 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
10
10
 
11
11
  See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
12
12
 
13
+ ### 7.13.02
14
+
15
+ Fixed bug in `gam create chromeprofilecommand` where `select|filter` were not recognized.
16
+
17
+ Updated `gam create datatransfer <OldOwnerID> datastudio <NewOwnerID>` that generated the following
18
+ error due to an unhandled API change.
19
+ ```
20
+ ERROR: Invalid choice (google data studio): Expected <calendar|looker studio|drive and docs>
21
+ ```
22
+
23
+ ### 7.13.01
24
+
25
+ Enhanced `gam create|print|show chromeprofilecommand` to allow specification
26
+ of multiple Chrome browser profiles rather than just one.
27
+ ```
28
+ <ChromeProfilePermanentID> ::= <String>
29
+ <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
30
+ <ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
31
+ <ChromeProfileNameEntity> ::=
32
+ <ChromeProfileNameEntity> ::=
33
+ <ChromeProfileNameList> |
34
+ (select <FileSelector>|<CSVFileSelector>) |
35
+ (filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]])
36
+
37
+ gam create|print_show chromeprofilecommand <ChromeProfileNameEntity>
38
+ ```
39
+
13
40
  ### 7.13.00
14
41
 
15
42
  Added commands that send remote commands to Chrome browser profiles and display the results;
@@ -13,8 +13,7 @@
13
13
  ```
14
14
  <DataTransferService> ::=
15
15
  calendar|
16
- currents|
17
- datastudio|lookerstudio|"google data studio"|
16
+ datastudio|lookerstudio|"looker studio"|
18
17
  drive|gdrive|googledrive|"drive and docs"
19
18
  <DataTransferServiceList> ::= "<DataTransferService>(,<DataTransferService>)*"
20
19
 
@@ -38,7 +37,7 @@ gam create|add datatransfer|transfer <OldOwnerID> <DataTransferServiceList> <New
38
37
  (<ParameterKey> <ParameterValue>)*
39
38
  [wait <Integer> <Integer>]
40
39
  ```
41
- For`datastudio` and `drive`, there are options to control the privacy level of the files to be transferred.
40
+ For`lookerstudio` and `drive`, there are options to control the privacy level of the files to be transferred.
42
41
  * `private` or `privacy_level private` - Transfer files that are not shared with anyone
43
42
  * `shared` or `privacy_level shared` - Transfer files shared with at least one other user; this is the **default**
44
43
  * `all` or `privacy_level private,shared` - Transfer all files
@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
251
251
  admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
252
252
  admin@server:/Users/admin$ gam version
253
253
  WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
254
- GAM 7.13.00 - https://github.com/GAM-team/GAM - pyinstaller
254
+ GAM 7.13.02 - https://github.com/GAM-team/GAM - pyinstaller
255
255
  GAM Team <google-apps-manager@googlegroups.com>
256
256
  Python 3.13.5 64-bit final
257
257
  MacOS Sequoia 15.5 x86_64
@@ -989,7 +989,7 @@ writes the credentials into the file oauth2.txt.
989
989
  C:\>del C:\GAMConfig\oauth2.txt
990
990
  C:\>gam version
991
991
  WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
992
- GAM 7.13.00 - https://github.com/GAM-team/GAM - pythonsource
992
+ GAM 7.13.02 - https://github.com/GAM-team/GAM - pythonsource
993
993
  GAM Team <google-apps-manager@googlegroups.com>
994
994
  Python 3.13.5 64-bit final
995
995
  Windows-10-10.0.17134 AMD64
@@ -11,6 +11,7 @@
11
11
  <CalendarACLScopeList> ::= "<CalendarACLScope>(,<CalendarACLScope>)*"
12
12
  <CalendarList> ::= "<CalendarItem>(,<CalendarItem>)*"
13
13
  <ChatSpaceList> ::= "<ChatSpace>(,<ChatSpace>)*"
14
+ <ChromeProfileNameList> ::= "<ChromeProfileName>(,<ChromeProfileName>)*"
14
15
  <CIGroupAliasList> ::= "<CIGroupAlias>(,<CIGroupAlias>)*"
15
16
  <CIGroupMemberTypeList> ::= "<CIGroupMemberType>(,<CIGroupMemberType>)*"
16
17
  <CIPolicyNameList> ::= "<CIPolicyName>(,<CIPolicyName>)*"
@@ -68,7 +68,7 @@ gam report <ActivityApplicationName> [todrive <ToDriveAttribute>*]
68
68
  [(user all|<UserItem>)|(orgunit|org|ou <OrgUnitPath> [showorgunit])|(select <UserTypeEntity>)]
69
69
  [([start <Time>] [end <Time>])|(range <Time> <Time>)|
70
70
  yesterday|today|thismonth|(previousmonths <Integer>)]
71
- [filtertime<String> <Time>] [filter|filters <String>]
71
+ [filter <String> (filtertime<String> <Time>)*]
72
72
  [event|events <EventNameList>] [ip <String>]
73
73
  [groupidfilter <String>]
74
74
  [maxactivities <Number>] [maxevents <Number>] [maxresults <Number>]
@@ -363,7 +363,7 @@ gam report users|user [todrive <ToDriveAttribute>*]
363
363
  [(date <Date>)|(range <Date> <Date>)|
364
364
  yesterday|today|thismonth|(previousmonths <Integer>)]
365
365
  [(nodatechange | limitdatechanges <Integer>) | (fulldatarequired all|<UserServiceNameList>)]
366
- [filtertime<String> <Time>] [filter|filters <String>]
366
+ [filter <String> (filtertime<String> <Time>)*]
367
367
  [(fields|parameters <String>)|(services <UserServiceNameList>)]
368
368
  [aggregatebydate|aggregatebyuser [Boolean]]
369
369
  [maxresults <Number>]
@@ -413,7 +413,7 @@ where you can specify a relative date without having to change the script.
413
413
 
414
414
  For example, filter for last logins more that 60 days ago.
415
415
  ```
416
- filtertime60d -60d filters "accounts:last_login_time<#filtertime60d#"
416
+ filters "accounts:last_login_time<#filtertime60d#" filtertime60d -60d
417
417
  ```
418
418
 
419
419
  Select the fields/parameters to display.
@@ -45,6 +45,8 @@
45
45
  * [Shared Drives Search](https://developers.google.com/drive/api/guides/search-shareddrives)
46
46
 
47
47
  ## Definitions
48
+ * [`<FileSelector> | <CSVFileSelector>`](Collections-of-Items)
49
+
48
50
  ```
49
51
  <ColorHex> ::= "#<Hex><Hex><Hex><Hex><Hex><Hex>"
50
52
  <ColorNameGoogle> ::=