gam7 7.12.1__tar.gz → 7.13.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.12.1 → gam7-7.13.0}/PKG-INFO +1 -1
  2. {gam7-7.12.1 → gam7-7.13.0}/src/GamCommands.txt +23 -3
  3. {gam7-7.12.1 → gam7-7.13.0}/src/GamUpdate.txt +14 -0
  4. gam7-7.13.0/src/README.md +1 -0
  5. {gam7-7.12.1 → gam7-7.13.0}/src/gam/__init__.py +126 -5
  6. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glclargs.py +2 -0
  7. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glentity.py +2 -0
  8. {gam7-7.12.1 → gam7-7.13.0}/src/setup.cfg +2 -1
  9. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chrome-Profile-Management.md +46 -7
  10. {gam7-7.12.1 → gam7-7.13.0}/wiki/GamUpdates.md +13 -0
  11. {gam7-7.12.1 → gam7-7.13.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  12. {gam7-7.12.1 → gam7-7.13.0}/wiki/Install-GAM-as-Python-Library.md +3 -3
  13. {gam7-7.12.1 → gam7-7.13.0}/wiki/Reseller.md +1 -1
  14. {gam7-7.12.1 → gam7-7.13.0}/wiki/Resources.md +2 -2
  15. {gam7-7.12.1 → gam7-7.13.0}/wiki/Version-and-Help.md +6 -6
  16. {gam7-7.12.1 → gam7-7.13.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  17. {gam7-7.12.1 → gam7-7.13.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  18. {gam7-7.12.1 → gam7-7.13.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  19. {gam7-7.12.1 → gam7-7.13.0}/.github/ISSUE_TEMPLATE.txt +0 -0
  20. {gam7-7.12.1 → gam7-7.13.0}/.github/actions/decrypt.sh +0 -0
  21. {gam7-7.12.1 → gam7-7.13.0}/.github/actions/entitlements.plist +0 -0
  22. {gam7-7.12.1 → gam7-7.13.0}/.github/actions/package_exclusions.txt +0 -0
  23. {gam7-7.12.1 → gam7-7.13.0}/.github/stale.yml +0 -0
  24. {gam7-7.12.1 → gam7-7.13.0}/.github/workflows/build.yml +0 -0
  25. {gam7-7.12.1 → gam7-7.13.0}/.github/workflows/codeql-analysis.yml +0 -0
  26. {gam7-7.12.1 → gam7-7.13.0}/.github/workflows/get-cacerts.yml +0 -0
  27. {gam7-7.12.1 → gam7-7.13.0}/.github/workflows/pushwiki.yml +0 -0
  28. {gam7-7.12.1 → gam7-7.13.0}/.github/workflows/pypi.yml +0 -0
  29. {gam7-7.12.1 → gam7-7.13.0}/.pre-commit-config.yaml +0 -0
  30. {gam7-7.12.1 → gam7-7.13.0}/LICENSE +0 -0
  31. {gam7-7.12.1 → gam7-7.13.0}/README.md +0 -0
  32. {gam7-7.12.1 → gam7-7.13.0}/pyproject.toml +0 -0
  33. {gam7-7.12.1 → gam7-7.13.0}/src/.gitignore +0 -0
  34. {gam7-7.12.1 → gam7-7.13.0}/src/LICENSE +0 -0
  35. {gam7-7.12.1 → gam7-7.13.0}/src/cacerts.pem +0 -0
  36. {gam7-7.12.1 → gam7-7.13.0}/src/callgam.py +0 -0
  37. {gam7-7.12.1 → gam7-7.13.0}/src/gam/__main__.py +0 -0
  38. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/__init__.py +0 -0
  39. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/auth.py +0 -0
  40. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/client.py +0 -0
  41. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/core.py +0 -0
  42. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/data.py +0 -0
  43. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/http.py +0 -0
  44. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/http_core.py +0 -0
  45. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/http_interface.py +0 -0
  46. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/mock_http.py +0 -0
  47. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/mock_http_core.py +0 -0
  48. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/mock_service.py +0 -0
  49. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/service.py +0 -0
  50. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/token_store.py +0 -0
  51. {gam7-7.12.1 → gam7-7.13.0}/src/gam/atom/url.py +0 -0
  52. {gam7-7.12.1 → gam7-7.13.0}/src/gam/cacerts.pem +0 -0
  53. {gam7-7.12.1 → gam7-7.13.0}/src/gam/cbcm-v1.1beta1.json +0 -0
  54. {gam7-7.12.1 → gam7-7.13.0}/src/gam/contactdelegation-v1.json +0 -0
  55. {gam7-7.12.1 → gam7-7.13.0}/src/gam/datastudio-v1.json +0 -0
  56. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/__init__.py +0 -0
  57. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glaction.py +0 -0
  58. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glapi.py +0 -0
  59. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glcfg.py +0 -0
  60. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glgapi.py +0 -0
  61. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glgdata.py +0 -0
  62. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glglobals.py +0 -0
  63. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glindent.py +0 -0
  64. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glmsgs.py +0 -0
  65. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glskus.py +0 -0
  66. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/gluprop.py +0 -0
  67. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/glverlibs.py +0 -0
  68. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gamlib/yubikey.py +0 -0
  69. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/__init__.py +0 -0
  70. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/alt/__init__.py +0 -0
  71. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/alt/app_engine.py +0 -0
  72. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/alt/appengine.py +0 -0
  73. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/apps/__init__.py +0 -0
  74. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
  75. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/apps/audit/service.py +0 -0
  76. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  77. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/apps/contacts/service.py +0 -0
  78. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/apps/service.py +0 -0
  79. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/service.py +0 -0
  80. {gam7-7.12.1 → gam7-7.13.0}/src/gam/gdata/urlfetch.py +0 -0
  81. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/__init__.py +0 -0
  82. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/_auth.py +0 -0
  83. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/_helpers.py +0 -0
  84. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/channel.py +0 -0
  85. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/discovery.py +0 -0
  86. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  87. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  88. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  89. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  90. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/errors.py +0 -0
  91. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/http.py +0 -0
  92. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/mimeparse.py +0 -0
  93. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/model.py +0 -0
  94. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/schema.py +0 -0
  95. {gam7-7.12.1 → gam7-7.13.0}/src/gam/googleapiclient/version.py +0 -0
  96. {gam7-7.12.1 → gam7-7.13.0}/src/gam/iso8601/__init__.py +0 -0
  97. {gam7-7.12.1 → gam7-7.13.0}/src/gam/iso8601/iso8601.py +0 -0
  98. {gam7-7.12.1 → gam7-7.13.0}/src/gam/meet-v2beta.json +0 -0
  99. {gam7-7.12.1 → gam7-7.13.0}/src/gam/serviceaccountlookup-v1.json +0 -0
  100. {gam7-7.12.1 → gam7-7.13.0}/src/gam/six.py +0 -0
  101. {gam7-7.12.1 → gam7-7.13.0}/src/gam-install.sh +0 -0
  102. {gam7-7.12.1 → gam7-7.13.0}/src/gam-setup.bat +0 -0
  103. {gam7-7.12.1 → gam7-7.13.0}/src/gam.exe.manifest +0 -0
  104. {gam7-7.12.1 → gam7-7.13.0}/src/gam.py +0 -0
  105. {gam7-7.12.1 → gam7-7.13.0}/src/gam.spec +0 -0
  106. {gam7-7.12.1 → gam7-7.13.0}/src/gam.wxs +0 -0
  107. {gam7-7.12.1 → gam7-7.13.0}/src/license.rtf +0 -0
  108. {gam7-7.12.1 → gam7-7.13.0}/src/requirements-dev.txt +0 -0
  109. {gam7-7.12.1 → gam7-7.13.0}/src/requirements.txt +0 -0
  110. {gam7-7.12.1 → gam7-7.13.0}/src/setup.py +0 -0
  111. {gam7-7.12.1 → gam7-7.13.0}/src/tools/a_atleast_b.py +0 -0
  112. {gam7-7.12.1 → gam7-7.13.0}/src/tools/gen-wix-xml-filelist.py +0 -0
  113. {gam7-7.12.1 → gam7-7.13.0}/src/tools/mkGamRef.py +0 -0
  114. {gam7-7.12.1 → gam7-7.13.0}/src/tools/openssl.props +0 -0
  115. {gam7-7.12.1 → gam7-7.13.0}/src/version_info.txt.in +0 -0
  116. {gam7-7.12.1 → gam7-7.13.0}/wiki/00scratch.md +0 -0
  117. {gam7-7.12.1 → gam7-7.13.0}/wiki/Addresses.md +0 -0
  118. {gam7-7.12.1 → gam7-7.13.0}/wiki/Administrators.md +0 -0
  119. {gam7-7.12.1 → gam7-7.13.0}/wiki/Alert-Center.md +0 -0
  120. {gam7-7.12.1 → gam7-7.13.0}/wiki/Aliases.md +0 -0
  121. {gam7-7.12.1 → gam7-7.13.0}/wiki/Authorization.md +0 -0
  122. {gam7-7.12.1 → gam7-7.13.0}/wiki/BNF-Syntax.md +0 -0
  123. {gam7-7.12.1 → gam7-7.13.0}/wiki/Basic-Items.md +0 -0
  124. {gam7-7.12.1 → gam7-7.13.0}/wiki/Bulk-Processing.md +0 -0
  125. {gam7-7.12.1 → gam7-7.13.0}/wiki/CSV-Input-Filtering.md +0 -0
  126. {gam7-7.12.1 → gam7-7.13.0}/wiki/CSV-Output-Filtering.md +0 -0
  127. {gam7-7.12.1 → gam7-7.13.0}/wiki/CSV-Special-Characters.md +0 -0
  128. {gam7-7.12.1 → gam7-7.13.0}/wiki/Calendars-Access.md +0 -0
  129. {gam7-7.12.1 → gam7-7.13.0}/wiki/Calendars-Events.md +0 -0
  130. {gam7-7.12.1 → gam7-7.13.0}/wiki/Calendars.md +0 -0
  131. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chat-Bot.md +0 -0
  132. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chrome-AUE-Counts.md +0 -0
  133. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  134. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chrome-Installed-Apps.md +0 -0
  135. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  136. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chrome-Policies.md +0 -0
  137. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chrome-Printers.md +0 -0
  138. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chrome-Version-Counts.md +0 -0
  139. {gam7-7.12.1 → gam7-7.13.0}/wiki/Chrome-Version-History.md +0 -0
  140. {gam7-7.12.1 → gam7-7.13.0}/wiki/ChromeOS-Devices.md +0 -0
  141. {gam7-7.12.1 → gam7-7.13.0}/wiki/Classroom-Courses.md +0 -0
  142. {gam7-7.12.1 → gam7-7.13.0}/wiki/Classroom-Guardians.md +0 -0
  143. {gam7-7.12.1 → gam7-7.13.0}/wiki/Classroom-Invitations.md +0 -0
  144. {gam7-7.12.1 → gam7-7.13.0}/wiki/Classroom-Membership.md +0 -0
  145. {gam7-7.12.1 → gam7-7.13.0}/wiki/Cloud-Channel.md +0 -0
  146. {gam7-7.12.1 → gam7-7.13.0}/wiki/Cloud-Identity-Devices.md +0 -0
  147. {gam7-7.12.1 → gam7-7.13.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  148. {gam7-7.12.1 → gam7-7.13.0}/wiki/Cloud-Identity-Groups.md +0 -0
  149. {gam7-7.12.1 → gam7-7.13.0}/wiki/Cloud-Identity-Policies.md +0 -0
  150. {gam7-7.12.1 → gam7-7.13.0}/wiki/Cloud-Storage.md +0 -0
  151. {gam7-7.12.1 → gam7-7.13.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  152. {gam7-7.12.1 → gam7-7.13.0}/wiki/Collections-of-Items.md +0 -0
  153. {gam7-7.12.1 → gam7-7.13.0}/wiki/Collections-of-Users.md +0 -0
  154. {gam7-7.12.1 → gam7-7.13.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  155. {gam7-7.12.1 → gam7-7.13.0}/wiki/Command-Line-Parsing.md +0 -0
  156. {gam7-7.12.1 → gam7-7.13.0}/wiki/Command-Logging-Progress.md +0 -0
  157. {gam7-7.12.1 → gam7-7.13.0}/wiki/Context-Aware-Access-Levels.md +0 -0
  158. {gam7-7.12.1 → gam7-7.13.0}/wiki/Customer.md +0 -0
  159. {gam7-7.12.1 → gam7-7.13.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  160. {gam7-7.12.1 → gam7-7.13.0}/wiki/Domain-SharedContacts.md +0 -0
  161. {gam7-7.12.1 → gam7-7.13.0}/wiki/Domains-Verification.md +0 -0
  162. {gam7-7.12.1 → gam7-7.13.0}/wiki/Domains.md +0 -0
  163. {gam7-7.12.1 → gam7-7.13.0}/wiki/Downloads-Installs.md +0 -0
  164. {gam7-7.12.1 → gam7-7.13.0}/wiki/Drive-File-Selection.md +0 -0
  165. {gam7-7.12.1 → gam7-7.13.0}/wiki/Drive-Items.md +0 -0
  166. {gam7-7.12.1 → gam7-7.13.0}/wiki/Drive-REST-API-v3.md +0 -0
  167. {gam7-7.12.1 → gam7-7.13.0}/wiki/Email-Audit-Monitor.md +0 -0
  168. {gam7-7.12.1 → gam7-7.13.0}/wiki/Find-File-Owner.md +0 -0
  169. {gam7-7.12.1 → gam7-7.13.0}/wiki/GAM-Public-Chat-Room.md +0 -0
  170. {gam7-7.12.1 → gam7-7.13.0}/wiki/GAM-Return-Codes.md +0 -0
  171. {gam7-7.12.1 → gam7-7.13.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  172. {gam7-7.12.1 → gam7-7.13.0}/wiki/GAM7-on-Android-Devices.md +0 -0
  173. {gam7-7.12.1 → gam7-7.13.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  174. {gam7-7.12.1 → gam7-7.13.0}/wiki/Google-Data-Transfers.md +0 -0
  175. {gam7-7.12.1 → gam7-7.13.0}/wiki/Google-Network-Addresses.md +0 -0
  176. {gam7-7.12.1 → gam7-7.13.0}/wiki/Groups-Membership.md +0 -0
  177. {gam7-7.12.1 → gam7-7.13.0}/wiki/Groups.md +0 -0
  178. {gam7-7.12.1 → gam7-7.13.0}/wiki/HTTPS-Proxy.md +0 -0
  179. {gam7-7.12.1 → gam7-7.13.0}/wiki/Home.md +0 -0
  180. {gam7-7.12.1 → gam7-7.13.0}/wiki/How-to-Install-GAM7.md +0 -0
  181. {gam7-7.12.1 → gam7-7.13.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
  182. {gam7-7.12.1 → gam7-7.13.0}/wiki/How-to-Update-GAM7.md +0 -0
  183. {gam7-7.12.1 → gam7-7.13.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  184. {gam7-7.12.1 → gam7-7.13.0}/wiki/Inbound-SSO.md +0 -0
  185. {gam7-7.12.1 → gam7-7.13.0}/wiki/Licenses.md +0 -0
  186. {gam7-7.12.1 → gam7-7.13.0}/wiki/List-Items.md +0 -0
  187. {gam7-7.12.1 → gam7-7.13.0}/wiki/List.md +0 -0
  188. {gam7-7.12.1 → gam7-7.13.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  189. {gam7-7.12.1 → gam7-7.13.0}/wiki/Mobile-Devices.md +0 -0
  190. {gam7-7.12.1 → gam7-7.13.0}/wiki/Organizational-Units.md +0 -0
  191. {gam7-7.12.1 → gam7-7.13.0}/wiki/Other-Resources.md +0 -0
  192. {gam7-7.12.1 → gam7-7.13.0}/wiki/Permission-Matches.md +0 -0
  193. {gam7-7.12.1 → gam7-7.13.0}/wiki/Python-Regular-Expressions.md +0 -0
  194. {gam7-7.12.1 → gam7-7.13.0}/wiki/README.md +0 -0
  195. {gam7-7.12.1 → gam7-7.13.0}/wiki/Rclone.md +0 -0
  196. {gam7-7.12.1 → gam7-7.13.0}/wiki/Reports.md +0 -0
  197. {gam7-7.12.1 → gam7-7.13.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  198. {gam7-7.12.1 → gam7-7.13.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
  199. {gam7-7.12.1 → gam7-7.13.0}/wiki/Schemas.md +0 -0
  200. {gam7-7.12.1 → gam7-7.13.0}/wiki/Scripts.md +0 -0
  201. {gam7-7.12.1 → gam7-7.13.0}/wiki/Send-Email.md +0 -0
  202. {gam7-7.12.1 → gam7-7.13.0}/wiki/Shared-Drives.md +0 -0
  203. {gam7-7.12.1 → gam7-7.13.0}/wiki/Sites.md +0 -0
  204. {gam7-7.12.1 → gam7-7.13.0}/wiki/Tag-Replace.md +0 -0
  205. {gam7-7.12.1 → gam7-7.13.0}/wiki/Todrive.md +0 -0
  206. {gam7-7.12.1 → gam7-7.13.0}/wiki/Unmanaged-Accounts.md +0 -0
  207. {gam7-7.12.1 → gam7-7.13.0}/wiki/Upgrade-Benefits.md +0 -0
  208. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Analytics-Admin.md +0 -0
  209. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
  210. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
  211. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Calendars-Access.md +0 -0
  212. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Calendars-Events.md +0 -0
  213. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Calendars.md +0 -0
  214. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Chat.md +0 -0
  215. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Classification-Labels.md +0 -0
  216. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Classroom-Profile.md +0 -0
  217. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Contacts-Delegates.md +0 -0
  218. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Contacts.md +0 -0
  219. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Deprovision.md +0 -0
  220. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
  221. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Cleanup.md +0 -0
  222. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Comments.md +0 -0
  223. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Copy-Move.md +0 -0
  224. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Files-Display.md +0 -0
  225. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Files-Manage.md +0 -0
  226. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Orphans.md +0 -0
  227. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Ownership.md +0 -0
  228. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Permissions.md +0 -0
  229. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Query.md +0 -0
  230. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Revisions.md +0 -0
  231. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Shortcuts.md +0 -0
  232. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Drive-Transfer.md +0 -0
  233. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Forms.md +0 -0
  234. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-CSE.md +0 -0
  235. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-Delegates.md +0 -0
  236. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-Filters.md +0 -0
  237. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-Forwarding.md +0 -0
  238. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-Labels.md +0 -0
  239. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  240. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-Profile.md +0 -0
  241. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-S-MIME.md +0 -0
  242. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  243. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Gmail-Settings.md +0 -0
  244. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Group-Membership.md +0 -0
  245. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Keep-Notes.md +0 -0
  246. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Looker-Studio.md +0 -0
  247. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Meet.md +0 -0
  248. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
  249. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Photo.md +0 -0
  250. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Profile-Photo.md +0 -0
  251. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Profile-Sharing.md +0 -0
  252. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Shared-Drives.md +0 -0
  253. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  254. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Spreadsheets.md +0 -0
  255. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Tasks.md +0 -0
  256. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-Tokens.md +0 -0
  257. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users-YouTube.md +0 -0
  258. {gam7-7.12.1 → gam7-7.13.0}/wiki/Users.md +0 -0
  259. {gam7-7.12.1 → gam7-7.13.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  260. {gam7-7.12.1 → gam7-7.13.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  261. {gam7-7.12.1 → gam7-7.13.0}/wiki/Vault-Takeout.md +0 -0
  262. {gam7-7.12.1 → gam7-7.13.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  263. {gam7-7.12.1 → gam7-7.13.0}/wiki/_Sidebar.md +0 -0
  264. {gam7-7.12.1 → gam7-7.13.0}/wiki/gam.cfg.md +0 -0
  265. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-AdminSettingsExamples.md +0 -0
  266. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Android-Installation.md +0 -0
  267. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-BulkOperations.md +0 -0
  268. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-CalendarExamples.md +0 -0
  269. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Chat-Bot.md +0 -0
  270. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Chrome-Browser-Management.md +0 -0
  271. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Chrome-OS-Installation.md +0 -0
  272. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Chrome-Policy-Settings.md +0 -0
  273. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Cloud-Identity-Groups.md +0 -0
  274. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  275. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Command-Reference-Calendars.md +0 -0
  276. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Command-Reference-Definitions.md +0 -0
  277. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Command-Reference-Drive.md +0 -0
  278. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Command-Reference-Email.md +0 -0
  279. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  280. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Command-Reference-Groups.md +0 -0
  281. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Command-Reference-Users.md +0 -0
  282. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  283. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  284. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-CreatingClientSecretsFile.md +0 -0
  285. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Custom-Schemas.md +0 -0
  286. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Data-Transfers.md +0 -0
  287. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-DomainVerification.md +0 -0
  288. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-ExamplesAccountAuditing.md +0 -0
  289. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-ExamplesCSV.md +0 -0
  290. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-ExamplesEmailSettings.md +0 -0
  291. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-ExamplesOrganizations.md +0 -0
  292. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-GAM-Discussion-Group.md +0 -0
  293. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  294. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-GAM-options-files.md +0 -0
  295. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  296. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-GAM3CSVListings.md +0 -0
  297. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-GAM3DirectoryCommands.md +0 -0
  298. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-GAM3GroupSettings.md +0 -0
  299. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-GAM7-FAQ.md +0 -0
  300. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  301. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-GoogleDriveManagement.md +0 -0
  302. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  303. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Home.md +0 -0
  304. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  305. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Inbound-SSO-Settings.md +0 -0
  306. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-LicenseExamples.md +0 -0
  307. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Managing-Admins.md +0 -0
  308. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  309. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Managing-Devices.md +0 -0
  310. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Managing-Google-Classroom.md +0 -0
  311. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-OAuthKeyManagement.md +0 -0
  312. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Printers.md +0 -0
  313. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-ResellerCommands.md +0 -0
  314. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  315. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-SecurityExamples.md +0 -0
  316. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-UnmanagedUsersExamples.md +0 -0
  317. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Use-a-Yubikey.md +0 -0
  318. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  319. {gam7-7.12.1 → gam7-7.13.0}/wiki/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.12.1
3
+ Version: 7.13.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
@@ -387,6 +387,9 @@ If an item contains spaces, it should be surrounded by ".
387
387
  <ChatMessage> ::= spaces/<String>/messages/<String>
388
388
  <ChatSpace> ::= spaces/<String> | space <String> | space spaces/<String>
389
389
  <ChatThread> ::= spaces/<String>/threads/<String>
390
+ <ChromeProfilePermanentID> ::= <String>
391
+ <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
392
+ <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
390
393
  <GIGroupAlias> ::= <EmailAddress>
391
394
  <GIGroupItem> ::= <EmailAddress>|<UniqueID>|groups/<String>
392
395
  <CIGroupMemberType> ::= cbcmbrowser|chromeosdevice|customer|group|other|serviceaccount|user
@@ -530,6 +533,7 @@ If an item contains spaces, it should be surrounded by ".
530
533
  <Password> ::= <String>
531
534
  <PeopleResourceName> ::= people/<String>
532
535
  <PrinterID> ::= <String>
536
+ <ChromeProfileID> ::= <String>
533
537
  <ProjectID> ::= <String>
534
538
  Must match this Python Regular Expression: [a-z][a-z0-9-]{4,28}[a-z0-9]
535
539
  <ProjectName> ::= <String>
@@ -2215,6 +2219,10 @@ gam show chromeneedsattn
2215
2219
 
2216
2220
  # Chrome Profile Management
2217
2221
 
2222
+ <ChromeProfilePermanentID> ::= <String>
2223
+ <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
2224
+ <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
2225
+
2218
2226
  <ChromeProfileFieldName> ::=
2219
2227
  affiliationstate|
2220
2228
  annotatedlocation|
@@ -2273,7 +2281,19 @@ gam print chromeprofiles [todrive <ToDriveAttribute>*]
2273
2281
  [filtertime.* <Time>] [filter <String>]
2274
2282
  [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
2275
2283
  <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
2276
- [[formatjson [quotechar <Character>]]
2284
+ [formatjson [quotechar <Character>]]
2285
+
2286
+ gam create chromeprofilecommand <ChromeProfileName>
2287
+ [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
2288
+ [formatjson]
2289
+
2290
+ gam info chromeprofilecommand <ChromeProfileCommandName>
2291
+ [formatjson]
2292
+
2293
+ gam show chromeprofilecommands <ChromeProfileName>
2294
+ [formatjson]
2295
+ gam print chromeprofilecommands <ChromeProfileName> [todrive <ToDriveAttribute>*]
2296
+ [formatjson [quotechar <Character>]]
2277
2297
 
2278
2298
  # Chrome Versions Counts
2279
2299
 
@@ -4657,10 +4677,10 @@ gam delete building <BuildingID>
4657
4677
  gam info building <BuildingID>
4658
4678
  [formatjson]
4659
4679
  gam show buildings
4660
- [allfields|<BuildingFildName>*|(fields <BuildingFieldNameList>)]
4680
+ [allfields|<BuildingFieldName>*|(fields <BuildingFieldNameList>)]
4661
4681
  [formatjson]
4662
4682
  gam print buildings [todrive <ToDriveAttribute>*]
4663
- [allfields|<BuildingFildName>*|(fields <BuildingFieldNameList>)]
4683
+ [allfields|<BuildingFieldName>*|(fields <BuildingFieldNameList>)]
4664
4684
  [delimiter <Character>] [formatjson [quotechar <Character>]]
4665
4685
 
4666
4686
  gam create|add feature name <Name>
@@ -1,3 +1,17 @@
1
+ 7.13.00
2
+
3
+ Added commands that send remote commands to Chrome browser profiles and display the results;
4
+ at the moment, these commands can clear the browser cache and cookies.
5
+
6
+ * See: https://github.com/GAM-team/GAM/wiki/Chrome-Profile-Management#create-a-chrome-profile-command
7
+
8
+ 7.12.02
9
+
10
+ Updated `gam print users` to handle the following error:
11
+ ```
12
+ ERROR: 503: serviceNotAvailable - The service is currently unavailable
13
+ ```
14
+
1
15
  7.12.01
2
16
 
3
17
  Added support for `plan free` in `gam create resoldsubscription`.
@@ -0,0 +1 @@
1
+ ../README.md
@@ -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.12.01'
28
+ __version__ = '7.13.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
@@ -6246,6 +6246,7 @@ def getItemsToModify(entityType, entity, memberRoles=None, isSuspended=None, isA
6246
6246
  result = callGAPIpages(cd.users(), 'list', 'users',
6247
6247
  pageMessage=getPageMessage(),
6248
6248
  throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN],
6249
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
6249
6250
  customer=GC.Values[GC.CUSTOMER_ID],
6250
6251
  query=query, orderBy='email', fields='nextPageToken,users(primaryEmail,archived)',
6251
6252
  maxResults=GC.Values[GC.USER_MAX_RESULTS])
@@ -6270,6 +6271,7 @@ def getItemsToModify(entityType, entity, memberRoles=None, isSuspended=None, isA
6270
6271
  result = callGAPIpages(cd.users(), 'list', 'users',
6271
6272
  pageMessage=getPageMessageForWhom(),
6272
6273
  throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.DOMAIN_NOT_FOUND, GAPI.FORBIDDEN],
6274
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
6273
6275
  domain=domain,
6274
6276
  query=query, orderBy='email', fields='nextPageToken,users(primaryEmail,archived)',
6275
6277
  maxResults=GC.Values[GC.USER_MAX_RESULTS])
@@ -6448,6 +6450,7 @@ def getItemsToModify(entityType, entity, memberRoles=None, isSuspended=None, isA
6448
6450
  pageMessage=pageMessage, messageAttribute='primaryEmail',
6449
6451
  throwReasons=[GAPI.INVALID_ORGUNIT, GAPI.ORGUNIT_NOT_FOUND,
6450
6452
  GAPI.INVALID_INPUT, GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN],
6453
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
6451
6454
  customer=GC.Values[GC.CUSTOMER_ID], query=orgUnitPathQuery(ou, isSuspended), orderBy='email',
6452
6455
  fields=fields, maxResults=GC.Values[GC.USER_MAX_RESULTS])
6453
6456
  for users in feed:
@@ -6481,6 +6484,7 @@ def getItemsToModify(entityType, entity, memberRoles=None, isSuspended=None, isA
6481
6484
  pageMessage=getPageMessage(),
6482
6485
  throwReasons=[GAPI.INVALID_ORGUNIT, GAPI.ORGUNIT_NOT_FOUND,
6483
6486
  GAPI.INVALID_INPUT, GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN],
6487
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
6484
6488
  customer=GC.Values[GC.CUSTOMER_ID], query=query, orderBy='email',
6485
6489
  fields='nextPageToken,users(primaryEmail,suspended,archived)',
6486
6490
  maxResults=GC.Values[GC.USER_MAX_RESULTS])
@@ -13321,6 +13325,7 @@ def getUserOrgUnits(cd, orgUnit, orgUnitId):
13321
13325
  pageMessage=getPageMessageForWhom(),
13322
13326
  throwReasons=[GAPI.INVALID_ORGUNIT, GAPI.ORGUNIT_NOT_FOUND,
13323
13327
  GAPI.INVALID_INPUT, GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN],
13328
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
13324
13329
  customer=GC.Values[GC.CUSTOMER_ID], query=orgUnitPathQuery(orgUnit, None), orderBy='email',
13325
13330
  fields='nextPageToken,users(primaryEmail,orgUnitPath)', maxResults=GC.Values[GC.USER_MAX_RESULTS])
13326
13331
  userOrgUnits = {}
@@ -17786,6 +17791,7 @@ def _doInfoOrgs(entityList):
17786
17791
  orgUnitPath = result['orgUnitPath']
17787
17792
  users = callGAPIpages(cd.users(), 'list', 'users',
17788
17793
  throwReasons=[GAPI.BAD_REQUEST, GAPI.INVALID_INPUT, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN],
17794
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
17789
17795
  customer=GC.Values[GC.CUSTOMER_ID], query=orgUnitPathQuery(orgUnitPath, isSuspended), orderBy='email',
17790
17796
  fields='nextPageToken,users(primaryEmail,orgUnitPath)', maxResults=GC.Values[GC.USER_MAX_RESULTS])
17791
17797
  printEntitiesCount(entityType, None)
@@ -18053,6 +18059,7 @@ def doPrintOrgs():
18053
18059
  pageMessage=pageMessage,
18054
18060
  throwReasons=[GAPI.INVALID_ORGUNIT, GAPI.ORGUNIT_NOT_FOUND,
18055
18061
  GAPI.INVALID_INPUT, GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN],
18062
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
18056
18063
  customer=GC.Values[GC.CUSTOMER_ID], query=orgUnitPathQuery(orgUnitPath, None), orderBy='email',
18057
18064
  fields='nextPageToken,users(orgUnitPath,suspended)', maxResults=GC.Values[GC.USER_MAX_RESULTS])
18058
18065
  for users in feed:
@@ -18342,6 +18349,7 @@ def doCheckOrgUnit():
18342
18349
  pageMessage=pageMessage,
18343
18350
  throwReasons=[GAPI.INVALID_ORGUNIT, GAPI.ORGUNIT_NOT_FOUND,
18344
18351
  GAPI.INVALID_INPUT, GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN],
18352
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
18345
18353
  customer=GC.Values[GC.CUSTOMER_ID], query=orgUnitPathQuery(orgUnitPath, None),
18346
18354
  fields='nextPageToken,users(orgUnitPath)', maxResults=GC.Values[GC.USER_MAX_RESULTS])
18347
18355
  for users in feed:
@@ -18907,7 +18915,7 @@ def doPrintAliases():
18907
18915
  throwReasons=[GAPI.INVALID_ORGUNIT, GAPI.INVALID_INPUT, GAPI.DOMAIN_NOT_FOUND,
18908
18916
  GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, GAPI.BAD_REQUEST,
18909
18917
  GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION],
18910
- retryReasons=[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION],
18918
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS+[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION],
18911
18919
  query=query, orderBy='email',
18912
18920
  fields=f'nextPageToken,users({",".join(userFields)})',
18913
18921
  maxResults=GC.Values[GC.USER_MAX_RESULTS], **kwargs)
@@ -19006,7 +19014,7 @@ def doPrintAddresses():
19006
19014
  pageMessage=getPageMessage(showFirstLastItems=True), messageAttribute='primaryEmail',
19007
19015
  throwReasons=[GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, GAPI.BAD_REQUEST,
19008
19016
  GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION],
19009
- retryReasons=[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION],
19017
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS+[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION],
19010
19018
  orderBy='email', fields=f'nextPageToken,users({",".join(userFields)})',
19011
19019
  maxResults=GC.Values[GC.USER_MAX_RESULTS], **kwargs)
19012
19020
  except (GAPI.unknownError, GAPI.failedPrecondition) as e:
@@ -25598,7 +25606,7 @@ CHROMEPROFILE_ORDERBY_CHOICE_MAP = {
25598
25606
  # [filtertime.* <Time>] [filter <String>]
25599
25607
  # [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
25600
25608
  # <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
25601
- # [[formatjson [quotechar <Character>]]
25609
+ # [formatjson [quotechar <Character>]]
25602
25610
  def doPrintShowChromeProfiles():
25603
25611
  def _printProfile(profile):
25604
25612
  row = flattenJSON(profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS)
@@ -25668,6 +25676,112 @@ def doPrintShowChromeProfiles():
25668
25676
  csvPF.SetSortTitles(['name', 'profileId'])
25669
25677
  csvPF.writeCSVfile('Chrome Profiles')
25670
25678
 
25679
+ CHROMEPROFILECOMMAND_TIME_OBJECTS = {
25680
+ 'clientExecutionTime',
25681
+ 'issueTime',
25682
+ }
25683
+
25684
+ def _showChromeProfileCommand(profcmd, FJQC, i=0, count=0):
25685
+ if FJQC.formatJSON:
25686
+ printLine(json.dumps(cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS),
25687
+ ensure_ascii=False, sort_keys=True))
25688
+ return
25689
+ printEntity([Ent.CHROME_PROFILE_COMMAND, profcmd['name']], i, count)
25690
+ Ind.Increment()
25691
+ showJSON(None, profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS)
25692
+ Ind.Decrement()
25693
+
25694
+ # gam create chromeprofilecommand <ChromeProfileName>
25695
+ # [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
25696
+ # [formatjson]
25697
+ def doCreateChromeProfileCommand():
25698
+ cm = buildGAPIObject(API.CHROMEMANAGEMENT)
25699
+ profileName = _getChromeProfileName()
25700
+ body = {'commandType': 'clearBrowsingData', 'payload': {}}
25701
+ FJQC = FormatJSONQuoteChar()
25702
+ while Cmd.ArgumentsRemaining():
25703
+ myarg = getArgument()
25704
+ if myarg == 'clearcache':
25705
+ body['payload']['clearCache'] = getBoolean()
25706
+ elif myarg == 'clearcookies':
25707
+ body['payload']['clearCookies'] = getBoolean()
25708
+ else:
25709
+ FJQC.GetFormatJSON(myarg)
25710
+ try:
25711
+ profcmd = callGAPI(cm.customers().profiles().commands(), 'create',
25712
+ throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED],
25713
+ parent=profileName, body=body)
25714
+ _showChromeProfileCommand(profcmd, FJQC)
25715
+ except (GAPI.invalidArgument, GAPI.notFound, GAPI.permissionDenied) as e:
25716
+ entityActionFailedExit([Ent.CHROME_PROFILE_COMMAND, profileName], str(e))
25717
+
25718
+ # gam info chromeprofilecommand <ChromeProfileCommandName>
25719
+ # [formatjson]
25720
+ def doInfoChromeProfileCommand():
25721
+ cm = buildGAPIObject(API.CHROMEMANAGEMENT)
25722
+ profileCommandName = _getChromeProfileName()
25723
+ FJQC = FormatJSONQuoteChar()
25724
+ while Cmd.ArgumentsRemaining():
25725
+ myarg = getArgument()
25726
+ FJQC.GetFormatJSON(myarg)
25727
+ try:
25728
+ profcmd = callGAPI(cm.customers().profiles().commands(), 'get',
25729
+ throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED],
25730
+ name=profileCommandName)
25731
+ _showChromeProfileCommand(profcmd, FJQC)
25732
+ except (GAPI.invalidArgument, GAPI.notFound, GAPI.permissionDenied) as e:
25733
+ entityActionFailedExit([Ent.CHROME_PROFILE, profileCommandName], str(e))
25734
+
25735
+ # gam show chromeprofilecommands <ChromeProfileName>
25736
+ # [formatjson]
25737
+ # gam print chromeprofilecommands <ChromeProfileName> [todrive <ToDriveAttribute>*]
25738
+ # [formatjson [quotechar <Character>]]
25739
+ def doPrintShowChromeProfileCommands():
25740
+ def _printProfileCommand(profcmd):
25741
+ row = flattenJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS)
25742
+ if not FJQC.formatJSON:
25743
+ csvPF.WriteRowTitles(row)
25744
+ elif csvPF.CheckRowTitles(row):
25745
+ csvPF.WriteRowNoFilter({'name': profcmd['name'],
25746
+ 'JSON': json.dumps(cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS),
25747
+ ensure_ascii=False, sort_keys=True)})
25748
+
25749
+ cm = buildGAPIObject(API.CHROMEMANAGEMENT)
25750
+ csvPF = CSVPrintFile(['name']) if Act.csvFormat() else None
25751
+ FJQC = FormatJSONQuoteChar(csvPF)
25752
+ profileName = _getChromeProfileName()
25753
+ while Cmd.ArgumentsRemaining():
25754
+ myarg = getArgument()
25755
+ if csvPF and myarg == 'todrive':
25756
+ csvPF.GetTodriveParameters()
25757
+ else:
25758
+ FJQC.GetFormatJSONQuoteChar(myarg, True)
25759
+ printGettingEntityItemForWhom(Ent.CHROME_PROFILE_COMMAND, profileName)
25760
+ pageMessage = getPageMessage()
25761
+ try:
25762
+ feed = yieldGAPIpages(cm.customers().profiles().commands(), 'list', 'chromeBrowserProfileCommands',
25763
+ pageMessage=pageMessage,
25764
+ throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
25765
+ parent=profileName, pageSize=100)
25766
+ for profcmds in feed:
25767
+ if not csvPF:
25768
+ jcount = len(profcmds)
25769
+ if not FJQC.formatJSON:
25770
+ performActionNumItems(jcount, Ent.CHROME_PROFILE_COMMAND)
25771
+ Ind.Increment()
25772
+ j = 0
25773
+ for profcmd in profcmds:
25774
+ j += 1
25775
+ _showChromeProfileCommand(profcmd, FJQC, j, jcount)
25776
+ Ind.Decrement()
25777
+ else:
25778
+ for profcmd in profcmds:
25779
+ _printProfileCommand(profcmd)
25780
+ except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
25781
+ entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e))
25782
+ if csvPF:
25783
+ csvPF.writeCSVfile('Chrome Profile Commands')
25784
+
25671
25785
  BROWSER_ORDERBY_CHOICE_MAP = {
25672
25786
  'annotatedassetid': 'annotated_asset_id', 'asset': 'annotated_asset_id', 'assetid': 'annotated_asset_id',
25673
25787
  'annotatedlocation': 'annotated_location', 'location': 'annotated_location',
@@ -44339,6 +44453,7 @@ def undeleteUsers(entityList):
44339
44453
  try:
44340
44454
  deleted_users = callGAPIpages(cd.users(), 'list', 'users',
44341
44455
  throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN],
44456
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
44342
44457
  customer=GC.Values[GC.CUSTOMER_ID], showDeleted=True, orderBy='email',
44343
44458
  maxResults=GC.Values[GC.USER_MAX_RESULTS])
44344
44459
  except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden):
@@ -45591,7 +45706,7 @@ def doPrintUsers(entityList=None):
45591
45706
  throwReasons=[GAPI.DOMAIN_NOT_FOUND, GAPI.INVALID_ORGUNIT, GAPI.INVALID_INPUT,
45592
45707
  GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN,
45593
45708
  GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION],
45594
- retryReasons=[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION],
45709
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS+[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION],
45595
45710
  query=query, fields=fields,
45596
45711
  showDeleted=showDeleted, orderBy=orderBy, sortOrder=sortOrder, viewType=viewType,
45597
45712
  projection=schemaParms['projection'], customFieldMask=schemaParms['customFieldMask'],
@@ -45797,6 +45912,7 @@ def doPrintUserCountsByOrgUnit():
45797
45912
  result = callGAPIpages(cd.users(), 'list', 'users',
45798
45913
  pageMessage=pageMessage,
45799
45914
  throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.DOMAIN_NOT_FOUND, GAPI.FORBIDDEN],
45915
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
45800
45916
  orderBy='email', fields='nextPageToken,users(orgUnitPath,archived,suspended)',
45801
45917
  maxResults=GC.Values[GC.USER_MAX_RESULTS], **kwargs)
45802
45918
  except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden, GAPI.domainNotFound):
@@ -76606,6 +76722,7 @@ MAIN_ADD_CREATE_FUNCTIONS = {
76606
76722
  Cmd.ARG_CHATMESSAGE: doCreateChatMessage,
76607
76723
  Cmd.ARG_CHROMENETWORK: doCreateChromeNetwork,
76608
76724
  Cmd.ARG_CHROMEPOLICYIMAGE: doCreateChromePolicyImage,
76725
+ Cmd.ARG_CHROMEPROFILECOMMAND: doCreateChromeProfileCommand,
76609
76726
  Cmd.ARG_CIGROUP: doCreateCIGroup,
76610
76727
  Cmd.ARG_CONTACT: doCreateDomainContact,
76611
76728
  Cmd.ARG_COURSE: doCreateCourse,
@@ -76800,6 +76917,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
76800
76917
  Cmd.ARG_CHATSPACE: doInfoChatSpace,
76801
76918
  Cmd.ARG_CHROMEAPP: doInfoChromeApp,
76802
76919
  Cmd.ARG_CHROMEPROFILE: doInfoChromeProfile,
76920
+ Cmd.ARG_CHROMEPROFILECOMMAND: doInfoChromeProfileCommand,
76803
76921
  Cmd.ARG_CHROMESCHEMA: doInfoChromePolicySchemas,
76804
76922
  Cmd.ARG_CIGROUP: doInfoCIGroups,
76805
76923
  Cmd.ARG_CIGROUPMEMBERS: doInfoCIGroupMembers,
@@ -76886,6 +77004,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
76886
77004
  Cmd.ARG_CHROMENEEDSATTN: doPrintShowChromeNeedsAttn,
76887
77005
  Cmd.ARG_CHROMEPOLICY: doPrintShowChromePolicies,
76888
77006
  Cmd.ARG_CHROMEPROFILE: doPrintShowChromeProfiles,
77007
+ Cmd.ARG_CHROMEPROFILECOMMAND: doPrintShowChromeProfileCommands,
76889
77008
  Cmd.ARG_CHROMESCHEMA: doPrintShowChromePolicySchemas,
76890
77009
  Cmd.ARG_CHROMESNVALIDITY: doPrintChromeSnValidity,
76891
77010
  Cmd.ARG_CHROMEVERSIONS: doPrintShowChromeVersions,
@@ -77018,6 +77137,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
77018
77137
  Cmd.ARG_CHROMENEEDSATTN: doPrintShowChromeNeedsAttn,
77019
77138
  Cmd.ARG_CHROMEPOLICY: doPrintShowChromePolicies,
77020
77139
  Cmd.ARG_CHROMEPROFILE: doPrintShowChromeProfiles,
77140
+ Cmd.ARG_CHROMEPROFILECOMMAND: doPrintShowChromeProfileCommands,
77021
77141
  Cmd.ARG_CHROMESCHEMA: doPrintShowChromePolicySchemas,
77022
77142
  Cmd.ARG_CHROMEVERSIONS: doPrintShowChromeVersions,
77023
77143
  Cmd.ARG_CIGROUPMEMBERS: doShowCIGroupMembers,
@@ -77200,6 +77320,7 @@ MAIN_COMMANDS_OBJ_ALIASES = {
77200
77320
  Cmd.ARG_CHROMENETWORKS: Cmd.ARG_CHROMENETWORK,
77201
77321
  Cmd.ARG_CHROMEPOLICIES: Cmd.ARG_CHROMEPOLICY,
77202
77322
  Cmd.ARG_CHROMEPROFILES: Cmd.ARG_CHROMEPROFILE,
77323
+ Cmd.ARG_CHROMEPROFILECOMMANDS: Cmd.ARG_CHROMEPROFILECOMMAND,
77203
77324
  Cmd.ARG_CHROMESCHEMAS: Cmd.ARG_CHROMESCHEMA,
77204
77325
  Cmd.ARG_CIGROUPS: Cmd.ARG_CIGROUP,
77205
77326
  Cmd.ARG_CIGROUPSMEMBERS: Cmd.ARG_CIGROUPMEMBERS,
@@ -485,6 +485,8 @@ class GamCLArgs():
485
485
  ARG_CHROMEPOLICIES = 'chromepolicies'
486
486
  ARG_CHROMEPROFILE = 'chromeprofile'
487
487
  ARG_CHROMEPROFILES = 'chromeprofiles'
488
+ ARG_CHROMEPROFILECOMMAND = 'chromeprofilecommand'
489
+ ARG_CHROMEPROFILECOMMANDS = 'chromeprofilecommands'
488
490
  ARG_CHROMESCHEMA = 'chromeschema'
489
491
  ARG_CHROMESCHEMAS = 'chromeschemas'
490
492
  ARG_CHROMESNVALIDITY = 'chromesnvalidity'
@@ -111,6 +111,7 @@ class GamEntity():
111
111
  CHROME_POLICY_IMAGE = 'cpim'
112
112
  CHROME_POLICY_SCHEMA = 'cpsc'
113
113
  CHROME_PROFILE = 'cpro'
114
+ CHROME_PROFILE_COMMAND = 'cpcm'
114
115
  CHROME_RELEASE = 'crel'
115
116
  CHROME_VERSION = 'cver'
116
117
  CLASSIFICATION_LABEL = 'dlab'
@@ -462,6 +463,7 @@ class GamEntity():
462
463
  CHROME_POLICY_IMAGE: ['Chrome Policy Images', 'Chrome Policy Image'],
463
464
  CHROME_POLICY_SCHEMA: ['Chrome Policy Schemas', 'Chrome Policy Schema'],
464
465
  CHROME_PROFILE: ['Chrome Profiles', 'Chrome Profile'],
466
+ CHROME_PROFILE_COMMAND: ['Chrome Profile Commands', 'Chrome Profile Command'],
465
467
  CHROME_RELEASE: ['Chrome Releases', 'Chrome Release'],
466
468
  CHROME_VERSION: ['Chrome Versions', 'Chrome Version'],
467
469
  CLASSIFICATION_LABEL: ['Classification Labels', 'Classification Label'],
@@ -1,6 +1,7 @@
1
1
  [metadata]
2
2
  name = GAM for Google Workspace
3
- version = attr: gam.var.GAM_VERSION
3
+ #version = attr: gam.var.GAM_VERSION
4
+ version = 7.12.02
4
5
  description = Command line management for Google Workspaces
5
6
  long_description = file: readme.md
6
7
  long_description_content_type = text/markdown
@@ -2,9 +2,11 @@
2
2
  - [API documentation](#api-documentation)
3
3
  - [Introduction](#introduction)
4
4
  - [Definitions](#definitions)
5
- - [Delete Chrome profiles](#delete-chrome-profiles)
6
- - [Display Chrome profiles](#display-chrome-profiles)
5
+ - [Delete Chrome Profiles](#delete-chrome-profiles)
6
+ - [Display Chrome Profiles](#display-chrome-profiles)
7
7
  - [Profile Query Searchable Fields](#profile-query-searchable-fields)
8
+ - [Create a Chrome Profile command](#create-a-chrome-profile-command)
9
+ - [Display Chrome Profile commands](#display-chrome-profile-commands)
8
10
 
9
11
  ## Introduction
10
12
  These features were added in version 7.01.00.
@@ -21,13 +23,15 @@ Follow instructions at: Turn on managed profile reporting
21
23
 
22
24
  ## API documentation
23
25
  * [Chrome Management API - Profiles](https://developers.google.com/chrome/management/reference/rest/v1/customers.profiles)
26
+ * [Chrome Management API - Profile Commands](https://developers.google.com/chrome/management/reference/rest/v1/customers.profiles.commands)
24
27
  * [Turn on Chrome Browser and Profile Reporting](https://support.google.com/chrome/a/answer/9301421)
25
28
 
26
29
  ## Definitions
27
30
  ```
28
31
  <CustomerID> ::= <String>
29
32
  <ChromeProfilePermanentID> ::= <String>
30
- <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID>
33
+ <ChromeProfileName> ::= customers/<CustomerID>/profiles/<ChromeProfilePermanentID> | <ChromeProfilePermanentID>
34
+ <ChromeProfileCommandName> ::= <ChomeProfileName>/commands/<String>
31
35
 
32
36
  <ChromeProfileFieldName> ::=
33
37
  affiliationstate|
@@ -89,7 +93,7 @@ Select the fields to be displayed:
89
93
  * `<ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]` - Display a selected list of fields
90
94
 
91
95
  By default, Gam displays the information as an indented list of keys and values:
92
- - `formatjson` - Display the fields in JSON format.
96
+ * `formatjson` - Display the fields in JSON format.
93
97
 
94
98
  ```
95
99
  gam show chromeprofiles
@@ -110,14 +114,14 @@ The `filtertime<String> <Time>` value replaces the string `#fiktertime<String>#`
110
114
  The characters following `filtertime` can be any combination of lowercase letters and numbers.
111
115
 
112
116
  By default, Gam displays the information as an indented list of keys and values:
113
- - `formatjson` - Display the fields in JSON format.
117
+ * `formatjson` - Display the fields in JSON format.
114
118
 
115
119
  ```
116
120
  gam print chromeprofiles [todrive <ToDriveAttribute>*]
117
121
  [filtertime.* <Time>] [filter <String>]
118
122
  [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]
119
123
  <ChromeProfileFieldName>* [fields <ChromeProfileFieldNameList>]
120
- [[formatjson [quotechar <Character>]]
124
+ [formatjson [quotechar <Character>]]
121
125
  ```
122
126
 
123
127
  Use these options to select Chrome profiles; if none are chosen, all Chrome profiles in the account are selected:
@@ -192,4 +196,39 @@ gam print chromeprofiles filter "lastPolicySyncTime >= \"#filtertime1#\" lastPol
192
196
  Print information about Chrome profiles on Windows.
193
197
  ```
194
198
  gam print chromeprofiles filter "osPlatformType=WINDOWS"
195
- ```
199
+ ```
200
+
201
+ ## Create a Chrome Profile command
202
+ ```
203
+ gam create chromeprofilecommand <ChromeProfileName>
204
+ [clearcache [<Boolean>]] [clearcookies [<Boolean>]]
205
+ [formatjson]
206
+ ```
207
+ ## Display Chrome Profile commands
208
+ ```
209
+ gam info chromeprofilecommand <ChromeProfileCommandName>
210
+ [formatjson]
211
+ ```
212
+ By default, Gam displays the information as an indented list of keys and values:
213
+ * `formatjson` - Display the fields in JSON format.
214
+
215
+ ```
216
+ gam show chromeprofilecommands <ChromeProfileName>
217
+ [formatjson]
218
+ ```
219
+
220
+ By default, Gam displays the information as an indented list of keys and values:
221
+ * `formatjson` - Display the fields in JSON format.
222
+ ```
223
+ gam print chromeprofilecommands <ChromeProfileName> [todrive <ToDriveAttribute>*]
224
+ [formatjson [quotechar <Character>]]
225
+ ```
226
+ By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format:
227
+ * `formatjson` - Display the fields in JSON format.
228
+
229
+ By default, when writing CSV files, Gam uses a quote character of double quote `"`. The quote character is used to enclose columns that contain
230
+ the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
231
+ When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output.
232
+ The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
233
+ `quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
234
+
@@ -10,6 +10,19 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
10
10
 
11
11
  See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
12
12
 
13
+ ### 7.12.02
14
+
15
+ Updated `gam print users` to handle the following error:
16
+ ```
17
+ ERROR: 503: serviceNotAvailable - The service is currently unavailable
18
+ ```
19
+
20
+ ### 7.12.01
21
+
22
+ Added support for `plan free` in `gam create resoldsubscription`.
23
+
24
+ * The free plan is exclusive to the Cloud Identity SKU and does not incur any billing.
25
+
13
26
  ### 7.12.00
14
27
 
15
28
  Started updated handling of missing scopes messages in client access commands;
@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
251
251
  admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
252
252
  admin@server:/Users/admin$ gam version
253
253
  WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
254
- GAM 7.12.00 - https://github.com/GAM-team/GAM - pyinstaller
254
+ GAM 7.12.02 - https://github.com/GAM-team/GAM - pyinstaller
255
255
  GAM Team <google-apps-manager@googlegroups.com>
256
256
  Python 3.13.5 64-bit final
257
257
  MacOS Sequoia 15.5 x86_64
@@ -989,7 +989,7 @@ writes the credentials into the file oauth2.txt.
989
989
  C:\>del C:\GAMConfig\oauth2.txt
990
990
  C:\>gam version
991
991
  WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
992
- GAM 7.12.00 - https://github.com/GAM-team/GAM - pythonsource
992
+ GAM 7.12.02 - https://github.com/GAM-team/GAM - pythonsource
993
993
  GAM Team <google-apps-manager@googlegroups.com>
994
994
  Python 3.13.5 64-bit final
995
995
  Windows-10-10.0.17134 AMD64
@@ -14,7 +14,7 @@ pip install git+https://github.com/GAM-team/GAM.git#subdirectory=src
14
14
 
15
15
  Or as a PEP 508 Requirement Specifier, e.g. in requirements.txt file:
16
16
  ```
17
- advanced-gam-for-google-workspace @ git+https://github.com/GAM-team/GAM.git#subdirectory=src
17
+ gam-for-google-workspace @ git+https://github.com/GAM-team/GAM.git#subdirectory=src
18
18
  ```
19
19
 
20
20
  Or a pyproject.toml file:
@@ -23,13 +23,13 @@ Or a pyproject.toml file:
23
23
  name = "your-project"
24
24
  # ...
25
25
  dependencies = [
26
- "advanced-gam-for-google-workspace @ git+https://github.com/GAM-team/GAM.git#subdirectory=src"
26
+ "gam-for-google-workspace @ git+https://github.com/GAM-team/GAM.git#subdirectory=src"
27
27
  ]
28
28
  ```
29
29
 
30
30
  Target a specific revision or tag:
31
31
  ```
32
- advanced-gam-for-google-workspace @ git+https://github.com/GAM-team/GAM.git@v6.76.01#subdirectory=src
32
+ gam-for-google-workspace @ git+https://github.com/GAM-team/GAM.git@v7.12.01#subdirectory=src
33
33
  ```
34
34
 
35
35
  ## Using the library
@@ -135,7 +135,7 @@ By default, Gam displays the information as an indented list of keys and values.
135
135
  ## Manage Resold Subscriptions
136
136
  ```
137
137
  gam create resoldsubscription <CustomerID> (sku <SKUID>)
138
- (plan annual_monthly_pay|annual_yearly_pay|flexible|trial)
138
+ (plan annual_monthly_pay|annual_yearly_pay|flexible|trial|free)
139
139
  (seats <Number>)
140
140
  [customer_auth_token <String>] [deal <String>] [purchaseorderid <String>]
141
141
  gam update resoldsubscription <CustomerID> <SKUID>
@@ -390,14 +390,14 @@ gam delete building <BuildingID>
390
390
  gam info building <BuildingID>
391
391
  [formatjson]
392
392
  gam show buildings
393
- [allfields|<BuildingFildName>*|(fields <BuildingFieldNameList>)]
393
+ [allfields|<BuildingFieldName>*|(fields <BuildingFieldNameList>)]
394
394
  [formatjson]
395
395
  ```
396
396
  By default, Gam displays the information as an indented list of keys and values.
397
397
  * `formatjson` - Display the fields in JSON format.
398
398
  ```
399
399
  gam print buildings [todrive <ToDriveAttribute>*]
400
- [allfields|<BuildingFildName>*|(fields <BuildingFieldNameList>)]
400
+ [allfields|<BuildingFieldName>*|(fields <BuildingFieldNameList>)]
401
401
  [delimiter <Character>] [formatjson [quotechar <Character>]]
402
402
  ```
403
403
  By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
@@ -3,7 +3,7 @@
3
3
  Print the current version of Gam with details
4
4
  ```
5
5
  gam version
6
- GAM 7.12.00 - https://github.com/GAM-team/GAM - pyinstaller
6
+ GAM 7.12.02 - 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.12.00 - https://github.com/GAM-team/GAM - pyinstaller
18
+ GAM 7.12.02 - 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.12.00 - https://github.com/GAM-team/GAM - pyinstaller
30
+ GAM 7.12.02 - 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.12.00
67
+ Latest: 7.12.02
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.12.00
75
+ 7.12.02
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.12.00 - https://github.com/GAM-team/GAM
85
+ GAM 7.12.02 - https://github.com/GAM-team/GAM
86
86
  GAM Team <google-apps-manager@googlegroups.com>
87
87
  Python 3.13.5 64-bit final
88
88
  MacOS Sequoia 15.5 x86_64
File without changes