gam7 7.27.1__tar.gz → 7.27.3__tar.gz

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

Potentially problematic release.


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

Files changed (303) hide show
  1. {gam7-7.27.1 → gam7-7.27.3}/PKG-INFO +1 -1
  2. {gam7-7.27.1 → gam7-7.27.3}/src/GamCommands.txt +19 -19
  3. {gam7-7.27.1 → gam7-7.27.3}/src/GamUpdate.txt +28 -0
  4. {gam7-7.27.1 → gam7-7.27.3}/src/gam/__init__.py +61 -32
  5. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glmsgs.py +1 -1
  6. {gam7-7.27.1 → gam7-7.27.3}/src/gam-install.sh +0 -5
  7. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chat-Bot-Setup-Use.md +12 -2
  8. {gam7-7.27.1 → gam7-7.27.3}/wiki/Cloud-Identity-Groups.md +1 -1
  9. {gam7-7.27.1 → gam7-7.27.3}/wiki/Domain-SharedContacts.md +1 -1
  10. {gam7-7.27.1 → gam7-7.27.3}/wiki/GamUpdates.md +12 -0
  11. {gam7-7.27.1 → gam7-7.27.3}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  12. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Chat.md +11 -1
  13. {gam7-7.27.1 → gam7-7.27.3}/wiki/Version-and-Help.md +6 -6
  14. {gam7-7.27.1 → gam7-7.27.3}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  15. {gam7-7.27.1 → gam7-7.27.3}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  16. {gam7-7.27.1 → gam7-7.27.3}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  17. {gam7-7.27.1 → gam7-7.27.3}/.github/ISSUE_TEMPLATE.txt +0 -0
  18. {gam7-7.27.1 → gam7-7.27.3}/.github/actions/decrypt.sh +0 -0
  19. {gam7-7.27.1 → gam7-7.27.3}/.github/actions/entitlements.plist +0 -0
  20. {gam7-7.27.1 → gam7-7.27.3}/.github/actions/package_exclusions.txt +0 -0
  21. {gam7-7.27.1 → gam7-7.27.3}/.github/stale.yml +0 -0
  22. {gam7-7.27.1 → gam7-7.27.3}/.github/workflows/build.yml +0 -0
  23. {gam7-7.27.1 → gam7-7.27.3}/.github/workflows/codeql-analysis.yml +0 -0
  24. {gam7-7.27.1 → gam7-7.27.3}/.github/workflows/get-cacerts.yml +0 -0
  25. {gam7-7.27.1 → gam7-7.27.3}/.github/workflows/pushwiki.yml +0 -0
  26. {gam7-7.27.1 → gam7-7.27.3}/.github/workflows/pypi.yml +0 -0
  27. {gam7-7.27.1 → gam7-7.27.3}/LICENSE +0 -0
  28. {gam7-7.27.1 → gam7-7.27.3}/README.md +0 -0
  29. {gam7-7.27.1 → gam7-7.27.3}/pyproject.toml +0 -0
  30. {gam7-7.27.1 → gam7-7.27.3}/src/.gitignore +0 -0
  31. {gam7-7.27.1 → gam7-7.27.3}/src/LICENSE +0 -0
  32. {gam7-7.27.1 → gam7-7.27.3}/src/README.md +0 -0
  33. {gam7-7.27.1 → gam7-7.27.3}/src/callgam.py +0 -0
  34. {gam7-7.27.1 → gam7-7.27.3}/src/gam/__main__.py +0 -0
  35. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/__init__.py +0 -0
  36. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/auth.py +0 -0
  37. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/client.py +0 -0
  38. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/core.py +0 -0
  39. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/data.py +0 -0
  40. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/http.py +0 -0
  41. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/http_core.py +0 -0
  42. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/http_interface.py +0 -0
  43. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/mock_http.py +0 -0
  44. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/mock_http_core.py +0 -0
  45. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/mock_service.py +0 -0
  46. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/service.py +0 -0
  47. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/token_store.py +0 -0
  48. {gam7-7.27.1 → gam7-7.27.3}/src/gam/atom/url.py +0 -0
  49. {gam7-7.27.1 → gam7-7.27.3}/src/gam/cacerts.pem +0 -0
  50. {gam7-7.27.1 → gam7-7.27.3}/src/gam/cbcm-v1.1beta1.json +0 -0
  51. {gam7-7.27.1 → gam7-7.27.3}/src/gam/contactdelegation-v1.json +0 -0
  52. {gam7-7.27.1 → gam7-7.27.3}/src/gam/datastudio-v1.json +0 -0
  53. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/__init__.py +0 -0
  54. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glaction.py +0 -0
  55. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glapi.py +0 -0
  56. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glcfg.py +0 -0
  57. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glclargs.py +0 -0
  58. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glentity.py +0 -0
  59. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glgapi.py +0 -0
  60. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glgdata.py +0 -0
  61. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glglobals.py +0 -0
  62. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glindent.py +0 -0
  63. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glskus.py +0 -0
  64. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/gluprop.py +0 -0
  65. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/glverlibs.py +0 -0
  66. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gamlib/yubikey.py +0 -0
  67. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/__init__.py +0 -0
  68. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/alt/__init__.py +0 -0
  69. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/alt/app_engine.py +0 -0
  70. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/alt/appengine.py +0 -0
  71. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/apps/__init__.py +0 -0
  72. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/apps/audit/__init__.py +0 -0
  73. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/apps/audit/service.py +0 -0
  74. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  75. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/apps/contacts/service.py +0 -0
  76. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/apps/service.py +0 -0
  77. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/service.py +0 -0
  78. {gam7-7.27.1 → gam7-7.27.3}/src/gam/gdata/urlfetch.py +0 -0
  79. {gam7-7.27.1 → gam7-7.27.3}/src/gam/meet-v2beta.json +0 -0
  80. {gam7-7.27.1 → gam7-7.27.3}/src/gam/serviceaccountlookup-v1.json +0 -0
  81. {gam7-7.27.1 → gam7-7.27.3}/src/gam-setup.bat +0 -0
  82. {gam7-7.27.1 → gam7-7.27.3}/src/gam.exe.manifest +0 -0
  83. {gam7-7.27.1 → gam7-7.27.3}/src/gam.py +0 -0
  84. {gam7-7.27.1 → gam7-7.27.3}/src/gam.spec +0 -0
  85. {gam7-7.27.1 → gam7-7.27.3}/src/gam.wxs +0 -0
  86. {gam7-7.27.1 → gam7-7.27.3}/src/license.rtf +0 -0
  87. {gam7-7.27.1 → gam7-7.27.3}/src/tools/a_atleast_b.py +0 -0
  88. {gam7-7.27.1 → gam7-7.27.3}/src/tools/gen-wix-xml-filelist.py +0 -0
  89. {gam7-7.27.1 → gam7-7.27.3}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
  90. {gam7-7.27.1 → gam7-7.27.3}/src/tools/hooks/hook-httplib2.py +0 -0
  91. {gam7-7.27.1 → gam7-7.27.3}/src/tools/mkGamRef.py +0 -0
  92. {gam7-7.27.1 → gam7-7.27.3}/src/tools/openssl.props +0 -0
  93. {gam7-7.27.1 → gam7-7.27.3}/src/tools/ssd.mjs +0 -0
  94. {gam7-7.27.1 → gam7-7.27.3}/src/version_info.txt.in +0 -0
  95. {gam7-7.27.1 → gam7-7.27.3}/wiki/00scratch.md +0 -0
  96. {gam7-7.27.1 → gam7-7.27.3}/wiki/Addresses.md +0 -0
  97. {gam7-7.27.1 → gam7-7.27.3}/wiki/Administrators.md +0 -0
  98. {gam7-7.27.1 → gam7-7.27.3}/wiki/Alert-Center.md +0 -0
  99. {gam7-7.27.1 → gam7-7.27.3}/wiki/Aliases.md +0 -0
  100. {gam7-7.27.1 → gam7-7.27.3}/wiki/Authorization.md +0 -0
  101. {gam7-7.27.1 → gam7-7.27.3}/wiki/BNF-Syntax.md +0 -0
  102. {gam7-7.27.1 → gam7-7.27.3}/wiki/Basic-Items.md +0 -0
  103. {gam7-7.27.1 → gam7-7.27.3}/wiki/Bulk-Processing.md +0 -0
  104. {gam7-7.27.1 → gam7-7.27.3}/wiki/Business-Account-Management.md +0 -0
  105. {gam7-7.27.1 → gam7-7.27.3}/wiki/CSV-Input-Filtering.md +0 -0
  106. {gam7-7.27.1 → gam7-7.27.3}/wiki/CSV-Output-Filtering.md +0 -0
  107. {gam7-7.27.1 → gam7-7.27.3}/wiki/CSV-Special-Characters.md +0 -0
  108. {gam7-7.27.1 → gam7-7.27.3}/wiki/Calendars-Access.md +0 -0
  109. {gam7-7.27.1 → gam7-7.27.3}/wiki/Calendars-Events.md +0 -0
  110. {gam7-7.27.1 → gam7-7.27.3}/wiki/Calendars.md +0 -0
  111. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chrome-AUE-Counts.md +0 -0
  112. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  113. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chrome-Installed-Apps.md +0 -0
  114. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  115. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chrome-Policies.md +0 -0
  116. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chrome-Printers.md +0 -0
  117. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chrome-Profile-Management.md +0 -0
  118. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chrome-Version-Counts.md +0 -0
  119. {gam7-7.27.1 → gam7-7.27.3}/wiki/Chrome-Version-History.md +0 -0
  120. {gam7-7.27.1 → gam7-7.27.3}/wiki/ChromeOS-Devices.md +0 -0
  121. {gam7-7.27.1 → gam7-7.27.3}/wiki/Classroom-Courses.md +0 -0
  122. {gam7-7.27.1 → gam7-7.27.3}/wiki/Classroom-Guardians.md +0 -0
  123. {gam7-7.27.1 → gam7-7.27.3}/wiki/Classroom-Invitations.md +0 -0
  124. {gam7-7.27.1 → gam7-7.27.3}/wiki/Classroom-Membership.md +0 -0
  125. {gam7-7.27.1 → gam7-7.27.3}/wiki/Classroom-StudentGroups.md +0 -0
  126. {gam7-7.27.1 → gam7-7.27.3}/wiki/Cloud-Channel.md +0 -0
  127. {gam7-7.27.1 → gam7-7.27.3}/wiki/Cloud-Identity-Devices.md +0 -0
  128. {gam7-7.27.1 → gam7-7.27.3}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  129. {gam7-7.27.1 → gam7-7.27.3}/wiki/Cloud-Identity-Policies.md +0 -0
  130. {gam7-7.27.1 → gam7-7.27.3}/wiki/Cloud-Storage.md +0 -0
  131. {gam7-7.27.1 → gam7-7.27.3}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  132. {gam7-7.27.1 → gam7-7.27.3}/wiki/Collections-of-Items.md +0 -0
  133. {gam7-7.27.1 → gam7-7.27.3}/wiki/Collections-of-Users.md +0 -0
  134. {gam7-7.27.1 → gam7-7.27.3}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  135. {gam7-7.27.1 → gam7-7.27.3}/wiki/Command-Line-Parsing.md +0 -0
  136. {gam7-7.27.1 → gam7-7.27.3}/wiki/Command-Logging-Progress.md +0 -0
  137. {gam7-7.27.1 → gam7-7.27.3}/wiki/Context-Aware-Access-Levels.md +0 -0
  138. {gam7-7.27.1 → gam7-7.27.3}/wiki/Customer.md +0 -0
  139. {gam7-7.27.1 → gam7-7.27.3}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  140. {gam7-7.27.1 → gam7-7.27.3}/wiki/Domains-Verification.md +0 -0
  141. {gam7-7.27.1 → gam7-7.27.3}/wiki/Domains.md +0 -0
  142. {gam7-7.27.1 → gam7-7.27.3}/wiki/Downloads-Installs.md +0 -0
  143. {gam7-7.27.1 → gam7-7.27.3}/wiki/Drive-File-Selection.md +0 -0
  144. {gam7-7.27.1 → gam7-7.27.3}/wiki/Drive-Items.md +0 -0
  145. {gam7-7.27.1 → gam7-7.27.3}/wiki/Drive-REST-API-v3.md +0 -0
  146. {gam7-7.27.1 → gam7-7.27.3}/wiki/Email-Audit-Monitor.md +0 -0
  147. {gam7-7.27.1 → gam7-7.27.3}/wiki/Find-File-Owner.md +0 -0
  148. {gam7-7.27.1 → gam7-7.27.3}/wiki/GAM-Public-Chat-Room.md +0 -0
  149. {gam7-7.27.1 → gam7-7.27.3}/wiki/GAM-Release-Process.md +0 -0
  150. {gam7-7.27.1 → gam7-7.27.3}/wiki/GAM-Return-Codes.md +0 -0
  151. {gam7-7.27.1 → gam7-7.27.3}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  152. {gam7-7.27.1 → gam7-7.27.3}/wiki/GAM7-FAQ.md +0 -0
  153. {gam7-7.27.1 → gam7-7.27.3}/wiki/GAM7-on-Android-Devices.md +0 -0
  154. {gam7-7.27.1 → gam7-7.27.3}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  155. {gam7-7.27.1 → gam7-7.27.3}/wiki/Global-Address-List.md +0 -0
  156. {gam7-7.27.1 → gam7-7.27.3}/wiki/Google-Data-Transfers.md +0 -0
  157. {gam7-7.27.1 → gam7-7.27.3}/wiki/Google-Network-Addresses.md +0 -0
  158. {gam7-7.27.1 → gam7-7.27.3}/wiki/Groups-Membership.md +0 -0
  159. {gam7-7.27.1 → gam7-7.27.3}/wiki/Groups.md +0 -0
  160. {gam7-7.27.1 → gam7-7.27.3}/wiki/HTTPS-Proxy.md +0 -0
  161. {gam7-7.27.1 → gam7-7.27.3}/wiki/Home.md +0 -0
  162. {gam7-7.27.1 → gam7-7.27.3}/wiki/How-to-Install-GAM7.md +0 -0
  163. {gam7-7.27.1 → gam7-7.27.3}/wiki/How-to-Uninstall-GAM7.md +0 -0
  164. {gam7-7.27.1 → gam7-7.27.3}/wiki/How-to-Update-GAM7.md +0 -0
  165. {gam7-7.27.1 → gam7-7.27.3}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  166. {gam7-7.27.1 → gam7-7.27.3}/wiki/Inbound-SSO.md +0 -0
  167. {gam7-7.27.1 → gam7-7.27.3}/wiki/Install-GAM-as-Python-Library.md +0 -0
  168. {gam7-7.27.1 → gam7-7.27.3}/wiki/Licenses.md +0 -0
  169. {gam7-7.27.1 → gam7-7.27.3}/wiki/List-Items.md +0 -0
  170. {gam7-7.27.1 → gam7-7.27.3}/wiki/List.md +0 -0
  171. {gam7-7.27.1 → gam7-7.27.3}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  172. {gam7-7.27.1 → gam7-7.27.3}/wiki/Mobile-Devices.md +0 -0
  173. {gam7-7.27.1 → gam7-7.27.3}/wiki/Organizational-Units.md +0 -0
  174. {gam7-7.27.1 → gam7-7.27.3}/wiki/Other-Resources.md +0 -0
  175. {gam7-7.27.1 → gam7-7.27.3}/wiki/Permission-Matches.md +0 -0
  176. {gam7-7.27.1 → gam7-7.27.3}/wiki/Python-Regular-Expressions.md +0 -0
  177. {gam7-7.27.1 → gam7-7.27.3}/wiki/README.md +0 -0
  178. {gam7-7.27.1 → gam7-7.27.3}/wiki/Rclone.md +0 -0
  179. {gam7-7.27.1 → gam7-7.27.3}/wiki/Reports.md +0 -0
  180. {gam7-7.27.1 → gam7-7.27.3}/wiki/Reseller.md +0 -0
  181. {gam7-7.27.1 → gam7-7.27.3}/wiki/Resources.md +0 -0
  182. {gam7-7.27.1 → gam7-7.27.3}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  183. {gam7-7.27.1 → gam7-7.27.3}/wiki/SSL-Root-CA-Certificates.md +0 -0
  184. {gam7-7.27.1 → gam7-7.27.3}/wiki/Schemas.md +0 -0
  185. {gam7-7.27.1 → gam7-7.27.3}/wiki/Scripts.md +0 -0
  186. {gam7-7.27.1 → gam7-7.27.3}/wiki/Send-Email.md +0 -0
  187. {gam7-7.27.1 → gam7-7.27.3}/wiki/Shared-Drives.md +0 -0
  188. {gam7-7.27.1 → gam7-7.27.3}/wiki/Sites.md +0 -0
  189. {gam7-7.27.1 → gam7-7.27.3}/wiki/Tag-Replace.md +0 -0
  190. {gam7-7.27.1 → gam7-7.27.3}/wiki/Todrive.md +0 -0
  191. {gam7-7.27.1 → gam7-7.27.3}/wiki/Unmanaged-Accounts.md +0 -0
  192. {gam7-7.27.1 → gam7-7.27.3}/wiki/Upgrade-Benefits.md +0 -0
  193. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Analytics-Admin.md +0 -0
  194. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Application-Specific-Passwords.md +0 -0
  195. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Backup-Verification-Codes.md +0 -0
  196. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Calendars-Access.md +0 -0
  197. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Calendars-Events.md +0 -0
  198. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Calendars.md +0 -0
  199. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Classification-Labels.md +0 -0
  200. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Classroom-Profile.md +0 -0
  201. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Contacts-Delegates.md +0 -0
  202. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Contacts.md +0 -0
  203. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Deprovision.md +0 -0
  204. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Activity-Settings.md +0 -0
  205. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Cleanup.md +0 -0
  206. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Comments.md +0 -0
  207. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Copy-Move.md +0 -0
  208. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Files-Display.md +0 -0
  209. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Files-Manage.md +0 -0
  210. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Orphans.md +0 -0
  211. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Ownership.md +0 -0
  212. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Permissions.md +0 -0
  213. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Query.md +0 -0
  214. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Revisions.md +0 -0
  215. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Shortcuts.md +0 -0
  216. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Drive-Transfer.md +0 -0
  217. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Forms.md +0 -0
  218. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-CSE.md +0 -0
  219. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-Delegates.md +0 -0
  220. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-Filters.md +0 -0
  221. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-Forwarding.md +0 -0
  222. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-Labels.md +0 -0
  223. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  224. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-Profile.md +0 -0
  225. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-S-MIME.md +0 -0
  226. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  227. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Gmail-Settings.md +0 -0
  228. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Group-Membership.md +0 -0
  229. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Keep-Notes.md +0 -0
  230. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Looker-Studio.md +0 -0
  231. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Meet.md +0 -0
  232. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-People-Contacts-Profiles.md +0 -0
  233. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Photo.md +0 -0
  234. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Profile-Photo.md +0 -0
  235. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Profile-Sharing.md +0 -0
  236. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Shared-Drives.md +0 -0
  237. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  238. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Spreadsheets.md +0 -0
  239. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Tag-Manager.md +0 -0
  240. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Tasks.md +0 -0
  241. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Tokens.md +0 -0
  242. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-Web-Resources-and-Sites.md +0 -0
  243. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users-YouTube.md +0 -0
  244. {gam7-7.27.1 → gam7-7.27.3}/wiki/Users.md +0 -0
  245. {gam7-7.27.1 → gam7-7.27.3}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  246. {gam7-7.27.1 → gam7-7.27.3}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  247. {gam7-7.27.1 → gam7-7.27.3}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
  248. {gam7-7.27.1 → gam7-7.27.3}/wiki/Vault-Takeout.md +0 -0
  249. {gam7-7.27.1 → gam7-7.27.3}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  250. {gam7-7.27.1 → gam7-7.27.3}/wiki/_Sidebar.md +0 -0
  251. {gam7-7.27.1 → gam7-7.27.3}/wiki/gam.cfg.md +0 -0
  252. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
  253. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Android-Installation.md +0 -0
  254. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-BulkOperations.md +0 -0
  255. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-CalendarExamples.md +0 -0
  256. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Chat-Bot.md +0 -0
  257. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
  258. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
  259. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
  260. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
  261. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
  262. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
  263. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
  264. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
  265. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Command-Reference-Email.md +0 -0
  266. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
  267. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
  268. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Command-Reference-Users.md +0 -0
  269. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
  270. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  271. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
  272. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Custom-Schemas.md +0 -0
  273. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Data-Transfers.md +0 -0
  274. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-DomainVerification.md +0 -0
  275. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
  276. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-ExamplesCSV.md +0 -0
  277. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
  278. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
  279. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
  280. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  281. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-GAM-options-files.md +0 -0
  282. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
  283. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-GAM3CSVListings.md +0 -0
  284. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
  285. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
  286. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
  287. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
  288. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
  289. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Home.md +0 -0
  290. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  291. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
  292. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-LicenseExamples.md +0 -0
  293. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Managing-Admins.md +0 -0
  294. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
  295. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Managing-Devices.md +0 -0
  296. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
  297. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
  298. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Printers.md +0 -0
  299. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-ResellerCommands.md +0 -0
  300. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-SecurityExamples.md +0 -0
  301. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
  302. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  303. {gam7-7.27.1 → gam7-7.27.3}/wiki/legacy/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.27.1
