gam7 7.8.0__tar.gz → 7.8.2__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.8.0 → gam7-7.8.2}/PKG-INFO +1 -1
  2. {gam7-7.8.0 → gam7-7.8.2}/src/GamCommands.txt +5 -2
  3. {gam7-7.8.0 → gam7-7.8.2}/src/GamUpdate.txt +24 -1
  4. {gam7-7.8.0 → gam7-7.8.2}/src/gam/__init__.py +64 -32
  5. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glapi.py +4 -3
  6. {gam7-7.8.0 → gam7-7.8.2}/wiki/GamUpdates.md +36 -0
  7. {gam7-7.8.0 → gam7-7.8.2}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  8. {gam7-7.8.0 → gam7-7.8.2}/wiki/Shared-Drives.md +99 -70
  9. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Shared-Drives.md +66 -19
  10. {gam7-7.8.0 → gam7-7.8.2}/wiki/Version-and-Help.md +6 -6
  11. {gam7-7.8.0 → gam7-7.8.2}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  12. {gam7-7.8.0 → gam7-7.8.2}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  13. {gam7-7.8.0 → gam7-7.8.2}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  14. {gam7-7.8.0 → gam7-7.8.2}/.github/ISSUE_TEMPLATE.txt +0 -0
  15. {gam7-7.8.0 → gam7-7.8.2}/.github/actions/decrypt.sh +0 -0
  16. {gam7-7.8.0 → gam7-7.8.2}/.github/actions/entitlements.plist +0 -0
  17. {gam7-7.8.0 → gam7-7.8.2}/.github/actions/package_exclusions.txt +0 -0
  18. {gam7-7.8.0 → gam7-7.8.2}/.github/stale.yml +0 -0
  19. {gam7-7.8.0 → gam7-7.8.2}/.github/workflows/build.yml +0 -0
  20. {gam7-7.8.0 → gam7-7.8.2}/.github/workflows/codeql-analysis.yml +0 -0
  21. {gam7-7.8.0 → gam7-7.8.2}/.github/workflows/get-cacerts.yml +0 -0
  22. {gam7-7.8.0 → gam7-7.8.2}/.github/workflows/pushwiki.yml +0 -0
  23. {gam7-7.8.0 → gam7-7.8.2}/.github/workflows/pypi.yml +0 -0
  24. {gam7-7.8.0 → gam7-7.8.2}/.pre-commit-config.yaml +0 -0
  25. {gam7-7.8.0 → gam7-7.8.2}/LICENSE +0 -0
  26. {gam7-7.8.0 → gam7-7.8.2}/README.md +0 -0
  27. {gam7-7.8.0 → gam7-7.8.2}/pyproject.toml +0 -0
  28. {gam7-7.8.0 → gam7-7.8.2}/src/.gitignore +0 -0
  29. {gam7-7.8.0 → gam7-7.8.2}/src/LICENSE +0 -0
  30. {gam7-7.8.0 → gam7-7.8.2}/src/cacerts.pem +0 -0
  31. {gam7-7.8.0 → gam7-7.8.2}/src/callgam.py +0 -0
  32. {gam7-7.8.0 → gam7-7.8.2}/src/gam/__main__.py +0 -0
  33. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/__init__.py +0 -0
  34. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/auth.py +0 -0
  35. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/client.py +0 -0
  36. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/core.py +0 -0
  37. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/data.py +0 -0
  38. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/http.py +0 -0
  39. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/http_core.py +0 -0
  40. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/http_interface.py +0 -0
  41. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/mock_http.py +0 -0
  42. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/mock_http_core.py +0 -0
  43. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/mock_service.py +0 -0
  44. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/service.py +0 -0
  45. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/token_store.py +0 -0
  46. {gam7-7.8.0 → gam7-7.8.2}/src/gam/atom/url.py +0 -0
  47. {gam7-7.8.0 → gam7-7.8.2}/src/gam/cacerts.pem +0 -0
  48. {gam7-7.8.0 → gam7-7.8.2}/src/gam/cbcm-v1.1beta1.json +0 -0
  49. {gam7-7.8.0 → gam7-7.8.2}/src/gam/contactdelegation-v1.json +0 -0
  50. {gam7-7.8.0 → gam7-7.8.2}/src/gam/datastudio-v1.json +0 -0
  51. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/__init__.py +0 -0
  52. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glaction.py +0 -0
  53. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glcfg.py +0 -0
  54. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glclargs.py +0 -0
  55. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glentity.py +0 -0
  56. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glgapi.py +0 -0
  57. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glgdata.py +0 -0
  58. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glglobals.py +0 -0
  59. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glindent.py +0 -0
  60. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glmsgs.py +0 -0
  61. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glskus.py +0 -0
  62. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/gluprop.py +0 -0
  63. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/glverlibs.py +0 -0
  64. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gamlib/yubikey.py +0 -0
  65. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/__init__.py +0 -0
  66. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/alt/__init__.py +0 -0
  67. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/alt/app_engine.py +0 -0
  68. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/alt/appengine.py +0 -0
  69. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/apps/__init__.py +0 -0
  70. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/apps/audit/__init__.py +0 -0
  71. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/apps/audit/service.py +0 -0
  72. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  73. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/apps/contacts/service.py +0 -0
  74. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/apps/service.py +0 -0
  75. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/service.py +0 -0
  76. {gam7-7.8.0 → gam7-7.8.2}/src/gam/gdata/urlfetch.py +0 -0
  77. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/__init__.py +0 -0
  78. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/_auth.py +0 -0
  79. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/_helpers.py +0 -0
  80. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/channel.py +0 -0
  81. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/discovery.py +0 -0
  82. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  83. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  84. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  85. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  86. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/errors.py +0 -0
  87. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/http.py +0 -0
  88. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/mimeparse.py +0 -0
  89. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/model.py +0 -0
  90. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/schema.py +0 -0
  91. {gam7-7.8.0 → gam7-7.8.2}/src/gam/googleapiclient/version.py +0 -0
  92. {gam7-7.8.0 → gam7-7.8.2}/src/gam/iso8601/__init__.py +0 -0
  93. {gam7-7.8.0 → gam7-7.8.2}/src/gam/iso8601/iso8601.py +0 -0
  94. {gam7-7.8.0 → gam7-7.8.2}/src/gam/meet-v2beta.json +0 -0
  95. {gam7-7.8.0 → gam7-7.8.2}/src/gam/serviceaccountlookup-v1.json +0 -0
  96. {gam7-7.8.0 → gam7-7.8.2}/src/gam/six.py +0 -0
  97. {gam7-7.8.0 → gam7-7.8.2}/src/gam-install.sh +0 -0
  98. {gam7-7.8.0 → gam7-7.8.2}/src/gam-setup.bat +0 -0
  99. {gam7-7.8.0 → gam7-7.8.2}/src/gam.exe.manifest +0 -0
  100. {gam7-7.8.0 → gam7-7.8.2}/src/gam.py +0 -0
  101. {gam7-7.8.0 → gam7-7.8.2}/src/gam.spec +0 -0
  102. {gam7-7.8.0 → gam7-7.8.2}/src/gam.wxs +0 -0
  103. {gam7-7.8.0 → gam7-7.8.2}/src/license.rtf +0 -0
  104. {gam7-7.8.0 → gam7-7.8.2}/src/requirements-dev.txt +0 -0
  105. {gam7-7.8.0 → gam7-7.8.2}/src/requirements.txt +0 -0
  106. {gam7-7.8.0 → gam7-7.8.2}/src/setup.cfg +0 -0
  107. {gam7-7.8.0 → gam7-7.8.2}/src/setup.py +0 -0
  108. {gam7-7.8.0 → gam7-7.8.2}/src/tools/a_atleast_b.py +0 -0
  109. {gam7-7.8.0 → gam7-7.8.2}/src/tools/gen-wix-xml-filelist.py +0 -0
  110. {gam7-7.8.0 → gam7-7.8.2}/src/tools/mkGamRef.py +0 -0
  111. {gam7-7.8.0 → gam7-7.8.2}/src/tools/openssl.props +0 -0
  112. {gam7-7.8.0 → gam7-7.8.2}/src/version_info.txt.in +0 -0
  113. {gam7-7.8.0 → gam7-7.8.2}/wiki/00scratch.md +0 -0
  114. {gam7-7.8.0 → gam7-7.8.2}/wiki/Addresses.md +0 -0
  115. {gam7-7.8.0 → gam7-7.8.2}/wiki/Administrators.md +0 -0
  116. {gam7-7.8.0 → gam7-7.8.2}/wiki/Alert-Center.md +0 -0
  117. {gam7-7.8.0 → gam7-7.8.2}/wiki/Aliases.md +0 -0
  118. {gam7-7.8.0 → gam7-7.8.2}/wiki/Authorization.md +0 -0
  119. {gam7-7.8.0 → gam7-7.8.2}/wiki/BNF-Syntax.md +0 -0
  120. {gam7-7.8.0 → gam7-7.8.2}/wiki/Basic-Items.md +0 -0
  121. {gam7-7.8.0 → gam7-7.8.2}/wiki/Bulk-Processing.md +0 -0
  122. {gam7-7.8.0 → gam7-7.8.2}/wiki/CSV-Input-Filtering.md +0 -0
  123. {gam7-7.8.0 → gam7-7.8.2}/wiki/CSV-Output-Filtering.md +0 -0
  124. {gam7-7.8.0 → gam7-7.8.2}/wiki/CSV-Special-Characters.md +0 -0
  125. {gam7-7.8.0 → gam7-7.8.2}/wiki/Calendars-Access.md +0 -0
  126. {gam7-7.8.0 → gam7-7.8.2}/wiki/Calendars-Events.md +0 -0
  127. {gam7-7.8.0 → gam7-7.8.2}/wiki/Calendars.md +0 -0
  128. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chat-Bot.md +0 -0
  129. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chrome-AUE-Counts.md +0 -0
  130. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  131. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chrome-Installed-Apps.md +0 -0
  132. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  133. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chrome-Policies.md +0 -0
  134. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chrome-Printers.md +0 -0
  135. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chrome-Profile-Management.md +0 -0
  136. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chrome-Version-Counts.md +0 -0
  137. {gam7-7.8.0 → gam7-7.8.2}/wiki/Chrome-Version-History.md +0 -0
  138. {gam7-7.8.0 → gam7-7.8.2}/wiki/ChromeOS-Devices.md +0 -0
  139. {gam7-7.8.0 → gam7-7.8.2}/wiki/Classroom-Courses.md +0 -0
  140. {gam7-7.8.0 → gam7-7.8.2}/wiki/Classroom-Guardians.md +0 -0
  141. {gam7-7.8.0 → gam7-7.8.2}/wiki/Classroom-Invitations.md +0 -0
  142. {gam7-7.8.0 → gam7-7.8.2}/wiki/Classroom-Membership.md +0 -0
  143. {gam7-7.8.0 → gam7-7.8.2}/wiki/Cloud-Channel.md +0 -0
  144. {gam7-7.8.0 → gam7-7.8.2}/wiki/Cloud-Identity-Devices.md +0 -0
  145. {gam7-7.8.0 → gam7-7.8.2}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  146. {gam7-7.8.0 → gam7-7.8.2}/wiki/Cloud-Identity-Groups.md +0 -0
  147. {gam7-7.8.0 → gam7-7.8.2}/wiki/Cloud-Identity-Policies.md +0 -0
  148. {gam7-7.8.0 → gam7-7.8.2}/wiki/Cloud-Storage.md +0 -0
  149. {gam7-7.8.0 → gam7-7.8.2}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  150. {gam7-7.8.0 → gam7-7.8.2}/wiki/Collections-of-Items.md +0 -0
  151. {gam7-7.8.0 → gam7-7.8.2}/wiki/Collections-of-Users.md +0 -0
  152. {gam7-7.8.0 → gam7-7.8.2}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  153. {gam7-7.8.0 → gam7-7.8.2}/wiki/Command-Line-Parsing.md +0 -0
  154. {gam7-7.8.0 → gam7-7.8.2}/wiki/Command-Logging-Progress.md +0 -0
  155. {gam7-7.8.0 → gam7-7.8.2}/wiki/Context-Aware-Access-Levels.md +0 -0
  156. {gam7-7.8.0 → gam7-7.8.2}/wiki/Customer.md +0 -0
  157. {gam7-7.8.0 → gam7-7.8.2}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  158. {gam7-7.8.0 → gam7-7.8.2}/wiki/Domain-SharedContacts.md +0 -0
  159. {gam7-7.8.0 → gam7-7.8.2}/wiki/Domains-Verification.md +0 -0
  160. {gam7-7.8.0 → gam7-7.8.2}/wiki/Domains.md +0 -0
  161. {gam7-7.8.0 → gam7-7.8.2}/wiki/Downloads-Installs.md +0 -0
  162. {gam7-7.8.0 → gam7-7.8.2}/wiki/Drive-File-Selection.md +0 -0
  163. {gam7-7.8.0 → gam7-7.8.2}/wiki/Drive-Items.md +0 -0
  164. {gam7-7.8.0 → gam7-7.8.2}/wiki/Drive-REST-API-v3.md +0 -0
  165. {gam7-7.8.0 → gam7-7.8.2}/wiki/Email-Audit-Monitor.md +0 -0
  166. {gam7-7.8.0 → gam7-7.8.2}/wiki/Find-File-Owner.md +0 -0
  167. {gam7-7.8.0 → gam7-7.8.2}/wiki/GAM-Public-Chat-Room.md +0 -0
  168. {gam7-7.8.0 → gam7-7.8.2}/wiki/GAM-Return-Codes.md +0 -0
  169. {gam7-7.8.0 → gam7-7.8.2}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  170. {gam7-7.8.0 → gam7-7.8.2}/wiki/GAM7-on-Android-Devices.md +0 -0
  171. {gam7-7.8.0 → gam7-7.8.2}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  172. {gam7-7.8.0 → gam7-7.8.2}/wiki/Google-Data-Transfers.md +0 -0
  173. {gam7-7.8.0 → gam7-7.8.2}/wiki/Google-Network-Addresses.md +0 -0
  174. {gam7-7.8.0 → gam7-7.8.2}/wiki/Groups-Membership.md +0 -0
  175. {gam7-7.8.0 → gam7-7.8.2}/wiki/Groups.md +0 -0
  176. {gam7-7.8.0 → gam7-7.8.2}/wiki/HTTPS-Proxy.md +0 -0
  177. {gam7-7.8.0 → gam7-7.8.2}/wiki/Home.md +0 -0
  178. {gam7-7.8.0 → gam7-7.8.2}/wiki/How-to-Install-GAM7.md +0 -0
  179. {gam7-7.8.0 → gam7-7.8.2}/wiki/How-to-Uninstall-GAM7.md +0 -0
  180. {gam7-7.8.0 → gam7-7.8.2}/wiki/How-to-Update-GAM7.md +0 -0
  181. {gam7-7.8.0 → gam7-7.8.2}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  182. {gam7-7.8.0 → gam7-7.8.2}/wiki/Inbound-SSO.md +0 -0
  183. {gam7-7.8.0 → gam7-7.8.2}/wiki/Install-GAM-as-Python-Library.md +0 -0
  184. {gam7-7.8.0 → gam7-7.8.2}/wiki/Licenses.md +0 -0
  185. {gam7-7.8.0 → gam7-7.8.2}/wiki/List-Items.md +0 -0
  186. {gam7-7.8.0 → gam7-7.8.2}/wiki/List.md +0 -0
  187. {gam7-7.8.0 → gam7-7.8.2}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  188. {gam7-7.8.0 → gam7-7.8.2}/wiki/Mobile-Devices.md +0 -0
  189. {gam7-7.8.0 → gam7-7.8.2}/wiki/Organizational-Units.md +0 -0
  190. {gam7-7.8.0 → gam7-7.8.2}/wiki/Other-Resources.md +0 -0
  191. {gam7-7.8.0 → gam7-7.8.2}/wiki/Permission-Matches.md +0 -0
  192. {gam7-7.8.0 → gam7-7.8.2}/wiki/Python-Regular-Expressions.md +0 -0
  193. {gam7-7.8.0 → gam7-7.8.2}/wiki/README.md +0 -0
  194. {gam7-7.8.0 → gam7-7.8.2}/wiki/Rclone.md +0 -0
  195. {gam7-7.8.0 → gam7-7.8.2}/wiki/Reports.md +0 -0
  196. {gam7-7.8.0 → gam7-7.8.2}/wiki/Reseller.md +0 -0
  197. {gam7-7.8.0 → gam7-7.8.2}/wiki/Resources.md +0 -0
  198. {gam7-7.8.0 → gam7-7.8.2}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  199. {gam7-7.8.0 → gam7-7.8.2}/wiki/SSL-Root-CA-Certificates.md +0 -0
  200. {gam7-7.8.0 → gam7-7.8.2}/wiki/Schemas.md +0 -0
  201. {gam7-7.8.0 → gam7-7.8.2}/wiki/Scripts.md +0 -0
  202. {gam7-7.8.0 → gam7-7.8.2}/wiki/Send-Email.md +0 -0
  203. {gam7-7.8.0 → gam7-7.8.2}/wiki/Sites.md +0 -0
  204. {gam7-7.8.0 → gam7-7.8.2}/wiki/Tag-Replace.md +0 -0
  205. {gam7-7.8.0 → gam7-7.8.2}/wiki/Todrive.md +0 -0
  206. {gam7-7.8.0 → gam7-7.8.2}/wiki/Unmanaged-Accounts.md +0 -0
  207. {gam7-7.8.0 → gam7-7.8.2}/wiki/Upgrade-Benefits.md +0 -0
  208. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Analytics-Admin.md +0 -0
  209. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Application-Specific-Passwords.md +0 -0
  210. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Backup-Verification-Codes.md +0 -0
  211. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Calendars-Access.md +0 -0
  212. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Calendars-Events.md +0 -0
  213. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Calendars.md +0 -0
  214. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Chat.md +0 -0
  215. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Classification-Labels.md +0 -0
  216. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Classroom-Profile.md +0 -0
  217. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Contacts-Delegates.md +0 -0
  218. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Contacts.md +0 -0
  219. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Deprovision.md +0 -0
  220. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Activity-Settings.md +0 -0
  221. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Cleanup.md +0 -0
  222. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Comments.md +0 -0
  223. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Copy-Move.md +0 -0
  224. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Files-Display.md +0 -0
  225. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Files-Manage.md +0 -0
  226. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Orphans.md +0 -0
  227. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Ownership.md +0 -0
  228. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Permissions.md +0 -0
  229. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Query.md +0 -0
  230. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Revisions.md +0 -0
  231. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Shortcuts.md +0 -0
  232. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Drive-Transfer.md +0 -0
  233. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Forms.md +0 -0
  234. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-CSE.md +0 -0
  235. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-Delegates.md +0 -0
  236. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-Filters.md +0 -0
  237. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-Forwarding.md +0 -0
  238. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-Labels.md +0 -0
  239. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  240. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-Profile.md +0 -0
  241. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-S-MIME.md +0 -0
  242. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  243. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Gmail-Settings.md +0 -0
  244. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Group-Membership.md +0 -0
  245. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Keep-Notes.md +0 -0
  246. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Looker-Studio.md +0 -0
  247. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Meet.md +0 -0
  248. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-People-Contacts-Profiles.md +0 -0
  249. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Photo.md +0 -0
  250. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Profile-Photo.md +0 -0
  251. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Profile-Sharing.md +0 -0
  252. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  253. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Spreadsheets.md +0 -0
  254. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Tasks.md +0 -0
  255. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-Tokens.md +0 -0
  256. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users-YouTube.md +0 -0
  257. {gam7-7.8.0 → gam7-7.8.2}/wiki/Users.md +0 -0
  258. {gam7-7.8.0 → gam7-7.8.2}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  259. {gam7-7.8.0 → gam7-7.8.2}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  260. {gam7-7.8.0 → gam7-7.8.2}/wiki/Vault-Takeout.md +0 -0
  261. {gam7-7.8.0 → gam7-7.8.2}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  262. {gam7-7.8.0 → gam7-7.8.2}/wiki/_Sidebar.md +0 -0
  263. {gam7-7.8.0 → gam7-7.8.2}/wiki/gam.cfg.md +0 -0
  264. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-AdminSettingsExamples.md +0 -0
  265. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Android-Installation.md +0 -0
  266. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-BulkOperations.md +0 -0
  267. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-CalendarExamples.md +0 -0
  268. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Chat-Bot.md +0 -0
  269. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Chrome-Browser-Management.md +0 -0
  270. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Chrome-OS-Installation.md +0 -0
  271. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Chrome-Policy-Settings.md +0 -0
  272. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Cloud-Identity-Groups.md +0 -0
  273. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  274. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Command-Reference-Calendars.md +0 -0
  275. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Command-Reference-Definitions.md +0 -0
  276. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Command-Reference-Drive.md +0 -0
  277. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Command-Reference-Email.md +0 -0
  278. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  279. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Command-Reference-Groups.md +0 -0
  280. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Command-Reference-Users.md +0 -0
  281. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  282. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  283. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-CreatingClientSecretsFile.md +0 -0
  284. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Custom-Schemas.md +0 -0
  285. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Data-Transfers.md +0 -0
  286. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-DomainVerification.md +0 -0
  287. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-ExamplesAccountAuditing.md +0 -0
  288. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-ExamplesCSV.md +0 -0
  289. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-ExamplesEmailSettings.md +0 -0
  290. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-ExamplesOrganizations.md +0 -0
  291. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-GAM-Discussion-Group.md +0 -0
  292. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  293. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-GAM-options-files.md +0 -0
  294. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  295. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-GAM3CSVListings.md +0 -0
  296. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-GAM3DirectoryCommands.md +0 -0
  297. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-GAM3GroupSettings.md +0 -0
  298. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-GAM7-FAQ.md +0 -0
  299. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  300. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-GoogleDriveManagement.md +0 -0
  301. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  302. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Home.md +0 -0
  303. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  304. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Inbound-SSO-Settings.md +0 -0
  305. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-LicenseExamples.md +0 -0
  306. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Managing-Admins.md +0 -0
  307. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  308. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Managing-Devices.md +0 -0
  309. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Managing-Google-Classroom.md +0 -0
  310. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-OAuthKeyManagement.md +0 -0
  311. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Printers.md +0 -0
  312. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-ResellerCommands.md +0 -0
  313. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  314. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-SecurityExamples.md +0 -0
  315. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-UnmanagedUsersExamples.md +0 -0
  316. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Use-a-Yubikey.md +0 -0
  317. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  318. {gam7-7.8.0 → gam7-7.8.2}/wiki/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.8.0
