gam7 7.7.0__tar.gz → 7.7.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.
Files changed (318) hide show
  1. {gam7-7.7.0 → gam7-7.7.3}/PKG-INFO +1 -1
  2. {gam7-7.7.0 → gam7-7.7.3}/src/GamCommands.txt +7 -2
  3. {gam7-7.7.0 → gam7-7.7.3}/src/GamUpdate.txt +15 -0
  4. {gam7-7.7.0 → gam7-7.7.3}/src/cacerts.pem +0 -30
  5. {gam7-7.7.0 → gam7-7.7.3}/src/gam/__init__.py +166 -68
  6. {gam7-7.7.0 → gam7-7.7.3}/src/gam/cacerts.pem +15 -298
  7. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glclargs.py +1 -1
  8. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glgapi.py +4 -0
  9. gam7-7.7.0/wiki/Domain-SharedContacts-GAL.md → gam7-7.7.3/wiki/Domain-SharedContacts.md +1 -1
  10. {gam7-7.7.0 → gam7-7.7.3}/wiki/GamUpdates.md +26 -0
  11. {gam7-7.7.0 → gam7-7.7.3}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  12. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-Messages-Threads.md +1 -1
  13. {gam7-7.7.0 → gam7-7.7.3}/wiki/Version-and-Help.md +6 -7
  14. {gam7-7.7.0 → gam7-7.7.3}/wiki/_Sidebar.md +1 -1
  15. {gam7-7.7.0 → gam7-7.7.3}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  16. {gam7-7.7.0 → gam7-7.7.3}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  17. {gam7-7.7.0 → gam7-7.7.3}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  18. {gam7-7.7.0 → gam7-7.7.3}/.github/ISSUE_TEMPLATE.txt +0 -0
  19. {gam7-7.7.0 → gam7-7.7.3}/.github/actions/decrypt.sh +0 -0
  20. {gam7-7.7.0 → gam7-7.7.3}/.github/actions/entitlements.plist +0 -0
  21. {gam7-7.7.0 → gam7-7.7.3}/.github/actions/package_exclusions.txt +0 -0
  22. {gam7-7.7.0 → gam7-7.7.3}/.github/stale.yml +0 -0
  23. {gam7-7.7.0 → gam7-7.7.3}/.github/workflows/build.yml +0 -0
  24. {gam7-7.7.0 → gam7-7.7.3}/.github/workflows/codeql-analysis.yml +0 -0
  25. {gam7-7.7.0 → gam7-7.7.3}/.github/workflows/get-cacerts.yml +0 -0
  26. {gam7-7.7.0 → gam7-7.7.3}/.github/workflows/pushwiki.yml +0 -0
  27. {gam7-7.7.0 → gam7-7.7.3}/.github/workflows/pypi.yml +0 -0
  28. {gam7-7.7.0 → gam7-7.7.3}/.pre-commit-config.yaml +0 -0
  29. {gam7-7.7.0 → gam7-7.7.3}/LICENSE +0 -0
  30. {gam7-7.7.0 → gam7-7.7.3}/README.md +0 -0
  31. {gam7-7.7.0 → gam7-7.7.3}/pyproject.toml +0 -0
  32. {gam7-7.7.0 → gam7-7.7.3}/src/.gitignore +0 -0
  33. {gam7-7.7.0 → gam7-7.7.3}/src/LICENSE +0 -0
  34. {gam7-7.7.0 → gam7-7.7.3}/src/callgam.py +0 -0
  35. {gam7-7.7.0 → gam7-7.7.3}/src/gam/__main__.py +0 -0
  36. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/__init__.py +0 -0
  37. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/auth.py +0 -0
  38. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/client.py +0 -0
  39. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/core.py +0 -0
  40. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/data.py +0 -0
  41. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/http.py +0 -0
  42. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/http_core.py +0 -0
  43. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/http_interface.py +0 -0
  44. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/mock_http.py +0 -0
  45. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/mock_http_core.py +0 -0
  46. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/mock_service.py +0 -0
  47. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/service.py +0 -0
  48. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/token_store.py +0 -0
  49. {gam7-7.7.0 → gam7-7.7.3}/src/gam/atom/url.py +0 -0
  50. {gam7-7.7.0 → gam7-7.7.3}/src/gam/cbcm-v1.1beta1.json +0 -0
  51. {gam7-7.7.0 → gam7-7.7.3}/src/gam/contactdelegation-v1.json +0 -0
  52. {gam7-7.7.0 → gam7-7.7.3}/src/gam/datastudio-v1.json +0 -0
  53. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/__init__.py +0 -0
  54. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glaction.py +0 -0
  55. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glapi.py +0 -0
  56. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glcfg.py +0 -0
  57. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glentity.py +0 -0
  58. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glgdata.py +0 -0
  59. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glglobals.py +0 -0
  60. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glindent.py +0 -0
  61. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glmsgs.py +0 -0
  62. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glskus.py +0 -0
  63. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/gluprop.py +0 -0
  64. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/glverlibs.py +0 -0
  65. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gamlib/yubikey.py +0 -0
  66. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/__init__.py +0 -0
  67. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/alt/__init__.py +0 -0
  68. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/alt/app_engine.py +0 -0
  69. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/alt/appengine.py +0 -0
  70. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/apps/__init__.py +0 -0
  71. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/apps/audit/__init__.py +0 -0
  72. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/apps/audit/service.py +0 -0
  73. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  74. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/apps/contacts/service.py +0 -0
  75. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/apps/service.py +0 -0
  76. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/service.py +0 -0
  77. {gam7-7.7.0 → gam7-7.7.3}/src/gam/gdata/urlfetch.py +0 -0
  78. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/__init__.py +0 -0
  79. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/_auth.py +0 -0
  80. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/_helpers.py +0 -0
  81. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/channel.py +0 -0
  82. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/discovery.py +0 -0
  83. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  84. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  85. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  86. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  87. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/errors.py +0 -0
  88. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/http.py +0 -0
  89. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/mimeparse.py +0 -0
  90. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/model.py +0 -0
  91. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/schema.py +0 -0
  92. {gam7-7.7.0 → gam7-7.7.3}/src/gam/googleapiclient/version.py +0 -0
  93. {gam7-7.7.0 → gam7-7.7.3}/src/gam/iso8601/__init__.py +0 -0
  94. {gam7-7.7.0 → gam7-7.7.3}/src/gam/iso8601/iso8601.py +0 -0
  95. {gam7-7.7.0 → gam7-7.7.3}/src/gam/meet-v2beta.json +0 -0
  96. {gam7-7.7.0 → gam7-7.7.3}/src/gam/serviceaccountlookup-v1.json +0 -0
  97. {gam7-7.7.0 → gam7-7.7.3}/src/gam/six.py +0 -0
  98. {gam7-7.7.0 → gam7-7.7.3}/src/gam-install.sh +0 -0
  99. {gam7-7.7.0 → gam7-7.7.3}/src/gam-setup.bat +0 -0
  100. {gam7-7.7.0 → gam7-7.7.3}/src/gam.exe.manifest +0 -0
  101. {gam7-7.7.0 → gam7-7.7.3}/src/gam.py +0 -0
  102. {gam7-7.7.0 → gam7-7.7.3}/src/gam.spec +0 -0
  103. {gam7-7.7.0 → gam7-7.7.3}/src/gam.wxs +0 -0
  104. {gam7-7.7.0 → gam7-7.7.3}/src/license.rtf +0 -0
  105. {gam7-7.7.0 → gam7-7.7.3}/src/requirements-dev.txt +0 -0
  106. {gam7-7.7.0 → gam7-7.7.3}/src/requirements.txt +0 -0
  107. {gam7-7.7.0 → gam7-7.7.3}/src/setup.cfg +0 -0
  108. {gam7-7.7.0 → gam7-7.7.3}/src/setup.py +0 -0
  109. {gam7-7.7.0 → gam7-7.7.3}/src/tools/a_atleast_b.py +0 -0
  110. {gam7-7.7.0 → gam7-7.7.3}/src/tools/gen-wix-xml-filelist.py +0 -0
  111. {gam7-7.7.0 → gam7-7.7.3}/src/tools/mkGamRef.py +0 -0
  112. {gam7-7.7.0 → gam7-7.7.3}/src/tools/openssl.props +0 -0
  113. {gam7-7.7.0 → gam7-7.7.3}/src/version_info.txt.in +0 -0
  114. {gam7-7.7.0 → gam7-7.7.3}/wiki/00scratch.md +0 -0
  115. {gam7-7.7.0 → gam7-7.7.3}/wiki/Addresses.md +0 -0
  116. {gam7-7.7.0 → gam7-7.7.3}/wiki/Administrators.md +0 -0
  117. {gam7-7.7.0 → gam7-7.7.3}/wiki/Alert-Center.md +0 -0
  118. {gam7-7.7.0 → gam7-7.7.3}/wiki/Aliases.md +0 -0
  119. {gam7-7.7.0 → gam7-7.7.3}/wiki/Authorization.md +0 -0
  120. {gam7-7.7.0 → gam7-7.7.3}/wiki/BNF-Syntax.md +0 -0
  121. {gam7-7.7.0 → gam7-7.7.3}/wiki/Basic-Items.md +0 -0
  122. {gam7-7.7.0 → gam7-7.7.3}/wiki/Bulk-Processing.md +0 -0
  123. {gam7-7.7.0 → gam7-7.7.3}/wiki/CSV-Input-Filtering.md +0 -0
  124. {gam7-7.7.0 → gam7-7.7.3}/wiki/CSV-Output-Filtering.md +0 -0
  125. {gam7-7.7.0 → gam7-7.7.3}/wiki/CSV-Special-Characters.md +0 -0
  126. {gam7-7.7.0 → gam7-7.7.3}/wiki/Calendars-Access.md +0 -0
  127. {gam7-7.7.0 → gam7-7.7.3}/wiki/Calendars-Events.md +0 -0
  128. {gam7-7.7.0 → gam7-7.7.3}/wiki/Calendars.md +0 -0
  129. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chat-Bot.md +0 -0
  130. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chrome-AUE-Counts.md +0 -0
  131. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  132. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chrome-Installed-Apps.md +0 -0
  133. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  134. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chrome-Policies.md +0 -0
  135. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chrome-Printers.md +0 -0
  136. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chrome-Profile-Management.md +0 -0
  137. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chrome-Version-Counts.md +0 -0
  138. {gam7-7.7.0 → gam7-7.7.3}/wiki/Chrome-Version-History.md +0 -0
  139. {gam7-7.7.0 → gam7-7.7.3}/wiki/ChromeOS-Devices.md +0 -0
  140. {gam7-7.7.0 → gam7-7.7.3}/wiki/Classroom-Courses.md +0 -0
  141. {gam7-7.7.0 → gam7-7.7.3}/wiki/Classroom-Guardians.md +0 -0
  142. {gam7-7.7.0 → gam7-7.7.3}/wiki/Classroom-Invitations.md +0 -0
  143. {gam7-7.7.0 → gam7-7.7.3}/wiki/Classroom-Membership.md +0 -0
  144. {gam7-7.7.0 → gam7-7.7.3}/wiki/Cloud-Channel.md +0 -0
  145. {gam7-7.7.0 → gam7-7.7.3}/wiki/Cloud-Identity-Devices.md +0 -0
  146. {gam7-7.7.0 → gam7-7.7.3}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  147. {gam7-7.7.0 → gam7-7.7.3}/wiki/Cloud-Identity-Groups.md +0 -0
  148. {gam7-7.7.0 → gam7-7.7.3}/wiki/Cloud-Identity-Policies.md +0 -0
  149. {gam7-7.7.0 → gam7-7.7.3}/wiki/Cloud-Storage.md +0 -0
  150. {gam7-7.7.0 → gam7-7.7.3}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  151. {gam7-7.7.0 → gam7-7.7.3}/wiki/Collections-of-Items.md +0 -0
  152. {gam7-7.7.0 → gam7-7.7.3}/wiki/Collections-of-Users.md +0 -0
  153. {gam7-7.7.0 → gam7-7.7.3}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  154. {gam7-7.7.0 → gam7-7.7.3}/wiki/Command-Line-Parsing.md +0 -0
  155. {gam7-7.7.0 → gam7-7.7.3}/wiki/Command-Logging-Progress.md +0 -0
  156. {gam7-7.7.0 → gam7-7.7.3}/wiki/Context-Aware-Access-Levels.md +0 -0
  157. {gam7-7.7.0 → gam7-7.7.3}/wiki/Customer.md +0 -0
  158. {gam7-7.7.0 → gam7-7.7.3}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  159. {gam7-7.7.0 → gam7-7.7.3}/wiki/Domains-Verification.md +0 -0
  160. {gam7-7.7.0 → gam7-7.7.3}/wiki/Domains.md +0 -0
  161. {gam7-7.7.0 → gam7-7.7.3}/wiki/Downloads-Installs.md +0 -0
  162. {gam7-7.7.0 → gam7-7.7.3}/wiki/Drive-File-Selection.md +0 -0
  163. {gam7-7.7.0 → gam7-7.7.3}/wiki/Drive-Items.md +0 -0
  164. {gam7-7.7.0 → gam7-7.7.3}/wiki/Drive-REST-API-v3.md +0 -0
  165. {gam7-7.7.0 → gam7-7.7.3}/wiki/Email-Audit-Monitor.md +0 -0
  166. {gam7-7.7.0 → gam7-7.7.3}/wiki/Find-File-Owner.md +0 -0
  167. {gam7-7.7.0 → gam7-7.7.3}/wiki/GAM-Public-Chat-Room.md +0 -0
  168. {gam7-7.7.0 → gam7-7.7.3}/wiki/GAM-Return-Codes.md +0 -0
  169. {gam7-7.7.0 → gam7-7.7.3}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  170. {gam7-7.7.0 → gam7-7.7.3}/wiki/GAM7-on-Android-Devices.md +0 -0
  171. {gam7-7.7.0 → gam7-7.7.3}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  172. {gam7-7.7.0 → gam7-7.7.3}/wiki/Google-Data-Transfers.md +0 -0
  173. {gam7-7.7.0 → gam7-7.7.3}/wiki/Google-Network-Addresses.md +0 -0
  174. {gam7-7.7.0 → gam7-7.7.3}/wiki/Groups-Membership.md +0 -0
  175. {gam7-7.7.0 → gam7-7.7.3}/wiki/Groups.md +0 -0
  176. {gam7-7.7.0 → gam7-7.7.3}/wiki/HTTPS-Proxy.md +0 -0
  177. {gam7-7.7.0 → gam7-7.7.3}/wiki/Home.md +0 -0
  178. {gam7-7.7.0 → gam7-7.7.3}/wiki/How-to-Install-GAM7.md +0 -0
  179. {gam7-7.7.0 → gam7-7.7.3}/wiki/How-to-Uninstall-GAM7.md +0 -0
  180. {gam7-7.7.0 → gam7-7.7.3}/wiki/How-to-Update-GAM7.md +0 -0
  181. {gam7-7.7.0 → gam7-7.7.3}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  182. {gam7-7.7.0 → gam7-7.7.3}/wiki/Inbound-SSO.md +0 -0
  183. {gam7-7.7.0 → gam7-7.7.3}/wiki/Install-GAM-as-Python-Library.md +0 -0
  184. {gam7-7.7.0 → gam7-7.7.3}/wiki/Licenses.md +0 -0
  185. {gam7-7.7.0 → gam7-7.7.3}/wiki/List-Items.md +0 -0
  186. {gam7-7.7.0 → gam7-7.7.3}/wiki/List.md +0 -0
  187. {gam7-7.7.0 → gam7-7.7.3}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  188. {gam7-7.7.0 → gam7-7.7.3}/wiki/Mobile-Devices.md +0 -0
  189. {gam7-7.7.0 → gam7-7.7.3}/wiki/Organizational-Units.md +0 -0
  190. {gam7-7.7.0 → gam7-7.7.3}/wiki/Other-Resources.md +0 -0
  191. {gam7-7.7.0 → gam7-7.7.3}/wiki/Permission-Matches.md +0 -0
  192. {gam7-7.7.0 → gam7-7.7.3}/wiki/Python-Regular-Expressions.md +0 -0
  193. {gam7-7.7.0 → gam7-7.7.3}/wiki/README.md +0 -0
  194. {gam7-7.7.0 → gam7-7.7.3}/wiki/Rclone.md +0 -0
  195. {gam7-7.7.0 → gam7-7.7.3}/wiki/Reports.md +0 -0
  196. {gam7-7.7.0 → gam7-7.7.3}/wiki/Reseller.md +0 -0
  197. {gam7-7.7.0 → gam7-7.7.3}/wiki/Resources.md +0 -0
  198. {gam7-7.7.0 → gam7-7.7.3}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  199. {gam7-7.7.0 → gam7-7.7.3}/wiki/SSL-Root-CA-Certificates.md +0 -0
  200. {gam7-7.7.0 → gam7-7.7.3}/wiki/Schemas.md +0 -0
  201. {gam7-7.7.0 → gam7-7.7.3}/wiki/Scripts.md +0 -0
  202. {gam7-7.7.0 → gam7-7.7.3}/wiki/Send-Email.md +0 -0
  203. {gam7-7.7.0 → gam7-7.7.3}/wiki/Shared-Drives.md +0 -0
  204. {gam7-7.7.0 → gam7-7.7.3}/wiki/Sites.md +0 -0
  205. {gam7-7.7.0 → gam7-7.7.3}/wiki/Tag-Replace.md +0 -0
  206. {gam7-7.7.0 → gam7-7.7.3}/wiki/Todrive.md +0 -0
  207. {gam7-7.7.0 → gam7-7.7.3}/wiki/Unmanaged-Accounts.md +0 -0
  208. {gam7-7.7.0 → gam7-7.7.3}/wiki/Upgrade-Benefits.md +0 -0
  209. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Analytics-Admin.md +0 -0
  210. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Application-Specific-Passwords.md +0 -0
  211. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Backup-Verification-Codes.md +0 -0
  212. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Calendars-Access.md +0 -0
  213. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Calendars-Events.md +0 -0
  214. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Calendars.md +0 -0
  215. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Chat.md +0 -0
  216. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Classification-Labels.md +0 -0
  217. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Classroom-Profile.md +0 -0
  218. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Contacts-Delegates.md +0 -0
  219. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Contacts.md +0 -0
  220. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Deprovision.md +0 -0
  221. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Activity-Settings.md +0 -0
  222. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Cleanup.md +0 -0
  223. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Comments.md +0 -0
  224. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Copy-Move.md +0 -0
  225. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Files-Display.md +0 -0
  226. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Files-Manage.md +0 -0
  227. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Orphans.md +0 -0
  228. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Ownership.md +0 -0
  229. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Permissions.md +0 -0
  230. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Query.md +0 -0
  231. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Revisions.md +0 -0
  232. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Shortcuts.md +0 -0
  233. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Drive-Transfer.md +0 -0
  234. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Forms.md +0 -0
  235. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-CSE.md +0 -0
  236. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-Delegates.md +0 -0
  237. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-Filters.md +0 -0
  238. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-Forwarding.md +0 -0
  239. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-Labels.md +0 -0
  240. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-Profile.md +0 -0
  241. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-S-MIME.md +0 -0
  242. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  243. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Gmail-Settings.md +0 -0
  244. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Group-Membership.md +0 -0
  245. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Keep-Notes.md +0 -0
  246. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Looker-Studio.md +0 -0
  247. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Meet.md +0 -0
  248. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-People-Contacts-Profiles.md +0 -0
  249. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Photo.md +0 -0
  250. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Profile-Photo.md +0 -0
  251. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Profile-Sharing.md +0 -0
  252. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Shared-Drives.md +0 -0
  253. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  254. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Spreadsheets.md +0 -0
  255. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Tasks.md +0 -0
  256. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-Tokens.md +0 -0
  257. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users-YouTube.md +0 -0
  258. {gam7-7.7.0 → gam7-7.7.3}/wiki/Users.md +0 -0
  259. {gam7-7.7.0 → gam7-7.7.3}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  260. {gam7-7.7.0 → gam7-7.7.3}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  261. {gam7-7.7.0 → gam7-7.7.3}/wiki/Vault-Takeout.md +0 -0
  262. {gam7-7.7.0 → gam7-7.7.3}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  263. {gam7-7.7.0 → gam7-7.7.3}/wiki/gam.cfg.md +0 -0
  264. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-AdminSettingsExamples.md +0 -0
  265. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Android-Installation.md +0 -0
  266. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-BulkOperations.md +0 -0
  267. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-CalendarExamples.md +0 -0
  268. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Chat-Bot.md +0 -0
  269. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Chrome-Browser-Management.md +0 -0
  270. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Chrome-OS-Installation.md +0 -0
  271. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Chrome-Policy-Settings.md +0 -0
  272. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Cloud-Identity-Groups.md +0 -0
  273. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  274. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Command-Reference-Calendars.md +0 -0
  275. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Command-Reference-Definitions.md +0 -0
  276. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Command-Reference-Drive.md +0 -0
  277. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Command-Reference-Email.md +0 -0
  278. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  279. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Command-Reference-Groups.md +0 -0
  280. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Command-Reference-Users.md +0 -0
  281. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  282. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  283. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-CreatingClientSecretsFile.md +0 -0
  284. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Custom-Schemas.md +0 -0
  285. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Data-Transfers.md +0 -0
  286. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-DomainVerification.md +0 -0
  287. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-ExamplesAccountAuditing.md +0 -0
  288. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-ExamplesCSV.md +0 -0
  289. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-ExamplesEmailSettings.md +0 -0
  290. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-ExamplesOrganizations.md +0 -0
  291. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-GAM-Discussion-Group.md +0 -0
  292. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  293. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-GAM-options-files.md +0 -0
  294. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  295. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-GAM3CSVListings.md +0 -0
  296. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-GAM3DirectoryCommands.md +0 -0
  297. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-GAM3GroupSettings.md +0 -0
  298. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-GAM7-FAQ.md +0 -0
  299. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  300. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-GoogleDriveManagement.md +0 -0
  301. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  302. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Home.md +0 -0
  303. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  304. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Inbound-SSO-Settings.md +0 -0
  305. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-LicenseExamples.md +0 -0
  306. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Managing-Admins.md +0 -0
  307. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  308. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Managing-Devices.md +0 -0
  309. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Managing-Google-Classroom.md +0 -0
  310. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-OAuthKeyManagement.md +0 -0
  311. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Printers.md +0 -0
  312. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-ResellerCommands.md +0 -0
  313. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  314. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-SecurityExamples.md +0 -0
  315. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-UnmanagedUsersExamples.md +0 -0
  316. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Use-a-Yubikey.md +0 -0
  317. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  318. {gam7-7.7.0 → gam7-7.7.3}/wiki/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.7.0