3
+ Version: 7.27.3
4
4
  Summary: CLI tool to manage Google Workspace
5
5
  Project-URL: Homepage, https://github.com/GAM-team/GAM
6
6
  Project-URL: Issues, https://github.com/GAM-team/GAM/issues
@@ -2057,7 +2057,7 @@ gam create chatmessage <ChatSpace>
2057
2057
  [(thread <ChatThread>)|(threadkey <String>) [replyoption fail|fallbacktonew]]
2058
2058
  [returnidonly]
2059
2059
  gam update chatmessage name <ChatMessage>
2060
- <ChatContent>
2060
+ [<ChatContent>] [clearattachments <String>]
2061
2061
  gam delete chatmessage name <ChatMessage>
2062
2062
 
2063
2063
  <ChatMessageFieldName> ::=
@@ -4086,7 +4086,7 @@ gam print group-members [todrive <ToDriveAttribute>*]
4086
4086
  gam create cigroup <EmailAddress>
4087
4087
  [copyfrom <GroupItem>] <GroupAttribute>*
4088
4088
  [makeowner] [alias|aliases <CIGroupAliasList>]
4089
- [security|makesecuritygroup]
4089
+ [security|makesecuritygroup] [locked]
4090
4090
  [dynamic <QueryDynamicGroup>]
