gam7 7.7.5__tar.gz → 7.7.7__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 (318) hide show
  1. {gam7-7.7.5 → gam7-7.7.7}/PKG-INFO +1 -1
  2. {gam7-7.7.5 → gam7-7.7.7}/src/GamCommands.txt +2 -2
  3. {gam7-7.7.5 → gam7-7.7.7}/src/GamUpdate.txt +19 -0
  4. {gam7-7.7.5 → gam7-7.7.7}/src/gam/__init__.py +56 -14
  5. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glglobals.py +1 -0
  6. {gam7-7.7.5 → gam7-7.7.7}/wiki/Calendars-Events.md +9 -3
  7. {gam7-7.7.5 → gam7-7.7.7}/wiki/Cloud-Identity-Devices.md +10 -0
  8. {gam7-7.7.5 → gam7-7.7.7}/wiki/GamUpdates.md +15 -0
  9. {gam7-7.7.5 → gam7-7.7.7}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  10. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Calendars-Events.md +8 -2
  11. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Copy-Move.md +3 -0
  12. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Files-Manage.md +1 -1
  13. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Ownership.md +3 -0
  14. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Permissions.md +4 -2
  15. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Transfer.md +2 -0
  16. {gam7-7.7.5 → gam7-7.7.7}/wiki/Version-and-Help.md +6 -6
  17. {gam7-7.7.5 → gam7-7.7.7}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  18. {gam7-7.7.5 → gam7-7.7.7}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  19. {gam7-7.7.5 → gam7-7.7.7}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  20. {gam7-7.7.5 → gam7-7.7.7}/.github/ISSUE_TEMPLATE.txt +0 -0
  21. {gam7-7.7.5 → gam7-7.7.7}/.github/actions/decrypt.sh +0 -0
  22. {gam7-7.7.5 → gam7-7.7.7}/.github/actions/entitlements.plist +0 -0
  23. {gam7-7.7.5 → gam7-7.7.7}/.github/actions/package_exclusions.txt +0 -0
  24. {gam7-7.7.5 → gam7-7.7.7}/.github/stale.yml +0 -0
  25. {gam7-7.7.5 → gam7-7.7.7}/.github/workflows/build.yml +0 -0
  26. {gam7-7.7.5 → gam7-7.7.7}/.github/workflows/codeql-analysis.yml +0 -0
  27. {gam7-7.7.5 → gam7-7.7.7}/.github/workflows/get-cacerts.yml +0 -0
  28. {gam7-7.7.5 → gam7-7.7.7}/.github/workflows/pushwiki.yml +0 -0
  29. {gam7-7.7.5 → gam7-7.7.7}/.github/workflows/pypi.yml +0 -0
  30. {gam7-7.7.5 → gam7-7.7.7}/.pre-commit-config.yaml +0 -0
  31. {gam7-7.7.5 → gam7-7.7.7}/LICENSE +0 -0
  32. {gam7-7.7.5 → gam7-7.7.7}/README.md +0 -0
  33. {gam7-7.7.5 → gam7-7.7.7}/pyproject.toml +0 -0
  34. {gam7-7.7.5 → gam7-7.7.7}/src/.gitignore +0 -0
  35. {gam7-7.7.5 → gam7-7.7.7}/src/LICENSE +0 -0
  36. {gam7-7.7.5 → gam7-7.7.7}/src/cacerts.pem +0 -0
  37. {gam7-7.7.5 → gam7-7.7.7}/src/callgam.py +0 -0
  38. {gam7-7.7.5 → gam7-7.7.7}/src/gam/__main__.py +0 -0
  39. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/__init__.py +0 -0
  40. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/auth.py +0 -0
  41. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/client.py +0 -0
  42. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/core.py +0 -0
  43. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/data.py +0 -0
  44. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/http.py +0 -0
  45. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/http_core.py +0 -0
  46. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/http_interface.py +0 -0
  47. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/mock_http.py +0 -0
  48. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/mock_http_core.py +0 -0
  49. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/mock_service.py +0 -0
  50. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/service.py +0 -0
  51. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/token_store.py +0 -0
  52. {gam7-7.7.5 → gam7-7.7.7}/src/gam/atom/url.py +0 -0
  53. {gam7-7.7.5 → gam7-7.7.7}/src/gam/cacerts.pem +0 -0
  54. {gam7-7.7.5 → gam7-7.7.7}/src/gam/cbcm-v1.1beta1.json +0 -0
  55. {gam7-7.7.5 → gam7-7.7.7}/src/gam/contactdelegation-v1.json +0 -0
  56. {gam7-7.7.5 → gam7-7.7.7}/src/gam/datastudio-v1.json +0 -0
  57. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/__init__.py +0 -0
  58. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glaction.py +0 -0
  59. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glapi.py +0 -0
  60. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glcfg.py +0 -0
  61. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glclargs.py +0 -0
  62. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glentity.py +0 -0
  63. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glgapi.py +0 -0
  64. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glgdata.py +0 -0
  65. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glindent.py +0 -0
  66. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glmsgs.py +0 -0
  67. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glskus.py +0 -0
  68. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/gluprop.py +0 -0
  69. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/glverlibs.py +0 -0
  70. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gamlib/yubikey.py +0 -0
  71. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/__init__.py +0 -0
  72. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/alt/__init__.py +0 -0
  73. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/alt/app_engine.py +0 -0
  74. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/alt/appengine.py +0 -0
  75. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/apps/__init__.py +0 -0
  76. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/apps/audit/__init__.py +0 -0
  77. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/apps/audit/service.py +0 -0
  78. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  79. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/apps/contacts/service.py +0 -0
  80. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/apps/service.py +0 -0
  81. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/service.py +0 -0
  82. {gam7-7.7.5 → gam7-7.7.7}/src/gam/gdata/urlfetch.py +0 -0
  83. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/__init__.py +0 -0
  84. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/_auth.py +0 -0
  85. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/_helpers.py +0 -0
  86. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/channel.py +0 -0
  87. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/discovery.py +0 -0
  88. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  89. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  90. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  91. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  92. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/errors.py +0 -0
  93. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/http.py +0 -0
  94. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/mimeparse.py +0 -0
  95. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/model.py +0 -0
  96. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/schema.py +0 -0
  97. {gam7-7.7.5 → gam7-7.7.7}/src/gam/googleapiclient/version.py +0 -0
  98. {gam7-7.7.5 → gam7-7.7.7}/src/gam/iso8601/__init__.py +0 -0
  99. {gam7-7.7.5 → gam7-7.7.7}/src/gam/iso8601/iso8601.py +0 -0
  100. {gam7-7.7.5 → gam7-7.7.7}/src/gam/meet-v2beta.json +0 -0
  101. {gam7-7.7.5 → gam7-7.7.7}/src/gam/serviceaccountlookup-v1.json +0 -0
  102. {gam7-7.7.5 → gam7-7.7.7}/src/gam/six.py +0 -0
  103. {gam7-7.7.5 → gam7-7.7.7}/src/gam-install.sh +0 -0
  104. {gam7-7.7.5 → gam7-7.7.7}/src/gam-setup.bat +0 -0
  105. {gam7-7.7.5 → gam7-7.7.7}/src/gam.exe.manifest +0 -0
  106. {gam7-7.7.5 → gam7-7.7.7}/src/gam.py +0 -0
  107. {gam7-7.7.5 → gam7-7.7.7}/src/gam.spec +0 -0
  108. {gam7-7.7.5 → gam7-7.7.7}/src/gam.wxs +0 -0
  109. {gam7-7.7.5 → gam7-7.7.7}/src/license.rtf +0 -0
  110. {gam7-7.7.5 → gam7-7.7.7}/src/requirements-dev.txt +0 -0
  111. {gam7-7.7.5 → gam7-7.7.7}/src/requirements.txt +0 -0
  112. {gam7-7.7.5 → gam7-7.7.7}/src/setup.cfg +0 -0
  113. {gam7-7.7.5 → gam7-7.7.7}/src/setup.py +0 -0
  114. {gam7-7.7.5 → gam7-7.7.7}/src/tools/a_atleast_b.py +0 -0
  115. {gam7-7.7.5 → gam7-7.7.7}/src/tools/gen-wix-xml-filelist.py +0 -0
  116. {gam7-7.7.5 → gam7-7.7.7}/src/tools/mkGamRef.py +0 -0
  117. {gam7-7.7.5 → gam7-7.7.7}/src/tools/openssl.props +0 -0
  118. {gam7-7.7.5 → gam7-7.7.7}/src/version_info.txt.in +0 -0
  119. {gam7-7.7.5 → gam7-7.7.7}/wiki/00scratch.md +0 -0
  120. {gam7-7.7.5 → gam7-7.7.7}/wiki/Addresses.md +0 -0
  121. {gam7-7.7.5 → gam7-7.7.7}/wiki/Administrators.md +0 -0
  122. {gam7-7.7.5 → gam7-7.7.7}/wiki/Alert-Center.md +0 -0
  123. {gam7-7.7.5 → gam7-7.7.7}/wiki/Aliases.md +0 -0
  124. {gam7-7.7.5 → gam7-7.7.7}/wiki/Authorization.md +0 -0
  125. {gam7-7.7.5 → gam7-7.7.7}/wiki/BNF-Syntax.md +0 -0
  126. {gam7-7.7.5 → gam7-7.7.7}/wiki/Basic-Items.md +0 -0
  127. {gam7-7.7.5 → gam7-7.7.7}/wiki/Bulk-Processing.md +0 -0
  128. {gam7-7.7.5 → gam7-7.7.7}/wiki/CSV-Input-Filtering.md +0 -0
  129. {gam7-7.7.5 → gam7-7.7.7}/wiki/CSV-Output-Filtering.md +0 -0
  130. {gam7-7.7.5 → gam7-7.7.7}/wiki/CSV-Special-Characters.md +0 -0
  131. {gam7-7.7.5 → gam7-7.7.7}/wiki/Calendars-Access.md +0 -0
  132. {gam7-7.7.5 → gam7-7.7.7}/wiki/Calendars.md +0 -0
  133. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chat-Bot.md +0 -0
  134. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chrome-AUE-Counts.md +0 -0
  135. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  136. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chrome-Installed-Apps.md +0 -0
  137. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  138. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chrome-Policies.md +0 -0
  139. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chrome-Printers.md +0 -0
  140. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chrome-Profile-Management.md +0 -0
  141. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chrome-Version-Counts.md +0 -0
  142. {gam7-7.7.5 → gam7-7.7.7}/wiki/Chrome-Version-History.md +0 -0
  143. {gam7-7.7.5 → gam7-7.7.7}/wiki/ChromeOS-Devices.md +0 -0
  144. {gam7-7.7.5 → gam7-7.7.7}/wiki/Classroom-Courses.md +0 -0
  145. {gam7-7.7.5 → gam7-7.7.7}/wiki/Classroom-Guardians.md +0 -0
  146. {gam7-7.7.5 → gam7-7.7.7}/wiki/Classroom-Invitations.md +0 -0
  147. {gam7-7.7.5 → gam7-7.7.7}/wiki/Classroom-Membership.md +0 -0
  148. {gam7-7.7.5 → gam7-7.7.7}/wiki/Cloud-Channel.md +0 -0
  149. {gam7-7.7.5 → gam7-7.7.7}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  150. {gam7-7.7.5 → gam7-7.7.7}/wiki/Cloud-Identity-Groups.md +0 -0
  151. {gam7-7.7.5 → gam7-7.7.7}/wiki/Cloud-Identity-Policies.md +0 -0
  152. {gam7-7.7.5 → gam7-7.7.7}/wiki/Cloud-Storage.md +0 -0
  153. {gam7-7.7.5 → gam7-7.7.7}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  154. {gam7-7.7.5 → gam7-7.7.7}/wiki/Collections-of-Items.md +0 -0
  155. {gam7-7.7.5 → gam7-7.7.7}/wiki/Collections-of-Users.md +0 -0
  156. {gam7-7.7.5 → gam7-7.7.7}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  157. {gam7-7.7.5 → gam7-7.7.7}/wiki/Command-Line-Parsing.md +0 -0
  158. {gam7-7.7.5 → gam7-7.7.7}/wiki/Command-Logging-Progress.md +0 -0
  159. {gam7-7.7.5 → gam7-7.7.7}/wiki/Context-Aware-Access-Levels.md +0 -0
  160. {gam7-7.7.5 → gam7-7.7.7}/wiki/Customer.md +0 -0
  161. {gam7-7.7.5 → gam7-7.7.7}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  162. {gam7-7.7.5 → gam7-7.7.7}/wiki/Domain-SharedContacts.md +0 -0
  163. {gam7-7.7.5 → gam7-7.7.7}/wiki/Domains-Verification.md +0 -0
  164. {gam7-7.7.5 → gam7-7.7.7}/wiki/Domains.md +0 -0
  165. {gam7-7.7.5 → gam7-7.7.7}/wiki/Downloads-Installs.md +0 -0
  166. {gam7-7.7.5 → gam7-7.7.7}/wiki/Drive-File-Selection.md +0 -0
  167. {gam7-7.7.5 → gam7-7.7.7}/wiki/Drive-Items.md +0 -0
  168. {gam7-7.7.5 → gam7-7.7.7}/wiki/Drive-REST-API-v3.md +0 -0
  169. {gam7-7.7.5 → gam7-7.7.7}/wiki/Email-Audit-Monitor.md +0 -0
  170. {gam7-7.7.5 → gam7-7.7.7}/wiki/Find-File-Owner.md +0 -0
  171. {gam7-7.7.5 → gam7-7.7.7}/wiki/GAM-Public-Chat-Room.md +0 -0
  172. {gam7-7.7.5 → gam7-7.7.7}/wiki/GAM-Return-Codes.md +0 -0
  173. {gam7-7.7.5 → gam7-7.7.7}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  174. {gam7-7.7.5 → gam7-7.7.7}/wiki/GAM7-on-Android-Devices.md +0 -0
  175. {gam7-7.7.5 → gam7-7.7.7}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  176. {gam7-7.7.5 → gam7-7.7.7}/wiki/Google-Data-Transfers.md +0 -0
  177. {gam7-7.7.5 → gam7-7.7.7}/wiki/Google-Network-Addresses.md +0 -0
  178. {gam7-7.7.5 → gam7-7.7.7}/wiki/Groups-Membership.md +0 -0
  179. {gam7-7.7.5 → gam7-7.7.7}/wiki/Groups.md +0 -0
  180. {gam7-7.7.5 → gam7-7.7.7}/wiki/HTTPS-Proxy.md +0 -0
  181. {gam7-7.7.5 → gam7-7.7.7}/wiki/Home.md +0 -0
  182. {gam7-7.7.5 → gam7-7.7.7}/wiki/How-to-Install-GAM7.md +0 -0
  183. {gam7-7.7.5 → gam7-7.7.7}/wiki/How-to-Uninstall-GAM7.md +0 -0
  184. {gam7-7.7.5 → gam7-7.7.7}/wiki/How-to-Update-GAM7.md +0 -0
  185. {gam7-7.7.5 → gam7-7.7.7}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  186. {gam7-7.7.5 → gam7-7.7.7}/wiki/Inbound-SSO.md +0 -0
  187. {gam7-7.7.5 → gam7-7.7.7}/wiki/Install-GAM-as-Python-Library.md +0 -0
  188. {gam7-7.7.5 → gam7-7.7.7}/wiki/Licenses.md +0 -0
  189. {gam7-7.7.5 → gam7-7.7.7}/wiki/List-Items.md +0 -0
  190. {gam7-7.7.5 → gam7-7.7.7}/wiki/List.md +0 -0
  191. {gam7-7.7.5 → gam7-7.7.7}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  192. {gam7-7.7.5 → gam7-7.7.7}/wiki/Mobile-Devices.md +0 -0
  193. {gam7-7.7.5 → gam7-7.7.7}/wiki/Organizational-Units.md +0 -0
  194. {gam7-7.7.5 → gam7-7.7.7}/wiki/Other-Resources.md +0 -0
  195. {gam7-7.7.5 → gam7-7.7.7}/wiki/Permission-Matches.md +0 -0
  196. {gam7-7.7.5 → gam7-7.7.7}/wiki/Python-Regular-Expressions.md +0 -0
  197. {gam7-7.7.5 → gam7-7.7.7}/wiki/README.md +0 -0
  198. {gam7-7.7.5 → gam7-7.7.7}/wiki/Rclone.md +0 -0
  199. {gam7-7.7.5 → gam7-7.7.7}/wiki/Reports.md +0 -0
  200. {gam7-7.7.5 → gam7-7.7.7}/wiki/Reseller.md +0 -0
  201. {gam7-7.7.5 → gam7-7.7.7}/wiki/Resources.md +0 -0
  202. {gam7-7.7.5 → gam7-7.7.7}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  203. {gam7-7.7.5 → gam7-7.7.7}/wiki/SSL-Root-CA-Certificates.md +0 -0
  204. {gam7-7.7.5 → gam7-7.7.7}/wiki/Schemas.md +0 -0
  205. {gam7-7.7.5 → gam7-7.7.7}/wiki/Scripts.md +0 -0
  206. {gam7-7.7.5 → gam7-7.7.7}/wiki/Send-Email.md +0 -0
  207. {gam7-7.7.5 → gam7-7.7.7}/wiki/Shared-Drives.md +0 -0
  208. {gam7-7.7.5 → gam7-7.7.7}/wiki/Sites.md +0 -0
  209. {gam7-7.7.5 → gam7-7.7.7}/wiki/Tag-Replace.md +0 -0
  210. {gam7-7.7.5 → gam7-7.7.7}/wiki/Todrive.md +0 -0
  211. {gam7-7.7.5 → gam7-7.7.7}/wiki/Unmanaged-Accounts.md +0 -0
  212. {gam7-7.7.5 → gam7-7.7.7}/wiki/Upgrade-Benefits.md +0 -0
  213. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Analytics-Admin.md +0 -0
  214. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Application-Specific-Passwords.md +0 -0
  215. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Backup-Verification-Codes.md +0 -0
  216. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Calendars-Access.md +0 -0
  217. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Calendars.md +0 -0
  218. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Chat.md +0 -0
  219. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Classification-Labels.md +0 -0
  220. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Classroom-Profile.md +0 -0
  221. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Contacts-Delegates.md +0 -0
  222. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Contacts.md +0 -0
  223. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Deprovision.md +0 -0
  224. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Activity-Settings.md +0 -0
  225. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Cleanup.md +0 -0
  226. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Comments.md +0 -0
  227. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Files-Display.md +0 -0
  228. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Orphans.md +0 -0
  229. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Query.md +0 -0
  230. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Revisions.md +0 -0
  231. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Drive-Shortcuts.md +0 -0
  232. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Forms.md +0 -0
  233. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-CSE.md +0 -0
  234. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-Delegates.md +0 -0
  235. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-Filters.md +0 -0
  236. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-Forwarding.md +0 -0
  237. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-Labels.md +0 -0
  238. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  239. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-Profile.md +0 -0
  240. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-S-MIME.md +0 -0
  241. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  242. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Gmail-Settings.md +0 -0
  243. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Group-Membership.md +0 -0
  244. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Keep-Notes.md +0 -0
  245. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Looker-Studio.md +0 -0
  246. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Meet.md +0 -0
  247. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-People-Contacts-Profiles.md +0 -0
  248. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Photo.md +0 -0
  249. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Profile-Photo.md +0 -0
  250. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Profile-Sharing.md +0 -0
  251. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Shared-Drives.md +0 -0
  252. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  253. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Spreadsheets.md +0 -0
  254. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Tasks.md +0 -0
  255. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-Tokens.md +0 -0
  256. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users-YouTube.md +0 -0
  257. {gam7-7.7.5 → gam7-7.7.7}/wiki/Users.md +0 -0
  258. {gam7-7.7.5 → gam7-7.7.7}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  259. {gam7-7.7.5 → gam7-7.7.7}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  260. {gam7-7.7.5 → gam7-7.7.7}/wiki/Vault-Takeout.md +0 -0
  261. {gam7-7.7.5 → gam7-7.7.7}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  262. {gam7-7.7.5 → gam7-7.7.7}/wiki/_Sidebar.md +0 -0
  263. {gam7-7.7.5 → gam7-7.7.7}/wiki/gam.cfg.md +0 -0
  264. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-AdminSettingsExamples.md +0 -0
  265. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Android-Installation.md +0 -0
  266. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-BulkOperations.md +0 -0
  267. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-CalendarExamples.md +0 -0
  268. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Chat-Bot.md +0 -0
  269. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Chrome-Browser-Management.md +0 -0
  270. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Chrome-OS-Installation.md +0 -0
  271. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Chrome-Policy-Settings.md +0 -0
  272. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Cloud-Identity-Groups.md +0 -0
  273. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  274. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Command-Reference-Calendars.md +0 -0
  275. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Command-Reference-Definitions.md +0 -0
  276. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Command-Reference-Drive.md +0 -0
  277. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Command-Reference-Email.md +0 -0
  278. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  279. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Command-Reference-Groups.md +0 -0
  280. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Command-Reference-Users.md +0 -0
  281. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  282. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  283. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-CreatingClientSecretsFile.md +0 -0
  284. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Custom-Schemas.md +0 -0
  285. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Data-Transfers.md +0 -0
  286. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-DomainVerification.md +0 -0
  287. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-ExamplesAccountAuditing.md +0 -0
  288. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-ExamplesCSV.md +0 -0
  289. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-ExamplesEmailSettings.md +0 -0
  290. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-ExamplesOrganizations.md +0 -0
  291. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-GAM-Discussion-Group.md +0 -0
  292. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  293. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-GAM-options-files.md +0 -0
  294. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  295. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-GAM3CSVListings.md +0 -0
  296. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-GAM3DirectoryCommands.md +0 -0
  297. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-GAM3GroupSettings.md +0 -0
  298. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-GAM7-FAQ.md +0 -0
  299. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  300. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-GoogleDriveManagement.md +0 -0
  301. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  302. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Home.md +0 -0
  303. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  304. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Inbound-SSO-Settings.md +0 -0
  305. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-LicenseExamples.md +0 -0
  306. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Managing-Admins.md +0 -0
  307. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  308. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Managing-Devices.md +0 -0
  309. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Managing-Google-Classroom.md +0 -0
  310. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-OAuthKeyManagement.md +0 -0
  311. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Printers.md +0 -0
  312. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-ResellerCommands.md +0 -0
  313. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  314. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-SecurityExamples.md +0 -0
  315. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-UnmanagedUsersExamples.md +0 -0
  316. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Use-a-Yubikey.md +0 -0
  317. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  318. {gam7-7.7.5 → gam7-7.7.7}/wiki/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.7.5
3
+ Version: 7.7.7
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
@@ -1862,7 +1862,7 @@ gam calendar|calendars <CalendarEntity> show events [<EventEntity>] <EventDispla
1862
1862
  [formatjson]
1863
1863
  gam calendar|calendars <CalendarEntity> print events [<EventEntity>] <EventDisplayProperty>*
1864
1864
  [fields <EventFieldNameList>] [showdayofweek]
1865
- [countsonly]
1865
+ [countsonly [eventrowfilter]]
1866
1866
  [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
1867
1867
 
1868
1868
  gam calendar <CalendarEntity> addevent <EventAttribute>+ [<EventNotificationAttribute>]
@@ -6099,7 +6099,7 @@ gam <UserTypeEntity> show events <UserCalendarEntity> [<EventEntity>] <EventDisp
6099
6099
  [formatjson]
6100
6100
  gam <UserTypeEntity> print events <UserCalendarEntity> [<EventEntity>] <EventDisplayProperty>*
6101
6101
  [fields <EventFieldNameList>] [showdayofweek]
6102
- [countsonly]
6102
+ [countsonly [eventrowfilter]]
6103
6103
  [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
6104
6104
 
6105
6105
  gam <UserTypeEntity> update calattendees <UserCalendarEntity> <EventEntity> [anyorganizer]
@@ -1,3 +1,22 @@
1
+ 7.07.07
2
+
3
+ Fixed bug in `gam report <ActivityApplictionName> ... countsonly eventrowfilter` that issued an
4
+ incorrect warning message like the following when `redirect csv <FileName> multiprocess` was specified.
5
+ ```
6
+ WARNING: csv_output_row_filter column "^doc_title$" does not match any output columns
7
+ ```
8
+
9
+ 7.07.06
10
+
11
+ Added option `eventrowfilter` to `gam calendars <CalendarEntity> print events ... countsonly`
12
+ and `gam <UserTypeEntity> print events <UserCalendarEntity> ... countsonly` that causes
13
+ GAM to apply `config csv_output_row_filter` to the event details rather than the event counts.
14
+ This will be useful when `<EventSelectProperty>` and `<EventMatchProperty>` do not have the
15
+ capabilty to select the events of interest; e.g., you want to filter based on the event `created` property.
16
+
17
+ Dropped the extraneous `id` column for `gam calendars <CalendarEntity> print events ... countsonly`
18
+ and `gam <UserTypeEntity> print events <UserCalendarEntity> ... countsonly`.
19
+
1
20
  7.07.05
2
21
 
3
22
  Updated `gam <UserTypeEntity> move drivefile` to recognize the API error: `ERROR: 400: shareOutWarning`.
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
25
25
  """
26
26
 
27
27
  __author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
28
- __version__ = '7.07.05'
28
+ __version__ = '7.07.07'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -8565,7 +8565,7 @@ class CSVPrintFile():
8565
8565
  if not self.JSONtitlesSet:
8566
8566
  systemErrorExit(USAGE_ERROR_RC, Msg.NO_COLUMNS_SELECTED_WITH_CSV_OUTPUT_HEADER_FILTER.format(GC.CSV_OUTPUT_HEADER_FILTER, GC.CSV_OUTPUT_HEADER_DROP_FILTER))
8567
8567
 
8568
- def writeCSVfile(self, list_type):
8568
+ def writeCSVfile(self, list_type, clearRowFilters=False):
8569
8569
 
8570
8570
  def todriveCSVErrorExit(entityValueList, errMsg):
8571
8571
  systemErrorExit(ACTION_FAILED_RC, formatKeyValueList(Ind.Spaces(),
@@ -8956,6 +8956,8 @@ class CSVPrintFile():
8956
8956
  self.oneItemPerRow,
8957
8957
  self.showPermissionsLast,
8958
8958
  self.zeroBlankMimeTypeCounts)))
8959
+ if clearRowFilters:
8960
+ GM.Globals[GM.CSVFILE][GM.REDIRECT_QUEUE].put((GM.REDIRECT_QUEUE_CLEAR_ROW_FILTERS, clearRowFilters))
8959
8961
  GM.Globals[GM.CSVFILE][GM.REDIRECT_QUEUE].put((GM.REDIRECT_QUEUE_DATA, self.rows))
8960
8962
  return
8961
8963
  if self.zeroBlankMimeTypeCounts:
@@ -9582,6 +9584,7 @@ def CSVFileQueueHandler(mpQueue, mpQueueStdout, mpQueueStderr, csvPF, datetimeNo
9582
9584
  GM.Globals[GM.DATETIME_NOW] = datetimeNow
9583
9585
  GC.Values[GC.TIMEZONE] = tzinfo
9584
9586
  GC.Values[GC.OUTPUT_TIMEFORMAT] = output_timeformat
9587
+ clearRowFilters = False
9585
9588
  # if sys.platform.startswith('win'):
9586
9589
  # signal.signal(signal.SIGINT, signal.SIG_IGN)
9587
9590
  if multiprocessing.get_start_method() == 'spawn':
@@ -9639,9 +9642,15 @@ def CSVFileQueueHandler(mpQueue, mpQueueStdout, mpQueueStderr, csvPF, datetimeNo
9639
9642
  csvPF.SetTimestampColumn(GC.Values[GC.CSV_OUTPUT_TIMESTAMP_COLUMN])
9640
9643
  csvPF.SetHeaderFilter(GC.Values[GC.CSV_OUTPUT_HEADER_FILTER])
9641
9644
  csvPF.SetHeaderDropFilter(GC.Values[GC.CSV_OUTPUT_HEADER_DROP_FILTER])
9642
- csvPF.SetRowFilter(GC.Values[GC.CSV_OUTPUT_ROW_FILTER], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
9643
- csvPF.SetRowDropFilter(GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER], GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER_MODE])
9645
+ if not clearRowFilters:
9646
+ csvPF.SetRowFilter(GC.Values[GC.CSV_OUTPUT_ROW_FILTER], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
9647
+ csvPF.SetRowDropFilter(GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER], GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER_MODE])
9648
+ else:
9649
+ csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
9650
+ csvPF.SetRowDropFilter([], GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER_MODE])
9644
9651
  csvPF.SetRowLimit(GC.Values[GC.CSV_OUTPUT_ROW_LIMIT])
9652
+ elif dataType == GM.REDIRECT_QUEUE_CLEAR_ROW_FILTERS:
9653
+ clearRowFilters = dataItem
9645
9654
  else: #GM.REDIRECT_QUEUE_EOF
9646
9655
  break
9647
9656
  csvPF.writeCSVfile(list_type)
@@ -14396,7 +14405,7 @@ def doReport():
14396
14405
  if addCSVData:
14397
14406
  row.update(addCSVData)
14398
14407
  csvPF.WriteRow(row)
14399
- csvPF.writeCSVfile(f'{report.capitalize()} Activity Report')
14408
+ csvPF.writeCSVfile(f'{report.capitalize()} Activity Report', eventRowFilter)
14400
14409
 
14401
14410
  # Substitute for #user#, #email#, #usernamne#
14402
14411
  def _substituteForUser(field, user, userName):
@@ -38592,7 +38601,8 @@ def _getCalendarListEventsDisplayProperty(myarg, calendarEventEntity):
38592
38601
 
38593
38602
  def initCalendarEventEntity():
38594
38603
  return {'list': [], 'queries': [], 'kwargs': {}, 'dict': None,
38595
- 'matches': [], 'maxinstances': -1, 'countsOnly': False, 'showDayOfWeek': False}
38604
+ 'matches': [], 'maxinstances': -1, 'showDayOfWeek': False,
38605
+ 'countsOnly': False, 'eventRowFilter': False, 'countsOnlyTitles': []}
38596
38606
 
38597
38607
  def getCalendarEventEntity():
38598
38608
  calendarEventEntity = initCalendarEventEntity()
@@ -39637,11 +39647,25 @@ def _printShowCalendarEvents(origUser, user, origCal, calIds, count, calendarEve
39637
39647
  elif GC.Values[GC.CSV_OUTPUT_USERS_AUDIT] and user:
39638
39648
  csvPF.WriteRowNoFilter({'calendarId': calId, 'primaryEmail': user, 'id': ''})
39639
39649
  else:
39650
+ if calendarEventEntity['eventRowFilter']:
39651
+ jcount = 0
39652
+ for event in events:
39653
+ if calendarEventEntity['showDayOfWeek']:
39654
+ _getEventDaysOfWeek(event)
39655
+ row = {'calendarId': calId, 'id': event['id']}
39656
+ if user:
39657
+ row['primaryEmail'] = user
39658
+ flattenJSON(event, flattened=row, timeObjects=EVENT_TIME_OBJECTS)
39659
+ if csvPF.CheckRowTitles(row):
39660
+ jcount += 1
39640
39661
  row = {'calendarId': calId}
39641
39662
  if user:
39642
39663
  row['primaryEmail'] = user
39643
39664
  row['events'] = jcount
39644
- csvPF.WriteRow(row)
39665
+ if not calendarEventEntity['eventRowFilter']:
39666
+ csvPF.WriteRow(row)
39667
+ else:
39668
+ csvPF.WriteRowNoFilter(row)
39645
39669
 
39646
39670
  EVENT_FIELDS_CHOICE_MAP = {
39647
39671
  'anyonecanaddself': 'anyoneCanAddSelf',
@@ -39879,13 +39903,17 @@ def _getCalendarPrintShowEventOptions(calendarEventEntity, entityType):
39879
39903
  calendarEventEntity['countsOnly'] = True
39880
39904
  elif myarg == 'showdayofweek':
39881
39905
  calendarEventEntity['showDayOfWeek'] = True
39906
+ elif myarg == 'eventrowfilter':
39907
+ calendarEventEntity['eventRowFilter'] = True
39882
39908
  else:
39883
39909
  FJQC.GetFormatJSONQuoteChar(myarg, True)
39884
- if calendarEventEntity['countsOnly']:
39910
+ if calendarEventEntity['countsOnly'] and not calendarEventEntity['eventRowFilter']:
39885
39911
  fieldsList = ['id']
39886
39912
  if csvPF:
39887
39913
  if calendarEventEntity['countsOnly']:
39914
+ csvPF.RemoveTitles(['id'])
39888
39915
  csvPF.AddTitles(['events'])
39916
+ calendarEventEntity['countsOnlyTitles'] = csvPF.titlesList[:]
39889
39917
  elif not FJQC.formatJSON and not fieldsList:
39890
39918
  csvPF.AddSortTitles(EVENT_PRINT_ORDER)
39891
39919
  _addEventEntitySelectFields(calendarEventEntity, fieldsList)
@@ -39893,17 +39921,24 @@ def _getCalendarPrintShowEventOptions(calendarEventEntity, entityType):
39893
39921
 
39894
39922
  # gam calendars <CalendarEntity> print events <EventEntity> <EventDisplayProperties>*
39895
39923
  # [fields <EventFieldNameList>] [showdayofweek]
39896
- # [countsonly] [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
39924
+ # [countsonly [eventrowfilter]]
39925
+ # [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
39897
39926
  # gam calendars <CalendarEntity> show events <EventEntity> <EventDisplayProperties>*
39898
39927
  # [fields <EventFieldNameList>] [showdayofweek]
39899
- # [countsonly] [formatjson]
39928
+ # [countsonly]
39929
+ # [formatjson]
39900
39930
  def doCalendarsPrintShowEvents(calIds):
39901
39931
  calendarEventEntity = getCalendarEventEntity()
39902
39932
  csvPF, FJQC, fieldsList = _getCalendarPrintShowEventOptions(calendarEventEntity, Ent.CALENDAR)
39903
39933
  _printShowCalendarEvents(None, None, None, calIds, len(calIds), calendarEventEntity,
39904
39934
  csvPF, FJQC, fieldsList)
39905
39935
  if csvPF:
39906
- csvPF.writeCSVfile('Calendar Events')
39936
+ if calendarEventEntity['countsOnly'] and calendarEventEntity['eventRowFilter']:
39937
+ csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
39938
+ csvPF.SetTitles(calendarEventEntity['countsOnlyTitles'])
39939
+ csvPF.writeCSVfile('Calendar Events', True)
39940
+ else:
39941
+ csvPF.writeCSVfile('Calendar Events')
39907
39942
 
39908
39943
  # <CalendarSettings> ::==
39909
39944
  # [description <String>] [location <String>] [summary <String>] [timezone <TimeZone>]
@@ -51371,10 +51406,12 @@ def infoCalendarEvents(users):
51371
51406
 
51372
51407
  # gam <UserTypeEntity> print events <UserCalendarEntity> <EventEntity> <EventDisplayProperties>*
51373
51408
  # [fields <EventFieldNameList>] [showdayofweek]
51374
- # [countsonly] [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
51409
+ # [countsonly [eventrowfilter]]
51410
+ # [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
51375
51411
  # gam <UserTypeEntity> show events <UserCalendarEntity> <EventEntity> <EventDisplayProperties>*
51376
51412
  # [fields <EventFieldNameList>] [showdayofweek]
51377
- # [countsonly] [formatjson]
51413
+ # [countsonly]]
51414
+ # [formatjson]
51378
51415
  def printShowCalendarEvents(users):
51379
51416
  calendarEntity = getUserCalendarEntity()
51380
51417
  calendarEventEntity = getCalendarEventEntity()
@@ -51392,7 +51429,12 @@ def printShowCalendarEvents(users):
51392
51429
  csvPF, FJQC, fieldsList)
51393
51430
  Ind.Decrement()
51394
51431
  if csvPF:
51395
- csvPF.writeCSVfile('Calendar Events')
51432
+ if calendarEventEntity['countsOnly'] and calendarEventEntity['eventRowFilter']:
51433
+ csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
51434
+ csvPF.SetTitles(calendarEventEntity['countsOnlyTitles'])
51435
+ csvPF.writeCSVfile('Calendar Events', True)
51436
+ else:
51437
+ csvPF.writeCSVfile('Calendar Events')
51396
51438
 
51397
51439
  def getStatusEventDateTime(dateType, dateList):
51398
51440
  if dateType == 'timerange':
@@ -207,6 +207,7 @@ REDIRECT_WRITE_HEADER = 'rdwh'
207
207
  REDIRECT_MULTIPROCESS = 'rdmp'
208
208
  REDIRECT_QUEUE = 'rdq'
209
209
  REDIRECT_QUEUE_NAME = 'name'
210
+ REDIRECT_QUEUE_CLEAR_ROW_FILTERS = 'clearRowFilters'
210
211
  REDIRECT_QUEUE_TODRIVE = 'todrive'
211
212
  REDIRECT_QUEUE_CSVPF = 'csvpf'
212
213
  REDIRECT_QUEUE_DATA = 'rows'
@@ -567,7 +567,7 @@ By default, Gam displays the information as an indented list of keys and values.
567
567
  ```
568
568
  gam calendar <CalendarEntity> show events [<EventEntity>] <EventDisplayProperty>*
569
569
  [fields <EventFieldNameList>] [showdayofweek]
570
- [countsonly] [formatjson]
570
+ [countsly] [formatjson]
571
571
  ```
572
572
  In `<EventEntity>`, any `<EventSelectProperty>` options must precede all other options.
573
573
 
@@ -585,8 +585,9 @@ By default, Gam displays event details, use `countsonly` to display only the num
585
585
 
586
586
  ```
587
587
  gam calendar <CalendarEntity> print events [<EventEntity>] <EventDisplayProperty>*
588
- [fields <EventFieldNameList>] [showdayofweek]
589
- [countsonly] [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
588
+ [fields <EventFieldNameList>] [showdayofweek]
589
+ [countsonly [eventrowfilter]]
590
+ [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
590
591
  ```
591
592
  In `<EventEntity>`, any `<EventSelectProperty>` options must precede all other options.
592
593
 
@@ -602,6 +603,11 @@ By default, Gam displays the information as columns of fields; the following opt
602
603
 
603
604
  By default, Gam displays event details, use `countsonly` to display only the number of events. `formatjson` does not apply in this case.
604
605
 
606
+ When `countsonly` is specified, the `eventrowfilter` option causes
607
+ GAM to apply `config csv_output_row_filter` to the event details rather than the event counts.
608
+ This will be useful when `<EventSelectProperty>` and `<EventMatchProperty>` do not have the
609
+ capabilty to select the events of interest; e.g., you want to filter based on the event `created` property.
610
+
605
611
  By default, when writing CSV files, Gam uses a quote character of double quote `"`. The quote character is used to enclose columns that contain
606
612
  the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
607
613
  When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output.
@@ -1,4 +1,5 @@
1
1
  # Cloud Identity Devices
2
+ - [Notes](#notes)
2
3
  - [API documentation](#api-documentation)
3
4
  - [Query documentation](#query-documentation)
4
5
  - [Definitions](#definitions)
@@ -20,6 +21,15 @@
20
21
  - [Display device user client state](#display-device-user-client-state)
21
22
  - [Update device user client state](#update-device-user-client-state)
22
23
 
24
+ ## Notes
25
+ These commands use service account access with `admin_email` (if defined) from `gam.cfg` or
26
+ the admin from `oauth2.txt` (specified in `gam oauth create`).
27
+
28
+ Use `gam user user@domain.com update serviceaccount` and make sure that the following is specified:
29
+ ```
30
+ [*] 17) Cloud Identity Devices API (supports readonly)
31
+ ```
32
+
23
33
  ## API documentation
24
34
  * [Cloud Identity API - Devices](https://cloud.google.com/identity/docs/reference/rest/v1/devices)
25
35
  * [Cloud Identity API - Device Users](https://cloud.google.com/identity/docs/reference/rest/v1/devices.deviceUsers)
@@ -10,6 +10,21 @@ 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.07.06
14
+
15
+ Added option `eventrowfilter` to `gam calendars <CalendarEntity> print events ... countsonly`
16
+ and `gam <UserTypeEntity> print events <UserCalendarEntity> ... countsonly` that causes
17
+ GAM to apply `config csv_output_row_filter` to the event details rather than the event counts.
18
+ This will be useful when `<EventSelectProperty>` and `<EventMatchProperty>` do not have the
19
+ capabilty to select the events of interest; e.g., you want to filter based on the event `created` property.
20
+
21
+ Dropped the extraneous `id` column for `gam calendars <CalendarEntity> print events ... countsonly`
22
+ and `gam <UserTypeEntity> print events <UserCalendarEntity> ... countsonly`.
23
+
24
+ ### 7.07.05
25
+
26
+ Updated `gam <UserTypeEntity> move drivefile` to recognize the API error: `ERROR: 400: shareOutWarning`.
27
+
13
28
  ### 7.07.04
14
29
 
15
30
  Updated `gam create vaultexport ... rooms <ChatSpaceList>` to strip `spaces/` from the Chat Space IDs.
@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
251
251
  admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
252
252
  admin@server:/Users/admin$ gam version
253
253
  WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
254
- GAM 7.07.04 - https://github.com/GAM-team/GAM - pyinstaller
254
+ GAM 7.07.06 - https://github.com/GAM-team/GAM - pyinstaller
255
255
  GAM Team <google-apps-manager@googlegroups.com>
256
256
  Python 3.13.3 64-bit final
257
257
  MacOS Sequoia 15.4.1 x86_64
@@ -989,7 +989,7 @@ writes the credentials into the file oauth2.txt.
989
989
  C:\>del C:\GAMConfig\oauth2.txt
990
990
  C:\>gam version
991
991
  WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
992
- GAM 7.07.04 - https://github.com/GAM-team/GAM - pythonsource
992
+ GAM 7.07.06 - https://github.com/GAM-team/GAM - pythonsource
993
993
  GAM Team <google-apps-manager@googlegroups.com>
994
994
  Python 3.13.3 64-bit final
995
995
  Windows-10-10.0.17134 AMD64
@@ -671,8 +671,9 @@ By default, Gam displays event details, use `countsonly` to display only the num
671
671
 
672
672
  ```
673
673
  gam <UserTypeEntity> print events <UserCalendarEntity> [<EventEntity>] <EventDisplayProperty>*
674
- [fields <EventFieldNameList>] [showdayofweek]
675
- [countsonly] [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
674
+ [fields <EventFieldNameList>] [showdayofweek]
675
+ [countsonly]
676
+ [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
676
677
  ```
677
678
  In `<EventEntity>`, any `<EventSelectProperty>` options must precede all other options.
678
679
 
@@ -688,6 +689,11 @@ By default, Gam displays the information as columns of fields; the following opt
688
689
 
689
690
  By default, Gam displays event details, use `countsonly` to display only the number of events. `formatjson` does not apply in this case.
690
691
 
692
+ When `countsonly` is specified, the `eventrowfilter` option causes
693
+ GAM to apply `config csv_output_row_filter` to the event details rather than the event counts.
694
+ This will be useful when `<EventSelectProperty>` and `<EventMatchProperty>` do not have the
695
+ capabilty to select the events of interest; e.g., you want to filter based on the event `created` property.
696
+
691
697
  By default, when writing CSV files, Gam uses a quote character of double quote `"`. The quote character is used to enclose columns that contain
692
698
  the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
693
699
  When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output.
@@ -18,6 +18,7 @@
18
18
  * [Drive API - Files](https://developers.google.com/drive/api/v3/reference/files)
19
19
  * [Move content to Shared Drives](https://support.google.com/a/answer/7374057)
20
20
  * [Shared Drive Limits](https://support.google.com/a/users/answer/7338880)
21
+ * [Limited and Expansive Access](https://developers.google.com/workspace/drive/api/guides/limited-expansive-access)
21
22
 
22
23
  ## Definitions
23
24
  * [`<DriveFileEntity>`](Drive-File-Selection)
@@ -115,6 +116,7 @@ gam <UserTypeEntity> copy drivefile <DriveFileEntity>
115
116
  (mappermissionsdomain <DomainName> <DomainName>)*
116
117
  [sendemailifrequired [<Boolean>]]
117
118
  [verifyorganizer [<Boolean>]]
119
+ [enforceexpansiveaccess [<Boolean>]]
118
120
  ```
119
121
  The files/folders specified by `<DriveFileEntity>` are referred to as `source`, `target` refers to where those files are being copied.
120
122
  The files/folders specified by `<DriveFileEntity>` are referred to as `top`; when a folder is being copied recursively, the files/folders that it contains are referred as `sub`.
@@ -499,6 +501,7 @@ gam <UserTypeEntity> move drivefile <DriveFileEntity> [newfilename <DriveFileNam
499
501
  [retainsourcefolders [<Boolean>]]
500
502
  [sendemailifrequired [<Boolean>]]
501
503
  [verifyorganizer [<Boolean>]]
504
+ [enforceexpansiveaccess [<Boolean>]]
502
505
  ```
503
506
  The files/folders specified by `<DriveFileEntity>` are referred to as `source`, `target` refers to where those files are being moved.
504
507
  The files/folders specified by `<DriveFileEntity>` are referred to as `top`; when a folder is being moved, the files/folders that it contains are referred as `sub`.
@@ -30,7 +30,7 @@
30
30
  * [Shared Drive Limits](https://support.google.com/a/users/answer/7338880)
31
31
  * [My Drive Shared Drive API differences](https://developers.google.com/drive/api/v3/shared-drives-diffs)
32
32
  * [Google Docs API](https://developers.google.com/docs/api/reference/rest)
33
- * [Limited Access](https://workspaceupdates.googleblog.com/2025/02/updating-access-experience-in-google-drive.html)
33
+ * [Limited and Expansive Access](https://developers.google.com/workspace/drive/api/guides/limited-expansive-access)
34
34
 
35
35
  ## Definitions
36
36
  * [`<DriveFileEntity>`](Drive-File-Selection)
@@ -7,6 +7,7 @@
7
7
 
8
8
  ## API documentation
9
9
  * [Drive API - Files](https://developers.google.com/drive/api/v3/reference/files)
10
+ * [Limited and Expansive Access](https://developers.google.com/workspace/drive/api/guides/limited-expansive-access)
10
11
 
11
12
  ## Definitions
12
13
  * [`<DriveFileEntity>`](Drive-File-Selection)
@@ -60,6 +61,7 @@ Use [Users - Drive - Transfer](Users-Drive-Transfer) for more complex ownership
60
61
  ```
61
62
  gam <UserTypeEntity> transfer ownership <DriveFileEntity> <UserItem>
62
63
  [<DriveFileParentAttribute>] [includetrashed] [norecursion [<Boolean>]]
64
+ [enforceexpansiveaccess [<Boolean>]]
63
65
  (orderby <DriveOrderByFieldName> [ascending|descending])*
64
66
  [preview] [filepath] [pathdelimiter <Character>] [buildtree] [todrive <ToDriveAttribute>*]
65
67
  ```
@@ -99,6 +101,7 @@ gam <UserTypeEntity> claim ownership <DriveFileEntity>
99
101
  [skipids <DriveFileEntity>] [onlyusers|skipusers <UserTypeEntity>] [subdomains <DomainNameEntity>]
100
102
  [restricted [<Boolean>]] [writerscanshare|writerscantshare [<Boolean>]]
101
103
  [keepuser | (retainrole reader|commenter|writer|editor|none)] [noretentionmessages]
104
+ [enforceexpansiveaccess [<Boolean>]]
102
105
  (orderby <DriveOrderByFieldName> [ascending|descending])*
103
106
  [preview] [filepath] [pathdelimiter <Character>] [buildtree] [todrive <ToDriveAttribute>*]
104
107
  ```
@@ -13,6 +13,7 @@
13
13
  ## API documentation
14
14
  * [Drive API - Permissions](https://developers.google.com/drive/api/v3/reference/permissions)
15
15
  * [Shortcuts](https://developers.google.com/drive/api/guides/shortcuts)
16
+ * [Limited and Expansive Access](https://developers.google.com/workspace/drive/api/guides/limited-expansive-access)
16
17
 
17
18
  ## Definitions
18
19
  * [`<DriveFileEntity>`](Drive-File-Selection)
@@ -196,7 +197,7 @@ By default, when an ACL is created, GAM outputs details of the ACL as indented k
196
197
  ```
197
198
  gam <UserTypeEntity> update drivefileacl <DriveFileEntity> <DriveFilePermissionIDorEmail>
198
199
  (role <DriveFileACLRole>) [expiration <Time>] [removeexpiration [<Boolean>]]
199
- [updatesheetprotectedranges [<Boolean>]]
200
+ [updatesheetprotectedranges [<Boolean>]] [enforceexpansiveaccess [<Boolean>]]
200
201
  [showtitles] [nodetails|(csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]])]
201
202
  ```
202
203
  There is no change of parents when a new user is updated to be a file's owner.
@@ -222,7 +223,7 @@ By default, when an ACL is updated, GAM outputs details of the ACL as indented k
222
223
  ### Delete
223
224
  ```
224
225
  gam <UserTypeEntity> delete|del drivefileacl <DriveFileEntity> <DriveFilePermissionIDorEmail>
225
- [updatesheetprotectedranges [<Boolean>]]
226
+ [updatesheetprotectedranges [<Boolean>]] [enforceexpansiveaccess [<Boolean>]]
226
227
  [showtitles]
227
228
  ```
228
229
  The option `updatesheetprotectedranges` only applies to items in `<DriveFileEntity>` that are Google Sheets.
@@ -262,6 +263,7 @@ When adding permissions from JSON data, permissions with `deleted` true are neve
262
263
  ```
263
264
  gam <UserTypeEntity> delete permissions <DriveFileEntity> <DriveFilePermissionIDEntity>
264
265
  <PermissionMatch>* [<PermissionMatchAction>]
266
+ [enforceexpansiveaccess [<Boolean>]]
265
267
  ```
266
268
  When deleting permissions from JSON data, permissions with role `owner` true are never processed.
267
269
 
@@ -9,6 +9,7 @@
9
9
  * [Drive API - Files](https://developers.google.com/drive/api/v3/reference/files)
10
10
  * [Shortcuts](https://developers.google.com/drive/api/guides/shortcuts)
11
11
  * [Prepare account for transfer](https://support.google.com/a/answer/1247799)
12
+ * [Limited and Expansive Access](https://developers.google.com/workspace/drive/api/guides/limited-expansive-access)
12
13
 
13
14
  ## Definitions
14
15
  * [`<DriveFileEntity>`](Drive-File-Selection)
@@ -47,6 +48,7 @@ gam <UserTypeEntity> transfer drive <UserItem> [select <DriveFileEntity>]
47
48
  [noretentionmessages]
48
49
  [nonowner_retainrole reader|commenter|writer|editor|contentmanager|fileorganizer|current|none]
49
50
  [nonowner_targetrole reader|commenter|writer|editor|contentmanager|fileorganizer|current|none|source]
51
+ [enforceexpansiveaccess [<Boolean>]]
50
52
  (orderby <DriveFileOrderByFieldName> [ascending|descending])*
51
53
  [preview] [todrive <ToDriveAttribute>*]
52
54
  ```
@@ -3,7 +3,7 @@
3
3
  Print the current version of Gam with details
4
4
  ```
5
5
  gam version
6
- GAM 7.07.04 - https://github.com/GAM-team/GAM - pyinstaller
6
+ GAM 7.07.06 - https://github.com/GAM-team/GAM - pyinstaller
7
7
  GAM Team <google-apps-manager@googlegroups.com>
8
8
  Python 3.13.3 64-bit final
9
9
  MacOS Sequoia 15.4.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.07.04 - https://github.com/GAM-team/GAM - pyinstaller
18
+ GAM 7.07.06 - https://github.com/GAM-team/GAM - pyinstaller
19
19
  GAM Team <google-apps-manager@googlegroups.com>
20
20
  Python 3.13.3 64-bit final
21
21
  MacOS Sequoia 15.4.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.07.04 - https://github.com/GAM-team/GAM - pyinstaller
30
+ GAM 7.07.06 - https://github.com/GAM-team/GAM - pyinstaller
31
31
  GAM Team <google-apps-manager@googlegroups.com>
32
32
  Python 3.13.3 64-bit final
33
33
  MacOS Sequoia 15.4.1 x86_64
@@ -64,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64
64
64
  Path: /Users/Admin/bin/gam7
65
65
  Version Check:
66
66
  Current: 5.35.08
67
- Latest: 7.07.04
67
+ Latest: 7.07.06
68
68
  echo $?
69
69
  1
70
70
  ```
@@ -72,7 +72,7 @@ echo $?
72
72
  Print the current version number without details
73
73
  ```
74
74
  gam version simple
75
- 7.07.04
75
+ 7.07.06
76
76
  ```
77
77
  In Linux/MacOS you can do:
78
78
  ```
@@ -82,7 +82,7 @@ echo $VER
82
82
  Print the current version of Gam and address of this Wiki
83
83
  ```
84
84
  gam help
85
- GAM 7.07.04 - https://github.com/GAM-team/GAM
85
+ GAM 7.07.06 - https://github.com/GAM-team/GAM
86
86
  GAM Team <google-apps-manager@googlegroups.com>
87
87
  Python 3.13.3 64-bit final
88
88
  MacOS Sequoia 15.4.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
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