3
+ Version: 7.7.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
@@ -5240,7 +5240,10 @@ gam show vaultmatters|matters [matterstate <MatterStateList>]
5240
5240
 
5241
5241
  gam print vaultcounts [todrive <ToDriveAttributes>*]
5242
5242
  matter <MatterItem> corpus mail|groups
5243
- (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
5243
+ [(accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone]
5244
+ [(shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
5245
+ (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
5246
+ (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))]
5244
5247
  [scope [all_data|held_data|unprocessed_data]]
5245
5248
  [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
5246
5249
  [excludedrafts <Boolean>]
@@ -5250,7 +5253,9 @@ gam print vaultcounts [todrive <ToDriveAttributes>*]
5250
5253
 
5251
5254
  gam create vaultexport|export matter <MatterItem> [name <String>] corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
5252
5255
  (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
5253
- (shareddrives|teamdrives <SharedDriveIDList>) | (rooms <RoomList>) | (sitesurl <URLList>)
5256
+ (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
5257
+ (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
5258
+ (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
5254
5259
  [scope all_data|held_data|unprocessed_data]
5255
5260
  [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
5256
5261
  [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
@@ -1,4 +1,19 @@
1
+ 7.07.03
2
+
3
+ Updated `gam create vaultexport` to allow allow specifying a list of items in a search method
4
+ with `shareddrives|rooms|sitesurl select <FileSelector>|<CSVFileSelector>`.
5
+
6
+ 7.07.02
7
+
8
+ Fixed bug in `redirect csv ... transpose` where a CSV file with multiple rows was not properly transposed.
9
+
10
+ 7.07.01
11
+
12
+ Fixed bug in `gam print|show chromepolicies` that caused a trap. Made additional
13
+ updates to handle changes in the Chrome Policy API.
14
+
1
15
  7.07.00
16
+
2
17
  As of mid-October 2024, Google deprecated the API that retrieved the Global Address List.
3
18
 
4
19
  The following commands have been eliminated.
@@ -1,33 +1,3 @@
1
- # Operating CA: DigiCert
2
- # Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
3
- # Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
4
- # Label: "Baltimore CyberTrust Root"
5
- # Serial: 33554617
6
- # MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4
7
- # SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74
8
- # SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb
9
- -----BEGIN CERTIFICATE-----
10
- MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
11
- RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
12
- VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
13
- DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
14
- ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
15
- VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
16
- mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
17
- IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
18
- mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
19
- XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
20
- dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
21
- jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
22
- BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
23
- DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
24
- 9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
25
- jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
26
- Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
27
- ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
28
- R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
29
- -----END CERTIFICATE-----
30
-
31
1
  # Operating CA: DigiCert
32
2
  # Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com
33
3
  # Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com
@@ -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.07.00'
28
+ __version__ = '7.07.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
@@ -8585,13 +8585,16 @@ class CSVPrintFile():
8585
8585
 
8586
8586
  def writeCSVData(writer):
8587
8587
  try:
8588
- if GM.Globals[GM.CSVFILE][GM.REDIRECT_WRITE_HEADER]:
8589
- writer.writerow(dict((item, item) for item in writer.fieldnames))
8590
- if not self.sortHeaders:
8591
- writer.writerows(self.rows)
8588
+ if not self.outputTranspose:
8589
+ if GM.Globals[GM.CSVFILE][GM.REDIRECT_WRITE_HEADER]:
8590
+ writer.writerow(dict((item, item) for item in writer.fieldnames))
8591
+ if not self.sortHeaders:
8592
+ writer.writerows(self.rows)
8593
+ else:
8594
+ for row in sorted(self.rows, key=itemgetter(*self.sortHeaders)):
8595
+ writer.writerow(row)
8592
8596
  else:
8593
- for row in sorted(self.rows, key=itemgetter(*self.sortHeaders)):
8594
- writer.writerow(row)
8597
+ writer.writerows(self.rows)
8595
8598
  return True
8596
8599
  except IOError as e:
8597
8600
  stderrErrorMsg(e)
@@ -9008,17 +9011,13 @@ class CSVPrintFile():
9008
9011
  normalizeSortHeaders()
9009
9012
  if self.outputTranspose:
9010
9013
  newRows = []
9011
- pivotKey = titlesList[0]
9012
- newTitlesList = [pivotKey]
9013
- newTitlesSet = set(newTitlesList)
9014
- for title in titlesList[1:]:
9015
- newRow = {pivotKey: title}
9014
+ newTitlesList = [i for i in range(len(self.rows)+1)]
9015
+ for title in titlesList:
9016
+ i = 0
9017
+ newRow = {i: title}
9016
9018
  for row in self.rows:
9017
- pivotValue = row[pivotKey]
9018
- if pivotValue not in newTitlesSet:
9019
- newTitlesSet.add(pivotValue)
9020
- newTitlesList.append(pivotValue)
9021
- newRow[pivotValue] = row.get(title)
9019
+ i += 1
9020
+ newRow[i] = row.get(title)
9022
9021
  newRows.append(newRow)
9023
9022
  titlesList = newTitlesList
9024
9023
  self.rows = newRows
@@ -28183,75 +28182,171 @@ def doDeleteChromePolicy():
28183
28182
  except (GAPI.notFound, GAPI.permissionDenied, GAPI.invalidArgument, GAPI.serviceNotAvailable, GAPI.quotaExceeded) as e:
28184
28183
  entityActionFailedWarning(kvList, str(e))
28185
28184
 
28186
- CHROME_SCHEMA_TYPE_MESSAGE = {
28187
- 'chrome.users.AutoUpdateCheckPeriodNew':
28188
- {'autoupdatecheckperiodminutesnew':
28189
- {'casedField': 'autoUpdateCheckPeriodMinutesNew',
28190
- 'type': 'duration', 'minVal': 1, 'maxVal': 720, 'scale': 60}},
28185
+ CHROME_SCHEMA_SPECIAL_CASES = {
28191
28186
  'chrome.users.AutoUpdateCheckPeriodNewV2':
28192
28187
  {'autoupdatecheckperiodminutesnew':
28193
28188
  {'casedField': 'autoUpdateCheckPeriodMinutesNew',
28194
- 'type': 'duration', 'minVal': 1, 'maxVal': 720, 'scale': 60}},
28195
- 'chrome.users.BrowserSwitcherDelayDuration':
28189
+ 'type': 'duration', 'minVal': 1, 'maxVal': 720}},
28190
+ 'chrome.users.Avatar':
28191
+ {'useravatarimage':
28192
+ {'casedField': 'userAvatarImage',
28193
+ 'type': 'downloadUri'}},
28194
+ 'chrome.users.BrowserSwitcherDelayDurationV2':
28196
28195
  {'browserswitcherdelayduration':
28197
28196
  {'casedField': 'browserSwitcherDelayDuration',
28198
- 'type': 'duration', 'minVal': 0, 'maxVal': 30, 'scale': 1}},
28197
+ 'type': 'duration', 'minVal': 0, 'maxVal': 30}},
28198
+ 'chrome.users.BrowsingDataLifetimeV2':
28199
+ {'browsinghistoryttl':
28200
+ {'casedField': 'browsingHistoryTtl',
28201
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28202
+ 'downloadhistoryttl':
28203
+ {'casedField': 'downloadHistoryTtl',
28204
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28205
+ 'cookiesandothersitedatattl':
28206
+ {'casedField': 'cookiesAndOtherSiteDataTtl',
28207
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28208
+ 'cachedimagesandfilesttl':
28209
+ {'casedField': 'cachedImagesAndFilesTtl',
28210
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28211
+ 'passwordsigninttl':
28212
+ {'casedField': 'passwordSigninTtl',
28213
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28214
+ 'autofillttl':
28215
+ {'casedField': 'autofillTtl',
28216
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28217
+ 'sitesettingsttl':
28218
+ {'casedField': 'siteSettingsTtl',
28219
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28220
+ 'hostedappdatattl':
28221
+ {'casedField': 'hostedAppDataTtl',
28222
+ 'type': 'duration', 'minVal': 1, 'maxVal': None}},
28199
28223
  'chrome.users.CloudReportingUploadFrequencyV2':
28200
28224
  {'cloudreportinguploadfrequency':
28201
28225
  {'casedField': 'cloudReportingUploadFrequency',
28202
- 'type': 'count', 'minVal': 3, 'maxVal': 24, 'scale': 1}},
28203
- 'chrome.users.FetchKeepaliveDurationSecondsOnShutdown':
28226
+ 'type': 'duration', 'minVal': 3, 'maxVal': 24}},
28227
+ 'chrome.users.FetchKeepaliveDurationSecondsOnShutdownV2':
28204
28228
  {'fetchkeepalivedurationsecondsonshutdown':
28205
28229
  {'casedField': 'fetchKeepaliveDurationSecondsOnShutdown',
28206
- 'type': 'duration', 'minVal': 0, 'maxVal': 5, 'scale': 1}},
28207
- 'chrome.users.MaxInvalidationFetchDelay':
28230
+ 'type': 'duration', 'minVal': 0, 'maxVal': 5}},
28231
+ 'chrome.users.MaxInvalidationFetchDelayV2':
28208
28232
  {'maxinvalidationfetchdelay':
28209
28233
  {'casedField': 'maxInvalidationFetchDelay',
28210
- 'type': 'duration', 'minVal': 1, 'maxVal': 30, 'scale': 1, 'default': 10}},
28234
+ 'type': 'duration', 'minVal': 1, 'maxVal': 30, 'default': 10}},
28211
28235
  'chrome.users.PrintingMaxSheetsAllowed':
28212
28236
  {'printingmaxsheetsallowednullable':
28213
28237
  {'casedField': 'printingMaxSheetsAllowedNullable',
28214
- 'type': 'value', 'minVal': 1, 'maxVal': None, 'scale': 1}},
28215
- 'chrome.users.PrintJobHistoryExpirationPeriodNew':
28238
+ 'type': 'value', 'minVal': 1, 'maxVal': None}},
28239
+ 'chrome.users.PrintJobHistoryExpirationPeriodNewV2':
28216
28240
  {'printjobhistoryexpirationperioddaysnew':
28217
28241
  {'casedField': 'printJobHistoryExpirationPeriodDaysNew',
28218
- 'type': 'duration', 'minVal': -1, 'maxVal': None, 'scale': 86400}},
28242
+ 'type': 'duration', 'minVal': -1, 'maxVal': None}},
28219
28243
  'chrome.users.RelaunchNotificationWithDurationV2':
28220
28244
  {'relaunchnotificationperiodduration':
28221
28245
  {'casedField': 'relaunchNotificationPeriodDuration',
28222
- 'type': 'duration', 'minVal': -1, 'maxVal': None, 'scale': 3600}},
28223
- 'chrome.users.SecurityTokenSessionSettings':
28246
+ 'type': 'duration', 'minVal': -1, 'maxVal': None}},
28247
+ 'chrome.users.SecurityTokenSessionSettingsV2':
28224
28248
  {'securitytokensessionnotificationseconds':
28225
28249
  {'casedField': 'securityTokenSessionNotificationSeconds',
28226
- 'type': 'duration', 'minVal': 0, 'maxVal': 9999, 'scale': 1}},
28227
- 'chrome.users.SessionLength':
28250
+ 'type': 'duration', 'minVal': 0, 'maxVal': 9999}},
28251
+ 'chrome.users.SessionLengthV2':
28228
28252
  {'sessiondurationlimit':
28229
28253
  {'casedField': 'sessionDurationLimit',
28230
- 'type': 'duration', 'minVal': 1, 'maxVal': 1440, 'scale': 60}},
28254
+ 'type': 'duration', 'minVal': 1, 'maxVal': 1440}},
28231
28255
  'chrome.users.UpdatesSuppressed':
