gam7 7.22.4__tar.gz → 7.22.6__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 (303) hide show
  1. {gam7-7.22.4 → gam7-7.22.6}/PKG-INFO +1 -1
  2. {gam7-7.22.4 → gam7-7.22.6}/src/GamCommands.txt +45 -10
  3. {gam7-7.22.4 → gam7-7.22.6}/src/GamUpdate.txt +50 -0
  4. {gam7-7.22.4 → gam7-7.22.6}/src/gam/__init__.py +157 -40
  5. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glclargs.py +1 -0
  6. {gam7-7.22.4 → gam7-7.22.6}/wiki/Basic-Items.md +1 -0
  7. {gam7-7.22.4 → gam7-7.22.6}/wiki/GamUpdates.md +24 -0
  8. {gam7-7.22.4 → gam7-7.22.6}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +1 -1
  9. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Permissions.md +1 -0
  10. {gam7-7.22.4 → gam7-7.22.6}/wiki/Vault-Takeout.md +48 -15
  11. {gam7-7.22.4 → gam7-7.22.6}/wiki/Version-and-Help.md +3 -3
  12. {gam7-7.22.4 → gam7-7.22.6}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  13. {gam7-7.22.4 → gam7-7.22.6}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  14. {gam7-7.22.4 → gam7-7.22.6}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  15. {gam7-7.22.4 → gam7-7.22.6}/.github/ISSUE_TEMPLATE.txt +0 -0
  16. {gam7-7.22.4 → gam7-7.22.6}/.github/actions/decrypt.sh +0 -0
  17. {gam7-7.22.4 → gam7-7.22.6}/.github/actions/entitlements.plist +0 -0
  18. {gam7-7.22.4 → gam7-7.22.6}/.github/actions/package_exclusions.txt +0 -0
  19. {gam7-7.22.4 → gam7-7.22.6}/.github/stale.yml +0 -0
  20. {gam7-7.22.4 → gam7-7.22.6}/.github/workflows/build.yml +0 -0
  21. {gam7-7.22.4 → gam7-7.22.6}/.github/workflows/codeql-analysis.yml +0 -0
  22. {gam7-7.22.4 → gam7-7.22.6}/.github/workflows/get-cacerts.yml +0 -0
  23. {gam7-7.22.4 → gam7-7.22.6}/.github/workflows/pushwiki.yml +0 -0
  24. {gam7-7.22.4 → gam7-7.22.6}/.github/workflows/pypi.yml +0 -0
  25. {gam7-7.22.4 → gam7-7.22.6}/LICENSE +0 -0
  26. {gam7-7.22.4 → gam7-7.22.6}/README.md +0 -0
  27. {gam7-7.22.4 → gam7-7.22.6}/pyproject.toml +0 -0
  28. {gam7-7.22.4 → gam7-7.22.6}/src/.gitignore +0 -0
  29. {gam7-7.22.4 → gam7-7.22.6}/src/LICENSE +0 -0
  30. {gam7-7.22.4 → gam7-7.22.6}/src/README.md +0 -0
  31. {gam7-7.22.4 → gam7-7.22.6}/src/callgam.py +0 -0
  32. {gam7-7.22.4 → gam7-7.22.6}/src/gam/__main__.py +0 -0
  33. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/__init__.py +0 -0
  34. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/auth.py +0 -0
  35. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/client.py +0 -0
  36. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/core.py +0 -0
  37. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/data.py +0 -0
  38. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/http.py +0 -0
  39. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/http_core.py +0 -0
  40. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/http_interface.py +0 -0
  41. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/mock_http.py +0 -0
  42. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/mock_http_core.py +0 -0
  43. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/mock_service.py +0 -0
  44. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/service.py +0 -0
  45. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/token_store.py +0 -0
  46. {gam7-7.22.4 → gam7-7.22.6}/src/gam/atom/url.py +0 -0
  47. {gam7-7.22.4 → gam7-7.22.6}/src/gam/cacerts.pem +0 -0
  48. {gam7-7.22.4 → gam7-7.22.6}/src/gam/cbcm-v1.1beta1.json +0 -0
  49. {gam7-7.22.4 → gam7-7.22.6}/src/gam/contactdelegation-v1.json +0 -0
  50. {gam7-7.22.4 → gam7-7.22.6}/src/gam/datastudio-v1.json +0 -0
  51. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/__init__.py +0 -0
  52. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glaction.py +0 -0
  53. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glapi.py +0 -0
  54. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glcfg.py +0 -0
  55. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glentity.py +0 -0
  56. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glgapi.py +0 -0
  57. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glgdata.py +0 -0
  58. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glglobals.py +0 -0
  59. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glindent.py +0 -0
  60. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glmsgs.py +0 -0
  61. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glskus.py +0 -0
  62. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/gluprop.py +0 -0
  63. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/glverlibs.py +0 -0
  64. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gamlib/yubikey.py +0 -0
  65. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/__init__.py +0 -0
  66. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/alt/__init__.py +0 -0
  67. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/alt/app_engine.py +0 -0
  68. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/alt/appengine.py +0 -0
  69. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/apps/__init__.py +0 -0
  70. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/apps/audit/__init__.py +0 -0
  71. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/apps/audit/service.py +0 -0
  72. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  73. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/apps/contacts/service.py +0 -0
  74. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/apps/service.py +0 -0
  75. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/service.py +0 -0
  76. {gam7-7.22.4 → gam7-7.22.6}/src/gam/gdata/urlfetch.py +0 -0
  77. {gam7-7.22.4 → gam7-7.22.6}/src/gam/meet-v2beta.json +0 -0
  78. {gam7-7.22.4 → gam7-7.22.6}/src/gam/serviceaccountlookup-v1.json +0 -0
  79. {gam7-7.22.4 → gam7-7.22.6}/src/gam-install.sh +0 -0
  80. {gam7-7.22.4 → gam7-7.22.6}/src/gam-setup.bat +0 -0
  81. {gam7-7.22.4 → gam7-7.22.6}/src/gam.exe.manifest +0 -0
  82. {gam7-7.22.4 → gam7-7.22.6}/src/gam.py +0 -0
  83. {gam7-7.22.4 → gam7-7.22.6}/src/gam.spec +0 -0
  84. {gam7-7.22.4 → gam7-7.22.6}/src/gam.wxs +0 -0
  85. {gam7-7.22.4 → gam7-7.22.6}/src/license.rtf +0 -0
  86. {gam7-7.22.4 → gam7-7.22.6}/src/tools/a_atleast_b.py +0 -0
  87. {gam7-7.22.4 → gam7-7.22.6}/src/tools/gen-wix-xml-filelist.py +0 -0
  88. {gam7-7.22.4 → gam7-7.22.6}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
  89. {gam7-7.22.4 → gam7-7.22.6}/src/tools/hooks/hook-httplib2.py +0 -0
  90. {gam7-7.22.4 → gam7-7.22.6}/src/tools/mkGamRef.py +0 -0
  91. {gam7-7.22.4 → gam7-7.22.6}/src/tools/openssl.props +0 -0
  92. {gam7-7.22.4 → gam7-7.22.6}/src/tools/ssd.mjs +0 -0
  93. {gam7-7.22.4 → gam7-7.22.6}/src/version_info.txt.in +0 -0
  94. {gam7-7.22.4 → gam7-7.22.6}/wiki/00scratch.md +0 -0
  95. {gam7-7.22.4 → gam7-7.22.6}/wiki/Addresses.md +0 -0
  96. {gam7-7.22.4 → gam7-7.22.6}/wiki/Administrators.md +0 -0
  97. {gam7-7.22.4 → gam7-7.22.6}/wiki/Alert-Center.md +0 -0
  98. {gam7-7.22.4 → gam7-7.22.6}/wiki/Aliases.md +0 -0
  99. {gam7-7.22.4 → gam7-7.22.6}/wiki/Authorization.md +0 -0
  100. {gam7-7.22.4 → gam7-7.22.6}/wiki/BNF-Syntax.md +0 -0
  101. {gam7-7.22.4 → gam7-7.22.6}/wiki/Bulk-Processing.md +0 -0
  102. {gam7-7.22.4 → gam7-7.22.6}/wiki/Business-Account-Management.md +0 -0
  103. {gam7-7.22.4 → gam7-7.22.6}/wiki/CSV-Input-Filtering.md +0 -0
  104. {gam7-7.22.4 → gam7-7.22.6}/wiki/CSV-Output-Filtering.md +0 -0
  105. {gam7-7.22.4 → gam7-7.22.6}/wiki/CSV-Special-Characters.md +0 -0
  106. {gam7-7.22.4 → gam7-7.22.6}/wiki/Calendars-Access.md +0 -0
  107. {gam7-7.22.4 → gam7-7.22.6}/wiki/Calendars-Events.md +0 -0
  108. {gam7-7.22.4 → gam7-7.22.6}/wiki/Calendars.md +0 -0
  109. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chat-Bot-Setup-Use.md +0 -0
  110. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chrome-AUE-Counts.md +0 -0
  111. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  112. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chrome-Installed-Apps.md +0 -0
  113. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  114. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chrome-Policies.md +0 -0
  115. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chrome-Printers.md +0 -0
  116. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chrome-Profile-Management.md +0 -0
  117. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chrome-Version-Counts.md +0 -0
  118. {gam7-7.22.4 → gam7-7.22.6}/wiki/Chrome-Version-History.md +0 -0
  119. {gam7-7.22.4 → gam7-7.22.6}/wiki/ChromeOS-Devices.md +0 -0
  120. {gam7-7.22.4 → gam7-7.22.6}/wiki/Classroom-Courses.md +0 -0
  121. {gam7-7.22.4 → gam7-7.22.6}/wiki/Classroom-Guardians.md +0 -0
  122. {gam7-7.22.4 → gam7-7.22.6}/wiki/Classroom-Invitations.md +0 -0
  123. {gam7-7.22.4 → gam7-7.22.6}/wiki/Classroom-Membership.md +0 -0
  124. {gam7-7.22.4 → gam7-7.22.6}/wiki/Classroom-StudentGroups.md +0 -0
  125. {gam7-7.22.4 → gam7-7.22.6}/wiki/Cloud-Channel.md +0 -0
  126. {gam7-7.22.4 → gam7-7.22.6}/wiki/Cloud-Identity-Devices.md +0 -0
  127. {gam7-7.22.4 → gam7-7.22.6}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  128. {gam7-7.22.4 → gam7-7.22.6}/wiki/Cloud-Identity-Groups.md +0 -0
  129. {gam7-7.22.4 → gam7-7.22.6}/wiki/Cloud-Identity-Policies.md +0 -0
  130. {gam7-7.22.4 → gam7-7.22.6}/wiki/Cloud-Storage.md +0 -0
  131. {gam7-7.22.4 → gam7-7.22.6}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  132. {gam7-7.22.4 → gam7-7.22.6}/wiki/Collections-of-Items.md +0 -0
  133. {gam7-7.22.4 → gam7-7.22.6}/wiki/Collections-of-Users.md +0 -0
  134. {gam7-7.22.4 → gam7-7.22.6}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  135. {gam7-7.22.4 → gam7-7.22.6}/wiki/Command-Line-Parsing.md +0 -0
  136. {gam7-7.22.4 → gam7-7.22.6}/wiki/Command-Logging-Progress.md +0 -0
  137. {gam7-7.22.4 → gam7-7.22.6}/wiki/Context-Aware-Access-Levels.md +0 -0
  138. {gam7-7.22.4 → gam7-7.22.6}/wiki/Customer.md +0 -0
  139. {gam7-7.22.4 → gam7-7.22.6}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  140. {gam7-7.22.4 → gam7-7.22.6}/wiki/Domain-SharedContacts.md +0 -0
  141. {gam7-7.22.4 → gam7-7.22.6}/wiki/Domains-Verification.md +0 -0
  142. {gam7-7.22.4 → gam7-7.22.6}/wiki/Domains.md +0 -0
  143. {gam7-7.22.4 → gam7-7.22.6}/wiki/Downloads-Installs.md +0 -0
  144. {gam7-7.22.4 → gam7-7.22.6}/wiki/Drive-File-Selection.md +0 -0
  145. {gam7-7.22.4 → gam7-7.22.6}/wiki/Drive-Items.md +0 -0
  146. {gam7-7.22.4 → gam7-7.22.6}/wiki/Drive-REST-API-v3.md +0 -0
  147. {gam7-7.22.4 → gam7-7.22.6}/wiki/Email-Audit-Monitor.md +0 -0
  148. {gam7-7.22.4 → gam7-7.22.6}/wiki/Find-File-Owner.md +0 -0
  149. {gam7-7.22.4 → gam7-7.22.6}/wiki/GAM-Public-Chat-Room.md +0 -0
  150. {gam7-7.22.4 → gam7-7.22.6}/wiki/GAM-Release-Process.md +0 -0
  151. {gam7-7.22.4 → gam7-7.22.6}/wiki/GAM-Return-Codes.md +0 -0
  152. {gam7-7.22.4 → gam7-7.22.6}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  153. {gam7-7.22.4 → gam7-7.22.6}/wiki/GAM7-FAQ.md +0 -0
  154. {gam7-7.22.4 → gam7-7.22.6}/wiki/GAM7-on-Android-Devices.md +0 -0
  155. {gam7-7.22.4 → gam7-7.22.6}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  156. {gam7-7.22.4 → gam7-7.22.6}/wiki/Global-Address-List.md +0 -0
  157. {gam7-7.22.4 → gam7-7.22.6}/wiki/Google-Data-Transfers.md +0 -0
  158. {gam7-7.22.4 → gam7-7.22.6}/wiki/Google-Network-Addresses.md +0 -0
  159. {gam7-7.22.4 → gam7-7.22.6}/wiki/Groups-Membership.md +0 -0
  160. {gam7-7.22.4 → gam7-7.22.6}/wiki/Groups.md +0 -0
  161. {gam7-7.22.4 → gam7-7.22.6}/wiki/HTTPS-Proxy.md +0 -0
  162. {gam7-7.22.4 → gam7-7.22.6}/wiki/Home.md +0 -0
  163. {gam7-7.22.4 → gam7-7.22.6}/wiki/How-to-Install-GAM7.md +0 -0
  164. {gam7-7.22.4 → gam7-7.22.6}/wiki/How-to-Uninstall-GAM7.md +0 -0
  165. {gam7-7.22.4 → gam7-7.22.6}/wiki/How-to-Update-GAM7.md +0 -0
  166. {gam7-7.22.4 → gam7-7.22.6}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  167. {gam7-7.22.4 → gam7-7.22.6}/wiki/Inbound-SSO.md +0 -0
  168. {gam7-7.22.4 → gam7-7.22.6}/wiki/Install-GAM-as-Python-Library.md +0 -0
  169. {gam7-7.22.4 → gam7-7.22.6}/wiki/Licenses.md +0 -0
  170. {gam7-7.22.4 → gam7-7.22.6}/wiki/List-Items.md +0 -0
  171. {gam7-7.22.4 → gam7-7.22.6}/wiki/List.md +0 -0
  172. {gam7-7.22.4 → gam7-7.22.6}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  173. {gam7-7.22.4 → gam7-7.22.6}/wiki/Mobile-Devices.md +0 -0
  174. {gam7-7.22.4 → gam7-7.22.6}/wiki/Organizational-Units.md +0 -0
  175. {gam7-7.22.4 → gam7-7.22.6}/wiki/Other-Resources.md +0 -0
  176. {gam7-7.22.4 → gam7-7.22.6}/wiki/Permission-Matches.md +0 -0
  177. {gam7-7.22.4 → gam7-7.22.6}/wiki/Python-Regular-Expressions.md +0 -0
  178. {gam7-7.22.4 → gam7-7.22.6}/wiki/README.md +0 -0
  179. {gam7-7.22.4 → gam7-7.22.6}/wiki/Rclone.md +0 -0
  180. {gam7-7.22.4 → gam7-7.22.6}/wiki/Reports.md +0 -0
  181. {gam7-7.22.4 → gam7-7.22.6}/wiki/Reseller.md +0 -0
  182. {gam7-7.22.4 → gam7-7.22.6}/wiki/Resources.md +0 -0
  183. {gam7-7.22.4 → gam7-7.22.6}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  184. {gam7-7.22.4 → gam7-7.22.6}/wiki/SSL-Root-CA-Certificates.md +0 -0
  185. {gam7-7.22.4 → gam7-7.22.6}/wiki/Schemas.md +0 -0
  186. {gam7-7.22.4 → gam7-7.22.6}/wiki/Scripts.md +0 -0
  187. {gam7-7.22.4 → gam7-7.22.6}/wiki/Send-Email.md +0 -0
  188. {gam7-7.22.4 → gam7-7.22.6}/wiki/Shared-Drives.md +0 -0
  189. {gam7-7.22.4 → gam7-7.22.6}/wiki/Sites.md +0 -0
  190. {gam7-7.22.4 → gam7-7.22.6}/wiki/Tag-Replace.md +0 -0
  191. {gam7-7.22.4 → gam7-7.22.6}/wiki/Todrive.md +0 -0
  192. {gam7-7.22.4 → gam7-7.22.6}/wiki/Unmanaged-Accounts.md +0 -0
  193. {gam7-7.22.4 → gam7-7.22.6}/wiki/Upgrade-Benefits.md +0 -0
  194. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Analytics-Admin.md +0 -0
  195. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Application-Specific-Passwords.md +0 -0
  196. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Backup-Verification-Codes.md +0 -0
  197. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Calendars-Access.md +0 -0
  198. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Calendars-Events.md +0 -0
  199. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Calendars.md +0 -0
  200. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Chat.md +0 -0
  201. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Classification-Labels.md +0 -0
  202. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Classroom-Profile.md +0 -0
  203. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Contacts-Delegates.md +0 -0
  204. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Contacts.md +0 -0
  205. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Deprovision.md +0 -0
  206. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Activity-Settings.md +0 -0
  207. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Cleanup.md +0 -0
  208. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Comments.md +0 -0
  209. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Copy-Move.md +0 -0
  210. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Files-Display.md +0 -0
  211. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Files-Manage.md +0 -0
  212. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Orphans.md +0 -0
  213. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Ownership.md +0 -0
  214. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Query.md +0 -0
  215. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Revisions.md +0 -0
  216. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Shortcuts.md +0 -0
  217. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Drive-Transfer.md +0 -0
  218. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Forms.md +0 -0
  219. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-CSE.md +0 -0
  220. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-Delegates.md +0 -0
  221. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-Filters.md +0 -0
  222. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-Forwarding.md +0 -0
  223. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-Labels.md +0 -0
  224. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  225. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-Profile.md +0 -0
  226. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-S-MIME.md +0 -0
  227. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  228. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Gmail-Settings.md +0 -0
  229. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Group-Membership.md +0 -0
  230. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Keep-Notes.md +0 -0
  231. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Looker-Studio.md +0 -0
  232. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Meet.md +0 -0
  233. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-People-Contacts-Profiles.md +0 -0
  234. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Photo.md +0 -0
  235. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Profile-Photo.md +0 -0
  236. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Profile-Sharing.md +0 -0
  237. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Shared-Drives.md +0 -0
  238. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  239. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Spreadsheets.md +0 -0
  240. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Tag-Manager.md +0 -0
  241. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Tasks.md +0 -0
  242. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Tokens.md +0 -0
  243. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-Web-Resources-and-Sites.md +0 -0
  244. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users-YouTube.md +0 -0
  245. {gam7-7.22.4 → gam7-7.22.6}/wiki/Users.md +0 -0
  246. {gam7-7.22.4 → gam7-7.22.6}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  247. {gam7-7.22.4 → gam7-7.22.6}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  248. {gam7-7.22.4 → gam7-7.22.6}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
  249. {gam7-7.22.4 → gam7-7.22.6}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  250. {gam7-7.22.4 → gam7-7.22.6}/wiki/_Sidebar.md +0 -0
  251. {gam7-7.22.4 → gam7-7.22.6}/wiki/gam.cfg.md +0 -0
  252. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
  253. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Android-Installation.md +0 -0
  254. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-BulkOperations.md +0 -0
  255. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-CalendarExamples.md +0 -0
  256. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Chat-Bot.md +0 -0
  257. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
  258. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
  259. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
  260. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
  261. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
  262. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
  263. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
  264. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
  265. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Command-Reference-Email.md +0 -0
  266. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
  267. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
  268. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Command-Reference-Users.md +0 -0
  269. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
  270. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  271. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
  272. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Custom-Schemas.md +0 -0
  273. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Data-Transfers.md +0 -0
  274. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-DomainVerification.md +0 -0
  275. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
  276. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-ExamplesCSV.md +0 -0
  277. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
  278. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
  279. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
  280. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  281. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-GAM-options-files.md +0 -0
  282. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
  283. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-GAM3CSVListings.md +0 -0
  284. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
  285. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
  286. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
  287. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
  288. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
  289. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Home.md +0 -0
  290. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  291. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
  292. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-LicenseExamples.md +0 -0
  293. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Managing-Admins.md +0 -0
  294. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
  295. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Managing-Devices.md +0 -0
  296. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
  297. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
  298. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Printers.md +0 -0
  299. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-ResellerCommands.md +0 -0
  300. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-SecurityExamples.md +0 -0
  301. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
  302. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  303. {gam7-7.22.4 → gam7-7.22.6}/wiki/legacy/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.22.4
3
+ Version: 7.22.6
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
@@ -729,6 +729,7 @@ If an item contains spaces, it should be surrounded by ".
729
729
  <DomainNameList> ::= "<DomainName>(,<DomainName>)*"
730
730
  <DriveFileACLRoleList> ::= "<DriveFileACLRole>(,<DriveFileACLRole>)*"
731
731
  <DriveFileACLTypeList> ::= "<DriveFileACLType>(,<DriveFileACLType>)*"
732
+ <DriveFileIDList> ::= "<DriveFileID>(,<DriveFileID>)*"
732
733
  <DriveFileList> ::= "<DriveFileItem>(,<DriveFileItem>)*"
733
734
  <DriveFilePermissionList> ::= "<DriveFilePermission>(,<DriveFilePermission>)*"
734
735
  <DriveFilePermissionIDList> ::= "<DriveFilePermissionID>(,<DriveFilePermissionID>)*"
@@ -5411,18 +5412,28 @@ gam show vaultmatters|matters [matterstate <MatterStateList>]
5411
5412
  [formatjson]
5412
5413
 
5413
5414
  gam print vaultcounts [todrive <ToDriveAttributes>*]
5414
- matter <MatterItem> corpus mail|groups
5415
- [(accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone]
5416
- [(shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
5417
- (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
5418
- (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))]
5415
+ matter <MatterItem> <QueryItem>
5416
+ [wait <Integer>]
5417
+ gam print vaultcounts [todrive <ToDriveAttributes>*]
5418
+ matter <MatterItem>
5419
+ corpus mail|groups
5419
5420
  [scope [all_data|held_data|unprocessed_data]]
5421
+ [(accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone]
5420
5422
  [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
5421
5423
  [excludedrafts <Boolean>]
5422
5424
  [wait <Integer>]
5423
5425
  gam print vaultcounts [todrive <ToDriveAttributes>*]
5424
5426
  matter <MatterItem> operation <String> [wait <Integer>]
5425
5427
 
5428
+ gam create vaultexport|export matter <MatterItem> [name <String>]
5429
+ vaultquery <QueryItem>
5430
+ [driveclientsideencryption any|encrypted|unencrypted]
5431
+ [includeaccessinfo <Boolean>]
5432
+ [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
5433
+ [showconfidentialmodecontent <Boolean>] [usenewexport <Boolean>] [exportlinkeddrivefiles <Boolean>]
5434
+ [format ics|mbox|pst|xml]
5435
+ [region any|europe|us] [showdetails|returnidonly]
5436
+
5426
5437
  gam create vaultexport|export matter <MatterItem> [name <String>] corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
5427
5438
  (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
5428
5439
  (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
@@ -5433,12 +5444,13 @@ gam create vaultexport|export matter <MatterItem> [name <String>] corpus calenda
5433
5444
  [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
5434
5445
  [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
5435
5446
  [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
5436
- [driveversiondate <Date>|<Time>] [includeaccessinfo <Boolean>]
5437
- [driveclientsideencryption any|encrypted|unencrypted]
5447
+ [driveversiondate <Date>|<Time>]
5438
5448
  [includerooms <Boolean>]
5449
+ (covereddata calllogs|textmessages|voicemails)*
5450
+ [driveclientsideencryption any|encrypted|unencrypted]
5451
+ [includeaccessinfo <Boolean>]
5439
5452
  [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
5440
5453
  [showconfidentialmodecontent <Boolean>] [usenewexport <Boolean>] [exportlinkeddrivefiles <Boolean>]
5441
- [covereddata calllogs|textmessages|voicemails]
5442
5454
  [format ics|mbox|pst|xml]
5443
5455
  [region any|europe|us] [showdetails|returnidonly]
5444
5456
  gam delete vaultexport|export <ExportItem> matter <MatterItem>
@@ -5501,14 +5513,14 @@ gam create vaulthold|hold matter <MatterItem> [name <String>] corpus calendar|dr
5501
5513
  [(accounts|groups|users <EmailItemList>) | (orgunit|org|ou <OrgUnit>)]
5502
5514
  [query <QueryVaultCorpus>]
5503
5515
  [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>]
5504
- [includerooms <Boolean>] [covereddata calllogs|textmessages|voicemails]
5516
+ [includerooms <Boolean>] (covereddata calllogs|textmessages|voicemails)*
5505
5517
  [includeshareddrives <Boolean>]
5506
5518
  [showdetails|returnidonly]
5507
5519
  gam update vaulthold|hold <HoldItem> matter <MatterItem>
5508
5520
  [([addaccounts|addgroups|addusers <EmailItemList>] [removeaccounts|removegroups|removeusers <EmailItemList>]) | (orgunit|org|ou <OrgUnit>)]
5509
5521
  [query <QueryVaultCorpus>]
5510
5522
  [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>]
5511
- [includerooms <Boolean>] [covereddata calllogs|textmessages|voicemails]
5523
+ [includerooms <Boolean>] (covereddata calllogs|textmessages|voicemails)*
5512
5524
  [includeshareddrives <Boolean>]
5513
5525
  [showdetails]
5514
5526
  gam delete vaulthold|hold <HoldItem> matter <MatterItem>
@@ -5548,6 +5560,29 @@ gam show vaultholds|holds [matters <MatterItemList>]
5548
5560
  gam <UserTypeEntity> print vaultholds|holds [todrive <ToDriveAttribute>*]
5549
5561
  gam <UserTypeEntity> show vaultholds|holds
5550
5562
 
5563
+ gam create vaultquery <MatterItem> [name <String>]
5564
+ corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
5565
+ [scope all_data|held_data|unprocessed_data]
5566
+ (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
5567
+ (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
5568
+ (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
5569
+ [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
5570
+ (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
5571
+ [driveversiondate <Date>|<Time>]
5572
+ [includerooms <Boolean>]
5573
+ (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
5574
+ [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
5575
+ [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
5576
+ [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
5577
+ (covereddata calllogs|textmessages|voicemails)*
5578
+ [shownames] [formatjson]
5579
+
5580
+ gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem"] [name <String>]
5581
+ [shownames] [formatjson]
5582
+
5583
+ gam delete vaultquery <QueryItem> matter <MatterItem>
5584
+ gam delete vaultquery <MatterItem> <QueryItem>
5585
+
5551
5586
  <VaultQueryFieldName> ::=
5552
5587
  createtime |
5553
5588
  displayname |
@@ -1,3 +1,53 @@
1
+ 7.22.06
2
+
3
+ Added commands to create, copy and delete Vault saved queries.
4
+ ```
5
+ gam create vaultquery <MatterItem> [name <String>]
6
+ corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
7
+ [scope all_data|held_data|unprocessed_data]
8
+ (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
9
+ (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
10
+ (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
11
+ [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
12
+ (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
13
+ [driveversiondate <Date>|<Time>]
14
+ [includerooms <Boolean>]
15
+ (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
16
+ [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
17
+ [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
18
+ [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
19
+ (covereddata calllogs|textmessages|voicemails)*
20
+ [shownames] [formatjson]
21
+
22
+ gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem"] [name <String>]
23
+ [shownames] [formatjson]
24
+
25
+ gam delete vaultquery <QueryItem> matter <MatterItem>
26
+ gam delete vaultquery <MatterItem> <QueryItem>
27
+ ```
28
+
29
+ Added a variant of `gam print vaultcounts` that gets its query parameters from a saved Vault query.
30
+ ```
31
+ gam print vaultcounts [todrive <ToDriveAttributes>*]
32
+ matter <MatterItem> <QueryItem>
33
+ [wait <Integer>]
34
+ ```
35
+
36
+ 7.22.05
37
+
38
+ Added a variant of `gam create vaultexport` that gets its query parameters from a saved Vault query.
39
+
40
+ ```
41
+ gam create vaultexport|export matter <MatterItem> [name <String>]
42
+ vaultquery <QueryItem>
43
+ [driveclientsideencryption any|encrypted|unencrypted]
44
+ [includeaccessinfo <Boolean>]
45
+ [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
46
+ [showconfidentialmodecontent <Boolean>] [usenewexport <Boolean>] [exportlinkeddrivefiles <Boolean>]
47
+ [format ics|mbox|pst|xml]
48
+ [region any|europe|us] [showdetails|returnidonly]
49
+ ```
50
+
1
51
  7.22.04
2
52
 
3
53
  Added a variant of `gam create vaulthold` that gets its parameters from a saved Vault query.
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
25
25
  """
26
26
 
27
27
  __author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
28
- __version__ = '7.22.04'
28
+ __version__ = '7.22.06'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -41716,6 +41716,7 @@ VAULT_SEARCH_METHODS_MAP = {
41716
41716
  'accounts': 'ACCOUNT',
41717
41717
  'chatspace': 'ROOM',
41718
41718
  'chatspaces': 'ROOM',
41719
+ 'documentids': 'DRIVE_DOCUMENT',
41719
41720
  'entireorg': 'ENTIRE_ORG',
41720
41721
  'everyone': 'ENTIRE_ORG',
41721
41722
  'org': 'ORG_UNIT',
@@ -41831,6 +41832,8 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41831
41832
  query['dataScope'] = 'ALL_DATA'
41832
41833
  if myarg == 'corpus':
41833
41834
  query['corpus'] = getChoice(corpusArgumentMap, mapChoice=True)
41835
+ elif myarg == 'scope':
41836
+ query['dataScope'] = getChoice(VAULT_EXPORT_DATASCOPE_MAP, mapChoice=True)
41834
41837
  elif myarg in VAULT_SEARCH_METHODS_MAP:
41835
41838
  if query.get('searchMethod'):
41836
41839
  Cmd.Backup()
@@ -41851,8 +41854,8 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41851
41854
  query['hangoutsChatInfo'] = {'roomId': roomIds}
41852
41855
  elif searchMethod == 'SITES_URL':
41853
41856
  query['sitesUrlInfo'] = {'urls': _getQueryList(Cmd.OB_URL_LIST)}
41854
- elif myarg == 'scope':
41855
- query['dataScope'] = getChoice(VAULT_EXPORT_DATASCOPE_MAP, mapChoice=True)
41857
+ elif searchMethod == 'DRIVE_DOCUMENT':
41858
+ query['driveDocumentInfo'] = {'documentIds': {'ids': _getQueryList(Cmd.OB_DRIVE_FILE_ID_LIST)}}
41856
41859
  elif myarg == 'terms':
41857
41860
  query['terms'] = getString(Cmd.OB_STRING)
41858
41861
  elif myarg in {'start', 'starttime'}:
@@ -41891,7 +41894,7 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41891
41894
  query['hangoutsChatOptions'] = {'includeRooms': getBoolean()}
41892
41895
  # mail
41893
41896
  elif myarg == 'excludedrafts':
41894
- query['mailOptions'] = {'excludeDrafts': getBoolean()}
41897
+ query.setdefault('mailOptions', {})['excludeDrafts'] = getBoolean()
41895
41898
  elif myarg == 'mailclientsideencryption':
41896
41899
  query.setdefault('mailOptions', {})['clientSideEncryptedOption'] = getChoice(VAULT_CSE_OPTION_MAP, mapChoice=True)
41897
41900
  # voice
@@ -41909,33 +41912,46 @@ def _validateVaultQuery(body, corpusArgumentMap):
41909
41912
  if body['query']['corpus'] != corpus:
41910
41913
  body['exportOptions'].pop(options, None)
41911
41914
 
41912
- # gam create vaultexport|export matter <MatterItem> [name <String>] corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
41913
- # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
41915
+ # gam create vaultexport|export matter <MatterItem> [name <String>]
41916
+ # vaultquery <QueryItem>
41917
+ # [driveclientsideencryption any|encrypted|unencrypted]
41918
+ # [includeaccessinfo <Boolean>]
41919
+ # [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
41920
+ # [showconfidentialmodecontent <Boolean>] [usenewexport <Boolean>] [exportlinkeddrivefiles <Boolean>]
41921
+ # [format ics|mbox|pst|xml]
41922
+ # [region any|europe|us] [showdetails|returnidonly]
41923
+ # gam create vaultexport|export matter <MatterItem> [name <String>]
41924
+ # corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
41925
+ # [scope all_data|held_data|unprocessed_data]
41926
+ # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
41927
+ # (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
41914
41928
  # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
41915
- # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
41916
- # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
41917
- # [scope <all_data|held_data|unprocessed_data>]
41929
+ # [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
41930
+ # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
41931
+ # [driveversiondate <Date>|<Time>]
41932
+ # [includerooms <Boolean>]
41933
+ # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
41918
41934
  # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
41919
41935
  # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
41920
41936
  # [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
41921
- # [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
41922
- # [driveversiondate <Date>|<Time>] [includeaccessinfo <Boolean>]
41937
+ # (covereddata calllogs|textmessages|voicemails)*
41923
41938
  # [driveclientsideencryption any|encrypted|unencrypted]
41924
- # [includerooms <Boolean>]
41939
+ # [includeaccessinfo <Boolean>]
41925
41940
  # [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
41926
41941
  # [showconfidentialmodecontent <Boolean>] [usenewexport <Boolean>] [exportlinkeddrivefiles <Boolean>]
41927
- # [covereddata calllogs|textmessages|voicemails]
41928
41942
  # [format ics|mbox|pst|xml]
41929
41943
  # [region any|europe|us] [showdetails|returnidonly]
41930
41944
  def doCreateVaultExport():
41931
41945
  v = buildGAPIObject(API.VAULT)
41932
41946
  matterId = None
41933
41947
  body = {'query': {'dataScope': 'ALL_DATA'}, 'exportOptions': {}}
41948
+ includeAccessInfo = None
41934
41949
  exportFormat = None
41950
+ formatLocation = None
41951
+ useNewExport = None
41935
41952
  showConfidentialModeContent = None
41936
41953
  exportLinkedDriveFiles = None
41937
41954
  returnIdOnly = showDetails = False
41938
- useNewExport = None
41939
41955
  while Cmd.ArgumentsRemaining():
41940
41956
  myarg = getArgument()
41941
41957
  if myarg == 'matter':
@@ -41943,23 +41959,23 @@ def doCreateVaultExport():
41943
41959
  body['matterId'] = matterId
41944
41960
  elif myarg == 'name':
41945
41961
  body['name'] = getString(Cmd.OB_STRING)
41962
+ elif matterId is not None and myarg == 'vaultquery':
41963
+ _, _, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
41946
41964
  elif myarg in VAULT_QUERY_ARGS:
41947
41965
  _buildVaultQuery(myarg, body['query'], VAULT_CORPUS_ARGUMENT_MAP)
41948
- elif myarg == 'usenewexport':
41949
- useNewExport = getBoolean()
41966
+ elif myarg == 'includeaccessinfo':
41967
+ includeAccessInfo = getBoolean()
41950
41968
  elif myarg == 'format':
41969
+ formatLocation = Cmd.Location()
41951
41970
  exportFormat = getChoice(VAULT_EXPORT_FORMAT_MAP, mapChoice=True)
41971
+ elif myarg == 'usenewexport':
41972
+ useNewExport = getBoolean()
41952
41973
  elif myarg == 'showconfidentialmodecontent':
41953
41974
  showConfidentialModeContent = getBoolean()
41954
41975
  elif myarg == 'exportlinkeddrivefiles':
41955
41976
  exportLinkedDriveFiles = getBoolean()
41956
41977
  elif myarg == 'region':
41957
41978
  body['exportOptions']['region'] = getChoice(VAULT_EXPORT_REGION_MAP, mapChoice=True)
41958
- elif myarg == 'includeaccessinfo':
41959
- body['exportOptions'].setdefault('driveOptions', {})['includeAccessInfo'] = getBoolean()
41960
- elif myarg == 'covereddata':
41961
- body['exportOptions'].setdefault('voiceOptions', {'coveredData': []})
41962
- body['exportOptions']['voiceOptions']['coveredData'].append(getChoice(VAULT_VOICE_COVERED_DATA_MAP, mapChoice=True))
41963
41979
  elif myarg == 'showdetails':
41964
41980
  showDetails = True
41965
41981
  returnIdOnly = False
@@ -41971,15 +41987,19 @@ def doCreateVaultExport():
41971
41987
  if not matterId:
41972
41988
  missingArgumentExit('matter')
41973
41989
  _validateVaultQuery(body, VAULT_CORPUS_ARGUMENT_MAP)
41974
- if exportFormat is not None:
41975
- if not exportFormat in VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']]:
41976
- invalidChoiceExit(exportFormat, VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']], False)
41977
- elif body['query']['corpus'] != 'DRIVE':
41978
- exportFormat = VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']][0]
41979
41990
  if 'name' not in body:
41980
41991
  body['name'] = f'GAM {body["query"]["corpus"]} Export - {ISOformatTimeStamp(todaysTime())}'
41981
41992
  optionsField = VAULT_CORPUS_OPTIONS_MAP[body['query']['corpus']]
41982
- if body['query']['corpus'] != 'DRIVE':
41993
+ if body['query']['corpus'] == 'DRIVE':
41994
+ if includeAccessInfo is not None:
41995
+ body['exportOptions'][optionsField] = {'includeAccessInfo': includeAccessInfo}
41996
+ else:
41997
+ if exportFormat is not None:
41998
+ if not exportFormat in VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']]:
41999
+ Cmd.SetLocation(formatLocation)
42000
+ invalidChoiceExit(exportFormat, VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']], False)
42001
+ else:
42002
+ exportFormat = VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']][0]
41983
42003
  body['exportOptions'][optionsField] = {'exportFormat': exportFormat}
41984
42004
  if body['query']['corpus'] == 'MAIL':
41985
42005
  if showConfidentialModeContent is not None:
@@ -42461,7 +42481,7 @@ def _showVaultHold(matterNameId, hold, cd, FJQC, k=0, kcount=0):
42461
42481
  showJSON(None, hold, timeObjects=VAULT_HOLD_TIME_OBJECTS)
42462
42482
  Ind.Decrement()
42463
42483
 
42464
- def _useVaultQuery(v, matterId, matterNameId, body):
42484
+ def _useVaultQueryForHold(v, matterId, matterNameId, body):
42465
42485
  _, _, _, query = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
42466
42486
  body['corpus'] = query['corpus']
42467
42487
  method = query.get('method')
@@ -42566,7 +42586,7 @@ def doCreateVaultHold():
42566
42586
  elif myarg == 'name':
42567
42587
  body['name'] = getString(Cmd.OB_STRING)
42568
42588
  elif matterId is not None and myarg == 'vaultquery':
42569
- _useVaultQuery(v, matterId, matterNameId, body)
42589
+ _useVaultQueryForHold(v, matterId, matterNameId, body)
42570
42590
  usedVaultQuery = True
42571
42591
  elif myarg == 'corpus':
42572
42592
  body['corpus'] = getChoice(VAULT_CORPUS_ARGUMENT_MAP, mapChoice=True)
@@ -43025,6 +43045,99 @@ def _showVaultQuery(matterNameId, query, cd, drive, FJQC, k=0, kcount=0):
43025
43045
  showJSON(None, query, timeObjects=VAULT_QUERY_TIME_OBJECTS)
43026
43046
  Ind.Decrement()
43027
43047
 
43048
+ def doCreateCopyVaultQuery(copyCmd):
43049
+ v = buildGAPIObject(API.VAULT)
43050
+ body = {'query': {'dataScope': 'ALL_DATA'}, 'displayName': ''}
43051
+ matterId, matterNameId = getMatterItem(v)
43052
+ if copyCmd:
43053
+ _, queryName, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
43054
+ targetId = None
43055
+ cd = drive = None
43056
+ FJQC = FormatJSONQuoteChar()
43057
+ while Cmd.ArgumentsRemaining():
43058
+ myarg = getArgument()
43059
+ if myarg == 'name':
43060
+ body['displayName'] = getString(Cmd.OB_STRING)
43061
+ elif copyCmd and myarg == 'targetmatter':
43062
+ targetId, targetNameId = getMatterItem(v)
43063
+ elif not copyCmd and myarg in VAULT_QUERY_ARGS:
43064
+ _buildVaultQuery(myarg, body['query'], VAULT_CORPUS_ARGUMENT_MAP)
43065
+ elif myarg == 'shownames':
43066
+ cd = buildGAPIObject(API.DIRECTORY)
43067
+ _, drive = buildGAPIServiceObject(API.DRIVE3, _getAdminEmail())
43068
+ if drive is None:
43069
+ return
43070
+ else:
43071
+ FJQC.GetFormatJSON(myarg)
43072
+ if copyCmd:
43073
+ if targetId is None:
43074
+ targetId = matterId
43075
+ targetNameId = matterNameId
43076
+ if not body['displayName']:
43077
+ body['displayName'] = f'Copy of {queryName}' if matterId == targetId else queryName
43078
+ resultId = targetId
43079
+ resultNameId = targetNameId
43080
+ else:
43081
+ if not body['displayName']:
43082
+ body['displayName'] = 'GAM {body["query"]["corpus"]} Query - {ISOformatTimeStamp(todaysTime())}'
43083
+ resultId = matterId
43084
+ resultNameId = matterNameId
43085
+ try:
43086
+ result = callGAPI(v.matters().savedQueries(), 'create',
43087
+ throwReasons=[GAPI.NOT_FOUND, GAPI.BAD_REQUEST, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT, GAPI.ALREADY_EXISTS],
43088
+ matterId=resultId, body=body)
43089
+ _showVaultQuery(resultNameId, result, cd, drive, FJQC)
43090
+ except (GAPI.notFound, GAPI.badRequest, GAPI.forbidden, GAPI.invalidArgument, GAPI.alreadyExists) as e:
43091
+ entityActionFailedWarning([Ent.VAULT_MATTER, resultNameId, Ent.VAULT_QUERY, body['displayName']], str(e))
43092
+
43093
+ # gam create vaultquery <MatterItem> [name <String>]
43094
+ # corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
43095
+ # [scope all_data|held_data|unprocessed_data]
43096
+ # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
43097
+ # (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
43098
+ # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
43099
+ # [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
43100
+ # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
43101
+ # [driveversiondate <Date>|<Time>]
43102
+ # [includerooms <Boolean>]
43103
+ # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
43104
+ # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
43105
+ # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
43106
+ # [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
43107
+ # (covereddata calllogs|textmessages|voicemails)*
43108
+ # [shownames] [formatjson]
43109
+ def doCreateVaultQuery():
43110
+ doCreateCopyVaultQuery(False)
43111
+
43112
+ # gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem"] [name <String>]
43113
+ # [shownames] [formatjson]
43114
+ def doCopyVaultQuery():
43115
+ doCreateCopyVaultQuery(True)
43116
+
43117
+ # gam delete vaultquery <QueryItem> matter <MatterItem>
43118
+ # gam delete vaultquery <MatterItem> <QueryItem>
43119
+ def doDeleteVaultQuery():
43120
+ v = buildGAPIObject(API.VAULT)
43121
+ if not Cmd.ArgumentIsAhead('matter'):
43122
+ matterId, matterNameId = getMatterItem(v)
43123
+ queryId, queryName, queryNameId, _ = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
43124
+ else:
43125
+ queryName = getString(Cmd.OB_QUERY_ITEM)
43126
+ while Cmd.ArgumentsRemaining():
43127
+ myarg = getArgument()
43128
+ if myarg == 'matter':
43129
+ matterId, matterNameId = getMatterItem(v)
43130
+ queryId, queryName, queryNameId, _ = convertQueryNameToID(v, queryName, matterId, matterNameId)
43131
+ else:
43132
+ unknownArgumentExit()
43133
+ try:
43134
+ callGAPI(v.matters().savedQueries(), 'delete',
43135
+ throwReasons=[GAPI.NOT_FOUND, GAPI.BAD_REQUEST, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT],
43136
+ matterId=matterId, savedQueryId=queryId)
43137
+ entityActionPerformed([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, queryNameId])
43138
+ except (GAPI.notFound, GAPI.badRequest, GAPI.forbidden, GAPI.invalidArgument) as e:
43139
+ entityActionFailedWarning([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, queryNameId], str(e))
43140
+
43028
43141
  VAULT_QUERY_FIELDS_CHOICE_MAP = {
43029
43142
  'createtime': 'createTime',
43030
43143
  'displayname': 'displayName',
@@ -43510,12 +43623,13 @@ def doPrintShowVaultMatters():
43510
43623
  PRINT_VAULT_COUNTS_TITLES = ['account', 'count', 'error']
43511
43624
 
43512
43625
  # gam print vaultcounts [todrive <ToDriveAttributes>*]
43513
- # matter <MatterItem> corpus mail|groups
43514
- # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
43515
- # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
43516
- # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
43517
- # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
43518
- # [scope <all_data|held_data|unprocessed_data>]
43626
+ # matter <MatterItem> <QueryItem>
43627
+ # [wait <Integer>]
43628
+ # gam print vaultcounts [todrive <ToDriveAttributes>*]
43629
+ # matter <MatterItem>
43630
+ # corpus mail|groups
43631
+ # [scope all_data|held_data|unprocessed_data]
43632
+ # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
43519
43633
  # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
43520
43634
  # [excludedrafts <Boolean>]
43521
43635
  # [wait <Integer>]
@@ -43526,18 +43640,19 @@ def doPrintVaultCounts():
43526
43640
  csvPF = CSVPrintFile(PRINT_VAULT_COUNTS_TITLES, 'sortall')
43527
43641
  matterId = name = None
43528
43642
  operationWait = 15
43529
- body = {'view': 'ALL'}
43530
- query = {}
43643
+ body = {'view': 'ALL', 'query': {}}
43531
43644
  while Cmd.ArgumentsRemaining():
43532
43645
  myarg = getArgument()
43533
43646
  if csvPF and myarg == 'todrive':
43534
43647
  csvPF.GetTodriveParameters()
43535
43648
  elif myarg == 'matter':
43536
- matterId, _ = getMatterItem(v)
43649
+ matterId, matterNameId = getMatterItem(v)
43650
+ elif matterId is not None and myarg == 'vaultquery':
43651
+ _, _, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
43537
43652
  elif myarg == 'operation':
43538
43653
  name = getString(Cmd.OB_STRING)
43539
43654
  elif myarg in VAULT_QUERY_ARGS:
43540
- _buildVaultQuery(myarg, query, VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
43655
+ _buildVaultQuery(myarg, body['query'], VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
43541
43656
  elif myarg == 'wait':
43542
43657
  operationWait = getInteger(minVal=1)
43543
43658
  else:
@@ -43548,7 +43663,6 @@ def doPrintVaultCounts():
43548
43663
  operation = {'name': name}
43549
43664
  doWait = False
43550
43665
  else:
43551
- body['query'] = query
43552
43666
  _validateVaultQuery(body, VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
43553
43667
  try:
43554
43668
  operation = callGAPI(v.matters(), 'count',
@@ -77963,6 +78077,7 @@ MAIN_ADD_CREATE_FUNCTIONS = {
77963
78077
  Cmd.ARG_VAULTEXPORT: doCreateVaultExport,
77964
78078
  Cmd.ARG_VAULTHOLD: doCreateVaultHold,
77965
78079
  Cmd.ARG_VAULTMATTER: doCreateVaultMatter,
78080
+ Cmd.ARG_VAULTQUERY: doCreateVaultQuery,
77966
78081
  Cmd.ARG_VERIFY: doCreateSiteVerification,
77967
78082
  }
77968
78083
 
@@ -78020,6 +78135,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
78020
78135
  {Cmd.ARG_SHAREDDRIVEACLS: doCopySyncSharedDriveACLs,
78021
78136
  Cmd.ARG_STORAGEBUCKET: doCopyCloudStorageBucket,
78022
78137
  Cmd.ARG_VAULTEXPORT: doCopyVaultExport,
78138
+ Cmd.ARG_VAULTQUERY: doCopyVaultQuery,
78023
78139
  }
78024
78140
  ),
78025
78141
  'create':
@@ -78084,6 +78200,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
78084
78200
  Cmd.ARG_VAULTEXPORT: doDeleteVaultExport,
78085
78201
  Cmd.ARG_VAULTHOLD: doDeleteVaultHold,
78086
78202
  Cmd.ARG_VAULTMATTER: doDeleteVaultMatter,
78203
+ Cmd.ARG_VAULTQUERY: doDeleteVaultQuery,
78087
78204
  }
78088
78205
  ),
78089
78206
  'download':
@@ -1216,6 +1216,7 @@ class GamCLArgs():
1216
1216
  OB_DOMAIN_NAME_LIST = 'DomainNameList'
1217
1217
  OB_DRIVE_FILE_ENTITY = 'DriveFileEntity'
1218
1218
  OB_DRIVE_FILE_ID = 'DriveFileID'
1219
+ OB_DRIVE_FILE_ID_LIST = 'DriveFileIDList'
1219
1220
  OB_DRIVE_FILE_NAME = 'DriveFileName'
1220
1221
  OB_DRIVE_FILE_PERMISSION_ENTITY = 'DriveFilePermissionEntity'
1221
1222
  OB_DRIVE_FILE_PERMISSION_ID = 'DriveFilePermissionID'
@@ -462,6 +462,7 @@
462
462
  See: https://support.google.com/mail/answer/7190
463
463
  <QueryGroup> ::= <String>
464
464
  See: https://developers.google.com/admin-sdk/directory/v1/guides/search-groups
465
+ <QueryItem> ::= <UniqueID>|<String>
465
466
  <QueryMemberRestrictions> ::= <String>
466
467
  See: https://cloud.google.com/identity/docs/reference/rest/v1beta1/SecuritySettings#MemberRestriction
467
468
  <QueryMobile> ::= <String>
@@ -10,6 +10,30 @@ 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.22.05
14
+
15
+ Added a variant of `gam create vaultexport` that gets its query parameters from a saved Vault query.
16
+
17
+ ```
18
+ gam create vaultexport|export matter <MatterItem> [name <String>]
19
+ vaultquery <QueryItem>
20
+ [driveclientsideencryption any|encrypted|unencrypted]
21
+ [includeaccessinfo <Boolean>]
22
+ [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
23
+ [showconfidentialmodecontent <Boolean>] [usenewexport <Boolean>] [exportlinkeddrivefiles <Boolean>]
24
+ [format ics|mbox|pst|xml]
25
+ [region any|europe|us] [showdetails|returnidonly]
26
+ ```
27
+
28
+ ### 7.22.04
29
+
30
+ Added a variant of `gam create vaulthold` that gets its parameters from a saved Vault query.
31
+ ```
32
+ gam create vaulthold matter <MatterItem> [name <String>]
33
+ vaultquery <QueryItem>
34
+ [showdetails|returnidonly]
35
+ ```
36
+
13
37
  ### 7.22.03
14
38
 
15
39
  Fix backwards compatability bug introduced in 7.22.00 for `gam print users` that changed `suspended`
@@ -252,7 +252,7 @@ writes the credentials into the file oauth2.txt.
252
252
  admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
253
253
  admin@server:/Users/admin$ gam version
254
254
  WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
255
- GAM 7.22.03 - https://github.com/GAM-team/GAM - pyinstaller
255
+ GAM 7.22.05 - https://github.com/GAM-team/GAM - pyinstaller
256
256
  GAM Team <google-apps-manager@googlegroups.com>
257
257
  Python 3.13.7 64-bit final
258
258
  MacOS Sequoia 15.6.1 x86_64
@@ -29,6 +29,7 @@
29
29
  ```
30
30
  <DomainName> ::= <String>(.<String>)+
31
31
  <EmailAddress> ::= <String>@<DomainName>
32
+ <JSONData> ::= (json [charset <Charset>] <String>) | (json file <FileName> [charset <Charset>]) |
32
33
  <UniqueID> ::= id:<String>
33
34
  <UserItem> ::= <EmailAddress>|<UniqueID>|<String>
34
35