4091
4091
  gam update cigroup <GroupEntity> [copyfrom <GroupItem>] <GroupAttribute>
4092
4092
  [security|makesecuritygroup|
@@ -6428,13 +6428,13 @@ gam <UserTypeEntity> update chatspace <ChatSpace>
6428
6428
  [type space]
6429
6429
  [description <String>] [guidelines|rules <String>]
6430
6430
  [history <Boolean>])
6431
- [managemembersandgroups managers|members]
6432
- [modifyspacedetails managers|members]
6433
- [togglehistory managers|members]
6434
- [useatmentionall managers|members]
6435
- [manageapps managers|members]
6436
- [managewebhooks managers|members]
6437
- [replymessages managers|members]
6431
+ [managemembersandgroups owners|managers|members]
6432
+ [modifyspacedetails owners|managers|members]
6433
+ [togglehistory owners|managers|members]
6434
+ [useatmentionall owners|managers|members]
6435
+ [manageapps owners|managers|members]
6436
+ [managewebhooks owners|managers|members]
6437
+ [replymessages owners|managers|members]
6438
6438
  [formatjson]
6439
6439
  gam <UserTypeEntity> delete chatspace <ChatSpace>
6440
6440
 
@@ -6495,28 +6495,28 @@ gam <UserItem> print chatspaces asadmin [todrive <ToDriveAttribute>*]
6495
6495
  [formatjson [quotechar <Character>]]
