gam7 7.22.7__tar.gz → 7.23.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gam7 might be problematic. Click here for more details.

Files changed (303) hide show
  1. {gam7-7.22.7 → gam7-7.23.0}/PKG-INFO +1 -1
  2. {gam7-7.22.7 → gam7-7.23.0}/src/GamUpdate.txt +12 -0
  3. {gam7-7.22.7 → gam7-7.23.0}/src/gam/__init__.py +20 -14
  4. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glcfg.py +4 -0
  5. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glentity.py +2 -0
  6. {gam7-7.22.7 → gam7-7.23.0}/wiki/GamUpdates.md +6 -0
  7. {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +1 -1
  8. {gam7-7.22.7 → gam7-7.23.0}/wiki/Reports.md +1 -1
  9. {gam7-7.22.7 → gam7-7.23.0}/wiki/Vault-Takeout.md +58 -15
  10. {gam7-7.22.7 → gam7-7.23.0}/wiki/Version-and-Help.md +3 -3
  11. {gam7-7.22.7 → gam7-7.23.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  12. {gam7-7.22.7 → gam7-7.23.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  13. {gam7-7.22.7 → gam7-7.23.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  14. {gam7-7.22.7 → gam7-7.23.0}/.github/ISSUE_TEMPLATE.txt +0 -0
  15. {gam7-7.22.7 → gam7-7.23.0}/.github/actions/decrypt.sh +0 -0
  16. {gam7-7.22.7 → gam7-7.23.0}/.github/actions/entitlements.plist +0 -0
  17. {gam7-7.22.7 → gam7-7.23.0}/.github/actions/package_exclusions.txt +0 -0
  18. {gam7-7.22.7 → gam7-7.23.0}/.github/stale.yml +0 -0
  19. {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/build.yml +0 -0
  20. {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/codeql-analysis.yml +0 -0
  21. {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/get-cacerts.yml +0 -0
  22. {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/pushwiki.yml +0 -0
  23. {gam7-7.22.7 → gam7-7.23.0}/.github/workflows/pypi.yml +0 -0
  24. {gam7-7.22.7 → gam7-7.23.0}/LICENSE +0 -0
  25. {gam7-7.22.7 → gam7-7.23.0}/README.md +0 -0
  26. {gam7-7.22.7 → gam7-7.23.0}/pyproject.toml +0 -0
  27. {gam7-7.22.7 → gam7-7.23.0}/src/.gitignore +0 -0
  28. {gam7-7.22.7 → gam7-7.23.0}/src/GamCommands.txt +0 -0
  29. {gam7-7.22.7 → gam7-7.23.0}/src/LICENSE +0 -0
  30. {gam7-7.22.7 → gam7-7.23.0}/src/README.md +0 -0
  31. {gam7-7.22.7 → gam7-7.23.0}/src/callgam.py +0 -0
  32. {gam7-7.22.7 → gam7-7.23.0}/src/gam/__main__.py +0 -0
  33. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/__init__.py +0 -0
  34. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/auth.py +0 -0
  35. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/client.py +0 -0
  36. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/core.py +0 -0
  37. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/data.py +0 -0
  38. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/http.py +0 -0
  39. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/http_core.py +0 -0
  40. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/http_interface.py +0 -0
  41. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/mock_http.py +0 -0
  42. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/mock_http_core.py +0 -0
  43. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/mock_service.py +0 -0
  44. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/service.py +0 -0
  45. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/token_store.py +0 -0
  46. {gam7-7.22.7 → gam7-7.23.0}/src/gam/atom/url.py +0 -0
  47. {gam7-7.22.7 → gam7-7.23.0}/src/gam/cacerts.pem +0 -0
  48. {gam7-7.22.7 → gam7-7.23.0}/src/gam/cbcm-v1.1beta1.json +0 -0
  49. {gam7-7.22.7 → gam7-7.23.0}/src/gam/contactdelegation-v1.json +0 -0
  50. {gam7-7.22.7 → gam7-7.23.0}/src/gam/datastudio-v1.json +0 -0
  51. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/__init__.py +0 -0
  52. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glaction.py +0 -0
  53. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glapi.py +0 -0
  54. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glclargs.py +0 -0
  55. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glgapi.py +0 -0
  56. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glgdata.py +0 -0
  57. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glglobals.py +0 -0
  58. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glindent.py +0 -0
  59. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glmsgs.py +0 -0
  60. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glskus.py +0 -0
  61. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/gluprop.py +0 -0
  62. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/glverlibs.py +0 -0
  63. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gamlib/yubikey.py +0 -0
  64. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/__init__.py +0 -0
  65. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/alt/__init__.py +0 -0
  66. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/alt/app_engine.py +0 -0
  67. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/alt/appengine.py +0 -0
  68. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/__init__.py +0 -0
  69. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
  70. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/audit/service.py +0 -0
  71. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  72. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/contacts/service.py +0 -0
  73. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/apps/service.py +0 -0
  74. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/service.py +0 -0
  75. {gam7-7.22.7 → gam7-7.23.0}/src/gam/gdata/urlfetch.py +0 -0
  76. {gam7-7.22.7 → gam7-7.23.0}/src/gam/meet-v2beta.json +0 -0
  77. {gam7-7.22.7 → gam7-7.23.0}/src/gam/serviceaccountlookup-v1.json +0 -0
  78. {gam7-7.22.7 → gam7-7.23.0}/src/gam-install.sh +0 -0
  79. {gam7-7.22.7 → gam7-7.23.0}/src/gam-setup.bat +0 -0
  80. {gam7-7.22.7 → gam7-7.23.0}/src/gam.exe.manifest +0 -0
  81. {gam7-7.22.7 → gam7-7.23.0}/src/gam.py +0 -0
  82. {gam7-7.22.7 → gam7-7.23.0}/src/gam.spec +0 -0
  83. {gam7-7.22.7 → gam7-7.23.0}/src/gam.wxs +0 -0
  84. {gam7-7.22.7 → gam7-7.23.0}/src/license.rtf +0 -0
  85. {gam7-7.22.7 → gam7-7.23.0}/src/tools/a_atleast_b.py +0 -0
  86. {gam7-7.22.7 → gam7-7.23.0}/src/tools/gen-wix-xml-filelist.py +0 -0
  87. {gam7-7.22.7 → gam7-7.23.0}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
  88. {gam7-7.22.7 → gam7-7.23.0}/src/tools/hooks/hook-httplib2.py +0 -0
  89. {gam7-7.22.7 → gam7-7.23.0}/src/tools/mkGamRef.py +0 -0
  90. {gam7-7.22.7 → gam7-7.23.0}/src/tools/openssl.props +0 -0
  91. {gam7-7.22.7 → gam7-7.23.0}/src/tools/ssd.mjs +0 -0
  92. {gam7-7.22.7 → gam7-7.23.0}/src/version_info.txt.in +0 -0
  93. {gam7-7.22.7 → gam7-7.23.0}/wiki/00scratch.md +0 -0
  94. {gam7-7.22.7 → gam7-7.23.0}/wiki/Addresses.md +0 -0
  95. {gam7-7.22.7 → gam7-7.23.0}/wiki/Administrators.md +0 -0
  96. {gam7-7.22.7 → gam7-7.23.0}/wiki/Alert-Center.md +0 -0
  97. {gam7-7.22.7 → gam7-7.23.0}/wiki/Aliases.md +0 -0
  98. {gam7-7.22.7 → gam7-7.23.0}/wiki/Authorization.md +0 -0
  99. {gam7-7.22.7 → gam7-7.23.0}/wiki/BNF-Syntax.md +0 -0
  100. {gam7-7.22.7 → gam7-7.23.0}/wiki/Basic-Items.md +0 -0
  101. {gam7-7.22.7 → gam7-7.23.0}/wiki/Bulk-Processing.md +0 -0
  102. {gam7-7.22.7 → gam7-7.23.0}/wiki/Business-Account-Management.md +0 -0
  103. {gam7-7.22.7 → gam7-7.23.0}/wiki/CSV-Input-Filtering.md +0 -0
  104. {gam7-7.22.7 → gam7-7.23.0}/wiki/CSV-Output-Filtering.md +0 -0
  105. {gam7-7.22.7 → gam7-7.23.0}/wiki/CSV-Special-Characters.md +0 -0
  106. {gam7-7.22.7 → gam7-7.23.0}/wiki/Calendars-Access.md +0 -0
  107. {gam7-7.22.7 → gam7-7.23.0}/wiki/Calendars-Events.md +0 -0
  108. {gam7-7.22.7 → gam7-7.23.0}/wiki/Calendars.md +0 -0
  109. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chat-Bot-Setup-Use.md +0 -0
  110. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-AUE-Counts.md +0 -0
  111. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  112. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Installed-Apps.md +0 -0
  113. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  114. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Policies.md +0 -0
  115. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Printers.md +0 -0
  116. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Profile-Management.md +0 -0
  117. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Version-Counts.md +0 -0
  118. {gam7-7.22.7 → gam7-7.23.0}/wiki/Chrome-Version-History.md +0 -0
  119. {gam7-7.22.7 → gam7-7.23.0}/wiki/ChromeOS-Devices.md +0 -0
  120. {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-Courses.md +0 -0
  121. {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-Guardians.md +0 -0
  122. {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-Invitations.md +0 -0
  123. {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-Membership.md +0 -0
  124. {gam7-7.22.7 → gam7-7.23.0}/wiki/Classroom-StudentGroups.md +0 -0
  125. {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Channel.md +0 -0
  126. {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Identity-Devices.md +0 -0
  127. {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  128. {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Identity-Groups.md +0 -0
  129. {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Identity-Policies.md +0 -0
  130. {gam7-7.22.7 → gam7-7.23.0}/wiki/Cloud-Storage.md +0 -0
  131. {gam7-7.22.7 → gam7-7.23.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  132. {gam7-7.22.7 → gam7-7.23.0}/wiki/Collections-of-Items.md +0 -0
  133. {gam7-7.22.7 → gam7-7.23.0}/wiki/Collections-of-Users.md +0 -0
  134. {gam7-7.22.7 → gam7-7.23.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  135. {gam7-7.22.7 → gam7-7.23.0}/wiki/Command-Line-Parsing.md +0 -0
  136. {gam7-7.22.7 → gam7-7.23.0}/wiki/Command-Logging-Progress.md +0 -0
  137. {gam7-7.22.7 → gam7-7.23.0}/wiki/Context-Aware-Access-Levels.md +0 -0
  138. {gam7-7.22.7 → gam7-7.23.0}/wiki/Customer.md +0 -0
  139. {gam7-7.22.7 → gam7-7.23.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  140. {gam7-7.22.7 → gam7-7.23.0}/wiki/Domain-SharedContacts.md +0 -0
  141. {gam7-7.22.7 → gam7-7.23.0}/wiki/Domains-Verification.md +0 -0
  142. {gam7-7.22.7 → gam7-7.23.0}/wiki/Domains.md +0 -0
  143. {gam7-7.22.7 → gam7-7.23.0}/wiki/Downloads-Installs.md +0 -0
  144. {gam7-7.22.7 → gam7-7.23.0}/wiki/Drive-File-Selection.md +0 -0
  145. {gam7-7.22.7 → gam7-7.23.0}/wiki/Drive-Items.md +0 -0
  146. {gam7-7.22.7 → gam7-7.23.0}/wiki/Drive-REST-API-v3.md +0 -0
  147. {gam7-7.22.7 → gam7-7.23.0}/wiki/Email-Audit-Monitor.md +0 -0
  148. {gam7-7.22.7 → gam7-7.23.0}/wiki/Find-File-Owner.md +0 -0
  149. {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM-Public-Chat-Room.md +0 -0
  150. {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM-Release-Process.md +0 -0
  151. {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM-Return-Codes.md +0 -0
  152. {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  153. {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM7-FAQ.md +0 -0
  154. {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM7-on-Android-Devices.md +0 -0
  155. {gam7-7.22.7 → gam7-7.23.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  156. {gam7-7.22.7 → gam7-7.23.0}/wiki/Global-Address-List.md +0 -0
  157. {gam7-7.22.7 → gam7-7.23.0}/wiki/Google-Data-Transfers.md +0 -0
  158. {gam7-7.22.7 → gam7-7.23.0}/wiki/Google-Network-Addresses.md +0 -0
  159. {gam7-7.22.7 → gam7-7.23.0}/wiki/Groups-Membership.md +0 -0
  160. {gam7-7.22.7 → gam7-7.23.0}/wiki/Groups.md +0 -0
  161. {gam7-7.22.7 → gam7-7.23.0}/wiki/HTTPS-Proxy.md +0 -0
  162. {gam7-7.22.7 → gam7-7.23.0}/wiki/Home.md +0 -0
  163. {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Install-GAM7.md +0 -0
  164. {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
  165. {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Update-GAM7.md +0 -0
  166. {gam7-7.22.7 → gam7-7.23.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  167. {gam7-7.22.7 → gam7-7.23.0}/wiki/Inbound-SSO.md +0 -0
  168. {gam7-7.22.7 → gam7-7.23.0}/wiki/Install-GAM-as-Python-Library.md +0 -0
  169. {gam7-7.22.7 → gam7-7.23.0}/wiki/Licenses.md +0 -0
  170. {gam7-7.22.7 → gam7-7.23.0}/wiki/List-Items.md +0 -0
  171. {gam7-7.22.7 → gam7-7.23.0}/wiki/List.md +0 -0
  172. {gam7-7.22.7 → gam7-7.23.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  173. {gam7-7.22.7 → gam7-7.23.0}/wiki/Mobile-Devices.md +0 -0
  174. {gam7-7.22.7 → gam7-7.23.0}/wiki/Organizational-Units.md +0 -0
  175. {gam7-7.22.7 → gam7-7.23.0}/wiki/Other-Resources.md +0 -0
  176. {gam7-7.22.7 → gam7-7.23.0}/wiki/Permission-Matches.md +0 -0
  177. {gam7-7.22.7 → gam7-7.23.0}/wiki/Python-Regular-Expressions.md +0 -0
  178. {gam7-7.22.7 → gam7-7.23.0}/wiki/README.md +0 -0
  179. {gam7-7.22.7 → gam7-7.23.0}/wiki/Rclone.md +0 -0
  180. {gam7-7.22.7 → gam7-7.23.0}/wiki/Reseller.md +0 -0
  181. {gam7-7.22.7 → gam7-7.23.0}/wiki/Resources.md +0 -0
  182. {gam7-7.22.7 → gam7-7.23.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  183. {gam7-7.22.7 → gam7-7.23.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
  184. {gam7-7.22.7 → gam7-7.23.0}/wiki/Schemas.md +0 -0
  185. {gam7-7.22.7 → gam7-7.23.0}/wiki/Scripts.md +0 -0
  186. {gam7-7.22.7 → gam7-7.23.0}/wiki/Send-Email.md +0 -0
  187. {gam7-7.22.7 → gam7-7.23.0}/wiki/Shared-Drives.md +0 -0
  188. {gam7-7.22.7 → gam7-7.23.0}/wiki/Sites.md +0 -0
  189. {gam7-7.22.7 → gam7-7.23.0}/wiki/Tag-Replace.md +0 -0
  190. {gam7-7.22.7 → gam7-7.23.0}/wiki/Todrive.md +0 -0
  191. {gam7-7.22.7 → gam7-7.23.0}/wiki/Unmanaged-Accounts.md +0 -0
  192. {gam7-7.22.7 → gam7-7.23.0}/wiki/Upgrade-Benefits.md +0 -0
  193. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Analytics-Admin.md +0 -0
  194. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
  195. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
  196. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Calendars-Access.md +0 -0
  197. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Calendars-Events.md +0 -0
  198. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Calendars.md +0 -0
  199. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Chat.md +0 -0
  200. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Classification-Labels.md +0 -0
  201. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Classroom-Profile.md +0 -0
  202. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Contacts-Delegates.md +0 -0
  203. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Contacts.md +0 -0
  204. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Deprovision.md +0 -0
  205. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
  206. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Cleanup.md +0 -0
  207. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Comments.md +0 -0
  208. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Copy-Move.md +0 -0
  209. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Files-Display.md +0 -0
  210. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Files-Manage.md +0 -0
  211. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Orphans.md +0 -0
  212. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Ownership.md +0 -0
  213. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Permissions.md +0 -0
  214. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Query.md +0 -0
  215. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Revisions.md +0 -0
  216. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Shortcuts.md +0 -0
  217. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Drive-Transfer.md +0 -0
  218. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Forms.md +0 -0
  219. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-CSE.md +0 -0
  220. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Delegates.md +0 -0
  221. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Filters.md +0 -0
  222. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Forwarding.md +0 -0
  223. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Labels.md +0 -0
  224. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  225. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Profile.md +0 -0
  226. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-S-MIME.md +0 -0
  227. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  228. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Gmail-Settings.md +0 -0
  229. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Group-Membership.md +0 -0
  230. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Keep-Notes.md +0 -0
  231. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Looker-Studio.md +0 -0
  232. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Meet.md +0 -0
  233. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
  234. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Photo.md +0 -0
  235. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Profile-Photo.md +0 -0
  236. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Profile-Sharing.md +0 -0
  237. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Shared-Drives.md +0 -0
  238. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  239. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Spreadsheets.md +0 -0
  240. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Tag-Manager.md +0 -0
  241. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Tasks.md +0 -0
  242. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Tokens.md +0 -0
  243. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-Web-Resources-and-Sites.md +0 -0
  244. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users-YouTube.md +0 -0
  245. {gam7-7.22.7 → gam7-7.23.0}/wiki/Users.md +0 -0
  246. {gam7-7.22.7 → gam7-7.23.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  247. {gam7-7.22.7 → gam7-7.23.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  248. {gam7-7.22.7 → gam7-7.23.0}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
  249. {gam7-7.22.7 → gam7-7.23.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  250. {gam7-7.22.7 → gam7-7.23.0}/wiki/_Sidebar.md +0 -0
  251. {gam7-7.22.7 → gam7-7.23.0}/wiki/gam.cfg.md +0 -0
  252. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
  253. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Android-Installation.md +0 -0
  254. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-BulkOperations.md +0 -0
  255. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-CalendarExamples.md +0 -0
  256. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Chat-Bot.md +0 -0
  257. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
  258. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
  259. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
  260. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
  261. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
  262. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
  263. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
  264. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
  265. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Email.md +0 -0
  266. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
  267. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
  268. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Command-Reference-Users.md +0 -0
  269. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
  270. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  271. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
  272. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Custom-Schemas.md +0 -0
  273. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Data-Transfers.md +0 -0
  274. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-DomainVerification.md +0 -0
  275. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
  276. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ExamplesCSV.md +0 -0
  277. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
  278. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
  279. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
  280. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  281. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM-options-files.md +0 -0
  282. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
  283. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM3CSVListings.md +0 -0
  284. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
  285. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
  286. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
  287. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
  288. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
  289. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Home.md +0 -0
  290. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  291. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
  292. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-LicenseExamples.md +0 -0
  293. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Managing-Admins.md +0 -0
  294. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
  295. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Managing-Devices.md +0 -0
  296. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
  297. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
  298. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Printers.md +0 -0
  299. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-ResellerCommands.md +0 -0
  300. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-SecurityExamples.md +0 -0
  301. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
  302. {gam7-7.22.7 → gam7-7.23.0}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  303. {gam7-7.22.7 → gam7-7.23.0}/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.7
3
+ Version: 7.23.0
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
@@ -1,3 +1,15 @@
1
+ 7.23.00
2
+
3
+ Added `chat_max_results` variable to `gam.cfg`.
4
+ ```
5
+ chat_max_results
6
+ When retrieving lists of Chat items from API,
7
+ how many should be retrieved in each API call
8
+ Default: 100
9
+ Range: 1 - 1000
10
+ ```
11
+ Previously, this vaule was always set to 1000 which could cause errors.
12
+
1
13
  7.22.07
2
14
 
3
15
  Added options `showdetails` and `returnidonly` to `gam create|copy vaultquery`.
@@ -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.07'
28
+ __version__ = '7.23.00'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -26579,7 +26579,7 @@ def printShowChatEmojis(users):
26579
26579
  pageMessage=_getChatPageMessage(Ent.CHAT_EMOJI, user, i, count, pfilter),
26580
26580
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
26581
26581
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
26582
- pageSize=CHAT_PAGE_SIZE, filter=pfilter)
26582
+ pageSize=GC.Values[GC.CHAT_MAX_RESULTS], filter=pfilter)
26583
26583
  except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
26584
26584
  exitIfChatNotConfigured(chat, kvList, str(e), i, count)
26585
26585
  continue
@@ -26649,7 +26649,14 @@ def getChatSpaceParameters(myarg, body, typeChoicesMap, updateMask):
26649
26649
 
26650
26650
  CHAT_MEMBER_ROLE_MAP = {
26651
26651
  'member': 'ROLE_MEMBER',
26652
- 'manager': 'ROLE_MANAGER'
26652
+ 'manager': 'ROLE_MANAGER',
26653
+ 'owner': 'ROLE_OWNER',
26654
+ }
26655
+
26656
+ CHAT_ROLE_ENTITY_TYPE_MAP = {
26657
+ 'ROLE_MEMBER': Ent.CHAT_MEMBER_USER,
26658
+ 'ROLE_MANAGER': Ent.CHAT_MANAGER_USER,
26659
+ 'ROLE_OWNER': Ent.CHAT_OWNER_USER,
26653
26660
  }
26654
26661
 
26655
26662
  CHAT_MEMBER_TYPE_MAP = {
@@ -27006,7 +27013,6 @@ def _getChatSpaceSearchParms(myarg, queries, queryTimes, OBY):
27006
27013
  return False
27007
27014
  return True
27008
27015
 
27009
- CHAT_PAGE_SIZE = 1000
27010
27016
  CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP = {
27011
27017
  'createtime': 'createTime',
27012
27018
  'lastactivetime': 'lastActiveTime',
@@ -27086,7 +27092,7 @@ def printShowChatSpaces(users):
27086
27092
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
27087
27093
  GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
27088
27094
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27089
- fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargsCS)
27095
+ fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargsCS)
27090
27096
  if showAccessSettings:
27091
27097
  for space in spaces:
27092
27098
  if space['spaceType'] == 'SPACE':
@@ -27152,7 +27158,7 @@ def _getChatSpaceMembers(cd, chatSpace, ciGroupName):
27152
27158
  pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, 0, 0, qfilter),
27153
27159
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
27154
27160
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27155
- parent=chatSpace, fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargsUAA)
27161
+ parent=chatSpace, fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargsUAA)
27156
27162
  for member in members:
27157
27163
  _getChatMemberEmail(cd, member)
27158
27164
  gmember = {}
@@ -27289,7 +27295,7 @@ def createChatMember(users):
27289
27295
  missingArgumentExit('space')
27290
27296
  if not userList and not groupList:
27291
27297
  missingArgumentExit('user|members|group|groups')
27292
- userEntityType = Ent.CHAT_MEMBER_USER if role == 'ROLE_MEMBER' else Ent.CHAT_MANAGER_USER
27298
+ userEntityType = CHAT_ROLE_ENTITY_TYPE_MAP[role]
27293
27299
  userMembers = []
27294
27300
  for user in userList:
27295
27301
  userMembers.append({'member': {'name': f'users/{user}', 'type': mtype}})
@@ -27546,7 +27552,7 @@ def syncChatMembers(users):
27546
27552
  unknownArgumentExit()
27547
27553
  if not parent:
27548
27554
  missingArgumentExit('space')
27549
- userEntityType = Ent.CHAT_MEMBER_USER if role == 'ROLE_MEMBER' else Ent.CHAT_MANAGER_USER
27555
+ userEntityType = CHAT_ROLE_ENTITY_TYPE_MAP[role]
27550
27556
  userMembers = {}
27551
27557
  syncUsersSet = set()
27552
27558
  for user in userList:
@@ -27576,7 +27582,7 @@ def syncChatMembers(users):
27576
27582
  pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, i, count, qfilter),
27577
27583
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
27578
27584
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27579
- parent=parent, showGroups=groupsSpecified, pageSize=CHAT_PAGE_SIZE, **kwargs, **kwargsUAA)
27585
+ parent=parent, showGroups=groupsSpecified, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargs, **kwargsUAA)
27580
27586
  for member in members:
27581
27587
  if 'member' in member:
27582
27588
  if member['member']['type'] == mtype and member['role'] == role:
@@ -27777,7 +27783,7 @@ def printShowChatMembers(users):
27777
27783
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
27778
27784
  GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
27779
27785
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27780
- fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=CHAT_PAGE_SIZE,
27786
+ fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=GC.Values[GC.CHAT_MAX_RESULTS],
27781
27787
  **kwargsCS)
27782
27788
  for space in sorted(spaces, key=lambda k: k[sortName]):
27783
27789
  if space['spaceType'] == 'SPACE' and 'membershipCount' in space:
@@ -27794,7 +27800,7 @@ def printShowChatMembers(users):
27794
27800
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
27795
27801
  GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
27796
27802
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27797
- fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=CHAT_PAGE_SIZE,
27803
+ fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=GC.Values[GC.CHAT_MAX_RESULTS],
27798
27804
  **kwargsCS)
27799
27805
  for space in sorted(spaces, key=lambda k: k[sortName]):
27800
27806
  # if 'membershipCount' in space:
@@ -27825,7 +27831,7 @@ def printShowChatMembers(users):
27825
27831
  pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, j, jcount, qfilter),
27826
27832
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
27827
27833
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27828
- parent=parentName, fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargs, **kwargsUAA)
27834
+ parent=parentName, fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargs, **kwargsUAA)
27829
27835
  for member in members:
27830
27836
  _getChatMemberEmail(cd, member)
27831
27837
  except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
@@ -28139,7 +28145,7 @@ def printShowChatMessages(users):
28139
28145
  pageMessage=_getChatPageMessage(Ent.CHAT_MESSAGE, user, i, count, qfilter),
28140
28146
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
28141
28147
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
28142
- pageSize=CHAT_PAGE_SIZE, parent=parentName, filter=pfilter, showDeleted=showDeleted,
28148
+ pageSize=GC.Values[GC.CHAT_MAX_RESULTS], parent=parentName, filter=pfilter, showDeleted=showDeleted,
28143
28149
  fields=fields)
28144
28150
  for message in messages:
28145
28151
  if 'sender' in message:
@@ -28257,7 +28263,7 @@ def printShowChatEvents(users):
28257
28263
  pageMessage=_getChatPageMessage(Ent.CHAT_EVENT, user, i, count, qfilter),
28258
28264
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
28259
28265
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
28260
- pageSize=CHAT_PAGE_SIZE, parent=parentName, filter=pfilter)
28266
+ pageSize=GC.Values[GC.CHAT_MAX_RESULTS], parent=parentName, filter=pfilter)
28261
28267
  except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
28262
28268
  exitIfChatNotConfigured(chat, kvList, str(e), i, count)
28263
28269
  continue
@@ -69,6 +69,8 @@ CACHE_DISCOVERY_ONLY = 'cache_discovery_only'
69
69
  CHANNEL_CUSTOMER_ID = 'channel_customer_id'
70
70
  # Character set of batch, csv, data files
71
71
  CHARSET = 'charset'
72
+ # When retrieving lists of Chat items from API, how many should be retrieved in each chunk
73
+ CHAT_MAX_RESULTS = 'chat_max_results'
72
74
  # When retrieving lists of Google Classroom items from API, how many should be retrieved in each chunk
73
75
  CLASSROOM_MAX_RESULTS = 'classroom_max_results'
74
76
  # Path to client_secrets.json
@@ -335,6 +337,7 @@ Defaults = {
335
337
  CACHE_DISCOVERY_ONLY: TRUE,
336
338
  CHARSET: DEFAULT_CHARSET,
337
339
  CHANNEL_CUSTOMER_ID: '',
340
+ CHAT_MAX_RESULTS: '100',
338
341
  CLASSROOM_MAX_RESULTS: '0',
339
342
  CLIENT_SECRETS_JSON: FN_CLIENT_SECRETS_JSON,
340
343
  CLOCK_SKEW_IN_SECONDS: '10',
@@ -502,6 +505,7 @@ VAR_INFO = {
502
505
  CACHE_DISCOVERY_ONLY: {VAR_TYPE: TYPE_BOOLEAN, VAR_SIGFILE: 'allcache.txt', VAR_SFFT: (TRUE, FALSE)},
503
506
  CHARSET: {VAR_TYPE: TYPE_STRING, VAR_ENVVAR: 'GAM_CHARSET', VAR_LIMITS: (1, None)},
504
507
  CHANNEL_CUSTOMER_ID: {VAR_TYPE: TYPE_STRING, VAR_LIMITS: (0, None)},
508
+ CHAT_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (1, 1000)},
505
509
  CLASSROOM_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (0, 1000)},
506
510
  CLIENT_SECRETS_JSON: {VAR_TYPE: TYPE_FILE, VAR_ENVVAR: 'CLIENTSECRETS', VAR_ACCESS: os.R_OK},
507
511
  CLOCK_SKEW_IN_SECONDS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (10, 3600)},
@@ -96,6 +96,7 @@ class GamEntity():
96
96
  CHAT_MEMBER_USER = 'chmu'
97
97
  CHAT_MESSAGE = 'chms'
98
98
  CHAT_MESSAGE_ID = 'chmi'
99
+ CHAT_OWNER_USER = 'chou'
99
100
  CHAT_SPACE = 'chsp'
100
101
  CHAT_THREAD = 'chth'
101
102
  CHILD_ORGANIZATIONAL_UNIT = 'corg'
@@ -462,6 +463,7 @@ class GamEntity():
462
463
  CHAT_MEMBER: ['Chat Members', 'Chat Member'],
463
464
  CHAT_MEMBER_GROUP: ['Chat Group Members', 'Chat Group Member'],
464
465
  CHAT_MEMBER_USER: ['Chat User Members', 'Chat User Member'],
466
+ CHAT_OWNER_USER: ['Chat User Owners', 'Chat User Owner'],
465
467
  CHAT_SPACE: ['Chat Spaces', 'Chat Space'],
466
468
  CHAT_THREAD: ['Chat Threads', 'Chat Thread'],
467
469
  CHILD_ORGANIZATIONAL_UNIT: ['Child Organizational Units', 'Child Organizational Unit'],
@@ -10,6 +10,12 @@ 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.07
14
+
15
+ Added options `showdetails` and `returnidonly` to `gam create|copy vaultquery`.
16
+
17
+ Added option `<JSONData>` to `gam create vaultexport|vaultquery and `gam print vaultcounts``.
18
+
13
19
  ### 7.22.06
14
20
 
15
21
  Added commands to create, copy and delete Vault saved queries.
@@ -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.06 - https://github.com/GAM-team/GAM - pyinstaller
255
+ GAM 7.22.07 - 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
@@ -378,7 +378,7 @@ Select the users for whom information is desired.
378
378
  * `showorgunit` - Add a column labelled `orgUnitPath` to the output; an additional API call is made to get the email addresses of the users in `<OrgUnitPath>`
379
379
  * `select <UserTypeEntity>` - A selected collection of users, e.g., `select group staff@domain.com`; there is one API call per user
380
380
 
381
- By default, when `user all` is specified (or no user specification in supplied), GAM backs up looking for data with a (basically) random user. If the randaom
381
+ By default, when `user all` is specified (or no user specification in supplied), GAM backs up looking for data with a (basically) random user. If the random
382
382
  doesn't have any data, the command reports that no data was found. Use `allverifyuser <UserItem>` to specify a specific user to use to search for data.
383
383
 
384
384
  Specify the report date; the default is today's date.
@@ -3,6 +3,7 @@
3
3
  - [Query documentation](#query-documentation)
4
4
  - [Python Regular Expressions](Python-Regular-Expressions) Match function
5
5
  - [Definitions](#definitions)
6
+ - [Special quoting](#special-quoting)
6
7
  - [Vault Matters](#vault-matters)
7
8
  - [Create Vault Matters](#create-vault-matters)
8
9
  - [Manage Vault Matters](#manage-vault-matters)
@@ -57,6 +58,7 @@
57
58
  <EmailAddressList> ::= "<EmailAddess>(,<EmailAddress>)*"
58
59
  <EmailAddressEntity> ::= <EmailAddressList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
59
60
  See: https://github.com/GAM-team/GAM/wiki/Collections-of-Items
61
+ <JSONData> ::= (json [charset <Charset>] <String>) | (json file <FileName> [charset <Charset>]) |
60
62
  <TimeZone> ::= <String>
61
63
  See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
62
64
  <UniqueID> ::= id:<String>
@@ -76,6 +78,7 @@
76
78
  <ExportStatusList> ::= "<ExportStatus>(,<ExportStatus>)*"
77
79
  <HoldItem> ::= <UniqueID>|<String>
78
80
  <MatterItem> ::= <UniqueID>|<String>
81
+ <MatterItemList> ::= "<MatterItem>(,<MatterItem>)*"
79
82
  <MatterState> ::= open|closed|deleted
80
83
  <MatterStateList> ::= "<MatterState>(,<MatterState>)*"
81
84
  <QueryItem> ::= <UniqueID>|<String>
@@ -141,9 +144,29 @@
141
144
  <VaultQueryFieldNameList> ::= "<VaultQueryFieldName>(,<VaultQueryFieldName>)*"
142
145
 
143
146
  ```
147
+
144
148
  You specify matters, exports and holds by ID (`<UniqueID>`) or name (`<String>`). The API requires an ID, so if you specify a name,
145
149
  GAM has to make additional API calls to convert the name to an ID.
146
150
 
151
+ ## Special quoting
152
+ You specify a single matter with `matter <MatterItem>` and a list of matters with `matters <MatterItemList>`.
153
+
154
+ As matter names can contain spaces, some care must be used when entering `<MatterItem>` and `<MatterItemList>` with names.
155
+
156
+ Suppose you have a matter `Foo Bar`. To get information about a specific export: `gam info vaultexport "Foo Bar" <ExportItem>`
157
+
158
+ The shell strips the `"` leaving a single argument `Foo Bar`; gam correctly processes the argument.
159
+
160
+ Suppose you enter the command: `gam show vaultexports matters "Foo Bar"`
161
+
162
+ The shell strips the `"` leaving a single argument `Foo Bar`; gam splits the argument on space leaving two items and then tries to process `Foo` and `Bar`, not what you want.
163
+
164
+ You must enter: `gam info show vaultexports matters "'Foo Bar'"`
165
+
166
+ The shell strips the `"` leaving a single argument `'Foo Bar'`; gam splits the argument on space while honoring the `'` leaving one item `Foo Bar` and correctly processes the item.
167
+
168
+ For quoting rules, see: [List Quoting Rules](Command-Line-Parsing)
169
+
147
170
  ## Vault Matters
148
171
  ## Create Vault Matters
149
172
  Create a Google Vault matter.
@@ -232,12 +255,13 @@ gam print vaultcounts [todrive <ToDriveAttributes>*]
232
255
  (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
233
256
  [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
234
257
  [excludedrafts <Boolean>]
258
+ [<JSONData>]
235
259
  [wait <Integer>]
236
260
  ```
237
261
  Specify the search method, this is optional:
238
262
  * `accounts <EmailAddressEntity>` - Search all accounts specified in `<EmailAddressEntity>`
239
263
  * `orgunit|org|ou <OrgUnitPath>` - Search all accounts in the OU `<OrgUnitPath>`
240
- * `everyone` - Search for all accounts in the organization
264
+ * `everyone|entireorg` - Search for all accounts in the organization
241
265
 
242
266
  For `corpus mail|group`, you can specify search terms to limit the search.
243
267
  * `terms <String>` - [Vault search](https://support.google.com/vault/answer/2474474)
@@ -246,6 +270,8 @@ For `corpus mail|group`, you can specify time limits on the search:
246
270
  * `start|starttime <Date>|<Time>` - The start time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
247
271
  * `end|endtime <Date>|<Time>` - The end time range for the search query. These timestamps are in GMT and rounded down to the start of the given date.
248
272
 
273
+ You can specify query options with `<JSONData>`.
274
+
249
275
  Check the status of a previous count operation with the name from a previous command.
250
276
  ```
251
277
  gam print vaultcounts [todrive <ToDriveAttributes>*]
@@ -283,6 +309,7 @@ gam create vaultexport|export matter <MatterItem> [name <String>]
283
309
  [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
284
310
  [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
285
311
  (covereddata calllogs|textmessages|voicemails)*
312
+ [<JSONData>]
286
313
  [driveclientsideencryption any|encrypted|unencrypted]
287
314
  [includeaccessinfo <Boolean>]
288
315
  [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
@@ -308,7 +335,7 @@ Specify the corpus of data, this option is required:
308
335
  Specify the search method, this option is required:
309
336
  * `accounts <EmailAddressEntity>` - Search all accounts specified in `<EmailAddressEntity>`
310
337
  * `orgunit|org|ou <OrgUnitPath>` - Search all accounts in the OU `<OrgUnitPath>`
311
- * `everyone` - Search for all accounts in the organization
338
+ * `everyone|entireorg` - Search for all accounts in the organization
312
339
  * `documentids <DriveFileIDList>` - Search for all drive files specified in `<DriveFileIDList>`
313
340
  * `documentids select <FileSelector>|<CSVFileSelector>` - Search for all drive files specified in `<FileSelector>|<CSVFileSelector>`
314
341
  * `shareddrives|teamdrives <SharedDriveIDList>` - Search for all accounts in the Shared Drives specified in `<SharedDriveIDList>`
@@ -349,10 +376,6 @@ For `corpus calendar`, you can specify advanced search options:
349
376
  * Search the current version of the Calendar event, but export the contents of the last version saved before 12:00 AM UTC on the specified date.
350
377
  * Enter the date in UTC.
351
378
 
352
- For `corpus calendar`, you can specify the format of the exported data:
353
- * `format ics` - Export in ICS format, this is the default
354
- * `format pst` - Export in PST format
355
-
356
379
  For `corpus drive`, you can specify advanced search options:
357
380
  * `driveversiondate <Date>|<Time>` - Search the versions of the Drive file as of the reference date. These timestamps are in GMT and rounded down to the given date.
358
381
  * `includeshareddrives False` - Mapped to `sharedrivesoption included_if_account_is_not_a_member`
@@ -360,6 +383,16 @@ For `corpus drive`, you can specify advanced search options:
360
383
  * `sharedrivesoption included` - Resources in shared drives are included in the search
361
384
  * `sharedrivesoption included_if_account_is_not_a_member` - Resources in shared drives where account is not a member are included in the search, this is the default
362
385
  * `sharedrivesoption not_included` - Resources in shared drives are not included in the search
386
+
387
+ For `corpus hangouts_chat` you can specify advanced search options:
388
+ * `includerooms False` - Do not include rooms, this is the default
389
+ * `includerooms True` - Include rooms
390
+
391
+ You can specify query options with `<JSONData>`.
392
+
393
+ ## Vault Export options
394
+
395
+ For `corpus drive`, you can specify advanced search options:
363
396
  * `driveclientsideencryption any` - Include both client-side encrypted and unencrypted content in search, this is the default.
364
397
  * `driveclientsideencryption encrypted` - Include client-side encrypted content only in search.
365
398
  * `driveclientsideencryption unencrypted` - Include client-side unencrypted content only in search.
@@ -368,10 +401,6 @@ For `corpus drive`, you can specify whether to include access information for us
368
401
  * `includeaccessinfo False` - Do not include access information for users with indirect access, this is the default
369
402
  * `includeaccessinfo True` - Include access information for users with indirect access
370
403
 
371
- For `corpus hangouts_chat` you can specify advanced search options:
372
- * `includerooms False` - Do not include rooms, this is the default
373
- * `includerooms True` - Include rooms
374
-
375
404
  For `corpus mail`, you can specify advanced search options:
376
405
  * `excludedrafts False` - Do not exclude drafts, this is the default
377
406
  * `excludedrafts True` - Exclude drafts
@@ -405,8 +434,7 @@ For `corpus groups`, `corpus hangouts_chat`, `corpus mail` and `corpus voice`, y
405
434
  * `format mbox` - Export in MBOX format, this is the default
406
435
  * `format pst` - Export in PST format
407
436
 
408
- For `corpus voice` you can specify the data covered by the export,
409
- multiple values are allowed.:
437
+ For `corpus voice` you can specify the data covered by the export, multiple values are allowed.:
410
438
  * `covereddata calllogs` - Call logs
411
439
  * `covereddata textmessages` - Voice text messages
412
440
  * `covereddata voicemail` - Voicemail
@@ -817,8 +845,10 @@ gam create vaultquery <MatterItem> [name <String>]
817
845
  [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
818
846
  [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
819
847
  (covereddata calllogs|textmessages|voicemails)*
820
- [shownames] [formatjson]
821
- ```
848
+ [<JSONData>]
849
+ [shownames]
850
+ [showdetails|returnidonly|formatjson]
851
+ ``
822
852
 
823
853
  If `name <String>` is omitted, the query is named `GAM <corpus> Query - <Time>`
824
854
 
@@ -826,10 +856,17 @@ The `shownames` argument controls whether org unit and shared drive names are di
826
856
 
827
857
  See: [Vault Query options](#vault-query-options)
828
858
 
859
+ Use the `showdetails` option to have the full details of the saved query displayed.
860
+
861
+ Use the `returnidonly` option to have only the saved query ID displayed.
862
+
863
+ Use the `formatjson` option to have only the saved query JSON displayed.
864
+
829
865
  ## Copy Vault Saved Queries
830
866
  ```
831
867
  gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem>] [name <String>]
832
- [shownames] [formatjson]
868
+ [shownames]
869
+ [showdetails|returnidonly|formatjson]
833
870
  ```
834
871
 
835
872
  If `targetmatter <MatterItem>` is omitted, the query is copied in the source matter.
@@ -840,6 +877,12 @@ If `name <String>` is omitted:
840
877
 
841
878
  The `shownames` argument controls whether org unit and shared drive names are displayed in queries; additional API calls are required to get the names.
842
879
 
880
+ Use the `showdetails` option to have the full details of the saved query displayed.
881
+
882
+ Use the `returnidonly` option to have only the saved query ID displayed.
883
+
884
+ Use the `formatjson` option to have only the saved query JSON displayed.
885
+
843
886
  ## Delete Vault Saved Queries
844
887
  ```
845
888
  gam delete vaultquery <QueryItem> matter <MatterItem>
@@ -3,7 +3,7 @@
3
3
  Print the current version of Gam with details
4
4
  ```
5
5
  gam version
6
- GAM 7.22.06 - https://github.com/GAM-team/GAM - pyinstaller
6
+ GAM 7.22.07 - https://github.com/GAM-team/GAM - pyinstaller
7
7
  GAM Team <google-apps-manager@googlegroups.com>
8
8
  Python 3.13.7 64-bit final
9
9
  macOS Sequoia 15.7 x86_64
@@ -15,7 +15,7 @@ Time: 2023-06-02T21:10:00-07:00
15
15
  Print the current version of Gam with details and time offset information
16
16
  ```
17
17
  gam version timeoffset
18
- GAM 7.22.06 - https://github.com/GAM-team/GAM - pyinstaller
18
+ GAM 7.22.07 - https://github.com/GAM-team/GAM - pyinstaller
19
19
  GAM Team <google-apps-manager@googlegroups.com>
20
20
  Python 3.13.7 64-bit final
21
21
  macOS Sequoia 15.7 x86_64
@@ -27,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second
27
27
  Print the current version of Gam with extended details and SSL information
28
28
  ```
29
29
  gam version extended
30
- GAM 7.22.06 - https://github.com/GAM-team/GAM - pyinstaller
30
+ GAM 7.22.07 - https://github.com/GAM-team/GAM - pyinstaller
31
31
  GAM Team <google-apps-manager@googlegroups.com>
32
32
  Python 3.13.7 64-bit final
33
33
  macOS Sequoia 15.7 x86_64
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes