gam7 7.16.1__tar.gz → 7.17.1__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 (319) hide show
  1. {gam7-7.16.1 → gam7-7.17.1}/PKG-INFO +1 -1
  2. {gam7-7.16.1 → gam7-7.17.1}/src/GamCommands.txt +9 -1
  3. {gam7-7.16.1 → gam7-7.17.1}/src/GamUpdate.txt +18 -1
  4. {gam7-7.16.1 → gam7-7.17.1}/src/gam/__init__.py +100 -8
  5. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glapi.py +13 -0
  6. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glclargs.py +4 -0
  7. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glentity.py +4 -0
  8. {gam7-7.16.1 → gam7-7.17.1}/wiki/GamUpdates.md +33 -0
  9. {gam7-7.16.1 → gam7-7.17.1}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  10. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Files-Display.md +10 -4
  11. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Files-Manage.md +1 -0
  12. gam7-7.17.1/wiki/Users-Web-Resources-and-Sites.md +48 -0
  13. {gam7-7.16.1 → gam7-7.17.1}/wiki/Version-and-Help.md +6 -6
  14. {gam7-7.16.1 → gam7-7.17.1}/wiki/_Sidebar.md +1 -0
  15. {gam7-7.16.1 → gam7-7.17.1}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  16. {gam7-7.16.1 → gam7-7.17.1}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  17. {gam7-7.16.1 → gam7-7.17.1}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  18. {gam7-7.16.1 → gam7-7.17.1}/.github/ISSUE_TEMPLATE.txt +0 -0
  19. {gam7-7.16.1 → gam7-7.17.1}/.github/actions/decrypt.sh +0 -0
  20. {gam7-7.16.1 → gam7-7.17.1}/.github/actions/entitlements.plist +0 -0
  21. {gam7-7.16.1 → gam7-7.17.1}/.github/actions/package_exclusions.txt +0 -0
  22. {gam7-7.16.1 → gam7-7.17.1}/.github/stale.yml +0 -0
  23. {gam7-7.16.1 → gam7-7.17.1}/.github/workflows/build.yml +0 -0
  24. {gam7-7.16.1 → gam7-7.17.1}/.github/workflows/codeql-analysis.yml +0 -0
  25. {gam7-7.16.1 → gam7-7.17.1}/.github/workflows/get-cacerts.yml +0 -0
  26. {gam7-7.16.1 → gam7-7.17.1}/.github/workflows/pushwiki.yml +0 -0
  27. {gam7-7.16.1 → gam7-7.17.1}/.github/workflows/pypi.yml +0 -0
  28. {gam7-7.16.1 → gam7-7.17.1}/.pre-commit-config.yaml +0 -0
  29. {gam7-7.16.1 → gam7-7.17.1}/LICENSE +0 -0
  30. {gam7-7.16.1 → gam7-7.17.1}/README.md +0 -0
  31. {gam7-7.16.1 → gam7-7.17.1}/pyproject.toml +0 -0
  32. {gam7-7.16.1 → gam7-7.17.1}/src/.gitignore +0 -0
  33. {gam7-7.16.1 → gam7-7.17.1}/src/LICENSE +0 -0
  34. {gam7-7.16.1 → gam7-7.17.1}/src/README.md +0 -0
  35. {gam7-7.16.1 → gam7-7.17.1}/src/cacerts.pem +0 -0
  36. {gam7-7.16.1 → gam7-7.17.1}/src/callgam.py +0 -0
  37. {gam7-7.16.1 → gam7-7.17.1}/src/gam/__main__.py +0 -0
  38. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/__init__.py +0 -0
  39. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/auth.py +0 -0
  40. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/client.py +0 -0
  41. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/core.py +0 -0
  42. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/data.py +0 -0
  43. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/http.py +0 -0
  44. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/http_core.py +0 -0
  45. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/http_interface.py +0 -0
  46. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/mock_http.py +0 -0
  47. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/mock_http_core.py +0 -0
  48. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/mock_service.py +0 -0
  49. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/service.py +0 -0
  50. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/token_store.py +0 -0
  51. {gam7-7.16.1 → gam7-7.17.1}/src/gam/atom/url.py +0 -0
  52. {gam7-7.16.1 → gam7-7.17.1}/src/gam/cacerts.pem +0 -0
  53. {gam7-7.16.1 → gam7-7.17.1}/src/gam/cbcm-v1.1beta1.json +0 -0
  54. {gam7-7.16.1 → gam7-7.17.1}/src/gam/contactdelegation-v1.json +0 -0
  55. {gam7-7.16.1 → gam7-7.17.1}/src/gam/datastudio-v1.json +0 -0
  56. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/__init__.py +0 -0
  57. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glaction.py +0 -0
  58. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glcfg.py +0 -0
  59. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glgapi.py +0 -0
  60. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glgdata.py +0 -0
  61. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glglobals.py +0 -0
  62. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glindent.py +0 -0
  63. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glmsgs.py +0 -0
  64. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glskus.py +0 -0
  65. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/gluprop.py +0 -0
  66. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/glverlibs.py +0 -0
  67. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gamlib/yubikey.py +0 -0
  68. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/__init__.py +0 -0
  69. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/alt/__init__.py +0 -0
  70. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/alt/app_engine.py +0 -0
  71. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/alt/appengine.py +0 -0
  72. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/apps/__init__.py +0 -0
  73. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/apps/audit/__init__.py +0 -0
  74. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/apps/audit/service.py +0 -0
  75. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  76. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/apps/contacts/service.py +0 -0
  77. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/apps/service.py +0 -0
  78. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/service.py +0 -0
  79. {gam7-7.16.1 → gam7-7.17.1}/src/gam/gdata/urlfetch.py +0 -0
  80. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/__init__.py +0 -0
  81. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/_auth.py +0 -0
  82. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/_helpers.py +0 -0
  83. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/channel.py +0 -0
  84. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/discovery.py +0 -0
  85. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  86. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  87. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  88. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  89. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/errors.py +0 -0
  90. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/http.py +0 -0
  91. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/mimeparse.py +0 -0
  92. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/model.py +0 -0
  93. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/schema.py +0 -0
  94. {gam7-7.16.1 → gam7-7.17.1}/src/gam/googleapiclient/version.py +0 -0
  95. {gam7-7.16.1 → gam7-7.17.1}/src/gam/iso8601/__init__.py +0 -0
  96. {gam7-7.16.1 → gam7-7.17.1}/src/gam/iso8601/iso8601.py +0 -0
  97. {gam7-7.16.1 → gam7-7.17.1}/src/gam/meet-v2beta.json +0 -0
  98. {gam7-7.16.1 → gam7-7.17.1}/src/gam/serviceaccountlookup-v1.json +0 -0
  99. {gam7-7.16.1 → gam7-7.17.1}/src/gam/six.py +0 -0
  100. {gam7-7.16.1 → gam7-7.17.1}/src/gam-install.sh +0 -0
  101. {gam7-7.16.1 → gam7-7.17.1}/src/gam-setup.bat +0 -0
  102. {gam7-7.16.1 → gam7-7.17.1}/src/gam.exe.manifest +0 -0
  103. {gam7-7.16.1 → gam7-7.17.1}/src/gam.py +0 -0
  104. {gam7-7.16.1 → gam7-7.17.1}/src/gam.spec +0 -0
  105. {gam7-7.16.1 → gam7-7.17.1}/src/gam.wxs +0 -0
  106. {gam7-7.16.1 → gam7-7.17.1}/src/license.rtf +0 -0
  107. {gam7-7.16.1 → gam7-7.17.1}/src/requirements-dev.txt +0 -0
  108. {gam7-7.16.1 → gam7-7.17.1}/src/tools/a_atleast_b.py +0 -0
  109. {gam7-7.16.1 → gam7-7.17.1}/src/tools/gen-wix-xml-filelist.py +0 -0
  110. {gam7-7.16.1 → gam7-7.17.1}/src/tools/mkGamRef.py +0 -0
  111. {gam7-7.16.1 → gam7-7.17.1}/src/tools/openssl.props +0 -0
  112. {gam7-7.16.1 → gam7-7.17.1}/src/version_info.txt.in +0 -0
  113. {gam7-7.16.1 → gam7-7.17.1}/wiki/00scratch.md +0 -0
  114. {gam7-7.16.1 → gam7-7.17.1}/wiki/Addresses.md +0 -0
  115. {gam7-7.16.1 → gam7-7.17.1}/wiki/Administrators.md +0 -0
  116. {gam7-7.16.1 → gam7-7.17.1}/wiki/Alert-Center.md +0 -0
  117. {gam7-7.16.1 → gam7-7.17.1}/wiki/Aliases.md +0 -0
  118. {gam7-7.16.1 → gam7-7.17.1}/wiki/Authorization.md +0 -0
  119. {gam7-7.16.1 → gam7-7.17.1}/wiki/BNF-Syntax.md +0 -0
  120. {gam7-7.16.1 → gam7-7.17.1}/wiki/Basic-Items.md +0 -0
  121. {gam7-7.16.1 → gam7-7.17.1}/wiki/Bulk-Processing.md +0 -0
  122. {gam7-7.16.1 → gam7-7.17.1}/wiki/CSV-Input-Filtering.md +0 -0
  123. {gam7-7.16.1 → gam7-7.17.1}/wiki/CSV-Output-Filtering.md +0 -0
  124. {gam7-7.16.1 → gam7-7.17.1}/wiki/CSV-Special-Characters.md +0 -0
  125. {gam7-7.16.1 → gam7-7.17.1}/wiki/Calendars-Access.md +0 -0
  126. {gam7-7.16.1 → gam7-7.17.1}/wiki/Calendars-Events.md +0 -0
  127. {gam7-7.16.1 → gam7-7.17.1}/wiki/Calendars.md +0 -0
  128. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chat-Bot.md +0 -0
  129. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chrome-AUE-Counts.md +0 -0
  130. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  131. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chrome-Installed-Apps.md +0 -0
  132. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  133. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chrome-Policies.md +0 -0
  134. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chrome-Printers.md +0 -0
  135. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chrome-Profile-Management.md +0 -0
  136. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chrome-Version-Counts.md +0 -0
  137. {gam7-7.16.1 → gam7-7.17.1}/wiki/Chrome-Version-History.md +0 -0
  138. {gam7-7.16.1 → gam7-7.17.1}/wiki/ChromeOS-Devices.md +0 -0
  139. {gam7-7.16.1 → gam7-7.17.1}/wiki/Classroom-Courses.md +0 -0
  140. {gam7-7.16.1 → gam7-7.17.1}/wiki/Classroom-Guardians.md +0 -0
  141. {gam7-7.16.1 → gam7-7.17.1}/wiki/Classroom-Invitations.md +0 -0
  142. {gam7-7.16.1 → gam7-7.17.1}/wiki/Classroom-Membership.md +0 -0
  143. {gam7-7.16.1 → gam7-7.17.1}/wiki/Cloud-Channel.md +0 -0
  144. {gam7-7.16.1 → gam7-7.17.1}/wiki/Cloud-Identity-Devices.md +0 -0
  145. {gam7-7.16.1 → gam7-7.17.1}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  146. {gam7-7.16.1 → gam7-7.17.1}/wiki/Cloud-Identity-Groups.md +0 -0
  147. {gam7-7.16.1 → gam7-7.17.1}/wiki/Cloud-Identity-Policies.md +0 -0
  148. {gam7-7.16.1 → gam7-7.17.1}/wiki/Cloud-Storage.md +0 -0
  149. {gam7-7.16.1 → gam7-7.17.1}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  150. {gam7-7.16.1 → gam7-7.17.1}/wiki/Collections-of-Items.md +0 -0
  151. {gam7-7.16.1 → gam7-7.17.1}/wiki/Collections-of-Users.md +0 -0
  152. {gam7-7.16.1 → gam7-7.17.1}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  153. {gam7-7.16.1 → gam7-7.17.1}/wiki/Command-Line-Parsing.md +0 -0
  154. {gam7-7.16.1 → gam7-7.17.1}/wiki/Command-Logging-Progress.md +0 -0
  155. {gam7-7.16.1 → gam7-7.17.1}/wiki/Context-Aware-Access-Levels.md +0 -0
  156. {gam7-7.16.1 → gam7-7.17.1}/wiki/Customer.md +0 -0
  157. {gam7-7.16.1 → gam7-7.17.1}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  158. {gam7-7.16.1 → gam7-7.17.1}/wiki/Domain-SharedContacts.md +0 -0
  159. {gam7-7.16.1 → gam7-7.17.1}/wiki/Domains-Verification.md +0 -0
  160. {gam7-7.16.1 → gam7-7.17.1}/wiki/Domains.md +0 -0
  161. {gam7-7.16.1 → gam7-7.17.1}/wiki/Downloads-Installs.md +0 -0
  162. {gam7-7.16.1 → gam7-7.17.1}/wiki/Drive-File-Selection.md +0 -0
  163. {gam7-7.16.1 → gam7-7.17.1}/wiki/Drive-Items.md +0 -0
  164. {gam7-7.16.1 → gam7-7.17.1}/wiki/Drive-REST-API-v3.md +0 -0
  165. {gam7-7.16.1 → gam7-7.17.1}/wiki/Email-Audit-Monitor.md +0 -0
  166. {gam7-7.16.1 → gam7-7.17.1}/wiki/Find-File-Owner.md +0 -0
  167. {gam7-7.16.1 → gam7-7.17.1}/wiki/GAM-Public-Chat-Room.md +0 -0
  168. {gam7-7.16.1 → gam7-7.17.1}/wiki/GAM-Return-Codes.md +0 -0
  169. {gam7-7.16.1 → gam7-7.17.1}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  170. {gam7-7.16.1 → gam7-7.17.1}/wiki/GAM7-on-Android-Devices.md +0 -0
  171. {gam7-7.16.1 → gam7-7.17.1}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  172. {gam7-7.16.1 → gam7-7.17.1}/wiki/Global-Address-List.md +0 -0
  173. {gam7-7.16.1 → gam7-7.17.1}/wiki/Google-Data-Transfers.md +0 -0
  174. {gam7-7.16.1 → gam7-7.17.1}/wiki/Google-Network-Addresses.md +0 -0
  175. {gam7-7.16.1 → gam7-7.17.1}/wiki/Groups-Membership.md +0 -0
  176. {gam7-7.16.1 → gam7-7.17.1}/wiki/Groups.md +0 -0
  177. {gam7-7.16.1 → gam7-7.17.1}/wiki/HTTPS-Proxy.md +0 -0
  178. {gam7-7.16.1 → gam7-7.17.1}/wiki/Home.md +0 -0
  179. {gam7-7.16.1 → gam7-7.17.1}/wiki/How-to-Install-GAM7.md +0 -0
  180. {gam7-7.16.1 → gam7-7.17.1}/wiki/How-to-Uninstall-GAM7.md +0 -0
  181. {gam7-7.16.1 → gam7-7.17.1}/wiki/How-to-Update-GAM7.md +0 -0
  182. {gam7-7.16.1 → gam7-7.17.1}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  183. {gam7-7.16.1 → gam7-7.17.1}/wiki/Inbound-SSO.md +0 -0
  184. {gam7-7.16.1 → gam7-7.17.1}/wiki/Install-GAM-as-Python-Library.md +0 -0
  185. {gam7-7.16.1 → gam7-7.17.1}/wiki/Licenses.md +0 -0
  186. {gam7-7.16.1 → gam7-7.17.1}/wiki/List-Items.md +0 -0
  187. {gam7-7.16.1 → gam7-7.17.1}/wiki/List.md +0 -0
  188. {gam7-7.16.1 → gam7-7.17.1}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  189. {gam7-7.16.1 → gam7-7.17.1}/wiki/Mobile-Devices.md +0 -0
  190. {gam7-7.16.1 → gam7-7.17.1}/wiki/Organizational-Units.md +0 -0
  191. {gam7-7.16.1 → gam7-7.17.1}/wiki/Other-Resources.md +0 -0
  192. {gam7-7.16.1 → gam7-7.17.1}/wiki/Permission-Matches.md +0 -0
  193. {gam7-7.16.1 → gam7-7.17.1}/wiki/Python-Regular-Expressions.md +0 -0
  194. {gam7-7.16.1 → gam7-7.17.1}/wiki/README.md +0 -0
  195. {gam7-7.16.1 → gam7-7.17.1}/wiki/Rclone.md +0 -0
  196. {gam7-7.16.1 → gam7-7.17.1}/wiki/Reports.md +0 -0
  197. {gam7-7.16.1 → gam7-7.17.1}/wiki/Reseller.md +0 -0
  198. {gam7-7.16.1 → gam7-7.17.1}/wiki/Resources.md +0 -0
  199. {gam7-7.16.1 → gam7-7.17.1}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  200. {gam7-7.16.1 → gam7-7.17.1}/wiki/SSL-Root-CA-Certificates.md +0 -0
  201. {gam7-7.16.1 → gam7-7.17.1}/wiki/Schemas.md +0 -0
  202. {gam7-7.16.1 → gam7-7.17.1}/wiki/Scripts.md +0 -0
  203. {gam7-7.16.1 → gam7-7.17.1}/wiki/Send-Email.md +0 -0
  204. {gam7-7.16.1 → gam7-7.17.1}/wiki/Shared-Drives.md +0 -0
  205. {gam7-7.16.1 → gam7-7.17.1}/wiki/Sites.md +0 -0
  206. {gam7-7.16.1 → gam7-7.17.1}/wiki/Tag-Replace.md +0 -0
  207. {gam7-7.16.1 → gam7-7.17.1}/wiki/Todrive.md +0 -0
  208. {gam7-7.16.1 → gam7-7.17.1}/wiki/Unmanaged-Accounts.md +0 -0
  209. {gam7-7.16.1 → gam7-7.17.1}/wiki/Upgrade-Benefits.md +0 -0
  210. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Analytics-Admin.md +0 -0
  211. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Application-Specific-Passwords.md +0 -0
  212. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Backup-Verification-Codes.md +0 -0
  213. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Calendars-Access.md +0 -0
  214. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Calendars-Events.md +0 -0
  215. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Calendars.md +0 -0
  216. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Chat.md +0 -0
  217. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Classification-Labels.md +0 -0
  218. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Classroom-Profile.md +0 -0
  219. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Contacts-Delegates.md +0 -0
  220. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Contacts.md +0 -0
  221. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Deprovision.md +0 -0
  222. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Activity-Settings.md +0 -0
  223. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Cleanup.md +0 -0
  224. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Comments.md +0 -0
  225. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Copy-Move.md +0 -0
  226. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Orphans.md +0 -0
  227. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Ownership.md +0 -0
  228. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Permissions.md +0 -0
  229. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Query.md +0 -0
  230. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Revisions.md +0 -0
  231. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Shortcuts.md +0 -0
  232. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Drive-Transfer.md +0 -0
  233. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Forms.md +0 -0
  234. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-CSE.md +0 -0
  235. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-Delegates.md +0 -0
  236. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-Filters.md +0 -0
  237. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-Forwarding.md +0 -0
  238. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-Labels.md +0 -0
  239. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  240. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-Profile.md +0 -0
  241. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-S-MIME.md +0 -0
  242. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  243. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Gmail-Settings.md +0 -0
  244. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Group-Membership.md +0 -0
  245. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Keep-Notes.md +0 -0
  246. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Looker-Studio.md +0 -0
  247. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Meet.md +0 -0
  248. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-People-Contacts-Profiles.md +0 -0
  249. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Photo.md +0 -0
  250. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Profile-Photo.md +0 -0
  251. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Profile-Sharing.md +0 -0
  252. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Shared-Drives.md +0 -0
  253. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  254. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Spreadsheets.md +0 -0
  255. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Tag-Manager.md +0 -0
  256. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Tasks.md +0 -0
  257. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-Tokens.md +0 -0
  258. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users-YouTube.md +0 -0
  259. {gam7-7.16.1 → gam7-7.17.1}/wiki/Users.md +0 -0
  260. {gam7-7.16.1 → gam7-7.17.1}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  261. {gam7-7.16.1 → gam7-7.17.1}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  262. {gam7-7.16.1 → gam7-7.17.1}/wiki/Vault-Takeout.md +0 -0
  263. {gam7-7.16.1 → gam7-7.17.1}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  264. {gam7-7.16.1 → gam7-7.17.1}/wiki/gam.cfg.md +0 -0
  265. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-AdminSettingsExamples.md +0 -0
  266. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Android-Installation.md +0 -0
  267. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-BulkOperations.md +0 -0
  268. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-CalendarExamples.md +0 -0
  269. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Chat-Bot.md +0 -0
  270. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Chrome-Browser-Management.md +0 -0
  271. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Chrome-OS-Installation.md +0 -0
  272. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Chrome-Policy-Settings.md +0 -0
  273. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Cloud-Identity-Groups.md +0 -0
  274. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  275. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Command-Reference-Calendars.md +0 -0
  276. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Command-Reference-Definitions.md +0 -0
  277. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Command-Reference-Drive.md +0 -0
  278. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Command-Reference-Email.md +0 -0
  279. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  280. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Command-Reference-Groups.md +0 -0
  281. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Command-Reference-Users.md +0 -0
  282. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  283. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  284. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-CreatingClientSecretsFile.md +0 -0
  285. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Custom-Schemas.md +0 -0
  286. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Data-Transfers.md +0 -0
  287. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-DomainVerification.md +0 -0
  288. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-ExamplesAccountAuditing.md +0 -0
  289. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-ExamplesCSV.md +0 -0
  290. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-ExamplesEmailSettings.md +0 -0
  291. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-ExamplesOrganizations.md +0 -0
  292. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-GAM-Discussion-Group.md +0 -0
  293. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  294. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-GAM-options-files.md +0 -0
  295. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  296. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-GAM3CSVListings.md +0 -0
  297. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-GAM3DirectoryCommands.md +0 -0
  298. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-GAM3GroupSettings.md +0 -0
  299. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-GAM7-FAQ.md +0 -0
  300. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  301. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-GoogleDriveManagement.md +0 -0
  302. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  303. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Home.md +0 -0
  304. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  305. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Inbound-SSO-Settings.md +0 -0
  306. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-LicenseExamples.md +0 -0
  307. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Managing-Admins.md +0 -0
  308. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  309. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Managing-Devices.md +0 -0
  310. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Managing-Google-Classroom.md +0 -0
  311. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-OAuthKeyManagement.md +0 -0
  312. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Printers.md +0 -0
  313. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-ResellerCommands.md +0 -0
  314. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  315. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-SecurityExamples.md +0 -0
  316. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-UnmanagedUsersExamples.md +0 -0
  317. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Use-a-Yubikey.md +0 -0
  318. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  319. {gam7-7.16.1 → gam7-7.17.1}/wiki/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.16.1
