gam7 7.10.4__tar.gz → 7.10.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. {gam7-7.10.4 → gam7-7.10.6}/.github/workflows/build.yml +2 -2
  2. {gam7-7.10.4 → gam7-7.10.6}/PKG-INFO +1 -1
  3. {gam7-7.10.4 → gam7-7.10.6}/src/GamCommands.txt +1 -0
  4. {gam7-7.10.4 → gam7-7.10.6}/src/GamUpdate.txt +9 -0
  5. {gam7-7.10.4 → gam7-7.10.6}/src/gam/__init__.py +41 -11
  6. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glgapi.py +6 -2
  7. {gam7-7.10.4 → gam7-7.10.6}/wiki/GamUpdates.md +13 -0
  8. {gam7-7.10.4 → gam7-7.10.6}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  9. {gam7-7.10.4 → gam7-7.10.6}/wiki/Reports.md +3 -5
  10. {gam7-7.10.4 → gam7-7.10.6}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -7
  11. {gam7-7.10.4 → gam7-7.10.6}/wiki/Version-and-Help.md +6 -6
  12. {gam7-7.10.4 → gam7-7.10.6}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  13. {gam7-7.10.4 → gam7-7.10.6}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  14. {gam7-7.10.4 → gam7-7.10.6}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  15. {gam7-7.10.4 → gam7-7.10.6}/.github/ISSUE_TEMPLATE.txt +0 -0
  16. {gam7-7.10.4 → gam7-7.10.6}/.github/actions/decrypt.sh +0 -0
  17. {gam7-7.10.4 → gam7-7.10.6}/.github/actions/entitlements.plist +0 -0
  18. {gam7-7.10.4 → gam7-7.10.6}/.github/actions/package_exclusions.txt +0 -0
  19. {gam7-7.10.4 → gam7-7.10.6}/.github/stale.yml +0 -0
  20. {gam7-7.10.4 → gam7-7.10.6}/.github/workflows/codeql-analysis.yml +0 -0
  21. {gam7-7.10.4 → gam7-7.10.6}/.github/workflows/get-cacerts.yml +0 -0
  22. {gam7-7.10.4 → gam7-7.10.6}/.github/workflows/pushwiki.yml +0 -0
  23. {gam7-7.10.4 → gam7-7.10.6}/.github/workflows/pypi.yml +0 -0
  24. {gam7-7.10.4 → gam7-7.10.6}/.pre-commit-config.yaml +0 -0
  25. {gam7-7.10.4 → gam7-7.10.6}/LICENSE +0 -0
  26. {gam7-7.10.4 → gam7-7.10.6}/README.md +0 -0
  27. {gam7-7.10.4 → gam7-7.10.6}/pyproject.toml +0 -0
  28. {gam7-7.10.4 → gam7-7.10.6}/src/.gitignore +0 -0
  29. {gam7-7.10.4 → gam7-7.10.6}/src/LICENSE +0 -0
  30. {gam7-7.10.4 → gam7-7.10.6}/src/cacerts.pem +0 -0
  31. {gam7-7.10.4 → gam7-7.10.6}/src/callgam.py +0 -0
  32. {gam7-7.10.4 → gam7-7.10.6}/src/gam/__main__.py +0 -0
  33. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/__init__.py +0 -0
  34. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/auth.py +0 -0
  35. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/client.py +0 -0
  36. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/core.py +0 -0
  37. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/data.py +0 -0
  38. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/http.py +0 -0
  39. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/http_core.py +0 -0
  40. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/http_interface.py +0 -0
  41. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/mock_http.py +0 -0
  42. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/mock_http_core.py +0 -0
  43. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/mock_service.py +0 -0
  44. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/service.py +0 -0
  45. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/token_store.py +0 -0
  46. {gam7-7.10.4 → gam7-7.10.6}/src/gam/atom/url.py +0 -0
  47. {gam7-7.10.4 → gam7-7.10.6}/src/gam/cacerts.pem +0 -0
  48. {gam7-7.10.4 → gam7-7.10.6}/src/gam/cbcm-v1.1beta1.json +0 -0
  49. {gam7-7.10.4 → gam7-7.10.6}/src/gam/contactdelegation-v1.json +0 -0
  50. {gam7-7.10.4 → gam7-7.10.6}/src/gam/datastudio-v1.json +0 -0
  51. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/__init__.py +0 -0
  52. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glaction.py +0 -0
  53. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glapi.py +0 -0
  54. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glcfg.py +0 -0
  55. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glclargs.py +0 -0
  56. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glentity.py +0 -0
  57. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glgdata.py +0 -0
  58. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glglobals.py +0 -0
  59. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glindent.py +0 -0
  60. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glmsgs.py +0 -0
  61. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glskus.py +0 -0
  62. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/gluprop.py +0 -0
  63. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/glverlibs.py +0 -0
  64. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gamlib/yubikey.py +0 -0
  65. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/__init__.py +0 -0
  66. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/alt/__init__.py +0 -0
  67. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/alt/app_engine.py +0 -0
  68. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/alt/appengine.py +0 -0
  69. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/apps/__init__.py +0 -0
  70. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/apps/audit/__init__.py +0 -0
  71. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/apps/audit/service.py +0 -0
  72. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  73. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/apps/contacts/service.py +0 -0
  74. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/apps/service.py +0 -0
  75. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/service.py +0 -0
  76. {gam7-7.10.4 → gam7-7.10.6}/src/gam/gdata/urlfetch.py +0 -0
  77. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/__init__.py +0 -0
  78. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/_auth.py +0 -0
  79. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/_helpers.py +0 -0
  80. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/channel.py +0 -0
  81. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/discovery.py +0 -0
  82. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  83. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  84. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  85. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  86. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/errors.py +0 -0
  87. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/http.py +0 -0
  88. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/mimeparse.py +0 -0
  89. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/model.py +0 -0
  90. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/schema.py +0 -0
  91. {gam7-7.10.4 → gam7-7.10.6}/src/gam/googleapiclient/version.py +0 -0
  92. {gam7-7.10.4 → gam7-7.10.6}/src/gam/iso8601/__init__.py +0 -0
  93. {gam7-7.10.4 → gam7-7.10.6}/src/gam/iso8601/iso8601.py +0 -0
  94. {gam7-7.10.4 → gam7-7.10.6}/src/gam/meet-v2beta.json +0 -0
  95. {gam7-7.10.4 → gam7-7.10.6}/src/gam/serviceaccountlookup-v1.json +0 -0
  96. {gam7-7.10.4 → gam7-7.10.6}/src/gam/six.py +0 -0
  97. {gam7-7.10.4 → gam7-7.10.6}/src/gam-install.sh +0 -0
  98. {gam7-7.10.4 → gam7-7.10.6}/src/gam-setup.bat +0 -0
  99. {gam7-7.10.4 → gam7-7.10.6}/src/gam.exe.manifest +0 -0
  100. {gam7-7.10.4 → gam7-7.10.6}/src/gam.py +0 -0
  101. {gam7-7.10.4 → gam7-7.10.6}/src/gam.spec +0 -0
  102. {gam7-7.10.4 → gam7-7.10.6}/src/gam.wxs +0 -0
  103. {gam7-7.10.4 → gam7-7.10.6}/src/license.rtf +0 -0
  104. {gam7-7.10.4 → gam7-7.10.6}/src/requirements-dev.txt +0 -0
  105. {gam7-7.10.4 → gam7-7.10.6}/src/requirements.txt +0 -0
  106. {gam7-7.10.4 → gam7-7.10.6}/src/setup.cfg +0 -0
  107. {gam7-7.10.4 → gam7-7.10.6}/src/setup.py +0 -0
  108. {gam7-7.10.4 → gam7-7.10.6}/src/tools/a_atleast_b.py +0 -0
  109. {gam7-7.10.4 → gam7-7.10.6}/src/tools/gen-wix-xml-filelist.py +0 -0
  110. {gam7-7.10.4 → gam7-7.10.6}/src/tools/mkGamRef.py +0 -0
  111. {gam7-7.10.4 → gam7-7.10.6}/src/tools/openssl.props +0 -0
  112. {gam7-7.10.4 → gam7-7.10.6}/src/version_info.txt.in +0 -0
  113. {gam7-7.10.4 → gam7-7.10.6}/wiki/00scratch.md +0 -0
  114. {gam7-7.10.4 → gam7-7.10.6}/wiki/Addresses.md +0 -0
  115. {gam7-7.10.4 → gam7-7.10.6}/wiki/Administrators.md +0 -0
  116. {gam7-7.10.4 → gam7-7.10.6}/wiki/Alert-Center.md +0 -0
  117. {gam7-7.10.4 → gam7-7.10.6}/wiki/Aliases.md +0 -0
  118. {gam7-7.10.4 → gam7-7.10.6}/wiki/Authorization.md +0 -0
  119. {gam7-7.10.4 → gam7-7.10.6}/wiki/BNF-Syntax.md +0 -0
  120. {gam7-7.10.4 → gam7-7.10.6}/wiki/Basic-Items.md +0 -0
  121. {gam7-7.10.4 → gam7-7.10.6}/wiki/Bulk-Processing.md +0 -0
  122. {gam7-7.10.4 → gam7-7.10.6}/wiki/CSV-Input-Filtering.md +0 -0
  123. {gam7-7.10.4 → gam7-7.10.6}/wiki/CSV-Output-Filtering.md +0 -0
  124. {gam7-7.10.4 → gam7-7.10.6}/wiki/CSV-Special-Characters.md +0 -0
  125. {gam7-7.10.4 → gam7-7.10.6}/wiki/Calendars-Access.md +0 -0
  126. {gam7-7.10.4 → gam7-7.10.6}/wiki/Calendars-Events.md +0 -0
  127. {gam7-7.10.4 → gam7-7.10.6}/wiki/Calendars.md +0 -0
  128. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chat-Bot.md +0 -0
  129. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chrome-AUE-Counts.md +0 -0
  130. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  131. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chrome-Installed-Apps.md +0 -0
  132. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  133. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chrome-Policies.md +0 -0
  134. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chrome-Printers.md +0 -0
  135. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chrome-Profile-Management.md +0 -0
  136. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chrome-Version-Counts.md +0 -0
  137. {gam7-7.10.4 → gam7-7.10.6}/wiki/Chrome-Version-History.md +0 -0
  138. {gam7-7.10.4 → gam7-7.10.6}/wiki/ChromeOS-Devices.md +0 -0
  139. {gam7-7.10.4 → gam7-7.10.6}/wiki/Classroom-Courses.md +0 -0
  140. {gam7-7.10.4 → gam7-7.10.6}/wiki/Classroom-Guardians.md +0 -0
  141. {gam7-7.10.4 → gam7-7.10.6}/wiki/Classroom-Invitations.md +0 -0
  142. {gam7-7.10.4 → gam7-7.10.6}/wiki/Classroom-Membership.md +0 -0
  143. {gam7-7.10.4 → gam7-7.10.6}/wiki/Cloud-Channel.md +0 -0
  144. {gam7-7.10.4 → gam7-7.10.6}/wiki/Cloud-Identity-Devices.md +0 -0
  145. {gam7-7.10.4 → gam7-7.10.6}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  146. {gam7-7.10.4 → gam7-7.10.6}/wiki/Cloud-Identity-Groups.md +0 -0
  147. {gam7-7.10.4 → gam7-7.10.6}/wiki/Cloud-Identity-Policies.md +0 -0
  148. {gam7-7.10.4 → gam7-7.10.6}/wiki/Cloud-Storage.md +0 -0
  149. {gam7-7.10.4 → gam7-7.10.6}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  150. {gam7-7.10.4 → gam7-7.10.6}/wiki/Collections-of-Items.md +0 -0
  151. {gam7-7.10.4 → gam7-7.10.6}/wiki/Collections-of-Users.md +0 -0
  152. {gam7-7.10.4 → gam7-7.10.6}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  153. {gam7-7.10.4 → gam7-7.10.6}/wiki/Command-Line-Parsing.md +0 -0
  154. {gam7-7.10.4 → gam7-7.10.6}/wiki/Command-Logging-Progress.md +0 -0
  155. {gam7-7.10.4 → gam7-7.10.6}/wiki/Context-Aware-Access-Levels.md +0 -0
  156. {gam7-7.10.4 → gam7-7.10.6}/wiki/Customer.md +0 -0
  157. {gam7-7.10.4 → gam7-7.10.6}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  158. {gam7-7.10.4 → gam7-7.10.6}/wiki/Domain-SharedContacts.md +0 -0
  159. {gam7-7.10.4 → gam7-7.10.6}/wiki/Domains-Verification.md +0 -0
  160. {gam7-7.10.4 → gam7-7.10.6}/wiki/Domains.md +0 -0
  161. {gam7-7.10.4 → gam7-7.10.6}/wiki/Downloads-Installs.md +0 -0
  162. {gam7-7.10.4 → gam7-7.10.6}/wiki/Drive-File-Selection.md +0 -0
  163. {gam7-7.10.4 → gam7-7.10.6}/wiki/Drive-Items.md +0 -0
  164. {gam7-7.10.4 → gam7-7.10.6}/wiki/Drive-REST-API-v3.md +0 -0
  165. {gam7-7.10.4 → gam7-7.10.6}/wiki/Email-Audit-Monitor.md +0 -0
  166. {gam7-7.10.4 → gam7-7.10.6}/wiki/Find-File-Owner.md +0 -0
  167. {gam7-7.10.4 → gam7-7.10.6}/wiki/GAM-Public-Chat-Room.md +0 -0
  168. {gam7-7.10.4 → gam7-7.10.6}/wiki/GAM-Return-Codes.md +0 -0
  169. {gam7-7.10.4 → gam7-7.10.6}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  170. {gam7-7.10.4 → gam7-7.10.6}/wiki/GAM7-on-Android-Devices.md +0 -0
  171. {gam7-7.10.4 → gam7-7.10.6}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  172. {gam7-7.10.4 → gam7-7.10.6}/wiki/Google-Data-Transfers.md +0 -0
  173. {gam7-7.10.4 → gam7-7.10.6}/wiki/Google-Network-Addresses.md +0 -0
  174. {gam7-7.10.4 → gam7-7.10.6}/wiki/Groups-Membership.md +0 -0
  175. {gam7-7.10.4 → gam7-7.10.6}/wiki/Groups.md +0 -0
  176. {gam7-7.10.4 → gam7-7.10.6}/wiki/HTTPS-Proxy.md +0 -0
  177. {gam7-7.10.4 → gam7-7.10.6}/wiki/Home.md +0 -0
  178. {gam7-7.10.4 → gam7-7.10.6}/wiki/How-to-Install-GAM7.md +0 -0
  179. {gam7-7.10.4 → gam7-7.10.6}/wiki/How-to-Uninstall-GAM7.md +0 -0
  180. {gam7-7.10.4 → gam7-7.10.6}/wiki/How-to-Update-GAM7.md +0 -0
  181. {gam7-7.10.4 → gam7-7.10.6}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  182. {gam7-7.10.4 → gam7-7.10.6}/wiki/Inbound-SSO.md +0 -0
  183. {gam7-7.10.4 → gam7-7.10.6}/wiki/Install-GAM-as-Python-Library.md +0 -0
  184. {gam7-7.10.4 → gam7-7.10.6}/wiki/Licenses.md +0 -0
  185. {gam7-7.10.4 → gam7-7.10.6}/wiki/List-Items.md +0 -0
  186. {gam7-7.10.4 → gam7-7.10.6}/wiki/List.md +0 -0
  187. {gam7-7.10.4 → gam7-7.10.6}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  188. {gam7-7.10.4 → gam7-7.10.6}/wiki/Mobile-Devices.md +0 -0
  189. {gam7-7.10.4 → gam7-7.10.6}/wiki/Organizational-Units.md +0 -0
  190. {gam7-7.10.4 → gam7-7.10.6}/wiki/Other-Resources.md +0 -0
  191. {gam7-7.10.4 → gam7-7.10.6}/wiki/Permission-Matches.md +0 -0
  192. {gam7-7.10.4 → gam7-7.10.6}/wiki/Python-Regular-Expressions.md +0 -0
  193. {gam7-7.10.4 → gam7-7.10.6}/wiki/README.md +0 -0
  194. {gam7-7.10.4 → gam7-7.10.6}/wiki/Rclone.md +0 -0
  195. {gam7-7.10.4 → gam7-7.10.6}/wiki/Reseller.md +0 -0
  196. {gam7-7.10.4 → gam7-7.10.6}/wiki/Resources.md +0 -0
  197. {gam7-7.10.4 → gam7-7.10.6}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  198. {gam7-7.10.4 → gam7-7.10.6}/wiki/SSL-Root-CA-Certificates.md +0 -0
  199. {gam7-7.10.4 → gam7-7.10.6}/wiki/Schemas.md +0 -0
  200. {gam7-7.10.4 → gam7-7.10.6}/wiki/Scripts.md +0 -0
  201. {gam7-7.10.4 → gam7-7.10.6}/wiki/Send-Email.md +0 -0
  202. {gam7-7.10.4 → gam7-7.10.6}/wiki/Shared-Drives.md +0 -0
  203. {gam7-7.10.4 → gam7-7.10.6}/wiki/Sites.md +0 -0
  204. {gam7-7.10.4 → gam7-7.10.6}/wiki/Tag-Replace.md +0 -0
  205. {gam7-7.10.4 → gam7-7.10.6}/wiki/Todrive.md +0 -0
  206. {gam7-7.10.4 → gam7-7.10.6}/wiki/Unmanaged-Accounts.md +0 -0
  207. {gam7-7.10.4 → gam7-7.10.6}/wiki/Upgrade-Benefits.md +0 -0
  208. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Analytics-Admin.md +0 -0
  209. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Application-Specific-Passwords.md +0 -0
  210. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Backup-Verification-Codes.md +0 -0
  211. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Calendars-Access.md +0 -0
  212. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Calendars-Events.md +0 -0
  213. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Calendars.md +0 -0
  214. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Chat.md +0 -0
  215. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Classification-Labels.md +0 -0
  216. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Classroom-Profile.md +0 -0
  217. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Contacts-Delegates.md +0 -0
  218. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Contacts.md +0 -0
  219. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Deprovision.md +0 -0
  220. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Activity-Settings.md +0 -0
  221. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Cleanup.md +0 -0
  222. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Comments.md +0 -0
  223. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Copy-Move.md +0 -0
  224. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Files-Display.md +0 -0
  225. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Files-Manage.md +0 -0
  226. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Orphans.md +0 -0
  227. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Ownership.md +0 -0
  228. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Permissions.md +0 -0
  229. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Query.md +0 -0
  230. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Revisions.md +0 -0
  231. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Shortcuts.md +0 -0
  232. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Drive-Transfer.md +0 -0
  233. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Forms.md +0 -0
  234. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-CSE.md +0 -0
  235. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-Delegates.md +0 -0
  236. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-Filters.md +0 -0
  237. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-Forwarding.md +0 -0
  238. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-Labels.md +0 -0
  239. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  240. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-Profile.md +0 -0
  241. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-S-MIME.md +0 -0
  242. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  243. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Gmail-Settings.md +0 -0
  244. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Group-Membership.md +0 -0
  245. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Keep-Notes.md +0 -0
  246. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Looker-Studio.md +0 -0
  247. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Meet.md +0 -0
  248. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-People-Contacts-Profiles.md +0 -0
  249. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Photo.md +0 -0
  250. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Profile-Photo.md +0 -0
  251. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Profile-Sharing.md +0 -0
  252. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Shared-Drives.md +0 -0
  253. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  254. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Spreadsheets.md +0 -0
  255. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Tasks.md +0 -0
  256. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-Tokens.md +0 -0
  257. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users-YouTube.md +0 -0
  258. {gam7-7.10.4 → gam7-7.10.6}/wiki/Users.md +0 -0
  259. {gam7-7.10.4 → gam7-7.10.6}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  260. {gam7-7.10.4 → gam7-7.10.6}/wiki/Vault-Takeout.md +0 -0
  261. {gam7-7.10.4 → gam7-7.10.6}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  262. {gam7-7.10.4 → gam7-7.10.6}/wiki/_Sidebar.md +0 -0
  263. {gam7-7.10.4 → gam7-7.10.6}/wiki/gam.cfg.md +0 -0
  264. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-AdminSettingsExamples.md +0 -0
  265. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Android-Installation.md +0 -0
  266. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-BulkOperations.md +0 -0
  267. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-CalendarExamples.md +0 -0
  268. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Chat-Bot.md +0 -0
  269. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Chrome-Browser-Management.md +0 -0
  270. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Chrome-OS-Installation.md +0 -0
  271. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Chrome-Policy-Settings.md +0 -0
  272. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Cloud-Identity-Groups.md +0 -0
  273. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  274. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Command-Reference-Calendars.md +0 -0
  275. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Command-Reference-Definitions.md +0 -0
  276. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Command-Reference-Drive.md +0 -0
  277. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Command-Reference-Email.md +0 -0
  278. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  279. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Command-Reference-Groups.md +0 -0
  280. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Command-Reference-Users.md +0 -0
  281. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  282. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  283. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-CreatingClientSecretsFile.md +0 -0
  284. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Custom-Schemas.md +0 -0
  285. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Data-Transfers.md +0 -0
  286. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-DomainVerification.md +0 -0
  287. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-ExamplesAccountAuditing.md +0 -0
  288. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-ExamplesCSV.md +0 -0
  289. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-ExamplesEmailSettings.md +0 -0
  290. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-ExamplesOrganizations.md +0 -0
  291. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-GAM-Discussion-Group.md +0 -0
  292. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  293. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-GAM-options-files.md +0 -0
  294. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  295. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-GAM3CSVListings.md +0 -0
  296. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-GAM3DirectoryCommands.md +0 -0
  297. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-GAM3GroupSettings.md +0 -0
  298. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-GAM7-FAQ.md +0 -0
  299. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  300. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-GoogleDriveManagement.md +0 -0
  301. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  302. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Home.md +0 -0
  303. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  304. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Inbound-SSO-Settings.md +0 -0
  305. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-LicenseExamples.md +0 -0
  306. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Managing-Admins.md +0 -0
  307. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  308. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Managing-Devices.md +0 -0
  309. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Managing-Google-Classroom.md +0 -0
  310. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-OAuthKeyManagement.md +0 -0
  311. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Printers.md +0 -0
  312. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-ResellerCommands.md +0 -0
  313. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  314. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-SecurityExamples.md +0 -0
  315. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-UnmanagedUsersExamples.md +0 -0
  316. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Use-a-Yubikey.md +0 -0
  317. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  318. {gam7-7.10.4 → gam7-7.10.6}/wiki/l-_Footer.md +0 -0
@@ -810,7 +810,7 @@ jobs:
810
810
  echo "Created shared drive ${driveid}"
811
811
  $gam create user $newuser firstname GHA lastname $JID displayname "Github Actions ${JID}" password random recoveryphone 12125121110 recoveryemail jay0lee@gmail.com gha.jid $JID languages en+,en-GB- ou "${newou}"
812
812
  $gam user $newuser add license workspaceenterpriseplus
813
- $gam user $newuser update photo https://dummyimage.com/400x600/000/fff
813
+ $gam user $newuser update photo https://dummyimage.com/98x98/000/fff.jpg
814
814
  $gam user $newuser get photo
815
815
  $gam user $newuser delete photo
816
816
  $gam create alias $newalias user $newuser
@@ -920,7 +920,7 @@ jobs:
920
920
  $gam config enable_dasa true save
921
921
  $gam print users query "gha.jid=$JID" | $gam csv - gam delete user ~primaryEmail || if [ $? != 50 ]; then exit $?; fi # expect a 50 return code (vault hold on user)
922
922
  $gam print mobile
923
- $gam print devices
923
+ $gam print devices clientstates
924
924
  $gam print browsers
925
925
  $gam print cros allfields orderby serialnumber
926
926
  $gam show crostelemetry storagepercentonly
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.10.4
3
+ Version: 7.10.6
4
4
  Summary: CLI tool to manage Google Workspace