28232
28256
  {'updatessuppresseddurationmin':
28233
28257
  {'casedField': 'updatesSuppressedDurationMin',
28234
- 'type': 'count', 'minVal': 1, 'maxVal': 1440, 'scale': 1},
28258
+ 'type': 'count', 'minVal': 1, 'maxVal': 1440},
28235
28259
  'updatessuppressedstarttime':
28236
28260
  {'casedField': 'updatesSuppressedStartTime',
28237
28261
  'type': 'timeOfDay'}},
28238
- 'chrome.devices.managedguest.Avatar':
28239
- {'useravatarimage':
28240
- {'casedField': 'userAvatarImage',
28241
- 'type': 'downloadUri'}},
28242
- 'chrome.devices.managedguest.Wallpaper':
28262
+ 'chrome.users.Wallpaper':
28243
28263
  {'wallpaperimage':
28244
28264
  {'casedField': 'wallpaperImage',
28245
28265
  'type': 'downloadUri'}},
28266
+ 'chrome.devices.EnableReportUploadFrequencyV2':
28267
+ {'reportdeviceuploadfrequency':
28268
+ {'casedField': 'reportDeviceUploadFrequency',
28269
+ 'type': 'duration', 'minVal': 60, 'maxVal': 25379}},
28270
+ 'chrome.devices.ScheduledRebootDurationV2':
28271
+ {'uptimelimitduration':
28272
+ {'casedField': 'uptimeLimitDuration',
28273
+ 'type': 'duration', 'minVal': 1, 'maxVal': 365}},
28246
28274
  'chrome.devices.SignInWallpaperImage':
28247
28275
  {'devicewallpaperimage':
28248
28276
  {'casedField': 'deviceWallpaperImage',
28249
28277
  'type': 'downloadUri'}},
28250
- 'chrome.users.Avatar':
28278
+ 'chrome.devices.kiosk.AcPowerSettingsV2':
28279
+ {'acidletimeout':
28280
+ {'casedField': 'acIdleTimeout',
28281
+ 'type': 'duration', 'minVal': 1, 'maxVal': 35000},
28282
+ 'acwarningtimeout':
28283
+ {'casedField': 'acWarningTimeout',
28284
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000},
28285
+ 'acdimtimeout':
28286
+ {'casedField': 'acDimTimeout',
28287
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000},
28288
+ 'acscreenofftimeout':
28289
+ {'casedField': 'acScreenOffTimeout',
28290
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000}},
28291
+ 'chrome.devices.kiosk.BatteryPowerSettingsV2':
28292
+ {'batteryidletimeout':
28293
+ {'casedField': 'batteryIdleTimeout',
28294
+ 'type': 'duration', 'minVal': 1, 'maxVal': 35000},
28295
+ 'batterywarningtimeout':
28296
+ {'casedField': 'batteryWarningTimeout',
28297
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000},
28298
+ 'batterydimtimeout':
28299
+ {'casedField': 'batteryDimTimeout',
28300
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000},
28301
+ 'batteryscreenofftimeout':
28302
+ {'casedField': 'batteryScreenOffTimeout',
28303
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000}},
28304
+ 'chrome.devices.managedguest.Avatar':
28251
28305
  {'useravatarimage':
28252
28306
  {'casedField': 'userAvatarImage',
28253
28307
  'type': 'downloadUri'}},
28254
- 'chrome.users.Wallpaper':
28308
+ 'chrome.devices.managedguest.BrowsingDataLifetimeV2':
28309
+ {'browsinghistoryttl':
28310
+ {'casedField': 'browsingHistoryTtl',
28311
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28312
+ 'downloadhistoryttl':
28313
+ {'casedField': 'downloadHistoryTtl',
28314
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28315
+ 'cookiesandothersitedatattl':
28316
+ {'casedField': 'cookiesAndOtherSiteDataTtl',
28317
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28318
+ 'cachedimagesandfilesttl':
28319
+ {'casedField': 'cachedImagesAndFilesTtl',
28320
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28321
+ 'passwordsigninttl':
28322
+ {'casedField': 'passwordSigninTtl',
28323
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28324
+ 'autofillttl':
28325
+ {'casedField': 'autofillTtl',
28326
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28327
+ 'sitesettingsttl':
28328
+ {'casedField': 'siteSettingsTtl',
28329
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28330
+ 'hostedappdatattl':
28331
+ {'casedField': 'hostedAppDataTtl',
28332
+ 'type': 'duration', 'minVal': 1, 'maxVal': None}},
28333
+ 'chrome.devices.managedguest.MaxInvalidationFetchDelayV2':
28334
+ {'maxinvalidationfetchdelay':
28335
+ {'casedField': 'maxInvalidationFetchDelay',
28336
+ 'type': 'duration', 'minVal': 1, 'maxVal': 30, 'default': 10}},
28337
+ 'chrome.devices.managedguest.PrintJobHistoryExpirationPeriodNewV2':
28338
+ {'printjobhistoryexpirationperioddaysnew':
28339
+ {'casedField': 'printJobHistoryExpirationPeriodDaysNew',
28340
+ 'type': 'duration', 'minVal': -1, 'maxVal': None}},
28341
+ 'chrome.devices.managedguest.SecurityTokenSessionSettingsV2':
28342
+ {'securitytokensessionnotificationseconds':
28343
+ {'casedField': 'securityTokenSessionNotificationSeconds',
28344
+ 'type': 'duration', 'minVal': 0, 'maxVal': 9999}},
28345
+ 'chrome.devices.managedguest.SessionLengthV2':
28346
+ {'sessiondurationlimit':
28347
+ {'casedField': 'sessionDurationLimit',
28348
+ 'type': 'duration', 'minVal': 1, 'maxVal': 1440}},
28349
+ 'chrome.devices.managedguest.Wallpaper':
28255
28350
  {'wallpaperimage':
28256
28351
  {'casedField': 'wallpaperImage',
28257
28352
  'type': 'downloadUri'}},
@@ -28266,9 +28361,7 @@ CHROME_TARGET_VERSION_PATTERN = re.compile(r'^(\d{1,4}\.){1,4}$')
28266
28361
  # [(printerid <PrinterID>)|(appid <AppID>)]
28267
28362
  def doUpdateChromePolicy():
28268
28363
  def getSpecialVtypeValue(vtype, value):
28269
- if vtype == 'duration':
28270
- return {vtype: f'{value}s'}
28271
- if vtype in {'value', 'downloadUri'}:
28364
+ if vtype in {'duration', 'value', 'downloadUri'}:
28272
28365
  return {vtype: value}
28273
28366
  if vtype == 'count':
28274
28367
  return value
@@ -28326,8 +28419,8 @@ def doUpdateChromePolicy():
28326
28419
  for field in jsonData.get('fields', []):
28327
28420
  casedField = field['name']
28328
28421
  lowerField = casedField.lower()
28329
- # Handle TYPE_MESSAGE fields with durations, values, counts and timeOfDay as special cases
28330
- tmschema = CHROME_SCHEMA_TYPE_MESSAGE.get(schemaName, {}).get(lowerField)
28422
+ # Handle fields with durations, values, counts and timeOfDay as special cases
28423
+ tmschema = CHROME_SCHEMA_SPECIAL_CASES.get(schemaName, {}).get(lowerField)
28331
28424
  if tmschema:
28332
28425
  body['requests'][-1]['policyValue']['value'][casedField] = getSpecialVtypeValue(tmschema['type'], field['value'])
28333
28426
  body['requests'][-1]['updateMask'] += f'{casedField},'
@@ -28363,8 +28456,8 @@ def doUpdateChromePolicy():
28363
28456
  body['requests'][-1]['policyValue']['value'][casedField] = value
28364
28457
  body['requests'][-1]['updateMask'] += f'{casedField},'
28365
28458
  break
28366
- # Handle TYPE_MESSAGE fields with durations, values, counts and timeOfDay as special cases
28367
- tmschema = CHROME_SCHEMA_TYPE_MESSAGE.get(schemaName, {}).get(field)
28459
+ # Handle fields with durations, values, counts and timeOfDay as special cases
28460
+ tmschema = CHROME_SCHEMA_SPECIAL_CASES.get(schemaName, {}).get(field)
28368
28461
  if tmschema:
28369
28462
  casedField = tmschema['casedField']
28370
28463
  vtype = tmschema['type']
@@ -28372,9 +28465,9 @@ def doUpdateChromePolicy():
28372
28465
  value = getString(Cmd.OB_STRING)
28373
28466
  elif vtype != 'timeOfDay':
28374
28467
  if 'default' not in tmschema:
28375
- value = getInteger(minVal=tmschema['minVal'], maxVal=tmschema['maxVal'])*tmschema['scale']
28468
+ value = getInteger(minVal=tmschema['minVal'], maxVal=tmschema['maxVal'])
28376
28469
  else:
28377
- value = getIntegerEmptyAllowed(minVal=tmschema['minVal'], maxVal=tmschema['maxVal'], default=tmschema['default'])*tmschema['scale']
28470
+ value = getIntegerEmptyAllowed(minVal=tmschema['minVal'], maxVal=tmschema['maxVal'], default=tmschema['default'])
28378
28471
  else:
28379
28472
  value = getHHMM()
28380
28473
  body['requests'][-1]['policyValue']['value'][casedField] = getSpecialVtypeValue(vtype, value)
@@ -28507,20 +28600,14 @@ def doPrintShowChromePolicies():
28507
28600
  'chrome.users.apps.ManagedConfiguration'} and 'managedConfiguration' in values:
28508
28601
  values['managedConfiguration'] = json.dumps(values['managedConfiguration'], ensure_ascii=False).replace('\\n', '').replace('\\"', '"')[1:-1]
28509
28602
  for setting, value in values.items():
28510
- # Handle TYPE_MESSAGE fields with durations, values, counts and timeOfDay as special cases
28511
- schema = CHROME_SCHEMA_TYPE_MESSAGE.get(name, {}).get(setting.lower())
28603
+ # Handle fields with durations, values, counts and timeOfDay as special cases
28604
+ schema = CHROME_SCHEMA_SPECIAL_CASES.get(name, {}).get(setting.lower())
28512
28605
  if schema and setting == schema['casedField']:
28513
28606
  vtype = schema['type']
28514
- if vtype in {'duration', 'value'}:
28607
+ if vtype in {'duration', 'value', 'downloadUri'}:
28515
28608
  value = value.get(vtype, '')
28516
- if value:
28517
- if value.endswith('s'):
28518
- value = value[:-1]
28519
- value = int(value) // schema['scale']
28520
28609
  elif vtype == 'count':
28521
28610
  pass
28522
- elif vtype == 'downloadUri':
28523
- value = value.get(vtype, '')
28524
28611
  else: #timeOfDay
28525
28612
  hours = value.get(vtype, {}).get('hours', 0)
28526
28613
  minutes = value.get(vtype, {}).get('minutes', 0)
@@ -40758,6 +40845,12 @@ VAULT_QUERY_ARGS = [
40758
40845
  ] + list(VAULT_SEARCH_METHODS_MAP.keys())
40759
40846
 
40760
40847
  def _buildVaultQuery(myarg, query, corpusArgumentMap):
40848
+ def _getQueryList(obNameList):
40849
+ itemList = getString(obNameList)
40850
+ if itemList != 'select':
40851
+ return itemList.replace(',', ' ').split()
40852
+ return getEntityList(obNameList)
40853
+
40761
40854
  if not query:
40762
40855
  query['dataScope'] = 'ALL_DATA'
40763
40856
  if myarg == 'corpus':
@@ -40773,11 +40866,11 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
40773
40866
  elif searchMethod == 'ORG_UNIT':
40774
40867
  query['orgUnitInfo'] = {'orgUnitId': getOrgUnitId()[1]}
40775
40868
  elif searchMethod == 'SHARED_DRIVE':
40776
- query['sharedDriveInfo'] = {'sharedDriveIds': getString(Cmd.OB_SHAREDDRIVE_ID_LIST).replace(',', ' ').split()}
40869
+ query['sharedDriveInfo'] = {'sharedDriveIds': _getQueryList(Cmd.OB_SHAREDDRIVE_ID_LIST)}
40777
40870
  elif searchMethod == 'ROOM':
40778
- query['hangoutsChatInfo'] = {'roomId': getString(Cmd.OB_ROOM_LIST).replace(',', ' ').split()}
40871
+ query['hangoutsChatInfo'] = {'roomId': _getQueryList(Cmd.OB_CHAT_SPACE_LIST)}
40779
40872
  elif searchMethod == 'SITES_URL':
40780
- query['sitesUrlInfo'] = {'urls': getString(Cmd.OB_URL_LIST).replace(',', ' ').split()}
40873
+ query['sitesUrlInfo'] = {'urls': _getQueryList(Cmd.OB_URL_LIST)}
40781
40874
  elif myarg == 'scope':
40782
40875
  query['dataScope'] = getChoice(VAULT_EXPORT_DATASCOPE_MAP, mapChoice=True)
40783
40876
  elif myarg == 'terms':
@@ -40835,7 +40928,9 @@ def _validateVaultQuery(body, corpusArgumentMap):
40835
40928
 
40836
40929
  # gam create vaultexport|export matter <MatterItem> [name <String>] corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
40837
40930
  # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
40838
- # (shareddrives|teamdrives <TeamDriveIDList>) | (rooms <RoomList>) | (sitesurl <URLList>)
40931
+ # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
40932
+ # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
40933
+ # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
40839
40934
  # [scope <all_data|held_data|unprocessed_data>]
40840
40935
  # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
40841
40936
  # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
@@ -42393,6 +42488,9 @@ PRINT_VAULT_COUNTS_TITLES = ['account', 'count', 'error']
42393
42488
  # gam print vaultcounts [todrive <ToDriveAttributes>*]
42394
42489
  # matter <MatterItem> corpus mail|groups
42395
42490
  # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
42491
+ # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
42492
+ # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
42493
+ # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
42396
42494
  # [scope <all_data|held_data|unprocessed_data>]
42397
42495
  # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
42398
42496
  # [excludedrafts <Boolean>]