3
+ Version: 7.17.1
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
@@ -6597,7 +6597,7 @@ gam <UserTypeEntity> print chatemojis [todrive <ToDriveAttribute>*]
6597
6597
  (folderColorRgb <ColorValue>)|
6598
6598
  (indexabletext <String>)|
6599
6599
  (inheritedpermissionsdisabled [<Boolean>])|
6600
- (itemdownloadrestriction (restrictedforreaders [<Boolean>]) (restrictedforwriters [<Boolean>]))|
6600
+ (itemdownloadrestriction restrictedforreaders|restrictedforwriters [<Boolean>])|
6601
6601
  (keeprevisionforever|pinned)|
6602
6602
  (lastviewedbyme <Time>)|
6603
6603
  (mimetype <MimeType>)|
@@ -8703,3 +8703,11 @@ gam <UserTypeEntity> print youtubechannels [todrive <ToDriveAttribute>*]
8703
8703
  gam create|add verify|verification <DomainName>
8704
8704
  gam update verify|verification <DomainName> cname|txt|text|site|file
8705
8705
  gam info verify|verification
8706
+
8707
+ # Web Resourses and Sites
8708
+
8709
+ gam <UserTypeEntity> show webresources
8710
+ gam <UserTypeEntity> print webresources [todrive <ToDriveAttribute>*]
8711
+ gam <UserTypeEntity> show webmastersites
8712
+ gam <UserTypeEntity> print webmastersites [todrive <ToDriveAttribute>*]
8713
+ ```
@@ -1,5 +1,22 @@
1
+ 7.17.01
2
+
3
+ Fixed bug in `gam <UserTypeEntity> show webmastersites` that caused a trap.
4
+
5
+ 7.17.00
6
+
7
+ Added commands to discover Sites and WebResources that managed users (previously unmanaged) may have access to for better governance and visibility.
8
+ These are special purpose commands and will not generally be used.
9
+ ```
10
+ gam <UserTypeEntity> show webresources
11
+ gam <UserTypeEntity> print webresources [todrive <ToDriveAttribute>*]
12
+ gam <UserTypeEntity> show webmastersites
13
+ gam <UserTypeEntity> print webmastersites [todrive <ToDriveAttribute>*]
14
+ ```
15
+
1
16
  7.16.01
2
17
 
18
+ The Drive API now supports setting download restrictions on individual files.
19
+
3
20
  Added `downloadrestictions` and `<DriveDownloadRestrictionsSubfieldName>` to `<DriveFieldName>`.
4
21
  ```
5
22
  <DriveDownloadRestrictionsSubfieldName> ::=
@@ -7,7 +24,7 @@ Added `downloadrestictions` and `<DriveDownloadRestrictionsSubfieldName>` to `<D
7
24
  downloadrestrictions.effectivedownloadrestrictionwithcontext
8
25
  ```
9
26
 
10
- Added `itemdownloadrestriction (restrictedforreaders [<Boolean>]) (restrictedforwriters [<Boolean>])`
27
+ Added `itemdownloadrestriction restrictedforreaders|restrictedforwriters [<Boolean>]`
11
28
  to `<DriveFileAttribute>`.
12
29
 
13
30
  From the Drive API documentation:
@@ -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.16.01'
28
+ __version__ = '7.17.01'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -46963,8 +46963,8 @@ def doCreateSiteVerification():
46963
46963
  printKeyValueList(['Meta HTML Header Data', webserver_meta_record['token']])
46964
46964
  printBlankLine()
46965
46965
 
46966
- def _showSiteVerificationInfo(site):
46967
- printKeyValueList(['Site', site['site']['identifier']])
46966
+ def _showSiteVerificationInfo(site, i=0, count=0):
46967
+ printKeyValueListWithCount(['Site', site['site']['identifier']], i, count)
46968
46968
  Ind.Increment()
46969
46969
  printKeyValueList(['ID', unquote(site['id'])])
46970
46970
  printKeyValueList(['Type', site['site']['type']])
@@ -47072,11 +47072,83 @@ def doInfoSiteVerification():
47072
47072
  checkForExtraneousArguments()
47073
47073
  sites = callGAPIitems(verif.webResource(), 'list', 'items')
47074
47074
  if sites:
47075
+ count = len(sites)
47076
+ i = 0
47075
47077
  for site in sorted(sites, key=lambda k: (k['site']['type'], k['site']['identifier'])):
47076
- _showSiteVerificationInfo(site)
47078
+ i += 1
47079
+ _showSiteVerificationInfo(site, i, count)
47077
47080
  else:
47078
47081
  printKeyValueList(['No Sites Verified.'])
47079
47082
 
47083
+ # gam <UserTypeEntity> show webresources
47084
+ # gam <UserTypeEntity> print webresources [todrive <ToDriveAttribute>*]
47085
+ def printShowWebResources(users):
47086
+ csvPF = CSVPrintFile(['User', 'site.identifier']) if Act.csvFormat() else None
47087
+ while Cmd.ArgumentsRemaining():
47088
+ myarg = getArgument()
47089
+ if csvPF and myarg == 'todrive':
47090
+ csvPF.GetTodriveParameters()
47091
+ else:
47092
+ unknownArgumentExit()
47093
+ i, count, users = getEntityArgument(users)
47094
+ for user in users:
47095
+ i += 1
47096
+ user, verif = buildGAPIServiceObject(API.SITEVERIFICATION, user, i, count)
47097
+ if not verif:
47098
+ continue
47099
+ sites = callGAPIitems(verif.webResource(), 'list', 'items')
47100
+ jcount = len(sites)
47101
+ if not csvPF:
47102
+ entityPerformActionNumItems([Ent.USER, user], jcount, Ent.WEB_RESOURCE, i, count)
47103
+ Ind.Increment()
47104
+ j = 0
47105
+ for site in sorted(sites, key=lambda k: (k['site']['type'], k['site']['identifier'])):
47106
+ j += 1
47107
+ _showSiteVerificationInfo(site, j, jcount)
47108
+ Ind.Decrement()
47109
+ else:
47110
+ for site in sites:
47111
+ row = flattenJSON(site, flattened={'User': user})
47112
+ csvPF.WriteRowTitles(row)
47113
+ if csvPF:
47114
+ csvPF.writeCSVfile('Web Resources')
47115
+
47116
+ # gam <UserTypeEntity> show webmastersites
47117
+ # gam <UserTypeEntity> print webmastersites [todrive <ToDriveAttribute>*]
47118
+ def printShowWebMasterSites(users):
47119
+ csvPF = CSVPrintFile(['User', 'siteUrl']) if Act.csvFormat() else None
47120
+ while Cmd.ArgumentsRemaining():
47121
+ myarg = getArgument()
47122
+ if csvPF and myarg == 'todrive':
47123
+ csvPF.GetTodriveParameters()
47124
+ else:
47125
+ unknownArgumentExit()
47126
+ i, count, users = getEntityArgument(users)
47127
+ for user in users:
47128
+ i += 1
47129
+ user, searchconsole = buildGAPIServiceObject(API.SEARCHCONSOLE, user, i, count)
47130
+ if not searchconsole:
47131
+ continue
47132
+ sites = callGAPIitems(searchconsole.sites(), 'list', 'siteEntry')
47133
+ jcount = len(sites)
47134
+ if not csvPF:
47135
+ entityPerformActionNumItems([Ent.USER, user], jcount, Ent.WEB_MASTERSITE, i, count)
47136
+ Ind.Increment()
47137
+ j = 0
47138
+ for site in sorted(sites, key=lambda k: k['siteUrl']):
47139
+ j += 1
47140
+ printKeyValueListWithCount(['Site', site['siteUrl']], j, jcount)
47141
+ Ind.Increment()
47142
+ printKeyValueList(['permissionLevel', site['permissionLevel']])
47143
+ Ind.Decrement()
47144
+ Ind.Decrement()
47145
+ else:
47146
+ for site in sites:
47147
+ row = flattenJSON(site, flattened={'User': user})
47148
+ csvPF.WriteRowTitles(row)
47149
+ if csvPF:
47150
+ csvPF.writeCSVfile('Web Master Sites')
47151
+
47080
47152
  def checkCourseExists(croom, courseId, i=0, count=0, entityType=Ent.COURSE):
47081
47153
  courseId = addCourseIdScope(courseId)
47082
47154
  try:
@@ -53818,6 +53890,8 @@ DRIVE_FILE_CONTENT_RESTRICTIONS_CHOICE_MAP = {
53818
53890
  }
53819
53891
 
53820
53892
  DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP = {
53893
+ 'downloadrestrictedforreaders': 'restrictedForReaders',
53894
+ 'downloadrestrictedforwriters': 'restrictedForWriters',
53821
53895
  'restrictedforreaders': 'restrictedForReaders',
53822
53896
  'restrictedforwriters': 'restrictedForWriters',
53823
53897
  }
@@ -53873,6 +53947,20 @@ def getDriveFileAddRemoveParentAttribute(myarg, parameters):
53873
53947
  return False
53874
53948
  return True
53875
53949
 
53950
+ def _getDriveFileDownloadRestrictions(myarg, body):
53951
+ subField = myarg
53952
+ if subField.startswith('downloadrestrictions.'):
53953
+ _, subField = subField.split('.', 1)
53954
+ if subField.startswith('itemdownloadrestriction.'):
53955
+ _, subField = subField.split('.', 1)
53956
+ if subField == 'itemdownloadrestriction':
53957
+ subField = getChoice(DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP)
53958
+ if subField in DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP:
53959
+ body.setdefault('downloadRestrictions', {'itemDownloadRestriction': {}})
53960
+ body['downloadRestrictions']['itemDownloadRestriction'][DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP[subField]] = getBoolean()
53961
+ return True
53962
+ return False
53963
+
53876
53964
  def getDriveFileCopyAttribute(myarg, body, parameters):
53877
53965
  if myarg == 'ignoredefaultvisibility':
53878
53966
  parameters[DFA_IGNORE_DEFAULT_VISIBILITY] = getBoolean()
@@ -53908,10 +53996,8 @@ def getDriveFileCopyAttribute(myarg, body, parameters):
53908
53996
  else:
53909
53997
  Cmd.Backup()
53910
53998
  usageErrorExit(Msg.REASON_ONLY_VALID_WITH_CONTENTRESTRICTIONS_READONLY_TRUE)
53911
- elif myarg == 'itemdownloadrestriction':
53912
- body.setdefault('downloadRestrictions', {'itemDownloadRestriction': {}})
53913
- restriction = getChoice(DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP, mapChoice=True)
53914
- body['downloadRestrictions']['itemDownloadRestriction'][restriction] = getBoolean()
53999
+ elif _getDriveFileDownloadRestrictions(myarg, body):
54000
+ pass
53915
54001
  elif myarg == 'inheritedpermissionsdisabled':
53916
54002
  body['inheritedPermissionsDisabled'] = getBoolean()
53917
54003
  elif myarg == 'property':
@@ -78284,6 +78370,8 @@ USER_COMMANDS_WITH_OBJECTS = {
78284
78370
  Cmd.ARG_USERLIST: doPrintUserList,
78285
78371
  Cmd.ARG_VACATION: printShowVacation,
78286
78372
  Cmd.ARG_VAULTHOLD: printShowUserVaultHolds,
78373
+ Cmd.ARG_WEBMASTERSITE: printShowWebMasterSites,
78374
+ Cmd.ARG_WEBRESOURCE: printShowWebResources,
78287
78375
  Cmd.ARG_WORKINGLOCATION: printShowWorkingLocation,
78288
78376
  Cmd.ARG_YOUTUBECHANNEL: printShowYouTubeChannel,
78289
78377
  }
@@ -78394,6 +78482,8 @@ USER_COMMANDS_WITH_OBJECTS = {
78394
78482
  Cmd.ARG_TOKEN: printShowTokens,
78395
78483
  Cmd.ARG_VAULTHOLD: printShowUserVaultHolds,
78396
78484
  Cmd.ARG_VACATION: printShowVacation,
78485
+ Cmd.ARG_WEBMASTERSITE: printShowWebMasterSites,
78486
+ Cmd.ARG_WEBRESOURCE: printShowWebResources,
78397
78487
  Cmd.ARG_WORKINGLOCATION: printShowWorkingLocation,
78398
78488
  Cmd.ARG_YOUTUBECHANNEL: printShowYouTubeChannel,
78399
78489
  }
@@ -78645,6 +78735,8 @@ USER_COMMANDS_OBJ_ALIASES = {
78645
78735
  Cmd.ARG_USERS: Cmd.ARG_USER,
78646
78736
  Cmd.ARG_VAULTHOLDS: Cmd.ARG_VAULTHOLD,
78647
78737
  Cmd.ARG_VERIFICATIONCODES: Cmd.ARG_BACKUPCODE,
78738
+ Cmd.ARG_WEBMASTERSITES: Cmd.ARG_WEBMASTERSITE,
78739
+ Cmd.ARG_WEBRESOURCES: Cmd.ARG_WEBRESOURCE,
78648
78740
  Cmd.ARG_WORKINGLOCATIONS: Cmd.ARG_WORKINGLOCATION,
78649
78741
  Cmd.ARG_YOUTUBECHANNELS: Cmd.ARG_YOUTUBECHANNEL,
78650
78742
  }
@@ -85,6 +85,7 @@ PRINTERS = 'printers'
85
85
  PUBSUB = 'pubsub'
86
86
  REPORTS = 'reports'
87
87
  RESELLER = 'reseller'
88
+ SEARCHCONSOLE = 'searchconsole'
88
89
  SERVICEACCOUNTLOOKUP = 'serviceaccountlookup'
89
90
  SERVICEMANAGEMENT = 'servicemanagement'
90
91
  SERVICEUSAGE = 'serviceusage'
@@ -198,6 +199,7 @@ PROJECT_APIS = [
198
199
  'people.googleapis.com',
199
200
  'pubsub.googleapis.com',
200
201
  'reseller.googleapis.com',
202
+ 'searchconsole.googleapis.com',
201
203
  'sheets.googleapis.com',
202
204
  'siteverification.googleapis.com',
203
205
  'storage-api.googleapis.com',
@@ -271,6 +273,7 @@ _INFO = {
271
273
  PUBSUB: {'name': 'Pub / Sub API', 'version': 'v1', 'v2discovery': True},
272
274
  REPORTS: {'name': 'Reports API', 'version': 'reports_v1', 'v2discovery': True, 'mappedAPI': 'admin'},
273
275
  RESELLER: {'name': 'Reseller API', 'version': 'v1', 'v2discovery': True},
276
+ SEARCHCONSOLE: {'name': 'Search Console API', 'version': 'v1', 'v2discovery': True},
274
277
  SERVICEACCOUNTLOOKUP: {'name': 'Service Account Lookup pseudo-API', 'version': 'v1', 'v2discovery': True, 'localjson': True},
275
278
  SERVICEMANAGEMENT: {'name': 'Service Management API', 'version': 'v1', 'v2discovery': True},
276
279
  SERVICEUSAGE: {'name': 'Service Usage API', 'version': 'v1', 'v2discovery': True},
@@ -697,10 +700,20 @@ _SVCACCT_SCOPES = [
697
700
  'api': PEOPLE_OTHERCONTACTS,
698
701
  'subscopes': [],
699
702
  'scope': 'https://www.googleapis.com/auth/contacts.other.readonly'},
703
+ {'name': 'Search Console API - read only',
704
+ 'api': SEARCHCONSOLE,
705
+ 'subscopes': [],
706
+ 'offByDefault': True,
707
+ 'scope': 'https://www.googleapis.com/auth/webmasters.readonly'},
700
708
  {'name': 'Sheets API',
701
709
  'api': SHEETS,
702
710
  'subscopes': READONLY,
703
711
  'scope': 'https://www.googleapis.com/auth/spreadsheets'},
712
+ {'name': 'Site Verification API',
713
+ 'api': SITEVERIFICATION,
714
+ 'subscopes': [],
715
+ 'offByDefault': True,
716
+ 'scope': 'https://www.googleapis.com/auth/siteverification'},
704
717
  {'name': 'Tag Manager API - Accounts, Containers, Workspaces, Tags - read only',
705
718
  'api': TAGMANAGER,
706
719
  'subscopes': [],
@@ -830,6 +830,10 @@ class GamCLArgs():
830
830
  ARG_VERIFICATION = 'verification'
831
831
  ARG_VERIFICATIONCODES = 'verificationcodes'
832
832
  ARG_VERIFY = 'verify'
833
+ ARG_WEBMASTERSITE = 'webmastersite'
834
+ ARG_WEBMASTERSITES = 'webmastersites'
835
+ ARG_WEBRESOURCE = 'webresource'
836
+ ARG_WEBRESOURCES = 'webresources'
833
837
  ARG_WORKINGLOCATION = 'workinglocation'
834
838
  ARG_WORKINGLOCATIONS = 'workinglocations'
835
839
  ARG_YOUTUBECHANNEL = 'youtubechannel'
@@ -394,6 +394,8 @@ class GamEntity():
394
394
  VAULT_MATTER_ID = 'vlmi'
395
395
  VAULT_OPERATION = 'vlto'
396
396
  VAULT_QUERY = 'vltq'
397
+ WEB_MASTERSITE = 'wems'
398
+ WEB_RESOURCE = 'were'
397
399
  WEBCLIPS_ENABLED = 'webc'
398
400
  YOUTUBE_CHANNEL = 'ytch'
399
401
  # _NAMES[0] is plural, _NAMES[1] is singular unless the item name is explicitly plural (Calendar Settings)
@@ -752,6 +754,8 @@ class GamEntity():
752
754
  VAULT_OPERATION: ['Vault Operations', 'Vault Operation'],
753
755
  VAULT_QUERY: ['Vault Queries', 'Vault Query'],
754
756
  WEBCLIPS_ENABLED: ['Web Clips Enabled', 'Web Clips Enabled'],
757
+ WEB_MASTERSITE: ['Web Master Sites', 'Web Master Site'],
758
+ WEB_RESOURCE: ['Web Resources', 'Web Resource'],
755
759
  YOUTUBE_CHANNEL: ['YouTube Channels', 'YouTube Channel'],
756
760
  ROLE_MANAGER: ['Managers', 'Manager'],
757
761
  ROLE_MEMBER: ['Members', 'Member'],
@@ -10,6 +10,39 @@ 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.17.00
14
+
15
+ Added commands to discover Sites and WebResources that managed users (previously unmanaged) may have access to for better governance and visibility.
16
+ These are special purpose commands and will not generally be used.
17
+ ```
18
+ gam <UserTypeEntity> show webresources
19
+ gam <UserTypeEntity> print webresources [todrive <ToDriveAttribute>*]
20
+ gam <UserTypeEntity> show webmastersites
21
+ gam <UserTypeEntity> print webmastersites [todrive <ToDriveAttribute>*]
22
+ ```
23
+
24
+ ### 7.16.01
25
+
26
+ The Drive API now supports setting download restrictions on individual files.
27
+
28
+ Added `downloadrestictions` and `<DriveDownloadRestrictionsSubfieldName>` to `<DriveFieldName>`.
29
+ ```
30
+ <DriveDownloadRestrictionsSubfieldName> ::=
31
+ downloadrestrictions.itemdownloadrestriction|
32
+ downloadrestrictions.effectivedownloadrestrictionwithcontext
33
+ ```
34
+
35
+ Added `itemdownloadrestriction (restrictedforreaders [<Boolean>]) (restrictedforwriters [<Boolean>])`
36
+ to `<DriveFileAttribute>`.
37
+
38
+ From the Drive API documentation:
39
+ ```
40
+ itemDownloadRestriction - The download restriction of the file applied directly by the owner or organizer. This does not take into account shared drive settings or DLP rules.
41
+ effectiveDownloadRestrictionWithContext - Output only. The effective download restriction applied to this file. This considers all restriction settings and DLP rules.
42
+ restrictedForReaders - Whether download and copy is restricted for readers.
43
+ restrictedForWriters - Whether download and copy is restricted for writers. If true, download is also restricted for readers.
44
+ ```
45
+
13
46
  ### 7.16.00
14
47
 
15
48
  Removed `drive_v3_native_names` from `gam.cfg`; GAM now only uses Drive API v3 fields names on output.
@@ -252,7 +252,7 @@ writes the credentials into the file oauth2.txt.
252
252
  admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
253
253
  admin@server:/Users/admin$ gam version
254
254
  WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
255
- GAM 7.16.00 - https://github.com/GAM-team/GAM - pyinstaller
255
+ GAM 7.17.00 - https://github.com/GAM-team/GAM - pyinstaller
256
256
  GAM Team <google-apps-manager@googlegroups.com>
257
257
  Python 3.13.5 64-bit final
258
258
  MacOS Sequoia 15.5 x86_64
@@ -990,7 +990,7 @@ writes the credentials into the file oauth2.txt.
990
990
  C:\>del C:\GAMConfig\oauth2.txt
991
991
  C:\>gam version
992
992
  WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
993
- GAM 7.16.00 - https://github.com/GAM-team/GAM - pythonsource
993
+ GAM 7.17.00 - https://github.com/GAM-team/GAM - pythonsource
994
994
  GAM Team <google-apps-manager@googlegroups.com>
995
995
  Python 3.13.5 64-bit final
996
996
  Windows-10-10.0.17134 AMD64
@@ -157,12 +157,16 @@
157
157
  contentrestrictions.restrictiontime|
158
158
  contentrestrictions.type
159
159
 
160
- <DriveLabelInfoSubfieldName> ::=
160
+ <DriveDownloadRestrictionsSubfieldName> ::=
161
+ downloadrestrictions.itemdownloadrestriction|
162
+ downloadrestrictions.effectivedownloadrestrictionwithcontext
163
+
164
+ <ClassificationLabelInfoSubfieldName> ::=
161
165
  labels.id| # modifiedByMe
162
166
  labels.revisionid| # copyRequiresWriterPermission
163
167
  labels.fields # viewedByMe
164
168
 
165
- <DriveLabelsSubfieldName> ::=
169
+ <ClassificationLabelsSubfieldName~> ::=
166
170
  labels.modified| # modifiedByMe
167
171
  labels.restricted| # copyRequiresWriterPermission
168
172
  labels.starred| # starred
@@ -251,6 +255,8 @@
251
255
  copyrequireswriterpermission|
252
256
  createddate|createdtime|
253
257
  description|
258
+ downloadrestictions|
259
+ <DriveDownloadRestrictionsSubfieldName>|
254
260
  driveid|
255
261
  drivename|
256
262
  editable|
@@ -269,9 +275,9 @@
269
275
  inheritedpermissionsdisabled|
270
276
  isappauthorized|
271
277
  labelinfo|
272
- <DriveLabelInfoSubfieldName>|
278
+ <ClassificationLabelInfoSubfieldName>|
273
279
  labels|
274
- <DriveLabelsSubfieldName>|
280
+ <ClassificationLabelsSubfieldName>|
275
281
  lastmodifyinguser|
276
282
  <DriveLastModifyingUserSubfieldName>|
277
283
  lastmodifyingusername|
@@ -125,6 +125,7 @@
125
125
  (folderColorRgb <ColorValue>)|
126
126
  (indexabletext <String>)|
127
127
  (inheritedpermissionsdisabled [<Boolean>])|
128
+ (itemdownloadrestriction restrictedforreaders|restrictedforwriters [<Boolean>])|
128
129
  (keeprevisionforever|pinned)|
129
130
  (lastviewedbyme <Time>)|
130
131
  (mimetype <MimeType>)|
@@ -0,0 +1,48 @@
1
+ # Users - Web Resources and Sites
2
+ - [API documentation](#api-documentation)
3
+ - [Introduction](#introduction)
4
+ - [Definitions](#definitions)
5
+ - [Display Web Resources](#display-web-resources)
6
+ - [Display Web Sites](#display-web-sites)
7
+
8
+ ## API documentation
9
+ * [Web Resources](https://developers.google.com/site-verification/v1/webResource/list)
10
+ * [Web Sites](https://developers.google.com/webmaster-tools/v1/sites/list)
11
+
12
+
13
+ ## Introduction
14
+ These features were added in version 7.17.00.
15
+
16
+ To use these commands you add the 'Search Console API' to your project and update your service account authorization.
17
+ ```
18
+ gam update project
19
+ gam user user@domain.com update serviceaccount
20
+ ...
21
+ [*] 39) Search Console API - read only
22
+ [*] 42) Site Verification API
23
+
24
+ ```
25
+ ## Definitions
26
+ * [`<UserTypeEntity>`](Collections-of-Users)
27
+
28
+ ## Display Web Resources
29
+ ```
30
+ gam <UserItem> show webresources
31
+ ```
32
+ Gam displays the information as an indented list of keys and values.
33
+
34
+ ```
35
+ gam <UserItem> print webresources [todrive <ToDriveAttribute>*]
36
+ ```
37
+ Gam displays the information as columns of fields.
38
+
39
+ ## Display Web Sites
40
+ ```
41
+ gam <UserItem> show websites
42
+ ```
43
+ Gam displays the information as an indented list of keys and values.
44
+
45
+ ```
46
+ gam <UserItem> print websites [todrive <ToDriveAttribute>*]
47
+ ```
48
+ Gam displays the information as columns of fields.
@@ -3,7 +3,7 @@
3
3
  Print the current version of Gam with details
4
4
  ```
5
5
  gam version
6
- GAM 7.16.00 - https://github.com/GAM-team/GAM - pyinstaller
6
+ GAM 7.17.00 - 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.16.00 - https://github.com/GAM-team/GAM - pyinstaller
18
+ GAM 7.17.00 - 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.16.00 - https://github.com/GAM-team/GAM - pyinstaller
30
+ GAM 7.17.00 - 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.16.00
67
+ Latest: 7.17.00
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.16.00
75
+ 7.17.00
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.16.00 - https://github.com/GAM-team/GAM
85
+ GAM 7.17.00 - 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
@@ -174,6 +174,7 @@ Service Account Access
174
174
  * [Users - Tag Manager](Users-Tag-Manager)
175
175
  * [Users - Tasks](Users-Tasks)
176
176
  * [Users - YouTube](Users-YouTube)
177
+ * [Users - Web Resources and Sites](Users-Web-Resources-and-Sites)
177
178
 
178
179
  GAM Tutorials
179
180
  * [Account Auditing](l-ExamplesAccountAuditing)
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