5
5
  Project-URL: Homepage, https://github.com/GAM-team/GAM
6
6
  Project-URL: Issues, https://github.com/GAM-team/GAM/issues
@@ -4124,6 +4124,7 @@ gam print devices [todrive <ToDriveAttribute>*]
4124
4124
  [orderby <DeviceOrderByFieldName> [ascending|descending]]
4125
4125
  [all|company|personal|nocompanydevices|nopersonaldevices]
4126
4126
  [nodeviceusers|oneuserperrow]
4127
+ [clientstates]
4127
4128
  [formatjson [quotechar <Character>]]
4128
4129
  [showitemcountonly]
4129
4130
 
@@ -1,3 +1,12 @@
1
+ 7.10.06
2
+
3
+ "gam print devices clientstates" to include client states in device output
4
+
5
+ 7.10.05
6
+
7
+ Google renamed an error: cannotModifyInheritedTeamDrivePermission became cannotModifyInheritedPermission.
8
+ GAM will now handle the new error.
9
+
1
10
  7.10.04
2
11
 
3
12
  Updated `gam report <ActivityApplicationName>` to accept accept application names as defined
@@ -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.10.04'
28
+ __version__ = '7.10.06'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -29508,6 +29508,7 @@ def getCIDeviceEntity():
29508
29508
  return ([], ci, customer, False)
