gam7 7.16.0__tar.gz → 7.17.0__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.0 → gam7-7.17.0}/PKG-INFO +1 -1
  2. {gam7-7.16.0 → gam7-7.17.0}/src/GamCommands.txt +15 -0
  3. {gam7-7.16.0 → gam7-7.17.0}/src/GamUpdate.txt +33 -0
  4. {gam7-7.16.0 → gam7-7.17.0}/src/gam/__init__.py +103 -1
  5. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glapi.py +13 -0
  6. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glclargs.py +4 -0
  7. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glentity.py +4 -0
  8. gam7-7.17.0/wiki/Drive-REST-API-v3.md +77 -0
  9. {gam7-7.16.0 → gam7-7.17.0}/wiki/GamUpdates.md +29 -0
  10. {gam7-7.16.0 → gam7-7.17.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +3 -2
  11. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Files-Display.md +10 -4
  12. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Files-Manage.md +1 -0
  13. {gam7-7.16.0 → gam7-7.17.0}/wiki/Version-and-Help.md +6 -7
  14. gam7-7.16.0/wiki/Drive-REST-API-v3.md +0 -93
  15. {gam7-7.16.0 → gam7-7.17.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  16. {gam7-7.16.0 → gam7-7.17.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  17. {gam7-7.16.0 → gam7-7.17.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  18. {gam7-7.16.0 → gam7-7.17.0}/.github/ISSUE_TEMPLATE.txt +0 -0
  19. {gam7-7.16.0 → gam7-7.17.0}/.github/actions/decrypt.sh +0 -0
  20. {gam7-7.16.0 → gam7-7.17.0}/.github/actions/entitlements.plist +0 -0
  21. {gam7-7.16.0 → gam7-7.17.0}/.github/actions/package_exclusions.txt +0 -0
  22. {gam7-7.16.0 → gam7-7.17.0}/.github/stale.yml +0 -0
  23. {gam7-7.16.0 → gam7-7.17.0}/.github/workflows/build.yml +0 -0
  24. {gam7-7.16.0 → gam7-7.17.0}/.github/workflows/codeql-analysis.yml +0 -0
  25. {gam7-7.16.0 → gam7-7.17.0}/.github/workflows/get-cacerts.yml +0 -0
  26. {gam7-7.16.0 → gam7-7.17.0}/.github/workflows/pushwiki.yml +0 -0
  27. {gam7-7.16.0 → gam7-7.17.0}/.github/workflows/pypi.yml +0 -0
  28. {gam7-7.16.0 → gam7-7.17.0}/.pre-commit-config.yaml +0 -0
  29. {gam7-7.16.0 → gam7-7.17.0}/LICENSE +0 -0
  30. {gam7-7.16.0 → gam7-7.17.0}/README.md +0 -0
  31. {gam7-7.16.0 → gam7-7.17.0}/pyproject.toml +0 -0
  32. {gam7-7.16.0 → gam7-7.17.0}/src/.gitignore +0 -0
  33. {gam7-7.16.0 → gam7-7.17.0}/src/LICENSE +0 -0
  34. {gam7-7.16.0 → gam7-7.17.0}/src/README.md +0 -0
  35. {gam7-7.16.0 → gam7-7.17.0}/src/cacerts.pem +0 -0
  36. {gam7-7.16.0 → gam7-7.17.0}/src/callgam.py +0 -0
  37. {gam7-7.16.0 → gam7-7.17.0}/src/gam/__main__.py +0 -0
  38. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/__init__.py +0 -0
  39. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/auth.py +0 -0
  40. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/client.py +0 -0
  41. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/core.py +0 -0
  42. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/data.py +0 -0
  43. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/http.py +0 -0
  44. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/http_core.py +0 -0
  45. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/http_interface.py +0 -0
  46. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/mock_http.py +0 -0
  47. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/mock_http_core.py +0 -0
  48. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/mock_service.py +0 -0
  49. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/service.py +0 -0
  50. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/token_store.py +0 -0
  51. {gam7-7.16.0 → gam7-7.17.0}/src/gam/atom/url.py +0 -0
  52. {gam7-7.16.0 → gam7-7.17.0}/src/gam/cacerts.pem +0 -0
  53. {gam7-7.16.0 → gam7-7.17.0}/src/gam/cbcm-v1.1beta1.json +0 -0
  54. {gam7-7.16.0 → gam7-7.17.0}/src/gam/contactdelegation-v1.json +0 -0
  55. {gam7-7.16.0 → gam7-7.17.0}/src/gam/datastudio-v1.json +0 -0
  56. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/__init__.py +0 -0
  57. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glaction.py +0 -0
  58. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glcfg.py +0 -0
  59. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glgapi.py +0 -0
  60. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glgdata.py +0 -0
  61. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glglobals.py +0 -0
  62. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glindent.py +0 -0
  63. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glmsgs.py +0 -0
  64. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glskus.py +0 -0
  65. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/gluprop.py +0 -0
  66. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/glverlibs.py +0 -0
  67. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gamlib/yubikey.py +0 -0
  68. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/__init__.py +0 -0
  69. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/alt/__init__.py +0 -0
  70. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/alt/app_engine.py +0 -0
  71. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/alt/appengine.py +0 -0
  72. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/apps/__init__.py +0 -0
  73. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
  74. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/apps/audit/service.py +0 -0
  75. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  76. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/apps/contacts/service.py +0 -0
  77. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/apps/service.py +0 -0
  78. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/service.py +0 -0
  79. {gam7-7.16.0 → gam7-7.17.0}/src/gam/gdata/urlfetch.py +0 -0
  80. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/__init__.py +0 -0
  81. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/_auth.py +0 -0
  82. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/_helpers.py +0 -0
  83. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/channel.py +0 -0
  84. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/discovery.py +0 -0
  85. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  86. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  87. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  88. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  89. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/errors.py +0 -0
  90. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/http.py +0 -0
  91. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/mimeparse.py +0 -0
  92. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/model.py +0 -0
  93. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/schema.py +0 -0
  94. {gam7-7.16.0 → gam7-7.17.0}/src/gam/googleapiclient/version.py +0 -0
  95. {gam7-7.16.0 → gam7-7.17.0}/src/gam/iso8601/__init__.py +0 -0
  96. {gam7-7.16.0 → gam7-7.17.0}/src/gam/iso8601/iso8601.py +0 -0
  97. {gam7-7.16.0 → gam7-7.17.0}/src/gam/meet-v2beta.json +0 -0
  98. {gam7-7.16.0 → gam7-7.17.0}/src/gam/serviceaccountlookup-v1.json +0 -0
  99. {gam7-7.16.0 → gam7-7.17.0}/src/gam/six.py +0 -0
  100. {gam7-7.16.0 → gam7-7.17.0}/src/gam-install.sh +0 -0
  101. {gam7-7.16.0 → gam7-7.17.0}/src/gam-setup.bat +0 -0
  102. {gam7-7.16.0 → gam7-7.17.0}/src/gam.exe.manifest +0 -0
  103. {gam7-7.16.0 → gam7-7.17.0}/src/gam.py +0 -0
  104. {gam7-7.16.0 → gam7-7.17.0}/src/gam.spec +0 -0
  105. {gam7-7.16.0 → gam7-7.17.0}/src/gam.wxs +0 -0
  106. {gam7-7.16.0 → gam7-7.17.0}/src/license.rtf +0 -0
  107. {gam7-7.16.0 → gam7-7.17.0}/src/requirements-dev.txt +0 -0
  108. {gam7-7.16.0 → gam7-7.17.0}/src/tools/a_atleast_b.py +0 -0
  109. {gam7-7.16.0 → gam7-7.17.0}/src/tools/gen-wix-xml-filelist.py +0 -0
  110. {gam7-7.16.0 → gam7-7.17.0}/src/tools/mkGamRef.py +0 -0
  111. {gam7-7.16.0 → gam7-7.17.0}/src/tools/openssl.props +0 -0
  112. {gam7-7.16.0 → gam7-7.17.0}/src/version_info.txt.in +0 -0
  113. {gam7-7.16.0 → gam7-7.17.0}/wiki/00scratch.md +0 -0
  114. {gam7-7.16.0 → gam7-7.17.0}/wiki/Addresses.md +0 -0
  115. {gam7-7.16.0 → gam7-7.17.0}/wiki/Administrators.md +0 -0
  116. {gam7-7.16.0 → gam7-7.17.0}/wiki/Alert-Center.md +0 -0
  117. {gam7-7.16.0 → gam7-7.17.0}/wiki/Aliases.md +0 -0
  118. {gam7-7.16.0 → gam7-7.17.0}/wiki/Authorization.md +0 -0
  119. {gam7-7.16.0 → gam7-7.17.0}/wiki/BNF-Syntax.md +0 -0
  120. {gam7-7.16.0 → gam7-7.17.0}/wiki/Basic-Items.md +0 -0
  121. {gam7-7.16.0 → gam7-7.17.0}/wiki/Bulk-Processing.md +0 -0
  122. {gam7-7.16.0 → gam7-7.17.0}/wiki/CSV-Input-Filtering.md +0 -0
  123. {gam7-7.16.0 → gam7-7.17.0}/wiki/CSV-Output-Filtering.md +0 -0
  124. {gam7-7.16.0 → gam7-7.17.0}/wiki/CSV-Special-Characters.md +0 -0
  125. {gam7-7.16.0 → gam7-7.17.0}/wiki/Calendars-Access.md +0 -0
  126. {gam7-7.16.0 → gam7-7.17.0}/wiki/Calendars-Events.md +0 -0
  127. {gam7-7.16.0 → gam7-7.17.0}/wiki/Calendars.md +0 -0
  128. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chat-Bot.md +0 -0
  129. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chrome-AUE-Counts.md +0 -0
  130. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  131. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chrome-Installed-Apps.md +0 -0
  132. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  133. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chrome-Policies.md +0 -0
  134. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chrome-Printers.md +0 -0
  135. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chrome-Profile-Management.md +0 -0
  136. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chrome-Version-Counts.md +0 -0
  137. {gam7-7.16.0 → gam7-7.17.0}/wiki/Chrome-Version-History.md +0 -0
  138. {gam7-7.16.0 → gam7-7.17.0}/wiki/ChromeOS-Devices.md +0 -0
  139. {gam7-7.16.0 → gam7-7.17.0}/wiki/Classroom-Courses.md +0 -0
  140. {gam7-7.16.0 → gam7-7.17.0}/wiki/Classroom-Guardians.md +0 -0
  141. {gam7-7.16.0 → gam7-7.17.0}/wiki/Classroom-Invitations.md +0 -0
  142. {gam7-7.16.0 → gam7-7.17.0}/wiki/Classroom-Membership.md +0 -0
  143. {gam7-7.16.0 → gam7-7.17.0}/wiki/Cloud-Channel.md +0 -0
  144. {gam7-7.16.0 → gam7-7.17.0}/wiki/Cloud-Identity-Devices.md +0 -0
  145. {gam7-7.16.0 → gam7-7.17.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  146. {gam7-7.16.0 → gam7-7.17.0}/wiki/Cloud-Identity-Groups.md +0 -0
  147. {gam7-7.16.0 → gam7-7.17.0}/wiki/Cloud-Identity-Policies.md +0 -0
  148. {gam7-7.16.0 → gam7-7.17.0}/wiki/Cloud-Storage.md +0 -0
  149. {gam7-7.16.0 → gam7-7.17.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  150. {gam7-7.16.0 → gam7-7.17.0}/wiki/Collections-of-Items.md +0 -0
  151. {gam7-7.16.0 → gam7-7.17.0}/wiki/Collections-of-Users.md +0 -0
  152. {gam7-7.16.0 → gam7-7.17.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  153. {gam7-7.16.0 → gam7-7.17.0}/wiki/Command-Line-Parsing.md +0 -0
  154. {gam7-7.16.0 → gam7-7.17.0}/wiki/Command-Logging-Progress.md +0 -0
  155. {gam7-7.16.0 → gam7-7.17.0}/wiki/Context-Aware-Access-Levels.md +0 -0
  156. {gam7-7.16.0 → gam7-7.17.0}/wiki/Customer.md +0 -0
  157. {gam7-7.16.0 → gam7-7.17.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  158. {gam7-7.16.0 → gam7-7.17.0}/wiki/Domain-SharedContacts.md +0 -0
  159. {gam7-7.16.0 → gam7-7.17.0}/wiki/Domains-Verification.md +0 -0
  160. {gam7-7.16.0 → gam7-7.17.0}/wiki/Domains.md +0 -0
  161. {gam7-7.16.0 → gam7-7.17.0}/wiki/Downloads-Installs.md +0 -0
  162. {gam7-7.16.0 → gam7-7.17.0}/wiki/Drive-File-Selection.md +0 -0
  163. {gam7-7.16.0 → gam7-7.17.0}/wiki/Drive-Items.md +0 -0
  164. {gam7-7.16.0 → gam7-7.17.0}/wiki/Email-Audit-Monitor.md +0 -0
  165. {gam7-7.16.0 → gam7-7.17.0}/wiki/Find-File-Owner.md +0 -0
  166. {gam7-7.16.0 → gam7-7.17.0}/wiki/GAM-Public-Chat-Room.md +0 -0
  167. {gam7-7.16.0 → gam7-7.17.0}/wiki/GAM-Return-Codes.md +0 -0
  168. {gam7-7.16.0 → gam7-7.17.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  169. {gam7-7.16.0 → gam7-7.17.0}/wiki/GAM7-on-Android-Devices.md +0 -0
  170. {gam7-7.16.0 → gam7-7.17.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  171. {gam7-7.16.0 → gam7-7.17.0}/wiki/Global-Address-List.md +0 -0
  172. {gam7-7.16.0 → gam7-7.17.0}/wiki/Google-Data-Transfers.md +0 -0
  173. {gam7-7.16.0 → gam7-7.17.0}/wiki/Google-Network-Addresses.md +0 -0
  174. {gam7-7.16.0 → gam7-7.17.0}/wiki/Groups-Membership.md +0 -0
  175. {gam7-7.16.0 → gam7-7.17.0}/wiki/Groups.md +0 -0
  176. {gam7-7.16.0 → gam7-7.17.0}/wiki/HTTPS-Proxy.md +0 -0
  177. {gam7-7.16.0 → gam7-7.17.0}/wiki/Home.md +0 -0
  178. {gam7-7.16.0 → gam7-7.17.0}/wiki/How-to-Install-GAM7.md +0 -0
  179. {gam7-7.16.0 → gam7-7.17.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
  180. {gam7-7.16.0 → gam7-7.17.0}/wiki/How-to-Update-GAM7.md +0 -0
  181. {gam7-7.16.0 → gam7-7.17.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  182. {gam7-7.16.0 → gam7-7.17.0}/wiki/Inbound-SSO.md +0 -0
  183. {gam7-7.16.0 → gam7-7.17.0}/wiki/Install-GAM-as-Python-Library.md +0 -0
  184. {gam7-7.16.0 → gam7-7.17.0}/wiki/Licenses.md +0 -0
  185. {gam7-7.16.0 → gam7-7.17.0}/wiki/List-Items.md +0 -0
  186. {gam7-7.16.0 → gam7-7.17.0}/wiki/List.md +0 -0
  187. {gam7-7.16.0 → gam7-7.17.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  188. {gam7-7.16.0 → gam7-7.17.0}/wiki/Mobile-Devices.md +0 -0
  189. {gam7-7.16.0 → gam7-7.17.0}/wiki/Organizational-Units.md +0 -0
  190. {gam7-7.16.0 → gam7-7.17.0}/wiki/Other-Resources.md +0 -0
  191. {gam7-7.16.0 → gam7-7.17.0}/wiki/Permission-Matches.md +0 -0
  192. {gam7-7.16.0 → gam7-7.17.0}/wiki/Python-Regular-Expressions.md +0 -0
  193. {gam7-7.16.0 → gam7-7.17.0}/wiki/README.md +0 -0
  194. {gam7-7.16.0 → gam7-7.17.0}/wiki/Rclone.md +0 -0
  195. {gam7-7.16.0 → gam7-7.17.0}/wiki/Reports.md +0 -0
  196. {gam7-7.16.0 → gam7-7.17.0}/wiki/Reseller.md +0 -0
  197. {gam7-7.16.0 → gam7-7.17.0}/wiki/Resources.md +0 -0
  198. {gam7-7.16.0 → gam7-7.17.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  199. {gam7-7.16.0 → gam7-7.17.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
  200. {gam7-7.16.0 → gam7-7.17.0}/wiki/Schemas.md +0 -0
  201. {gam7-7.16.0 → gam7-7.17.0}/wiki/Scripts.md +0 -0
  202. {gam7-7.16.0 → gam7-7.17.0}/wiki/Send-Email.md +0 -0
  203. {gam7-7.16.0 → gam7-7.17.0}/wiki/Shared-Drives.md +0 -0
  204. {gam7-7.16.0 → gam7-7.17.0}/wiki/Sites.md +0 -0
  205. {gam7-7.16.0 → gam7-7.17.0}/wiki/Tag-Replace.md +0 -0
  206. {gam7-7.16.0 → gam7-7.17.0}/wiki/Todrive.md +0 -0
  207. {gam7-7.16.0 → gam7-7.17.0}/wiki/Unmanaged-Accounts.md +0 -0
  208. {gam7-7.16.0 → gam7-7.17.0}/wiki/Upgrade-Benefits.md +0 -0
  209. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Analytics-Admin.md +0 -0
  210. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
  211. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
  212. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Calendars-Access.md +0 -0
  213. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Calendars-Events.md +0 -0
  214. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Calendars.md +0 -0
  215. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Chat.md +0 -0
  216. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Classification-Labels.md +0 -0
  217. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Classroom-Profile.md +0 -0
  218. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Contacts-Delegates.md +0 -0
  219. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Contacts.md +0 -0
  220. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Deprovision.md +0 -0
  221. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
  222. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Cleanup.md +0 -0
  223. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Comments.md +0 -0
  224. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Copy-Move.md +0 -0
  225. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Orphans.md +0 -0
  226. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Ownership.md +0 -0
  227. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Permissions.md +0 -0
  228. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Query.md +0 -0
  229. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Revisions.md +0 -0
  230. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Shortcuts.md +0 -0
  231. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Drive-Transfer.md +0 -0
  232. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Forms.md +0 -0
  233. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-CSE.md +0 -0
  234. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-Delegates.md +0 -0
  235. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-Filters.md +0 -0
  236. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-Forwarding.md +0 -0
  237. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-Labels.md +0 -0
  238. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  239. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-Profile.md +0 -0
  240. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-S-MIME.md +0 -0
  241. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  242. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Gmail-Settings.md +0 -0
  243. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Group-Membership.md +0 -0
  244. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Keep-Notes.md +0 -0
  245. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Looker-Studio.md +0 -0
  246. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Meet.md +0 -0
  247. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
  248. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Photo.md +0 -0
  249. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Profile-Photo.md +0 -0
  250. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Profile-Sharing.md +0 -0
  251. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Shared-Drives.md +0 -0
  252. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  253. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Spreadsheets.md +0 -0
  254. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Tag-Manager.md +0 -0
  255. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Tasks.md +0 -0
  256. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-Tokens.md +0 -0
  257. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users-YouTube.md +0 -0
  258. {gam7-7.16.0 → gam7-7.17.0}/wiki/Users.md +0 -0
  259. {gam7-7.16.0 → gam7-7.17.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  260. {gam7-7.16.0 → gam7-7.17.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  261. {gam7-7.16.0 → gam7-7.17.0}/wiki/Vault-Takeout.md +0 -0
  262. {gam7-7.16.0 → gam7-7.17.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  263. {gam7-7.16.0 → gam7-7.17.0}/wiki/_Sidebar.md +0 -0
  264. {gam7-7.16.0 → gam7-7.17.0}/wiki/gam.cfg.md +0 -0
  265. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-AdminSettingsExamples.md +0 -0
  266. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Android-Installation.md +0 -0
  267. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-BulkOperations.md +0 -0
  268. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-CalendarExamples.md +0 -0
  269. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Chat-Bot.md +0 -0
  270. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Chrome-Browser-Management.md +0 -0
  271. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Chrome-OS-Installation.md +0 -0
  272. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Chrome-Policy-Settings.md +0 -0
  273. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Cloud-Identity-Groups.md +0 -0
  274. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  275. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Command-Reference-Calendars.md +0 -0
  276. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Command-Reference-Definitions.md +0 -0
  277. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Command-Reference-Drive.md +0 -0
  278. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Command-Reference-Email.md +0 -0
  279. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  280. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Command-Reference-Groups.md +0 -0
  281. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Command-Reference-Users.md +0 -0
  282. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  283. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  284. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-CreatingClientSecretsFile.md +0 -0
  285. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Custom-Schemas.md +0 -0
  286. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Data-Transfers.md +0 -0
  287. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-DomainVerification.md +0 -0
  288. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-ExamplesAccountAuditing.md +0 -0
  289. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-ExamplesCSV.md +0 -0
  290. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-ExamplesEmailSettings.md +0 -0
  291. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-ExamplesOrganizations.md +0 -0
  292. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-GAM-Discussion-Group.md +0 -0
  293. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  294. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-GAM-options-files.md +0 -0
  295. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  296. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-GAM3CSVListings.md +0 -0
  297. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-GAM3DirectoryCommands.md +0 -0
  298. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-GAM3GroupSettings.md +0 -0
  299. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-GAM7-FAQ.md +0 -0
  300. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  301. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-GoogleDriveManagement.md +0 -0
  302. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  303. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Home.md +0 -0
  304. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  305. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Inbound-SSO-Settings.md +0 -0
  306. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-LicenseExamples.md +0 -0
  307. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Managing-Admins.md +0 -0
  308. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  309. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Managing-Devices.md +0 -0
  310. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Managing-Google-Classroom.md +0 -0
  311. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-OAuthKeyManagement.md +0 -0
  312. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Printers.md +0 -0
  313. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-ResellerCommands.md +0 -0
  314. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  315. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-SecurityExamples.md +0 -0
  316. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-UnmanagedUsersExamples.md +0 -0
  317. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Use-a-Yubikey.md +0 -0
  318. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  319. {gam7-7.16.0 → gam7-7.17.0}/wiki/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.16.0
3
+ Version: 7.17.0
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,6 +6597,7 @@ gam <UserTypeEntity> print chatemojis [todrive <ToDriveAttribute>*]
6597
6597
  (folderColorRgb <ColorValue>)|
6598
6598
  (indexabletext <String>)|
6599
6599
  (inheritedpermissionsdisabled [<Boolean>])|
6600
+ (itemdownloadrestriction restrictedforreaders|restrictedforwriters [<Boolean>])|
6600
6601
  (keeprevisionforever|pinned)|
6601
6602
  (lastviewedbyme <Time>)|
6602
6603
  (mimetype <MimeType>)|
@@ -7071,6 +7072,10 @@ gam <UserTypeEntity> collect orphans
7071
7072
  contentrestrictions.restrictiontime|
7072
7073
  contentrestrictions.type
7073
7074
 
7075
+ <DriveDownloadRestrictionsSubfieldName> ::=
7076
+ downloadrestrictions.itemdownloadrestriction|
7077
+ downloadrestrictions.effectivedownloadrestrictionwithcontext
7078
+
7074
7079
  <ClassificationLabelInfoSubfieldName> ::=
7075
7080
  labels.id| # modifiedByMe
7076
7081
  labels.revisionid| # copyRequiresWriterPermission
@@ -7164,6 +7169,8 @@ gam <UserTypeEntity> collect orphans
7164
7169
  copyrequireswriterpermission|
7165
7170
  createddate|createdtime|
7166
7171
  description|
7172
+ downloadrestictions|
7173
+ <DriveDownloadRestrictionsSubfieldName>|
7167
7174
  driveid|
7168
7175
  drivename|
7169
7176
  editable|
@@ -8696,3 +8703,11 @@ gam <UserTypeEntity> print youtubechannels [todrive <ToDriveAttribute>*]
8696
8703
  gam create|add verify|verification <DomainName>
8697
8704
  gam update verify|verification <DomainName> cname|txt|text|site|file
8698
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,3 +1,36 @@
1
+ 7.17.00
2
+
3
+ Added commands to discover Sites and WebResources that managed users (previously unmanaged) may have access to for better governance and visibility.
4
+ These are special purpose commands and will not generally be used.
5
+ ```
6
+ gam <UserTypeEntity> show webresources
7
+ gam <UserTypeEntity> print webresources [todrive <ToDriveAttribute>*]
8
+ gam <UserTypeEntity> show webmastersites
9
+ gam <UserTypeEntity> print webmastersites [todrive <ToDriveAttribute>*]
10
+ ```
11
+
12
+ 7.16.01
13
+
14
+ The Drive API now supports setting download restrictions on individual files.
15
+
16
+ Added `downloadrestictions` and `<DriveDownloadRestrictionsSubfieldName>` to `<DriveFieldName>`.
17
+ ```
18
+ <DriveDownloadRestrictionsSubfieldName> ::=
19
+ downloadrestrictions.itemdownloadrestriction|
20
+ downloadrestrictions.effectivedownloadrestrictionwithcontext
21
+ ```
22
+
23
+ Added `itemdownloadrestriction restrictedforreaders|restrictedforwriters [<Boolean>]`
24
+ to `<DriveFileAttribute>`.
25
+
26
+ From the Drive API documentation:
27
+ ```
28
+ 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.
29
+ effectiveDownloadRestrictionWithContext - Output only. The effective download restriction applied to this file. This considers all restriction settings and DLP rules.
30
+ restrictedForReaders - Whether download and copy is restricted for readers.
31
+ restrictedForWriters - Whether download and copy is restricted for writers. If true, download is also restricted for readers.
32
+ ```
33
+
1
34
  7.16.00
2
35
 
3
36
  Removed `drive_v3_native_names` from `gam.cfg`; GAM now only uses Drive API v3 fields names on output.
@@ -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.00'
28
+ __version__ = '7.17.00'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -47077,6 +47077,72 @@ def doInfoSiteVerification():
47077
47077
  else:
47078
47078
  printKeyValueList(['No Sites Verified.'])
47079
47079
 
47080
+ # gam <UserTypeEntity> show webresources
47081
+ # gam <UserTypeEntity> print webresources [todrive <ToDriveAttribute>*]
47082
+ def printShowWebResources(users):
47083
+ csvPF = CSVPrintFile(['User', 'site.identifier']) if Act.csvFormat() else None
47084
+ while Cmd.ArgumentsRemaining():
47085
+ myarg = getArgument()
47086
+ if csvPF and myarg == 'todrive':
47087
+ csvPF.GetTodriveParameters()
47088
+ else:
47089
+ unknownArgumentExit()
47090
+ i, count, users = getEntityArgument(users)
47091
+ for user in users:
47092
+ i += 1
47093
+ user, verif = buildGAPIServiceObject(API.SITEVERIFICATION, user, i, count)
47094
+ if not verif:
47095
+ continue
47096
+ sites = callGAPIitems(verif.webResource(), 'list', 'items')
47097
+ jcount = len(sites)
47098
+ if not csvPF:
47099
+ entityPerformActionNumItems([Ent.USER, user], jcount, Ent.WEB_RESOURCE, i, count)
47100
+ Ind.Increment()
47101
+ j = 0
47102
+ for site in sorted(sites, key=lambda k: (k['site']['type'], k['site']['identifier'])):
47103
+ j += 1
47104
+ _showSiteVerificationInfo(site)
47105
+ Ind.Decrement()
47106
+ else:
47107
+ for site in sites:
47108
+ row = flattenJSON(site, flattened={'User': user})
47109
+ csvPF.WriteRowTitles(row)
47110
+ if csvPF:
47111
+ csvPF.writeCSVfile('Web Resources')
47112
+
47113
+ # gam <UserTypeEntity> show webmastersites
47114
+ # gam <UserTypeEntity> print webmastersites [todrive <ToDriveAttribute>*]
47115
+ def printShowWebMasterSites(users):
47116
+ csvPF = CSVPrintFile(['User', 'siteUrl']) if Act.csvFormat() else None
47117
+ while Cmd.ArgumentsRemaining():
47118
+ myarg = getArgument()
47119
+ if csvPF and myarg == 'todrive':
47120
+ csvPF.GetTodriveParameters()
47121
+ else:
47122
+ unknownArgumentExit()
47123
+ i, count, users = getEntityArgument(users)
47124
+ for user in users:
47125
+ i += 1
47126
+ user, searchconsole = buildGAPIServiceObject(API.SEARCHCONSOLE, user, i, count)
47127
+ if not searchconsole:
47128
+ continue
47129
+ sites = callGAPIitems(searchconsole.sites(), 'list', 'siteEntry')
47130
+ jcount = len(sites)
47131
+ if not csvPF:
47132
+ entityPerformActionNumItems([Ent.USER, user], jcount, Ent.WEB_MASTERSITE, i, count)
47133
+ Ind.Increment()
47134
+ j = 0
47135
+ for site in sorted(sites, key=lambda k: k['siteUrl']):
47136
+ j += 1
47137
+ _showSiteVerificationInfo(site)
47138
+ Ind.Decrement()
47139
+ else:
47140
+ for site in sites:
47141
+ row = flattenJSON(site, flattened={'User': user})
47142
+ csvPF.WriteRowTitles(row)
47143
+ if csvPF:
47144
+ csvPF.writeCSVfile('Web Master Sites')
47145
+
47080
47146
  def checkCourseExists(croom, courseId, i=0, count=0, entityType=Ent.COURSE):
47081
47147
  courseId = addCourseIdScope(courseId)
47082
47148
  try:
@@ -53817,6 +53883,13 @@ DRIVE_FILE_CONTENT_RESTRICTIONS_CHOICE_MAP = {
53817
53883
  'ownerrestricted': 'ownerRestricted',
53818
53884
  }
53819
53885
 
53886
+ DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP = {
53887
+ 'downloadrestrictedforreaders': 'restrictedForReaders',
53888
+ 'downloadrestrictedforwriters': 'restrictedForWriters',
53889
+ 'restrictedforreaders': 'restrictedForReaders',
53890
+ 'restrictedforwriters': 'restrictedForWriters',
53891
+ }
53892
+
53820
53893
  def getDriveFileProperty(visibility=None):
53821
53894
  key = getString(Cmd.OB_PROPERTY_KEY)
53822
53895
  value = getString(Cmd.OB_PROPERTY_VALUE, minLen=0) or None
@@ -53868,6 +53941,20 @@ def getDriveFileAddRemoveParentAttribute(myarg, parameters):
53868
53941
  return False
53869
53942
  return True
53870
53943
 
53944
+ def _getDriveFileDownloadRestrictions(myarg, body):
53945
+ subField = myarg
53946
+ if subField.startswith('downloadrestrictions.'):
53947
+ _, subField = subField.split('.', 1)
53948
+ if subField.startswith('itemdownloadrestriction.'):
53949
+ _, subField = subField.split('.', 1)
53950
+ if subField == 'itemdownloadrestriction':
53951
+ subField = getChoice(DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP)
53952
+ if subField in DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP:
53953
+ body.setdefault('downloadRestrictions', {'itemDownloadRestriction': {}})
53954
+ body['downloadRestrictions']['itemDownloadRestriction'][DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP[subField]] = getBoolean()
53955
+ return True
53956
+ return False
53957
+
53871
53958
  def getDriveFileCopyAttribute(myarg, body, parameters):
53872
53959
  if myarg == 'ignoredefaultvisibility':
53873
53960
  parameters[DFA_IGNORE_DEFAULT_VISIBILITY] = getBoolean()
@@ -53903,6 +53990,8 @@ def getDriveFileCopyAttribute(myarg, body, parameters):
53903
53990
  else:
53904
53991
  Cmd.Backup()
53905
53992
  usageErrorExit(Msg.REASON_ONLY_VALID_WITH_CONTENTRESTRICTIONS_READONLY_TRUE)
53993
+ elif _getDriveFileDownloadRestrictions(myarg, body):
53994
+ pass
53906
53995
  elif myarg == 'inheritedpermissionsdisabled':
53907
53996
  body['inheritedPermissionsDisabled'] = getBoolean()
53908
53997
  elif myarg == 'property':
@@ -54657,6 +54746,7 @@ DRIVE_FIELDS_CHOICE_MAP = {
54657
54746
  'createddate': 'createdTime',
54658
54747
  'createdtime': 'createdTime',
54659
54748
  'description': 'description',
54749
+ 'downloadrestrictions': 'downloadRestrictions',
54660
54750
  'driveid': 'driveId',
54661
54751
  'drivename': 'driveId',
54662
54752
  'editable': 'capabilities.canEdit',
@@ -54803,6 +54893,11 @@ DRIVE_CONTENT_RESTRICTIONS_SUBFIELDS_CHOICE_MAP = {
54803
54893
  'type': 'type',
54804
54894
  }
54805
54895
 
54896
+ DRIVE_DOWNLOAD_RESTRICTIONS_SUBFIELDS_CHOICE_MAP = {
54897
+ 'itemdownloadrestriction': 'itemDownloadRestriction',
54898
+ 'effectivedownloadrestrictionwithcontext': 'effectiveDownloadRestrictionWithContext',
54899
+ }
54900
+
54806
54901
  DRIVE_LABELINFO_SUBFIELDS_CHOICE_MAP = {
54807
54902
  'id': 'labels(id)',
54808
54903
  'fields': 'labels(fields)',
@@ -54867,6 +54962,7 @@ DRIVE_SHORTCUTDETAILS_SUBFIELDS_CHOICE_MAP = {
54867
54962
  DRIVE_SUBFIELDS_CHOICE_MAP = {
54868
54963
  'capabilities': DRIVE_CAPABILITIES_SUBFIELDS_CHOICE_MAP,
54869
54964
  'contentrestrictions': DRIVE_CONTENT_RESTRICTIONS_SUBFIELDS_CHOICE_MAP,
54965
+ 'downloadrestrictions': DRIVE_DOWNLOAD_RESTRICTIONS_SUBFIELDS_CHOICE_MAP,
54870
54966
  'labelinfo': DRIVE_LABELINFO_SUBFIELDS_CHOICE_MAP,
54871
54967
  'labels': DRIVE_LABEL_CHOICE_MAP,
54872
54968
  'lastmodifyinguser': DRIVE_SHARINGUSER_SUBFIELDS_CHOICE_MAP,
@@ -78268,6 +78364,8 @@ USER_COMMANDS_WITH_OBJECTS = {
78268
78364
  Cmd.ARG_USERLIST: doPrintUserList,
78269
78365
  Cmd.ARG_VACATION: printShowVacation,
78270
78366
  Cmd.ARG_VAULTHOLD: printShowUserVaultHolds,
78367
+ Cmd.ARG_WEBMASTERSITE: printShowWebMasterSites,
78368
+ Cmd.ARG_WEBRESOURCE: printShowWebResources,
78271
78369
  Cmd.ARG_WORKINGLOCATION: printShowWorkingLocation,
78272
78370
  Cmd.ARG_YOUTUBECHANNEL: printShowYouTubeChannel,
78273
78371
  }
@@ -78378,6 +78476,8 @@ USER_COMMANDS_WITH_OBJECTS = {
78378
78476
  Cmd.ARG_TOKEN: printShowTokens,
78379
78477
  Cmd.ARG_VAULTHOLD: printShowUserVaultHolds,
78380
78478
  Cmd.ARG_VACATION: printShowVacation,
78479
+ Cmd.ARG_WEBMASTERSITE: printShowWebMasterSites,
78480
+ Cmd.ARG_WEBRESOURCE: printShowWebResources,
78381
78481
  Cmd.ARG_WORKINGLOCATION: printShowWorkingLocation,
78382
78482
  Cmd.ARG_YOUTUBECHANNEL: printShowYouTubeChannel,
78383
78483
  }
@@ -78629,6 +78729,8 @@ USER_COMMANDS_OBJ_ALIASES = {
78629
78729
  Cmd.ARG_USERS: Cmd.ARG_USER,
78630
78730
  Cmd.ARG_VAULTHOLDS: Cmd.ARG_VAULTHOLD,
78631
78731
  Cmd.ARG_VERIFICATIONCODES: Cmd.ARG_BACKUPCODE,
78732
+ Cmd.ARG_WEBMASTERSITES: Cmd.ARG_WEBMASTERSITE,
78733
+ Cmd.ARG_WEBRESOURCES: Cmd.ARG_WEBRESOURCE,
78632
78734
  Cmd.ARG_WORKINGLOCATIONS: Cmd.ARG_WORKINGLOCATION,
78633
78735
  Cmd.ARG_YOUTUBECHANNELS: Cmd.ARG_YOUTUBECHANNEL,
78634
78736
  }
@@ -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'],
@@ -0,0 +1,77 @@
1
+ Legacy GAM used Drive API v2, GAM7 uses Drive API v3. See: https://developers.google.com/drive/v3/web/migration
2
+ Many of the changes are internal to GAM7 and have no visible effect.
3
+ Google has modified/renamed many field names and these will affect scripts that parse the output from `gam print/show drivesettings/drivefileacls/fileinfo/filelist/filerevisions`.
4
+ Additionally, Google has dropped some fields and their values are no longer available. On input, GAM7 accepts both the old and new field names where applicable.
5
+
6
+ If you use Legacy GAM and have scripts that process the output from these print commands, you may have to make modifications to your scripts when you upgrade to GAM7.
7
+ Run your print/show commands with a version of Legacy GAM and save the output.
8
+ Run your print/show commands with GAM7 and compare the output to that saved in the previous run;
9
+ modify your scripts that process the output as appropriate.
10
+
11
+ ```
12
+ print/show drivesettings
13
+ Dropped fields:
14
+ DRIVE
15
+ GMAIL
16
+ PHOTOS
17
+ domainSharingPolicy
18
+ lauguageCode
19
+ Renamed fields (Old->New):
20
+ name->displayName,
21
+ quotaBytesTotal->limit
22
+ quotaBytesUsed->usageInDrive
23
+ quotaBytesUsedAggregate->usage
24
+ quotaBytesUsedInTrash->usageInDriveTrash
25
+
26
+ print/show drivefileacls
27
+ Dropped fields:
28
+ authKey
29
+ Renamed fields (Old->New):
30
+ name->displayName
31
+ withLink->allowFileDiscovery - value is complemented
32
+
33
+ print/show fileinfo/filelist
34
+ Dropped fields:
35
+ defaultOpenWithLink
36
+ embedLink
37
+ exportLinks
38
+ labels(hidden)
39
+ markedViewedByMeDate
40
+ openWithLinks
41
+ ownerNames
42
+ parents(isRoot)
43
+ parents(parentLink)
44
+ parents(selfLink)
45
+ permissions(selfLink)
46
+ selfLink
47
+ userPermission
48
+ Renamed fields (Old->New):
49
+ alternateLink->webViewLink
50
+ capabilities(canChangeRestrictedDownload)->capabilities(canChangeViewersCanCopyContent)
51
+ createdDate->createdTime
52
+ expirationDate->expirationTime
53
+ fileSize->size
54
+ lastModifyingUserName->lastModifyingUser(displayName)
55
+ lastViewedByMeDate->viewedByMeTime
56
+ modified->modifiedByMe
57
+ modifiedByMeDate->modifiedByMeTime
58
+ modifiedDate->modifiedTime
59
+ restricted->viewersCanCopyContent
60
+ sharedWithMeDate->sharedWithMeTime
61
+ title->name
62
+ trashedDate->trashedTime
63
+ viewed->viewedByMe
64
+ withLink->allowFileDiscovery
65
+
66
+ print/show filerevisions
67
+ Dropped fields:
68
+ exportLinks
69
+ publishedLink
70
+ selfLink
71
+ Renamed fields (Old->New):
72
+ fileSize->size
73
+ isAuthenticatedUser->me
74
+ modifiedDate->modifiedTie
75
+ picture.url->photoLink
76
+ pinned->keepForever
77
+ ```
@@ -10,6 +10,35 @@ 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.16.01
14
+
15
+ The Drive API now supports setting download restrictions on individual files.
16
+
17
+ Added `downloadrestictions` and `<DriveDownloadRestrictionsSubfieldName>` to `<DriveFieldName>`.
18
+ ```
19
+ <DriveDownloadRestrictionsSubfieldName> ::=
20
+ downloadrestrictions.itemdownloadrestriction|
21
+ downloadrestrictions.effectivedownloadrestrictionwithcontext
22
+ ```
23
+
24
+ Added `itemdownloadrestriction (restrictedforreaders [<Boolean>]) (restrictedforwriters [<Boolean>])`
25
+ to `<DriveFileAttribute>`.
26
+
27
+ From the Drive API documentation:
28
+ ```
29
+ 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.
30
+ effectiveDownloadRestrictionWithContext - Output only. The effective download restriction applied to this file. This considers all restriction settings and DLP rules.
31
+ restrictedForReaders - Whether download and copy is restricted for readers.
32
+ restrictedForWriters - Whether download and copy is restricted for writers. If true, download is also restricted for readers.
33
+ ```
34
+
35
+ ### 7.16.00
36
+
37
+ Removed `drive_v3_native_names` from `gam.cfg`; GAM now only uses Drive API v3 fields names on output.
38
+ If you had `drive_v3_native_names = False` in `gam.cfg` or are updating from Legacy GAM:
39
+
40
+ * See: https://github.com/GAM-team/GAM/wiki/Drive-REST-API-v3
41
+
13
42
  ### 7.15.01
14
43
 
15
44
  Added `downloadrestrictions.restrictedforreaders` and `downloadrestrictions.restrictedforwriters`
@@ -2,6 +2,7 @@
2
2
  Use these steps if you have used any version of GAM in your domain. They will update your GAM project
3
3
  and all necessary authentications.
4
4
 
5
+ - [Drive API v2 to Drive API v3](Drive-REST-v3)
5
6
  - [Downloads-Installs](Downloads-Installs)
6
7
  - [Linux and MacOS and Google Cloud Shell](#linux-and-mac-os-and-google-cloud-shell)
7
8
  - [Windows](#windows)
@@ -251,7 +252,7 @@ writes the credentials into the file oauth2.txt.
251
252
  admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
252
253
  admin@server:/Users/admin$ gam version
253
254
  WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
254
- GAM 7.15.01 - https://github.com/GAM-team/GAM - pyinstaller
255
+ GAM 7.16.01 - https://github.com/GAM-team/GAM - pyinstaller
255
256
  GAM Team <google-apps-manager@googlegroups.com>
256
257
  Python 3.13.5 64-bit final
257
258
  MacOS Sequoia 15.5 x86_64
@@ -989,7 +990,7 @@ writes the credentials into the file oauth2.txt.
989
990
  C:\>del C:\GAMConfig\oauth2.txt
990
991
  C:\>gam version
991
992
  WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
992
- GAM 7.15.01 - https://github.com/GAM-team/GAM - pythonsource
993
+ GAM 7.16.01 - https://github.com/GAM-team/GAM - pythonsource
993
994
  GAM Team <google-apps-manager@googlegroups.com>
994
995
  Python 3.13.5 64-bit final
995
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 [<Boolean>]) (restrictedforwriters [<Boolean>]))|
128
129
  (keeprevisionforever|pinned)|
129
130
  (lastviewedbyme <Time>)|
130
131
  (mimetype <MimeType>)|
@@ -1,10 +1,9 @@
1
- k
2
1
  # Version and Help
3
2
 
4
3
  Print the current version of Gam with details
5
4
  ```
6
5
  gam version
7
- GAM 7.15.01 - https://github.com/GAM-team/GAM - pyinstaller
6
+ GAM 7.16.01 - https://github.com/GAM-team/GAM - pyinstaller
8
7
  GAM Team <google-apps-manager@googlegroups.com>
9
8
  Python 3.13.5 64-bit final
10
9
  MacOS Sequoia 15.5 x86_64
@@ -16,7 +15,7 @@ Time: 2023-06-02T21:10:00-07:00
16
15
  Print the current version of Gam with details and time offset information
17
16
  ```
18
17
  gam version timeoffset
19
- GAM 7.15.01 - https://github.com/GAM-team/GAM - pyinstaller
18
+ GAM 7.16.01 - https://github.com/GAM-team/GAM - pyinstaller
20
19
  GAM Team <google-apps-manager@googlegroups.com>
21
20
  Python 3.13.5 64-bit final
22
21
  MacOS Sequoia 15.5 x86_64
@@ -28,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second
28
27
  Print the current version of Gam with extended details and SSL information
29
28
  ```
30
29
  gam version extended
31
- GAM 7.15.01 - https://github.com/GAM-team/GAM - pyinstaller
30
+ GAM 7.16.01 - https://github.com/GAM-team/GAM - pyinstaller
32
31
  GAM Team <google-apps-manager@googlegroups.com>
33
32
  Python 3.13.5 64-bit final
34
33
  MacOS Sequoia 15.5 x86_64
@@ -65,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64
65
64
  Path: /Users/Admin/bin/gam7
66
65
  Version Check:
67
66
  Current: 5.35.08
68
- Latest: 7.15.01
67
+ Latest: 7.16.01
69
68
  echo $?
70
69
  1
71
70
  ```
@@ -73,7 +72,7 @@ echo $?
73
72
  Print the current version number without details
74
73
  ```
75
74
  gam version simple
76
- 7.15.01
75
+ 7.16.01
77
76
  ```
78
77
  In Linux/MacOS you can do:
79
78
  ```
@@ -83,7 +82,7 @@ echo $VER
83
82
  Print the current version of Gam and address of this Wiki
84
83
  ```
85
84
  gam help
86
- GAM 7.15.01 - https://github.com/GAM-team/GAM
85
+ GAM 7.16.01 - https://github.com/GAM-team/GAM
87
86
  GAM Team <google-apps-manager@googlegroups.com>
88
87
  Python 3.13.5 64-bit final
89
88
  MacOS Sequoia 15.5 x86_64