6496
6496
 
6497
6497
  gam <UserTypeEntity> create chatmember <ChatSpace>
6498
- [type human|bot] [role member|manager]
6498
+ [type human|bot] [role member|manager|owner]
6499
6499
  (user <UserItem>)* (members <UserTypeEntity>)*
6500
6500
  (group <GroupItem>)* (groups <GroupEntity>)*
6501
6501
  [formatjson|returnidonly]
6502
6502
  gam <UserTypeEntity> delete chatmember <ChatSpace>
6503
6503
  ((user <UserItem>)|(members <UserTypeEntity>)|
6504
6504
  (group <GroupItem>)|(groups <GroupEntity>))+
6505
- gam <UserTypeEntity> remove chatmember members <ChatMemberList>
6505
+ `gam <UserTypeEntity> remove chatmember members <ChatMemberList>
6506
6506
  gam <UserTypeEntity> update chatmember <ChatSpace>
6507
- role member|manager
6507
+ role member|manager|owner
6508
6508
  ((user <UserItem>)|(members <UserTypeEntity>))+
6509
6509
  gam <UserTypeEntity> modify chatmember
6510
- role member|manager
6510
+ role member|manager|owner
6511
6511
  members <ChatMemberList>
6512
6512
  gam <UserTypeEntity> sync chatmembers <ChatSpace>
6513
- [role member|manager] [type human|bot]
6513
+ [role member|manager|owner] [type human|bot]
6514
6514
  [addonly|removeonly]
6515
6515
  [preview [actioncsv]]
6516
6516
  (users <UserTypeEntity>)* (groups <GroupEntity>)*
6517
6517
 
6518
6518
  gam <UserItem> create chatmember asadmin <ChatSpace>
6519
- [type human|bot] [role member|manager]
6519
+ [type human|bot] [role member|manager|owner]
6520
6520
  (user <UserItem>)* (members <UserTypeEntity>)*
6521
6521
  (group <GroupItem>)* (groups <GroupEntity>)*
6522
6522
  [formatjson|returnidonly]
@@ -6525,13 +6525,13 @@ gam <UserItem> delete chatmember asadmin <ChatSpace>
6525
6525
  ((user <UserItem>)|(members <UserTypeEntity>)|
6526
6526
  (group <GroupItem>)|(groups <GroupEntity>))+
6527
6527
  gam <UserItem> update chatmember asadmin <ChatSpace>
6528
- role member|manager
6528
+ role member|manager|owner
6529
6529
  ((user <UserItem>)|(members <UserTypeEntity>))+
6530
6530
  gam <UserItem> modify chatmember asadmin
6531
- role member|manager
6531
+ role member|manager|owner
6532
6532
  members <ChatMemberList>
6533
6533
  gam <UserItem> sync chatmembers asadmin <ChatSpace>
6534
- [role member|manager] [type human|bot]
6534
+ [role member|manager|owner`] [type human|bot]
6535
6535
  [addonly|removeonly]
6536
6536
  [preview [actioncsv]]
6537
6537
  (users <UserTypeEntity>)* (groups <GroupEntity>)*
@@ -6586,7 +6586,7 @@ gam <UserTypeEntity> create chatmessage <ChatSpace>
6586
6586
  [replyoption fail|fallback]
6587
6587
  [returnidonly]
6588
6588
  gam <UserTypeEntity> update chatmessage name <ChatMessage>
6589
- <ChatContent>
6589
+ [<ChatContent>] [clearattachments <String>]
6590
6590
  gam <UserTypeEntity> delete chatmessage name <ChatMessage>
6591
6591
 
6592
6592
  <ChatMessageFieldName> ::=
@@ -1,3 +1,31 @@
1
+ 7.27.03
2
+
3
+ Updated `gam <UserTypeEntity> create|update|sync chatmember` role specification to `role member|manager|owner`.
4
+ This is the mapping between the Chat UI and Chat API; GAM uses the Chat UI role names.
5
+ ```
6
+ UI: Member, API: ROLE_MEMBER
7
+ UI: Manager, API: ROLE_ASSISTANT_MANAGER
8
+ UI: Owner, API: ROLE_MANAGER
9
+ ```
10
+
11
+ Updated `gam <UserTypeEntity> update chatspace` options for permission settings.
12
+ ```
13
+ [managemembersandgroups owners|managers|members]
14
+ [modifyspacedetails owners|managers|members]
15
+ [togglehistory owners|managers|members]
16
+ [useatmentionall owners|managers|members]
17
+ [manageapps owners|managers|members]
18
+ [managewebhooks owners|managers|members]
19
+ [replymessages owners|managers|members]
20
+ ```
21
+
22
+ 7.27.02
23
+
24
+ Added option `clearattachments <String>` to `gam [<UserTypeMessage>] update chatmessage`
25
+ that clears all attachments from a Chat message. If `<ChatContent>` is not specified,
26
+ the current message text is retained and `<String>` is appended; `<String>` must be specified
27
+ but can be empty in which case the current message test is preserved as-is.
28
+
1
29
  7.27.01
2
30
 
3
31
  Fixed bug in `gam <UserTypeEntity> claim ownership <DriveFileEntity> ... onlyUsers|skipusers <UserTypeEntity>`
@@ -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.27.01'
28
+ __version__ = '7.27.03'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -9182,7 +9182,7 @@ def showJSON(showName, showValue, skipObjects=None, timeObjects=None,
9182
9182
  return
9183
9183
  if objectName is not None:
9184
9184
  printJSONKey(objectName)
9185
- subObjectKey = dictObjectsKey.get(objectName)
9185
+ subObjectKey = dictObjectsKey.get(objectName)
9186
9186
  if isinstance(objectValue, list):
9187
9187
  if objectName in simpleLists:
9188
9188
  printJSONValue(' '.join(objectValue))
@@ -26506,14 +26506,18 @@ CHAT_TIME_OBJECTS = {'createTime', 'deleteTime', 'eventTime', 'lastActiveTime',
26506
26506
  def _showChatItem(citem, entityType, FJQC, i=0, count=0):
26507
26507
  if entityType == Ent.CHAT_SPACE:
26508
26508
  _cleanChatSpace(citem)
26509
+ dictObjectsKey = {None: 'displayName'}
26509
26510
  elif entityType == Ent.CHAT_MESSAGE:
26510
26511
  _cleanChatMessage(citem)
26512
+ dictObjectsKey = {None: 'text'}
26513
+ else:
26514
+ dictObjectsKey={}
26511
26515
  if FJQC.formatJSON:
26512
26516
  printLine(json.dumps(cleanJSON(citem, timeObjects=CHAT_TIME_OBJECTS), ensure_ascii=False, sort_keys=True))
26513
26517
  return
26514
26518
  printEntity([entityType, citem['name']], i, count)
26515
26519
  Ind.Increment()
26516
- showJSON(None, citem, timeObjects=CHAT_TIME_OBJECTS)
26520
+ showJSON(None, citem, timeObjects=CHAT_TIME_OBJECTS, dictObjectsKey=dictObjectsKey)
26517
26521
  Ind.Decrement()
26518
26522
 
26519
26523
  def _printChatItem(user, citem, parent, entityType, csvPF, FJQC, addCSVData=None):
@@ -26772,14 +26776,14 @@ def getChatSpaceParameters(myarg, body, typeChoicesMap, updateMask):
26772
26776
 
26773
26777
  CHAT_MEMBER_ROLE_MAP = {
26774
26778
  'member': 'ROLE_MEMBER',
26775
- 'manager': 'ROLE_MANAGER',
26776
- 'owner': 'ROLE_OWNER',
26779
+ 'manager': 'ROLE_ASSISTANT_MANAGER',
26780
+ 'owner': 'ROLE_MANAGER',
26777
26781
  }
26778
26782
 
26779
26783
  CHAT_ROLE_ENTITY_TYPE_MAP = {
26780
26784
  'ROLE_MEMBER': Ent.CHAT_MEMBER_USER,
26781
- 'ROLE_MANAGER': Ent.CHAT_MANAGER_USER,
26782
- 'ROLE_OWNER': Ent.CHAT_OWNER_USER,
26785
+ 'ROLE_ASSISTANT_MANAGER': Ent.CHAT_MANAGER_USER,
26786
+ 'ROLE_MANAGER': Ent.CHAT_OWNER_USER,
26783
26787
  }
26784
26788
 
26785
26789
  CHAT_MEMBER_TYPE_MAP = {
@@ -26913,7 +26917,8 @@ CHAT_UPDATE_SPACE_TYPE_MAP = {
26913
26917
  }
26914
26918
 
26915
26919
  CHAT_SPACE_ROLE_PERMISSIONS_MAP = {
26916
- 'managers': 'managersAllowed',
26920
+ 'owners': 'managersAllowed',
26921
+ 'managers': 'assistantManagersAllowed',
26917
26922
  'members': 'membersAllowed',
26918
26923
  }
26919
26924
 
@@ -26933,13 +26938,13 @@ CHAT_UPDATE_SPACE_PERMISSIONS_MAP = {
26933
26938
  # [type space]
26934
26939
  # [description <String>] [guidelines|rules <String>]
26935
26940
  # [history <Boolean>])
26936
- # managemembersandgroups managers|members
26937
- # modifyspacedetails managers|members
26938
- # togglehistory managers|members
26939
- # useatmentionall managers|members
26940
- # manageapps managers|members
26941
- # managewebhooks managers|members
26942
- # replymessages managers|members
26941
+ # [managemembersandgroups owners|managers|members]
26942
+ # [modifyspacedetails owners|managers|members]
26943
+ # [togglehistory owners|managers|members]
26944
+ # [useatmentionall owners|managers|members]
26945
+ # [manageapps owners|managers|members]
26946
+ # [managewebhooks owners|managers|members]
26947
+ 2# [replymessages owners|managers|members]
26943
26948
  # [formatjson]
26944
26949
  def updateChatSpace(users):
26945
26950
  FJQC = FormatJSONQuoteChar()
@@ -26957,9 +26962,13 @@ def updateChatSpace(users):
26957
26962
  body.setdefault('permissionSettings', {})
26958
26963
  permissionSetting = CHAT_UPDATE_SPACE_PERMISSIONS_MAP[myarg]
26959
26964
  role = getChoice(CHAT_SPACE_ROLE_PERMISSIONS_MAP, mapChoice=True)
26960
- body['permissionSettings'][permissionSetting] = {'managersAllowed': True}
26965
+ body['permissionSettings'][permissionSetting] = {}
26966
+ body['permissionSettings'][permissionSetting][role] = True
26961
26967
  if role == 'membersAllowed':
26962
- body['permissionSettings'][permissionSetting].update({'membersAllowed': True})
26968
+ body['permissionSettings'][permissionSetting]['assistantManagersAllowed'] = True
26969
+ body['permissionSettings'][permissionSetting]['managersAllowed'] = True
26970
+ elif role == 'assistantManagersAllowed':
26971
+ body['permissionSettings'][permissionSetting]['managersAllowed'] = True
26963
26972
  updateMask.add(f'permissionSettings.{permissionSetting}')
26964
26973
  else:
26965
26974
  FJQC.GetFormatJSON(myarg)
@@ -27333,12 +27342,12 @@ def getGroupMemberID(cd, group, groupList):
27333
27342
  groupList.append(convertEmailAddressToUID(group, cd, emailType='group'))
27334
27343
 
27335
27344
  # gam <UserTypeEntity> create chatmember <ChatSpace>
27336
- # [type human|bot] [role member|manager]
27345
+ # [type human|bot] [role member|manager|owner]
27337
27346
  # (user <UserItem>)* (members <UserTypeEntity>)*
27338
27347
  # (group <GroupItem>)* (groups <GroupEntity>)*
27339
27348
  # [formatjson|returnidonly]
27340
27349
  # gam <UserItem> create chatmember asadmin <ChatSpace>
27341
- # [type human|bot] [role member|manager]
27350
+ # [type human|bot] [role member|manager|owner]
27342
27351
  # (user <UserItem>)* (members <UserTypeEntity>)*
27343
27352
  # (group <GroupItem>)* (groups <GroupEntity>)*
27344
27353
  # [formatjson|returnidonly]
@@ -27467,16 +27476,16 @@ def _deleteChatMembers(chat, kvList, jcount, memberNames, i, count, kwargsUAA):
27467
27476
  # gam <UserItem> remove chatmember asadmin
27468
27477
  # members <ChatMemberList>
27469
27478
  # gam <UserTypeEntity> update chatmember <ChatSpace>
27470
- # role member|manager
27479
+ # role member|manager|owner
27471
27480
  # ((user <UserItem>)|(members <UserTypeEntity>))+
27472
27481
  # gam <UserTypeEntity> modify chatmember
27473
- # role member|manager
27482
+ # role member|manager|owner
27474
27483
  # members <ChatMemberList>
27475
27484
  # gam <UserItem> update chatmember asadmin<ChatSpace>
27476
- # role member|manager
27485
+ # role member|manager|owner
27477
27486
  # ((user <UserItem>)|(members <UserTypeEntity>))+
27478
27487
  # gam <UserItem> modify chatmember asadmin
27479
- # role member|manager
27488
+ # role member|manager|owner
27480
27489
  # members <ChatMemberList>
27481
27490
  def deleteUpdateChatMember(users):
27482
27491
  cd = buildGAPIObject(API.DIRECTORY)
@@ -27570,7 +27579,7 @@ def deleteUpdateChatMember(users):
27570
27579
  CHAT_SYNC_PREVIEW_TITLES = ['space', 'member', 'role', 'action', 'message']
27571
27580
 
27572
27581
  # gam <UserTypeEntity> sync chatmembers [asadmin] <ChatSpace>
27573
- # [role member|manager] [type human|bot]
27582
+ # [role member|manager|owner] [type human|bot]
27574
27583
  # [addonly|removeonly]
27575
27584
  # [preview [actioncsv]]
27576
27585
  # (users <UserTypeEntity>)* (groups <GroupEntity>)*
@@ -27986,10 +27995,11 @@ def _getChatSenderEmail(cd, sender):
27986
27995
  sender['email'], _ = convertUIDtoEmailAddressWithType(f'uid:{senderUid}', cd, None, emailTypes=['user'])
27987
27996
 
27988
27997
  def trimChatMessageIfRequired(body):
27989
- msgLen = len(body['text'])
27990
- if msgLen > 4096:
27991
- stderrWarningMsg(Msg.TRIMMED_MESSAGE_FROM_LENGTH_TO_MAXIMUM.format(msgLen, 4096))
27992
- body['text'] = body['text'][:4095]
27998
+ if 'text' in body:
27999
+ msgLen = len(body['text'])
28000
+ if msgLen > 4096:
28001
+ stderrWarningMsg(Msg.TRIMMED_MESSAGE_FROM_LENGTH_TO_MAXIMUM.format(msgLen, 4096))
28002
+ body['text'] = body['text'][:4095]
27993
28003
 
27994
28004
  CHAT_MESSAGE_REPLY_OPTION_MAP = {
27995
28005
  'fail': 'REPLY_MESSAGE_OR_FAIL',
@@ -28066,22 +28076,29 @@ def doCreateChatMessage():
28066
28076
  createChatMessage([None])
28067
28077
 
28068
28078
  # gam [<UserTypeMessage>] update chatmessage name <ChatMessage>
28069
- # <ChatContent>
28079
+ # [<ChatContent>] [clearattachments <String>]
28070
28080
  def updateChatMessage(users):
28071
28081
  name = None
28072
28082
  body = {}
28083
+ updateMask = []
28084
+ clearMsg = ''
28073
28085
  while Cmd.ArgumentsRemaining():
28074
28086
  myarg = getArgument()
28075
28087
  if myarg == 'name':
28076
28088
  name = getString(Cmd.OB_CHAT_MESSAGE)
28077
28089
  elif myarg in SORF_TEXT_ARGUMENTS:
28078
28090
  body['text'] = getStringOrFile(myarg, minLen=0, unescapeCRLF=True)[0]
28091
+ updateMask.append('text')
28092
+ elif myarg == 'clearattachments':
28093
+ clearMsg = getString(Cmd.OB_STRING, minLen=0)
28094
+ body['attachment'] = []
28095
+ updateMask.append('attachment')
28079
28096
  else:
28080
28097
  unknownArgumentExit()
28081
28098
  if not name:
28082
28099
  missingArgumentExit('name')
28083
- if 'text' not in body:
28084
- missingArgumentExit('text or textfile')
28100
+ if not updateMask:
28101
+ missingArgumentExit('text|textfile|clearattachments')
28085
28102
  trimChatMessageIfRequired(body)
28086
28103
  i, count, users = getEntityArgument(users)
28087
28104
  for user in users:
@@ -28090,9 +28107,19 @@ def updateChatMessage(users):
28090
28107
  if not chat:
28091
28108
  continue
28092
28109
  try:
28110
+ if 'attachment' in updateMask and 'text' not in updateMask:
28111
+ resp = callGAPI(chat.spaces().messages(), 'get',
28112
+ throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
28113
+ name=name, fields='text')
28114
+ body['text'] = resp.get('text', '')
28115
+ if clearMsg:
28116
+ body['text'] += clearMsg
28117
+ elif not body['text']:
28118
+ body['text'] = 'Attachments cleared'
28119
+ updateMask.append('text')
28093
28120
  resp = callGAPI(chat.spaces().messages(), 'patch',
28094
28121
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
28095
- name=name, updateMask='text', body=body)
28122
+ name=name, updateMask=','.join(updateMask), body=body)
28096
28123
  kvList.extend([Ent.CHAT_THREAD, resp['thread']['name']])
28097
28124
  entityActionPerformed(kvList, i, count)
28098
28125
  except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
@@ -33001,6 +33028,8 @@ def doCreateGroup(ciGroupsAPI=False):
33001
33028
  initialGroupConfig = 'WITH_INITIAL_OWNER'
33002
33029
  elif ciGroupsAPI and myarg in {'security', 'makesecuritygroup'}:
33003
33030
  body['labels'][CIGROUP_SECURITY_LABEL] = ''
33031
+ elif ciGroupsAPI and myarg in ['locked']:
33032
+ body['labels'][CIGROUP_LOCKED_LABEL] = ''
33004
33033
  elif myarg == 'verifynotinvitable':
33005
33034
  verifyNotInvitable = True
33006
33035
  else:
@@ -516,7 +516,7 @@ To set up Google Chat for your current project, please go to:
516
516
 
517
517
  and follow the instructions at:
518
518
 
519
- https://github.com/GAM-team/GAM/wiki/Chat-Bot#set-up-a-chat-bot
519
+ https://github.com/GAM-team/GAM/wiki/Chat-Bot-Setup-Use#set-up-a-chat-bot
520
520
 
521
521
  You'll use projects/{1}/topics/no-topic in Connection settings Cloud Pub/Sub Topic Name
522
522
  """
@@ -83,13 +83,8 @@ echo -e '\x1B[0m'
83
83
 
84
84
  version_gt()
85
85
  {
86
- # MacOS < 10.13 doesn't support sort -V
87
- echo "" | sort -V > /dev/null 2>&1
88
- vsort_failed=$?
89
86
  if [ "${1}" = "${2}" ]; then
90
87
  true
91
- elif (( $vsort_failed != 0 )); then
92
- false
93
88
  else
94
89
  test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"
95
90
  fi
@@ -43,7 +43,7 @@ Even if you're not going to use GAM as a Chat Bot, you have to configure a Chat
43
43
  * Uncheck "Build this Chat app as a Workspace add-on."
44
44
  * Enter an App name and Description of your choosing.
45
45
  * For the Avatar URL you can use `https://dummyimage.com/384x256/4d4d4d/0011ff.png&text=+GAM` or a public URL to an image of your own choosing.
46
- * In Functionality, uncheck both "Receive 1:1 messages" and "Join spaces and group conversations"
46
+ * Inƒ Functionality, uncheck both "Receive 1:1 messages" and "Join spaces and group conversations" if present
47
47
  * In Connection settings, choose "Cloud Pub/Sub" and enter `projects/<ProjectID>/topics/no-topic` for the Topic Name. Replace `<ProjectID>` with your GAM project ID. GAM doesn't yet listen to pub/sub so this option is not used.
48
48
  * In Visibility, uncheck "Make this Chat app available to specific people and groups in Domain Workspace".
49
49
  * Click Save.
@@ -288,7 +288,7 @@ gam create chatmessage spaces spaces/AAAADi-pvqc gdoc announcements@domain.com n
288
288
  Updates and rewrites an existing Chat message. Message will show as edited and no notification will be sent to members.
289
289
  ```
290
290
  gam update chatmessage name <ChatMessage>
291
- <ChatContent>
291
+ [<ChatContent>] [clearattachments <String>]
292
292
  ```
293
293
  Specify the source of the message:
294
294
  * `text <String>` - The message is `<String>`
@@ -296,12 +296,22 @@ Specify the source of the message:
296
296
  * `gdoc <UserGoogleDoc>` - The message is read from a Google Doc.
297
297
  * `gcsdoc <StorageBucketObjectName>` - The message is read from a Google Cloud Storage file.
298
298
 
299
+ The option `clearattachments <String>` can be used to clear all attachments from a Chat message.
300
+ If `<ChatContent>` is not specified, the current message text is retained and `<String>` is appended;
301
+ `<String>` must be specified but can be empty in which case the current message test is preserved as-is.
302
+
299
303
  ### Example
304
+
300
305
  This example updates an existing chat message with new text.
301
306
  ```
302
307
  gam update chatmessage name spaces/AAAADi-pvqc/messages/PKJrx90ooIU.PKJrx90ooIU text "HELLO CHAT?"
303
308
  ```
304
309
 
310
+ This example clears attachments from a chat message and appends ` - Attachments cleared`
311
+ to the current message text.
312
+ ```
313
+ gam update chatmessage name spaces/AAAADi-pvqc/messages/PKJrx90ooIU.PKJrx90ooIU clearattachments " - Attachments cleared"
314
+ ```
305
315
  ----
306
316
 
307
317
  ## Delete a Chat Message
@@ -245,7 +245,7 @@ to set `<GroupAttribute>`.
245
245
  gam create cigroup <EmailAddress>
246
246
  [copyfrom <GroupItem>] <GroupAttribute>*
247
247
  [makeowner] [alias|aliases <CIGroupAliasList>]
248
- [security|makesecuritygroup]
248
+ [security|makesecuritygroup] [locked]
249
249
  [dynamic <QueryDynamicGroup>]
250
250
  gam update cigroup <GroupEntity> [copyfrom <GroupItem>] <GroupAttribute>
251
251
  [security|makesecuritygroup|
@@ -10,7 +10,7 @@
10
10
  - [Delete duplicate email addresses from contacts](#delete-duplicate-email-addresses-from-contacts)
11
11
  - [Manage domain contact photos](#manage-domain-contact-photos)
12
12
  - [Display domain shared contacts](#display-domain-shared-contacts)
13
- - [Display global address list](#Global-Address-List)
13
+ - [Display global address list](Global-Address-List)
14
14
 
15
15
  ## API documentation
16
16
  * [Domain Shared Contacts API](https://developers.google.com/admin-sdk/domain-shared-contacts)
@@ -10,6 +10,18 @@ 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.27.02
14
+
15
+ Added option `clearattachments <String>` to `gam [<UserTypeMessage>] update chatmessage`
16
+ that clears all attachments from a Chat message. If `<ChatContent>` is not specified,
17
+ the current message text is retained and `<String>` is appended; `<String>` must be specified
18
+ but can be empty in which case the current message test is preserved as-is.
19
+
20
+ ### 7.27.01
21
+
22
+ Fixed bug in `gam <UserTypeEntity> claim ownership <DriveFileEntity> ... onlyUsers|skipusers <UserTypeEntity>`
23
+ where the email addresses in `onlyUsers|skipusers <UserTypeEntity>` were not normalized.
24
+
13
25
  ### 7.27.00
14
26
 
15
27
  Added `debug_redaction` Boolean variable to `gam.cfg`. When True, the default,
@@ -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.27.00 - https://github.com/GAM-team/GAM - pyinstaller
255
+ GAM 7.27.02 - https://github.com/GAM-team/GAM - pyinstaller
256
256
  GAM Team <google-apps-manager@googlegroups.com>
257
257
  Python 3.14.0 64-bit final
258
258
  macOS Tahoe 26.0.1 x86_64
@@ -990,7 +990,7 @@ writes the credentials into the file oauth2.txt.
990
990
  C:\>del C:\GAMConfig\oauth2.txt
991
991
  C:\>gam version
992
992
  WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
993
- GAM 7.27.00 - https://github.com/GAM-team/GAM - pythonsource
993
+ GAM 7.27.02 - https://github.com/GAM-team/GAM - pythonsource
994
994
  GAM Team <google-apps-manager@googlegroups.com>
995
995
  Python 3.14.0 64-bit final
996
996
  Windows-10-10.0.17134 AMD64
@@ -751,7 +751,7 @@ gam user user@domain.com create chatmessage spaces spaces/AAAADi-pvqc gdoc annou
751
751
  Updates and rewrites an existing Chat message. Message will show as edited and no notification will be sent to members.
752
752
  ```
753
753
  gam <UserTypeEntity> update chatmessage name <ChatMessage>
754
- <ChatContent>
754
+ [<ChatContent>] [clearattachments <String>]
755
755
  ```
756
756
  Specify the text of the message: `<ChatContent>`
757
757
  * `text <String>` - The message is `<String>`
@@ -759,12 +759,22 @@ Specify the text of the message: `<ChatContent>`
759
759
  * `gdoc <UserGoogleDoc>` - The message is read from a Google Doc.
760
760
  * `gcsdoc <StorageBucketObjectName>` - The message is read from a Google Cloud Storage file.
761
761
 
762
+ The option `clearattachments <String>` can be used to clear all attachments from a Chat message.
763
+ If `<ChatContent>` is not specified, the current message text is retained and `<String>` is appended;
764
+ `<String>` must be specified but can be empty in which case the current message test is preserved as-is.
765
+
762
766
  ### Example
763
767
  This example updates an existing chat message with new text.
764
768
  ```
765
769
  gam user user@domain.com update chatmessage name spaces/AAAADi-pvqc/messages/PKJrx90ooIU.PKJrx90ooIU text "HELLO CHAT?"
766
770
  ```
767
771
 
772
+ This example clears attachments from a chat message and appends ` - Attachments cleared`
773
+ to the current message text.
774
+ ```
775
+ gam user user@domain.com update chatmessage name spaces/AAAADi-pvqc/messages/PKJrx90ooIU.PKJrx90ooIU clearattachments " - Attachments cleared"
776
+ ```
777
+
768
778
  ### Delete a Chat Message
769
779
  Deletes the given Chat message. Members will no longer see the message.
770
780
 
@@ -3,7 +3,7 @@
3
3
  Print the current version of Gam with details
4
4
  ```
5
5
  gam version
6
- GAM 7.27.00 - https://github.com/GAM-team/GAM - pyinstaller
6
+ GAM 7.27.02 - https://github.com/GAM-team/GAM - pyinstaller
7
7
  GAM Team <google-apps-manager@googlegroups.com>
8
8
  Python 3.14.0 64-bit final
9
9
  macOS Tahoe 26.0.1 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.27.00 - https://github.com/GAM-team/GAM - pyinstaller
18
+ GAM 7.27.02 - https://github.com/GAM-team/GAM - pyinstaller
19
19
  GAM Team <google-apps-manager@googlegroups.com>
20
20
  Python 3.14.0 64-bit final
21
21
  macOS Tahoe 26.0.1 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.27.00 - https://github.com/GAM-team/GAM - pyinstaller
30
+ GAM 7.27.02 - https://github.com/GAM-team/GAM - pyinstaller
31
31
  GAM Team <google-apps-manager@googlegroups.com>
32
32
  Python 3.14.0 64-bit final
33
33
  macOS Tahoe 26.0.1 x86_64
@@ -68,7 +68,7 @@ MacOS High Sierra 10.13.6 x86_64
68
68
  Path: /Users/Admin/bin/gam7
69
69
  Version Check:
70
70
  Current: 5.35.08
71
- Latest: 7.27.00
71
+ Latest: 7.27.02
72
72
  echo $?
73
73
  1
74
74
  ```
@@ -76,7 +76,7 @@ echo $?
76
76
  Print the current version number without details
77
77
  ```
78
78
  gam version simple
79
- 7.27.00
79
+ 7.27.02
80
80
  ```
81
81
  In Linux/MacOS you can do:
82
82
  ```
@@ -86,7 +86,7 @@ echo $VER
86
86
  Print the current version of Gam and address of this Wiki
87
87
  ```
88
88
  gam help
89
- GAM 7.27.00 - https://github.com/GAM-team/GAM
89
+ GAM 7.27.02 - https://github.com/GAM-team/GAM
90
90
  GAM Team <google-apps-manager@googlegroups.com>
91
91
  Python 3.14.0 64-bit final
92
92
  macOS Tahoe 26.0.1 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