3
+ Version: 7.8.2
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
@@ -4820,7 +4820,8 @@ gam show shareddrives
4820
4820
  [formatjson] [noorgunits [<Boolean>]]
4821
4821
 
4822
4822
  gam print shareddriveorganizers [todrive <ToDriveAttribute>*]
4823
- [shareddriveadminquery|query <QuerySharedDrive>]
4823
+ [(shareddriveadminquery|query <QuerySharedDrive>) |
4824
+ (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>)))]
4824
4825
  [orgunit|org|ou <OrgUnitPath>]
4825
4826
  [matchname <REMatchPattern>]
4826
4827
  [domainlist <DomainList>]
@@ -8337,7 +8338,9 @@ gam <UserTypeEntity> show shareddrives
8337
8338
  [formatjson]
8338
8339
 
8339
8340
  gam <UserTypeEntity> print shareddriveorganizers [todrive <ToDriveAttribute>*]
8340
- [adminaccess|asadmin] [shareddriveadminquery|query <QuerySharedDrive>]
8341
+ [adminaccess|asadmin]
8342
+ [(shareddriveadminquery|query <QuerySharedDrive>) |
8343
+ (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>)))]
8341
8344
  [orgunit|org|ou <OrgUnitPath>]
8342
8345
  [matchname <REMatchPattern>]
8343
8346
  [domainlist <DomainList>]
@@ -1,3 +1,26 @@
1
+ 7.08.02
2
+
3
+ Updated the defaults in `gam print shareddriveorganizers` to match the most common use case, not the script.
4
+
5
+ * `domainlist` - The workspace primary domain
6
+ * `includetypes` - user
7
+ * `oneorganizer` - True
8
+ * `shownoorganizerdrives` - True
9
+ * `includefileorganizers` - False
10
+
11
+ To select organizers from any domain, use: `domainlist ""`
12
+
13
+ These commands produce the same result.
14
+ ```
15
+ gam redirect csv ./TeamDriveOrganizers.csv print shareddriveorganizers domainlist mydomain.com includetypes user oneorganizer shownoorganizerdrives
16
+ gam redirect csv ./TeamDriveOrganizers.csv print shareddriveorganizers
17
+ ```
18
+
19
+ 7.08.01
20
+
21
+ Added option `shareddrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))` to
22
+ `gam print shareddriveorganizers` that displays organizers for a specific list of Shared Drive IDs.
23
+
1
24
  7.08.00
2
25
 
3
26
  Added the following command that can be used instead of the `GetTeamDriveOrganizers.py` script.
@@ -16,7 +39,7 @@ gam [<UserTypeEntity>] print shareddriveorganizers [todrive <ToDriveAttribute>*]
16
39
  ```
17
40
  The command defaults match the script defaults:
18
41
  * `domainlist` - All domains
19
- * `includetypes` - user,groups
42
+ * `includetypes` - user,group
20
43
  * `oneorganizer` - False
21
44
  * `shownoorganizerdrives` - True
22
45
  * `includefileorganizers` - False
@@ -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.08.00'
28
+ __version__ = '7.08.02'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -12338,7 +12338,7 @@ def checkServiceAccount(users):
12338
12338
  invalidOauth2serviceJsonExit(f'Authentication{auth_error}')
12339
12339
  _getSvcAcctData() # needed to read in GM.OAUTH2SERVICE_JSON_DATA
12340
12340
  if GM.Globals[GM.SVCACCT_SCOPES_DEFINED] and API.IAM not in GM.Globals[GM.SVCACCT_SCOPES]:
12341
- GM.Globals[GM.SVCACCT_SCOPES][API.IAM] = [API.CLOUD_PLATFORM_SCOPE]
12341
+ GM.Globals[GM.SVCACCT_SCOPES][API.IAM] = [API.IAM_SCOPE]
12342
12342
  key_type = GM.Globals[GM.OAUTH2SERVICE_JSON_DATA].get('key_type', 'default')
12343
12343
  if key_type == 'default':
12344
12344
  printMessage(Msg.SERVICE_ACCOUNT_CHECK_PRIVATE_KEY_AGE)
@@ -66053,7 +66053,9 @@ def doPrintShowSharedDriveACLs():
66053
66053
  PRINT_ORGANIZER_TYPES = {'group', 'user'}
66054
66054
 
66055
66055
  # gam [<UserTypeEntity>] print shareddriveorganizers [todrive <ToDriveAttribute>*]
66056
- # [adminaccess|asadmin] [shareddriveadminquery|query <QuerySharedDrive>]
66056
+ # [adminaccess|asadmin]
66057
+ # [(shareddriveadminquery|query <QuerySharedDrive>) |
66058
+ # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>)))]
66057
66059
  # [matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>]
66058
66060
  # [domainlist <DomainList>]
66059
66061
  # [includetypes user|group]
@@ -66068,16 +66070,24 @@ def printSharedDriveOrganizers(users, useDomainAdminAccess=False):
66068
66070
  includeTypes = set()
66069
66071
  showNoOrganizerDrives = SHOW_NO_PERMISSIONS_DRIVES_CHOICE_MAP['false']
66070
66072
  fieldsList = ['role', 'type', 'emailAddress']
66071
- cd = orgUnitId = query = matchPattern = None
66072
- domainList = []
66073
- oneOrganizer = False
66073
+ cd = entityList = orgUnitId = query = matchPattern = None
66074
+ domainList = [GC.Values[GC.DOMAIN]]
66075
+ oneOrganizer = True
66074
66076
  while Cmd.ArgumentsRemaining():
66075
66077
  myarg = getArgument()
66076
66078
  if csvPF and myarg == 'todrive':
66077
66079
  csvPF.GetTodriveParameters()
66078
66080
  elif myarg == 'delimiter':
66079
66081
  delimiter = getCharacter()
66082
+ elif myarg in {'shareddrive', 'shareddrives', 'teamdrive', 'teamdrives'}:
66083
+ sharedDriveArg = myarg
66084
+ itemList = getString(Cmd.OB_SHAREDDRIVE_ID_LIST)
66085
+ if itemList != 'select':
66086
+ entityList = itemList.replace(',', ' ').split()
66087
+ else:
66088
+ entityList = getEntityList(Cmd.OB_SHAREDDRIVE_ID_LIST)
66080
66089
  elif myarg in {'teamdriveadminquery', 'shareddriveadminquery', 'query'}:
66090
+ queryArg = myarg
66081
66091
  queryLocation = Cmd.Location()
66082
66092
  query = getString(Cmd.OB_QUERY, minLen=0) or None
66083
66093
  if query:
@@ -66094,7 +66104,7 @@ def printSharedDriveOrganizers(users, useDomainAdminAccess=False):
66094
66104
  elif myarg in ADMIN_ACCESS_OPTIONS:
66095
66105
  useDomainAdminAccess = True
66096
66106
  elif myarg == 'domainlist':
66097
- domainList = set(getString(Cmd.OB_DOMAIN_NAME_LIST).replace(',', ' ').lower().split())
66107
+ domainList = set(getString(Cmd.OB_DOMAIN_NAME_LIST, minLen=0).replace(',', ' ').lower().split())
66098
66108
  elif myarg == 'includetypes':
66099
66109
  for itype in getString(Cmd.OB_ORGANIZER_TYPE_LIST).lower().replace(',', ' ').split():
66100
66110
  if itype in PRINT_ORGANIZER_TYPES:
@@ -66110,16 +66120,20 @@ def printSharedDriveOrganizers(users, useDomainAdminAccess=False):
66110
66120
  roles.add('fileOrganizer')
66111
66121
  else:
66112
66122
  unknownArgumentExit()
66113
- if query and not useDomainAdminAccess:
66114
- Cmd.SetLocation(queryLocation-1)
66115
- usageErrorExit(Msg.ONLY_ADMINISTRATORS_CAN_PERFORM_SHARED_DRIVE_QUERIES)
66123
+ if query:
66124
+ if not useDomainAdminAccess:
66125
+ Cmd.SetLocation(queryLocation-1)
66126
+ usageErrorExit(Msg.ONLY_ADMINISTRATORS_CAN_PERFORM_SHARED_DRIVE_QUERIES)
66127
+ if entityList:
66128
+ Cmd.SetLocation(queryLocation-1)
66129
+ usageErrorExit(Msg.ARE_MUTUALLY_EXCLUSIVE.format(queryArg, sharedDriveArg))
66116
66130
  if orgUnitId is not None:
66117
66131
  if not useDomainAdminAccess:
66118
66132
  Cmd.SetLocation(orgLocation-1)
66119
66133
  usageErrorExit(Msg.ONLY_ADMINISTRATORS_CAN_SPECIFY_SHARED_DRIVE_ORGUNIT)
66120
66134
  csvPF.AddTitles(['orgUnit', 'orgUnitId'])
66121
66135
  if not includeTypes:
66122
- includeTypes = PRINT_ORGANIZER_TYPES
66136
+ includeTypes = set(['user'])
66123
66137
  fields = getItemFieldsFromFieldsList('permissions', fieldsList, True)
66124
66138
  i, count, users = getEntityArgument(users)
66125
66139
  for user in users:
@@ -66127,28 +66141,46 @@ def printSharedDriveOrganizers(users, useDomainAdminAccess=False):
66127
66141
  user, drive = buildGAPIServiceObject(API.DRIVE3, user, i, count)
66128
66142
  if not drive:
66129
66143
  continue
66130
- if useDomainAdminAccess:
66131
- printGettingAllAccountEntities(Ent.SHAREDDRIVE, query)
66132
- pageMessage = getPageMessage()
66144
+ if entityList is None:
66145
+ if useDomainAdminAccess:
66146
+ printGettingAllAccountEntities(Ent.SHAREDDRIVE, query)
66147
+ pageMessage = getPageMessage()
66148
+ else:
66149
+ printGettingAllEntityItemsForWhom(Ent.SHAREDDRIVE, user, i, count, query)
66150
+ pageMessage = getPageMessageForWhom()
66151
+ try:
66152
+ feed = callGAPIpages(drive.drives(), 'list', 'drives',
66153
+ pageMessage=pageMessage,
66154
+ throwReasons=GAPI.DRIVE_USER_THROW_REASONS+[GAPI.INVALID_QUERY, GAPI.INVALID,
66155
+ GAPI.QUERY_REQUIRES_ADMIN_CREDENTIALS,
66156
+ GAPI.NO_LIST_TEAMDRIVES_ADMINISTRATOR_PRIVILEGE,
66157
+ GAPI.FILE_NOT_FOUND],
66158
+ q=query, useDomainAdminAccess=useDomainAdminAccess,
66159
+ fields='nextPageToken,drives(id,name,createdTime,orgUnitId)', pageSize=100)
66160
+ except (GAPI.invalidQuery, GAPI.invalid, GAPI.queryRequiresAdminCredentials,
66161
+ GAPI.noListTeamDrivesAdministratorPrivilege, GAPI.fileNotFound) as e:
66162
+ entityActionFailedWarning([Ent.USER, user, Ent.SHAREDDRIVE, None], str(e), i, count)
66163
+ continue
66164
+ except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
66165
+ userDriveServiceNotEnabledWarning(user, str(e), i, count)
66166
+ continue
66133
66167
  else:
66134
- printGettingAllEntityItemsForWhom(Ent.SHAREDDRIVE, user, i, count, query)
66135
- pageMessage = getPageMessageForWhom()
66136
- try:
66137
- feed = callGAPIpages(drive.drives(), 'list', 'drives',
66138
- pageMessage=pageMessage,
66139
- throwReasons=GAPI.DRIVE_USER_THROW_REASONS+[GAPI.INVALID_QUERY, GAPI.INVALID,
66140
- GAPI.QUERY_REQUIRES_ADMIN_CREDENTIALS,
66141
- GAPI.NO_LIST_TEAMDRIVES_ADMINISTRATOR_PRIVILEGE,
66142
- GAPI.FILE_NOT_FOUND],
66143
- q=query, useDomainAdminAccess=useDomainAdminAccess,
66144
- fields='nextPageToken,drives(id,name,createdTime,orgUnitId)', pageSize=100)
66145
- except (GAPI.invalidQuery, GAPI.invalid, GAPI.queryRequiresAdminCredentials,
66146
- GAPI.noListTeamDrivesAdministratorPrivilege, GAPI.fileNotFound) as e:
66147
- entityActionFailedWarning([Ent.USER, user, Ent.SHAREDDRIVE, None], str(e), i, count)
66148
- continue
66149
- except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
66150
- userDriveServiceNotEnabledWarning(user, str(e), i, count)
66151
- continue
66168
+ feed = []
66169
+ jcount = len(entityList)
66170
+ j = 0
66171
+ for driveId in entityList:
66172
+ j +=1
66173
+ try:
66174
+ feed.append(callGAPI(drive.drives(), 'get',
66175
+ throwReasons=GAPI.DRIVE_USER_THROW_REASONS+[GAPI.NOT_FOUND],
66176
+ useDomainAdminAccess=useDomainAdminAccess,
66177
+ driveId=driveId, fields='id,name,createdTime,orgUnitId'))
66178
+ except (GAPI.fileNotFound, GAPI.notFound) as e:
66179
+ entityActionNotPerformedWarning([Ent.USER, user, Ent.SHAREDDRIVE_ID, driveId], str(e), j, jcount)
66180
+ continue
66181
+ except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
66182
+ userDriveServiceNotEnabledWarning(user, str(e), i, count)
66183
+ break
66152
66184
  matchFeed = []
66153
66185
  jcount = len(feed)
66154
66186
  j = 0
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- # Copyright (C) 2024 Ross Scroggs All Rights Reserved.
3
+ # Copyright (C) 2025 Ross Scroggs All Rights Reserved.
4
4
  #
5
5
  # All Rights Reserved.
6
6
  #
@@ -596,7 +596,7 @@ _SVCACCT_SCOPES = [
596
596
  {'name': 'Cloud Identity Devices API',
597
597
  'api': CLOUDIDENTITY_DEVICES,
598
598
  'subscopes': READONLY,
599
- 'scope': 'https://www.googleapis.com/auth/cloud-identity'},
599
+ 'scope': 'https://www.googleapis.com/auth/cloud-identity.devices'},
600
600
  # {'name': 'Cloud Identity User Invitations API',
601
601
  # 'api': CLOUDIDENTITY_USERINVITATIONS,
602
602
  # 'subscopes': READONLY,
@@ -647,8 +647,9 @@ _SVCACCT_SCOPES = [
647
647
  'scope': 'https://www.googleapis.com/auth/gmail.settings.sharing'},
648
648
  {'name': 'Identity and Access Management API',
649
649
  'api': IAM,
650
+ 'offByDefault': True,
650
651
  'subscopes': [],
651
- 'scope': CLOUD_PLATFORM_SCOPE},
652
+ 'scope': IAM_SCOPE},
652
653
  {'name': 'Keep API',
653
654
  'api': KEEP,
654
655
  'subscopes': READONLY,
@@ -10,6 +10,42 @@ 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.08.01
14
+
15
+ Added option `shareddrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))` to
16
+ `gam print shareddriveorganizers` that displays organizers for a specific list of Shared Drive IDs.
17
+
18
+ See: https://github.com/GAM-team/GAM/wiki/Shared-Drives#display-shared-drive-organizers
19
+
20
+ ### 7.08.00
21
+
22
+ Added the following command that can be used instead of the `GetTeamDriveOrganizers.py` script.
23
+
24
+ gam [<UserTypeEntity>] print shareddriveorganizers [todrive <ToDriveAttribute>*]
25
+ [adminaccessasadmin] [shareddriveadminquery|query <QuerySharedDrive>]
26
+ [orgunit|org|ou <OrgUnitPath>]
27
+ [matchname <REMatchPattern>]
28
+ [domainlist <DomainList>]
29
+ [includetypes <OrganizerTypeList>]
30
+ [oneorganizer [<Boolean>]]
31
+ [shownorganizerdrives [false|true|only]]
32
+ [includefileorganizers [<Boolean>]]
33
+ [delimiter <Character>]
34
+ ```
35
+ See: https://github.com/GAM-team/GAM/wiki/Shared-Drives#display-shared-drive-organizers
36
+
37
+ The command defaults match the script defaults:
38
+ * `domainlist` - All domains
39
+ * `includetypes` - user,group
40
+ * `oneorganizer` - False
41
+ * `shownoorganizerdrives` - True
42
+ * `includefileorganizers` - False
43
+
44
+ For example, to get a single user organizer from your domain for all Shared Drives including no organizer drives:
45
+ ```
46
+ gam redirect csv ./TeamDriveOrganizers.csv print shareddriveorganizers domainlist mydomain.com includetypes user oneorganizer shownoorganizerdrives
47
+ ```
48
+
13
49
  ### 7.07.17
14
50
 
15
51
  Added option `oneuserperrow` to `gam print devices` to have each of a
@@ -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.17 - https://github.com/GAM-team/GAM - pyinstaller
254
+ GAM 7.08.01 - 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.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.07.17 - https://github.com/GAM-team/GAM - pythonsource
992
+ GAM 7.08.01 - 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