29509
29509
 
29510
29510
  DEVICE_USERNAME_PATTERN = re.compile(r'^(devices/.+)/(deviceUsers/.+)$')
29511
+ DEVICE_USERNAME_CLIENT_STATE_PATTERN = re.compile(r'^(devices/.+/deviceUsers/.+)/clientStates/(.+)$')
29511
29512
  DEVICE_USERNAME_FORMAT_REQUIRED = 'devices/<String>/deviceUsers/<String>'
29512
29513
  def getCIDeviceUserEntity():
29513
29514
  ci = buildGAPICIDeviceServiceObject()
@@ -29956,6 +29957,7 @@ DEVICE_ORDERBY_CHOICE_MAP = {
29956
29957
  # [orderby <DeviceOrderByFieldName> [ascending|descending]]
29957
29958
  # [all|company|personal|nocompanydevices|nopersonaldevices]
29958
29959
  # [nodeviceusers|oneuserperrow]
29960
+ # [clientstates]
29959
29961
  # [formatjson [quotechar <Character>]]
29960
29962
  # [showitemcountonly]
29961
29963
  def doPrintCIDevices():
@@ -29971,6 +29973,7 @@ def doPrintCIDevices():
29971
29973
  queries = [None]
29972
29974
  view, entityType = DEVICE_VIEW_CHOICE_MAP['all']
29973
29975
  getDeviceUsers = True
29976
+ getClientStates = False
29974
29977
  oneUserPerRow = showItemCountOnly = False
29975
29978
  while Cmd.ArgumentsRemaining():
29976
29979
  myarg = getArgument()
@@ -29986,6 +29989,8 @@ def doPrintCIDevices():
29986
29989
  view, entityType = DEVICE_VIEW_CHOICE_MAP[myarg]
29987
29990
  elif myarg == 'nodeviceusers':
29988
29991
  getDeviceUsers = False
29992
+ elif myarg == 'clientstates':
29993
+ getClientStates = True
29989
29994
  elif myarg in {'oneuserperrow', 'oneitemperrow'}:
29990
29995
  getDeviceUsers = oneUserPerRow = True
29991
29996
  elif getFieldsList(myarg, DEVICE_FIELDS_CHOICE_MAP, fieldsList, initialField='name'):
@@ -30004,14 +30009,16 @@ def doPrintCIDevices():
30004
30009
  if FJQC.formatJSON and oneUserPerRow:
30005
30010
  csvPF.SetJSONTitles(['name', 'user.name', 'JSON'])
30006
30011
  itemCount = 0
30012
+ throwReasons = [GAPI.INVALID, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED]
30013
+ retryReasons = GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS
30007
30014
  for query in queries:
30008
30015
  printGettingAllAccountEntities(entityType, query)
30009
30016
  pageMessage = getPageMessage()
30010
30017
  try:
30011
30018
  devices = callGAPIpages(ci.devices(), 'list', 'devices',
30012
30019
  pageMessage=pageMessage,
30013
- throwReasons=[GAPI.INVALID, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
30014
- retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
30020
+ throwReasons=throwReasons,
30021
+ retryReasons=retryReasons,
30015
30022
  customer=customer, filter=query,
30016
30023
  orderBy=OBY.orderBy, view=view, fields=fields, pageSize=100)
30017
30024
  if showItemCountOnly:
@@ -30030,10 +30037,27 @@ def doPrintCIDevices():
30030
30037
  try:
30031
30038
  deviceUsers = callGAPIpages(ci.devices().deviceUsers(), 'list', 'deviceUsers',
30032
30039
  pageMessage=pageMessage,
30033
- throwReasons=[GAPI.INVALID, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
30034
- retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
30040
+ throwReasons=throwReasons,
30041
+ retryReasons=retryReasons,
30035
30042
  customer=customer, filter=query, parent=parent,
30036
30043
  orderBy=OBY.orderBy, fields=userFields, pageSize=20)
30044
+ if getClientStates:
30045
+ printGettingAllAccountEntities(Ent.DEVICE_USER_CLIENT_STATE, None)
30046
+ states = callGAPIpages(ci.devices().deviceUsers().clientStates(), 'list', 'clientStates',
30047
+ pageMessage=pageMessage,
30048
+ throwReasons=throwReasons,
30049
+ retryReasons=retryReasons,
30050
+ customer=customer, filter=query, parent='devices/-/deviceUsers/-')
30051
+ for state in states:
30052
+ mg = DEVICE_USERNAME_CLIENT_STATE_PATTERN.match(state['name'])
30053
+ if mg:
30054
+ du = mg.group(1)
30055
+ state_name = mg.group(2)
30056
+ for i in range(len(deviceUsers)):
30057
+ if deviceUsers[i]['name'] == du:
30058
+ deviceUsers[i].setdefault('clientstates', {})
30059
+ deviceUsers[i]['clientstates'][state_name] = state
30060
+ break
30037
30061
  for deviceUser in deviceUsers:
30038
30062
  mg = DEVICE_USERNAME_PATTERN.match(deviceUser['name'])
30039
30063
  if mg:
@@ -59527,7 +59551,8 @@ def _copyPermissions(drive, user, i, count, j, jcount,
59527
59551
  entityActionPerformed(kvList, k, kcount)
59528
59552
  except (GAPI.notFound, GAPI.permissionNotFound,
59529
59553
  GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError,
59530
- GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission,
59554
+ GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner,
59555
+ GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission,
59531
59556
  GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded, GAPI.cannotDeletePermission) as e:
59532
59557
  entityActionFailedWarning(kvList, str(e), k, kcount)
59533
59558
  except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
@@ -59554,7 +59579,8 @@ def _copyPermissions(drive, user, i, count, j, jcount,
59554
59579
  entityActionPerformed(kvList, k, kcount)
59555
59580
  except (GAPI.notFound, GAPI.permissionNotFound,
59556
59581
  GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError,
59557
- GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission,
59582
+ GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner,
59583
+ GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission,
59558
59584
  GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded) as e:
59559
59585
  entityActionFailedWarning(kvList, str(e), k, kcount)
59560
59586
  except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
@@ -60561,7 +60587,8 @@ def _updateMoveFilePermissions(drive, user, i, count,
60561
60587
  entityActionPerformed(kvList, k, kcount)
60562
60588
  except (GAPI.notFound, GAPI.permissionNotFound,
60563
60589
  GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError,
60564
- GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission,
60590
+ GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner,
60591
+ GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission,
60565
60592
  GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded, GAPI.cannotDeletePermission) as e:
60566
60593
  entityActionFailedWarning(kvList, str(e), k, kcount)
60567
60594
  except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
@@ -63984,7 +64011,8 @@ def updateDriveFileACLs(users, useDomainAdminAccess=False):
63984
64011
  GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges,
63985
64012
  GAPI.publishOutNotPermitted, GAPI.shareInNotPermitted, GAPI.shareOutNotPermitted, GAPI.shareOutNotPermittedToUser,
63986
64013
  GAPI.organizerOnNonTeamDriveItemNotSupported, GAPI.fileOrganizerOnNonTeamDriveNotSupported,
63987
- GAPI.cannotUpdatePermission, GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.fieldNotWritable) as e:
64014
+ GAPI.cannotUpdatePermission, GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission,
64015
+ GAPI.fieldNotWritable) as e:
63988
64016
  entityActionFailedWarning([Ent.USER, user, entityType, fileName], str(e), j, jcount)
63989
64017
  except (GAPI.notFound, GAPI.teamDriveDomainUsersOnlyRestriction, GAPI.teamDriveTeamMembersOnlyRestriction,
63990
64018
  GAPI.cannotShareTeamDriveTopFolderWithAnyoneOrDomains, GAPI.ownerOnTeamDriveItemNotSupported,
@@ -64257,7 +64285,8 @@ def deleteDriveFileACLs(users, useDomainAdminAccess=False):
64257
64285
  if updateSheetProtectedRanges and mimeType == MIMETYPE_GA_SPREADSHEET:
64258
64286
  _updateSheetProtectedRangesACLchange(sheet, user, i, count, j, jcount, fileId, fileName, False, permission)
64259
64287
  except (GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError,
64260
- GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission,
64288
+ GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner,
64289
+ GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission,
64261
64290
  GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded, GAPI.cannotDeletePermission) as e:
64262
64291
  entityActionFailedWarning([Ent.USER, user, entityType, fileName], str(e), j, jcount)
64263
64292
  except GAPI.notFound as e:
@@ -64313,7 +64342,8 @@ def deletePermissions(users, useDomainAdminAccess=False):
64313
64342
  fileId=ri[RI_ENTITY], permissionId=ri[RI_ITEM], supportsAllDrives=True)
64314
64343
  entityActionPerformed([Ent.DRIVE_FILE_OR_FOLDER_ID, ri[RI_ENTITY], Ent.PERMISSION_ID, ri[RI_ITEM]], int(ri[RI_J]), int(ri[RI_JCOUNT]))
64315
64344
  except (GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError,
64316
- GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission,
64345
+ GAPI.badRequest, GAPI.cannotRemoveOwner,
64346
+ GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission,
64317
64347
  GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded, GAPI.permissionNotFound, GAPI.cannotDeletePermission,
64318
64348
  GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
64319
64349
  entityActionFailedWarning([Ent.DRIVE_FILE_OR_FOLDER_ID, ri[RI_ENTITY], Ent.PERMISSION_ID, ri[RI_ITEM]], str(e), int(ri[RI_J]), int(ri[RI_JCOUNT]))
@@ -41,6 +41,7 @@ CANNOT_DELETE_PERMISSION = 'cannotDeletePermission'
41
41
  CANNOT_DELETE_PRIMARY_CALENDAR = 'cannotDeletePrimaryCalendar'
42
42
  CANNOT_DELETE_PRIMARY_SENDAS = 'cannotDeletePrimarySendAs'
43
43
  CANNOT_DELETE_RESOURCE_WITH_CHILDREN = 'cannotDeleteResourceWithChildren'
44
+ CANNOT_MODIFY_INHERITED_PERMISSION = 'cannotModifyInheritedPermission'
44
45
  CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION = 'cannotModifyInheritedTeamDrivePermission'
45
46
  CANNOT_MODIFY_RESTRICTED_LABEL = 'cannotModifyRestrictedLabel'
46
47
  CANNOT_MODIFY_VIEWERS_CAN_COPY_CONTENT = 'cannotModifyViewersCanCopyContent'
@@ -248,10 +249,10 @@ DRIVE3_UPDATE_ACL_THROW_REASONS = [BAD_REQUEST, INVALID_OWNERSHIP_TRANSFER, CANN
248
249
  FILE_ORGANIZER_ON_FOLDERS_IN_SHARED_DRIVE_ONLY,
249
250
  FILE_ORGANIZER_ON_NON_TEAMDRIVE_NOT_SUPPORTED,
250
251
  CANNOT_UPDATE_PERMISSION,
251
- CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION,
252
+ CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION, CANNOT_MODIFY_INHERITED_PERMISSION,
252
253
  FIELD_NOT_WRITABLE, PERMISSION_NOT_FOUND]
253
254
  DRIVE3_DELETE_ACL_THROW_REASONS = [BAD_REQUEST, CANNOT_REMOVE_OWNER,
254
- CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION,
255
+ CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION, CANNOT_MODIFY_INHERITED_PERMISSION,
255
256
  INSUFFICIENT_ADMINISTRATOR_PRIVILEGES, SHARING_RATE_LIMIT_EXCEEDED,
256
257
  NOT_FOUND, PERMISSION_NOT_FOUND, CANNOT_DELETE_PERMISSION]
257
258
  DRIVE3_MODIFY_LABEL_THROW_REASONS = DRIVE_USER_THROW_REASONS+[FILE_NOT_FOUND, NOT_FOUND, FORBIDDEN, INTERNAL_ERROR,
@@ -398,6 +399,8 @@ class cannotDeletePrimarySendAs(Exception):
398
399
  pass
399
400
  class cannotDeleteResourceWithChildren(Exception):
400
401
  pass
402
+ class cannotModifyInheritedPermission(Exception):
403
+ pass
401
404
  class cannotModifyInheritedTeamDrivePermission(Exception):
402
405
  pass
403
406
  class cannotModifyRestrictedLabel(Exception):
@@ -698,6 +701,7 @@ REASON_EXCEPTION_MAP = {
698
701
  CANNOT_DELETE_PRIMARY_CALENDAR: cannotDeletePrimaryCalendar,
699
702
  CANNOT_DELETE_PRIMARY_SENDAS: cannotDeletePrimarySendAs,
700
703
  CANNOT_DELETE_RESOURCE_WITH_CHILDREN: cannotDeleteResourceWithChildren,
704
+ CANNOT_MODIFY_INHERITED_PERMISSION: cannotModifyInheritedPermission,
701
705
  CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION: cannotModifyInheritedTeamDrivePermission,
702
706
  CANNOT_MODIFY_RESTRICTED_LABEL: cannotModifyRestrictedLabel,
703
707
  CANNOT_MODIFY_VIEWERS_CAN_COPY_CONTENT: cannotModifyViewersCanCopyContent,
@@ -10,6 +10,19 @@ 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.10.05
14
+
15
+ Google renamed an error: cannotModifyInheritedTeamDrivePermission became cannotModifyInheritedPermission.
16
+ GAM will now handle the new error.
17
+
18
+ ### 7.10.04
19
+
20
+ Updated `gam report <ActivityApplicationName>` to accept accept application names as defined
21
+ in the Reports API discovery document; this means that GAM does not have to be updated when
22
+ Google defines a new application name.
23
+
24
+ `gemini_in_workspace_apps` is now available in `gam report`.
25
+
13
26
  ### 7.10.03
14
27
 
15
28
  Fixed bug in commands that modify messages where the `labelids <LabelIdList>` option
@@ -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.10.03 - https://github.com/GAM-team/GAM - pyinstaller
254
+ GAM 7.10.05 - https://github.com/GAM-team/GAM - pyinstaller
255
255
  GAM Team <google-apps-manager@googlegroups.com>
256
256
  Python 3.13.5 64-bit final
257
257
  MacOS Sequoia 15.5 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.10.03 - https://github.com/GAM-team/GAM - pythonsource
992
+ GAM 7.10.05 - https://github.com/GAM-team/GAM - pythonsource
993
993
  GAM Team <google-apps-manager@googlegroups.com>
994
994
  Python 3.13.5 64-bit final
995
995
  Windows-10-10.0.17134 AMD64
@@ -39,20 +39,18 @@ config csv_output_row_filter "'\"accounts:used_quota_in_mb\":count>15000'"
39
39
  ## Activity reports
40
40
  ```
41
41
  <ActivityApplicationName> ::=
42
- access|accesstransparency|
42
+ accesstransparency|access|
43
43
  admin|
44
44
  calendar|calendars|
45
45
  chat|
46
46
  chrome|
47
47
  classroom|
48
48
  contextawareaccess|
49
- currents|gplus|google+|
49
+ gplus|currents|google+|
50
50
  datastudio|
51
- devices|mobile|
52
- domain|
53
51
  drive|doc|docs|
54
52
  gcp|cloud|
55
- gemini|geminiforworkspace|
53
+ geminiinworkspaceapps|gemini|geminiforworkspace|
56
54
  groups|group|
57
55
  groupsenterprise|enterprisegroups|
58
56
  jamboard|
@@ -1,19 +1,12 @@
1
1
  # Using GAM7 with a delegated admin service account
2
- - [Thanks](#thanks)
3
2
  - [Introduction](#introduction)
4
3
  - [Advantages](#advantages)
5
4
  - [Disadvantages](#disadvantages)
6
5
  - [Setup Steps](#setup-steps)
7
6
 
8
- ## Thanks
9
-
10
- Thanks to Jay Lee for the original version of this document.
11
-
12
7
  ## Introduction
13
8
  Delegated admin service accounts (DASA) are regular [GCP service accounts](https://cloud.google.com/iam/docs/service-accounts#what_are_service_accounts) that are granted a Workspace [delegated admin role](https://support.google.com/a/answer/33325). Service accounts have an email address like `gam-project-xuw-sp1-c4b@gam-project-xuw-sp1-c4b.iam.gserviceaccount.com` and are not part of a Workspace or Cloud Identity domain even if they are owned by a project in the domain’s organization. Service accounts cannot login to Google web services interactively, they are only able to call Google APIs.
14
9
 
15
- GAM7 version 6.50.00 or higher is required.
16
-
17
10
  ## Advantages
18
11
  * DASA accounts don’t require a Workspace or Cloud Identity license.
19
12
  * DASA accounts don’t have a password login that can be phished or captured, they use [RSA private keys](https://en.wikipedia.org/wiki/RSA_(cryptosystem)) to sign authentication requests which makes them very secure. You should however [rotate the key](https://jaylee.us/qwm) on a regular basis and keep it safe and secured!
@@ -3,7 +3,7 @@
3
3
  Print the current version of Gam with details
4
4
  ```
5
5
  gam version
6
- GAM 7.10.03 - https://github.com/GAM-team/GAM - pyinstaller
6
+ GAM 7.10.05 - https://github.com/GAM-team/GAM - pyinstaller
7
7
  GAM Team <google-apps-manager@googlegroups.com>
8
8
  Python 3.13.5 64-bit final
9
9
  MacOS Sequoia 15.5 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.10.03 - https://github.com/GAM-team/GAM - pyinstaller
18
+ GAM 7.10.05 - https://github.com/GAM-team/GAM - pyinstaller
19
19
  GAM Team <google-apps-manager@googlegroups.com>
20
20
  Python 3.13.5 64-bit final
21
21
  MacOS Sequoia 15.5 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.10.03 - https://github.com/GAM-team/GAM - pyinstaller
30
+ GAM 7.10.05 - https://github.com/GAM-team/GAM - pyinstaller
31
31
  GAM Team <google-apps-manager@googlegroups.com>
32
32
  Python 3.13.5 64-bit final
33
33
  MacOS Sequoia 15.5 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.10.03
67
+ Latest: 7.10.05
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.10.03
75
+ 7.10.05
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.10.03 - https://github.com/GAM-team/GAM
85
+ GAM 7.10.05 - https://github.com/GAM-team/GAM
86
86
  GAM Team <google-apps-manager@googlegroups.com>
87
87
  Python 3.13.5 64-bit final
88
88
  MacOS Sequoia 15.5 x86_64
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes