Compare commits

...

9 Commits

Author SHA1 Message Date
github-actions[bot]
42ee41d218 chore: upgrade PyPi deps (#1922)
Some checks failed
Build and test GAM / build (false, build, 1, Build Intel Ubuntu Jammy, ubuntu-22.04) (push) Has been cancelled
Build and test GAM / build (false, build, 10, Build x86_64 macOS 15, macos-15-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 11, Build x86_64 macOS 26, macos-26-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 12, Build Arm MacOS 26, macos-26) (push) Has been cancelled
Build and test GAM / build (false, build, 13, Build Intel Windows, windows-2025-vs2026) (push) Has been cancelled
Build and test GAM / build (false, build, 14, Build Arm Windows, windows-11-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 2, Build Intel Ubuntu Noble, ubuntu-24.04) (push) Has been cancelled
Build and test GAM / build (false, build, 3, Build Arm Ubuntu Noble, ubuntu-24.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 4, Build Arm Ubuntu Jammy, ubuntu-22.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 5, Build Intel StaticX Legacy, ubuntu-22.04, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 6, Build Arm StaticX Legacy, ubuntu-22.04-arm, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 8, Build Arm MacOS 14, macos-14) (push) Has been cancelled
Build and test GAM / build (false, build, 9, Build Arm MacOS 15, macos-15) (push) Has been cancelled
Build and test GAM / build (false, test, 15, Test Python 3.10, ubuntu-24.04, 3.10) (push) Has been cancelled
Build and test GAM / build (false, test, 16, Test Python 3.11, ubuntu-24.04, 3.11) (push) Has been cancelled
Build and test GAM / build (false, test, 17, Test Python 3.12, ubuntu-24.04, 3.12) (push) Has been cancelled
Build and test GAM / build (false, test, 18, Test Python 3.13, ubuntu-24.04, 3.13) (push) Has been cancelled
Build and test GAM / build (false, test, 19, Test Python 3.15-dev, ubuntu-24.04, 3.15-dev) (push) Has been cancelled
Build and test GAM / build (true, test, 20, Test Python 3.14 freethread, ubuntu-24.04, 3.14) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Build and test GAM / publish (push) Has been cancelled
Check for Google Root CA Updates / check-certs (push) Has been cancelled
Daily Dependency Pinning (2-Week Buffer) / pin-deps (push) Has been cancelled
Co-authored-by: jay0lee <4623536+jay0lee@users.noreply.github.com>
2026-06-02 05:14:49 -04:00
Ross Scroggs
d8f0666e70 Added writerwithoutprivateaccess to <CalendarACLRole>
Some checks failed
Build and test GAM / build (false, build, 1, Build Intel Ubuntu Jammy, ubuntu-22.04) (push) Has been cancelled
Build and test GAM / build (false, build, 10, Build x86_64 macOS 15, macos-15-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 11, Build x86_64 macOS 26, macos-26-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 12, Build Arm MacOS 26, macos-26) (push) Has been cancelled
Build and test GAM / build (false, build, 13, Build Intel Windows, windows-2025-vs2026) (push) Has been cancelled
Build and test GAM / build (false, build, 14, Build Arm Windows, windows-11-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 2, Build Intel Ubuntu Noble, ubuntu-24.04) (push) Has been cancelled
Build and test GAM / build (false, build, 3, Build Arm Ubuntu Noble, ubuntu-24.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 4, Build Arm Ubuntu Jammy, ubuntu-22.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 5, Build Intel StaticX Legacy, ubuntu-22.04, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 6, Build Arm StaticX Legacy, ubuntu-22.04-arm, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 8, Build Arm MacOS 14, macos-14) (push) Has been cancelled
Build and test GAM / build (false, build, 9, Build Arm MacOS 15, macos-15) (push) Has been cancelled
Build and test GAM / build (false, test, 15, Test Python 3.10, ubuntu-24.04, 3.10) (push) Has been cancelled
Build and test GAM / build (false, test, 16, Test Python 3.11, ubuntu-24.04, 3.11) (push) Has been cancelled
Build and test GAM / build (false, test, 17, Test Python 3.12, ubuntu-24.04, 3.12) (push) Has been cancelled
Build and test GAM / build (false, test, 18, Test Python 3.13, ubuntu-24.04, 3.13) (push) Has been cancelled
Build and test GAM / build (false, test, 19, Test Python 3.15-dev, ubuntu-24.04, 3.15-dev) (push) Has been cancelled
Build and test GAM / build (true, test, 20, Test Python 3.14 freethread, ubuntu-24.04, 3.14) (push) Has been cancelled
Build and test GAM / publish (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Push wiki / pushwiki (push) Has been cancelled
2026-06-01 16:09:06 -07:00
Ross Scroggs
3d15d2a820 Added writerwithoutprivateaccess to <CalendarACLRole> 2026-06-01 14:58:12 -07:00
Ross Scroggs
0c593b5809 Add new <CrOSFieldName>
Some checks failed
Build and test GAM / build (false, build, 1, Build Intel Ubuntu Jammy, ubuntu-22.04) (push) Has been cancelled
Build and test GAM / build (false, build, 10, Build x86_64 macOS 15, macos-15-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 11, Build x86_64 macOS 26, macos-26-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 12, Build Arm MacOS 26, macos-26) (push) Has been cancelled
Build and test GAM / build (false, build, 13, Build Intel Windows, windows-2025-vs2026) (push) Has been cancelled
Build and test GAM / build (false, build, 14, Build Arm Windows, windows-11-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 2, Build Intel Ubuntu Noble, ubuntu-24.04) (push) Has been cancelled
Build and test GAM / build (false, build, 3, Build Arm Ubuntu Noble, ubuntu-24.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 4, Build Arm Ubuntu Jammy, ubuntu-22.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 5, Build Intel StaticX Legacy, ubuntu-22.04, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 6, Build Arm StaticX Legacy, ubuntu-22.04-arm, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 8, Build Arm MacOS 14, macos-14) (push) Has been cancelled
Build and test GAM / build (false, build, 9, Build Arm MacOS 15, macos-15) (push) Has been cancelled
Build and test GAM / build (false, test, 15, Test Python 3.10, ubuntu-24.04, 3.10) (push) Has been cancelled
Build and test GAM / build (false, test, 16, Test Python 3.11, ubuntu-24.04, 3.11) (push) Has been cancelled
Build and test GAM / build (false, test, 17, Test Python 3.12, ubuntu-24.04, 3.12) (push) Has been cancelled
Build and test GAM / build (false, test, 18, Test Python 3.13, ubuntu-24.04, 3.13) (push) Has been cancelled
Build and test GAM / build (false, test, 19, Test Python 3.15-dev, ubuntu-24.04, 3.15-dev) (push) Has been cancelled
Build and test GAM / build (true, test, 20, Test Python 3.14 freethread, ubuntu-24.04, 3.14) (push) Has been cancelled
Build and test GAM / publish (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Push wiki / pushwiki (push) Has been cancelled
Check for Google Root CA Updates / check-certs (push) Has been cancelled
Daily Dependency Pinning (2-Week Buffer) / pin-deps (push) Has been cancelled
2026-06-01 11:59:32 -07:00
Ross Scroggs
d76ef999c5 Add new <CrOSFieldName> 2026-06-01 11:22:14 -07:00
Ross Scroggs
ddaad4d655 Add new <CrOSFieldName>s 2026-06-01 09:26:16 -07:00
Ross Scroggs
36a1bdc56b Update GamUpdates.md
Some checks failed
Build and test GAM / build (false, build, 1, Build Intel Ubuntu Jammy, ubuntu-22.04) (push) Has been cancelled
Build and test GAM / build (false, build, 10, Build x86_64 macOS 15, macos-15-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 11, Build x86_64 macOS 26, macos-26-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 12, Build Arm MacOS 26, macos-26) (push) Has been cancelled
Build and test GAM / build (false, build, 13, Build Intel Windows, windows-2025-vs2026) (push) Has been cancelled
Build and test GAM / build (false, build, 14, Build Arm Windows, windows-11-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 2, Build Intel Ubuntu Noble, ubuntu-24.04) (push) Has been cancelled
Build and test GAM / build (false, build, 3, Build Arm Ubuntu Noble, ubuntu-24.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 4, Build Arm Ubuntu Jammy, ubuntu-22.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 5, Build Intel StaticX Legacy, ubuntu-22.04, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 6, Build Arm StaticX Legacy, ubuntu-22.04-arm, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 8, Build Arm MacOS 14, macos-14) (push) Has been cancelled
Build and test GAM / build (false, build, 9, Build Arm MacOS 15, macos-15) (push) Has been cancelled
Build and test GAM / build (false, test, 15, Test Python 3.10, ubuntu-24.04, 3.10) (push) Has been cancelled
Build and test GAM / build (false, test, 16, Test Python 3.11, ubuntu-24.04, 3.11) (push) Has been cancelled
Build and test GAM / build (false, test, 17, Test Python 3.12, ubuntu-24.04, 3.12) (push) Has been cancelled
Build and test GAM / build (false, test, 18, Test Python 3.13, ubuntu-24.04, 3.13) (push) Has been cancelled
Build and test GAM / build (false, test, 19, Test Python 3.15-dev, ubuntu-24.04, 3.15-dev) (push) Has been cancelled
Build and test GAM / build (true, test, 20, Test Python 3.14 freethread, ubuntu-24.04, 3.14) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Push wiki / pushwiki (push) Has been cancelled
Build and test GAM / publish (push) Has been cancelled
Check for Google Root CA Updates / check-certs (push) Has been cancelled
Daily Dependency Pinning (2-Week Buffer) / pin-deps (push) Has been cancelled
2026-05-29 19:49:25 -07:00
Ross Scroggs
089a5994aa Merge branch 'main' of https://github.com/GAM-team/GAM 2026-05-29 19:44:55 -07:00
Ross Scroggs
3e9b46b650 Update gam print crostelemetry 2026-05-29 19:44:49 -07:00
10 changed files with 119 additions and 43 deletions

View File

@@ -18,7 +18,7 @@ dependencies = [
"google-auth-oauthlib==1.4.0", "google-auth-oauthlib==1.4.0",
"google-auth==2.53.0", "google-auth==2.53.0",
"httplib2==0.31.2", "httplib2==0.31.2",
"lxml==6.1.0", "lxml==6.1.1",
"passlib==1.7.4", "passlib==1.7.4",
"pathvalidate==3.3.1", "pathvalidate==3.3.1",
"pysocks==1.7.1", "pysocks==1.7.1",

View File

@@ -1665,11 +1665,15 @@ gam <UserTypeEntity> show analyticdatastreams
<CalendarEntity> ::= <CalendarEntity> ::=
<CalendarList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector> <CalendarList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
<CalendarACLRole> ::= editor|freebusy|freebusyreader|owner|reader|writer|none <CalendarACLRole> ::=
<CalendarACLScope> ::= <EmailAddress>|user:<EmailAdress>|group:<EmailAddress>|domain:<DomainName>|domain|default editor|freebusy|freebusyreader|owner|reader|writer|writerwithoutprivateaccess|none
<CalendarACLScopeList> ::= "<CalendarACLScope>(,<CalendarACLScope>)*" <CalendarACLScope> ::=
<CalendarACLScopeEntity> ::= <EmailAddress>|user:<EmailAdress>|group:<EmailAddress>|
<CalendarACLScopeList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector> domain:<DomainName>|domain|default
<CalendarACLScopeList> ::=
"<CalendarACLScope>(,<CalendarACLScope>)*"
<CalendarACLScopeEntity>::=
<CalendarACLScopeList> | <FileSelector> | <CSVkmdSelector> | <CSVDataSelector>
gam calendars <CalendarEntity> create|add acls|calendaracls <CalendarACLRole> <CalendarACLScopeEntity> [sendnotifications <Boolean>] gam calendars <CalendarEntity> create|add acls|calendaracls <CalendarACLRole> <CalendarACLScopeEntity> [sendnotifications <Boolean>]
gam calendars <CalendarEntity> update acls|calendaracls <CalendarACLRole> <CalendarACLScopeEntity> [sendnotifications <Boolean>] gam calendars <CalendarEntity> update acls|calendaracls <CalendarACLRole> <CalendarACLScopeEntity> [sendnotifications <Boolean>]
@@ -2511,6 +2515,7 @@ gam <CrOSTypeEntity> update <CrOSAttribute>+ [quickcrosmove [<Boolean>]] [nobatc
autoupdateexpiration| autoupdateexpiration|
autoupdatethrough| autoupdatethrough|
backlightinfo| backlightinfo|
bluetoothadapterinfo|
bootmode| bootmode|
chromeostype| chromeostype|
cpuinfo| cpuinfo|
@@ -2544,6 +2549,7 @@ gam <CrOSTypeEntity> update <CrOSAttribute>+ [quickcrosmove [<Boolean>]] [nobatc
orgunitpath|org|ou| orgunitpath|org|ou|
osupdatestatus| osupdatestatus|
osversion| osversion|
osversioncompliance|
platformversion| platformversion|
recentusers| recentusers|
screenshotfiles| screenshotfiles|
@@ -4892,10 +4898,15 @@ gam print resources [todrive <ToDriveAttribute>*] [allfields|<ResourceFieldName>
[formatjson [quotechar <Character>]] [formatjson [quotechar <Character>]]
[showitemcountonly] [showitemcountonly]
<CalendarACLRole> ::= editor|freebusy|freebusyreader|owner|reader|writer|none <CalendarACLRole> ::=
<CalendarACLScope> ::= <EmailAddress>|user:<EmailAdress>|group:<EmailAddress>|domain:<DomainName>|domain|default editor|freebusy|freebusyreader|owner|reader|writer|writerwithoutprivateaccess|none
<CalendarACLScopeList> ::= "<CalendarACLScope>(,<CalendarACLScope>)*" <CalendarACLScope> ::=
<CalendarACLScopeEntity> ::= <CalendarACLScopeList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector> <EmailAddress>|user:<EmailAdress>|group:<EmailAddress>|
domain:<DomainName>|domain|default
<CalendarACLScopeList> ::=
"<CalendarACLScope>(,<CalendarACLScope>)*"
<CalendarACLScopeEntity>::=
<CalendarACLScopeList> | <FileSelector> | <CSVkmdSelector> | <CSVDataSelector>
gam resource <ResourceID> create|add acls|calendaracls <CalendarACLRole> <CalendarACLScopeEntity> [sendnotifications <Boolean>] gam resource <ResourceID> create|add acls|calendaracls <CalendarACLRole> <CalendarACLScopeEntity> [sendnotifications <Boolean>]
gam resource <ResourceID> update acls|calendaracls <CalendarACLRole> <CalendarACLScopeEntity> [sendnotifications <Boolean>] gam resource <ResourceID> update acls|calendaracls <CalendarACLRole> <CalendarACLScopeEntity> [sendnotifications <Boolean>]
@@ -6124,7 +6135,8 @@ gam <UserTypeEntity> print businessprofileaccounts [todrive <ToDriveAttribute>*]
# Users - Calendars # Users - Calendars
<CalendarACLRole> ::= editor|freebusy|freebusyreader|owner|reader|writer <CalendarACLRole> ::=
editor|freebusy|freebusyreader|owner|reader|writer|writerwithoutprivateaccess|none
<CalendarSelectProperty> ::= <CalendarSelectProperty> ::=
(minaccessrole <CalendarACLRole>)| (minaccessrole <CalendarACLRole>)|

View File

@@ -1,3 +1,13 @@
7.44.03
Added `writerwithoutprivateaccess` to `<CalendarACLRole>`; this will become effective 2026-06-29.
* See: https://developers.google.com/workspace/calendar/release-notes#June_01_2026
7.44.02
Added fields `bluetoothadapterinfo` and `osversioncompliance` to `<CrOSFieldName>` for use
in `gam info|print cros`.
7.44.01 7.44.01
Added option `oneitemperrow` to `gam print crostelemetry` to have each of a device's Added option `oneitemperrow` to `gam print crostelemetry` to have each of a device's

View File

@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
""" """
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>' __author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
__version__ = '7.44.01' __version__ = '7.44.03'
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
# pylint: disable=wrong-import-position # pylint: disable=wrong-import-position
@@ -24649,7 +24649,7 @@ def _getFilterDateTime():
return (filterDate, filterDate.replace(tzinfo='UTC')) return (filterDate, filterDate.replace(tzinfo='UTC'))
CROS_FIELDS_CHOICE_MAP = { CROS_FIELDS_CHOICE_MAP = {
'activetimeranges': ['activeTimeRanges.activeTime', 'activeTimeRanges.date'], 'activetimeranges': 'activeTimeRanges',
'annotatedassetid': 'annotatedAssetId', 'annotatedassetid': 'annotatedAssetId',
'annotatedlocation': 'annotatedLocation', 'annotatedlocation': 'annotatedLocation',
'annotateduser': 'annotatedUser', 'annotateduser': 'annotatedUser',
@@ -24658,12 +24658,13 @@ CROS_FIELDS_CHOICE_MAP = {
'autoupdateexpiration': 'autoUpdateExpiration', 'autoupdateexpiration': 'autoUpdateExpiration',
'autoupdatethrough': 'autoUpdateThrough', 'autoupdatethrough': 'autoUpdateThrough',
'backlightinfo': 'backlightInfo', 'backlightinfo': 'backlightInfo',
'bluetoothadapterinfo': 'bluetoothAdapterInfo',
'bootmode': 'bootMode', 'bootmode': 'bootMode',
'chromeostype': 'chromeOsType', 'chromeostype': 'chromeOsType',
'cpuinfo': 'cpuInfo', 'cpuinfo': 'cpuInfo',
'cpustatusreports': 'cpuStatusReports', 'cpustatusreports': 'cpuStatusReports',
'deprovisionreason': 'deprovisionReason', 'deprovisionreason': 'deprovisionReason',
'devicefiles': ['deviceFiles.type', 'deviceFiles.createTime'], 'devicefiles': 'deviceFiles',
'deviceid': 'deviceId', 'deviceid': 'deviceId',
'devicelicensetype': 'deviceLicenseType', 'devicelicensetype': 'deviceLicenseType',
'diskspaceusage': 'diskSpaceUsage', 'diskspaceusage': 'diskSpaceUsage',
@@ -24693,9 +24694,10 @@ CROS_FIELDS_CHOICE_MAP = {
'orgunitpath': 'orgUnitPath', 'orgunitpath': 'orgUnitPath',
'osupdatestatus': 'osUpdateStatus', 'osupdatestatus': 'osUpdateStatus',
'osversion': 'osVersion', 'osversion': 'osVersion',
'osversioncompliance': 'osVersionCompliance',
'ou': 'orgUnitPath', 'ou': 'orgUnitPath',
'platformversion': 'platformVersion', 'platformversion': 'platformVersion',
'recentusers': ['recentUsers.email', 'recentUsers.type'], 'recentusers': 'recentUsers',
'screenshotfiles': 'screenshotFiles', 'screenshotfiles': 'screenshotFiles',
'serialnumber': 'serialNumber', 'serialnumber': 'serialNumber',
'status': 'status', 'status': 'status',
@@ -24703,11 +24705,11 @@ CROS_FIELDS_CHOICE_MAP = {
'systemramfreereports': 'systemRamFreeReports', 'systemramfreereports': 'systemRamFreeReports',
'systemramtotal': 'systemRamTotal', 'systemramtotal': 'systemRamTotal',
'tag': 'annotatedAssetId', 'tag': 'annotatedAssetId',
'timeranges': ['activeTimeRanges.activeTime', 'activeTimeRanges.date'], 'timeranges': 'activeTimeRanges',
'times': ['activeTimeRanges.activeTime', 'activeTimeRanges.date'], 'times': 'activeTimeRanges',
'tpmversioninfo': 'tpmVersionInfo', 'tpmversioninfo': 'tpmVersionInfo',
'user': 'annotatedUser', 'user': 'annotatedUser',
'users': ['recentUsers.email', 'recentUsers.type'], 'users': 'recentUsers',
'willautorenew': 'willAutoRenew', 'willautorenew': 'willAutoRenew',
} }
CROS_BASIC_FIELDS_LIST = ['deviceId', 'annotatedAssetId', 'annotatedLocation', 'annotatedUser', 'lastSync', 'notes', 'serialNumber', 'status'] CROS_BASIC_FIELDS_LIST = ['deviceId', 'annotatedAssetId', 'annotatedLocation', 'annotatedUser', 'lastSync', 'notes', 'serialNumber', 'status']
@@ -24728,6 +24730,7 @@ CROS_SCALAR_PROPERTY_PRINT_ORDER = [
'firmwareVersion', 'firmwareVersion',
'platformVersion', 'platformVersion',
'osVersion', 'osVersion',
'osVersionCompliance',
'bootMode', 'bootMode',
'meid', 'meid',
'dockMacAddress', 'dockMacAddress',
@@ -24976,6 +24979,9 @@ def infoCrOSDevices(entityList):
backlightInfo = _filterBasicList(cros, 'backLightInfo', True, listLimit) backlightInfo = _filterBasicList(cros, 'backLightInfo', True, listLimit)
if backlightInfo: if backlightInfo:
showJSON('backlightInfo', backlightInfo, dictObjectsKey={'backlightInfo': 'path'}) showJSON('backlightInfo', backlightInfo, dictObjectsKey={'backlightInfo': 'path'})
bluetoothAdapterInfo = _filterBasicList(cros, 'bluetoothAdapterInfo', True, listLimit)
if bluetoothAdapterInfo:
showJSON('bluetoothAdapterInfo', bluetoothAdapterInfo, dictObjectsKey={'bluetoothAdapterInfo': 'address'})
fanInfo = _filterBasicList(cros, 'fanInfo', True, listLimit) fanInfo = _filterBasicList(cros, 'fanInfo', True, listLimit)
if fanInfo: if fanInfo:
showJSON('fanInfo', fanInfo) showJSON('fanInfo', fanInfo)
@@ -25205,7 +25211,8 @@ CROS_ENTITIES_MAP = {
} }
CROS_INDEXED_TITLES = ['activeTimeRanges', 'recentUsers', 'deviceFiles', CROS_INDEXED_TITLES = ['activeTimeRanges', 'recentUsers', 'deviceFiles',
'cpuStatusReports', 'cpuInfo', 'backlightInfo', 'fanInfo', 'diskVolumeReports', 'lastKnownNetwork', 'screenshotFiles', 'systemRamFreeReports'] 'cpuStatusReports', 'cpuInfo', 'backlightInfo', 'bluetoothAdapterInfo', 'fanInfo',
'diskVolumeReports', 'lastKnownNetwork', 'screenshotFiles', 'systemRamFreeReports']
# gam print cros [todrive <ToDriveAttribute>*] # gam print cros [todrive <ToDriveAttribute>*]
# [(query <QueryCrOS>)|(queries <QueryCrOSList>) [querytime<String> <Time>] # [(query <QueryCrOS>)|(queries <QueryCrOSList>) [querytime<String> <Time>]
@@ -25279,7 +25286,7 @@ def doPrintCrOSDevices(entityList=None):
return return
row = {} row = {}
for attrib in cros: for attrib in cros:
if attrib in {'cpuInfo', 'backlightInfo', 'fanInfo'}: if attrib in {'cpuInfo', 'backlightInfo', 'bluetoothAdapterInfo', 'fanInfo'}:
flattenJSON({attrib: cros[attrib]}, flattened=row) flattenJSON({attrib: cros[attrib]}, flattened=row)
elif attrib not in {'kind', 'etag', 'diskSpaceUsage', 'osUpdateStatus', 'tpmVersionInfo', 'activeTimeRanges', 'recentUsers', elif attrib not in {'kind', 'etag', 'diskSpaceUsage', 'osUpdateStatus', 'tpmVersionInfo', 'activeTimeRanges', 'recentUsers',
'deviceFiles', 'cpuStatusReports', 'diskVolumeReports', 'lastKnownNetwork', 'screenshotFiles', 'systemRamFreeReports'}: 'deviceFiles', 'cpuStatusReports', 'diskVolumeReports', 'lastKnownNetwork', 'screenshotFiles', 'systemRamFreeReports'}:
@@ -25311,7 +25318,7 @@ def doPrintCrOSDevices(entityList=None):
for key in ['email', 'type']: for key in ['email', 'type']:
new_row[f'recentUsers{GC.Values[GC.CSV_OUTPUT_SUBFIELD_DELIMITER]}{key}'] = recentUsers[i][key] new_row[f'recentUsers{GC.Values[GC.CSV_OUTPUT_SUBFIELD_DELIMITER]}{key}'] = recentUsers[i][key]
if i < lenDF: if i < lenDF:
for key in ['type', 'createTime']: for key in ['name', 'type', 'downloadUrl', 'createTime']:
new_row[f'deviceFiles{GC.Values[GC.CSV_OUTPUT_SUBFIELD_DELIMITER]}{key}'] = deviceFiles[i][key] new_row[f'deviceFiles{GC.Values[GC.CSV_OUTPUT_SUBFIELD_DELIMITER]}{key}'] = deviceFiles[i][key]
if i < lenCSR: if i < lenCSR:
new_row[f'cpuStatusReports{GC.Values[GC.CSV_OUTPUT_SUBFIELD_DELIMITER]}reportTime'] = cpuStatusReports[i]['reportTime'] new_row[f'cpuStatusReports{GC.Values[GC.CSV_OUTPUT_SUBFIELD_DELIMITER]}reportTime'] = cpuStatusReports[i]['reportTime']
@@ -40987,6 +40994,7 @@ CALENDAR_ACL_ROLES_MAP = {
'read': 'reader', 'read': 'reader',
'reader': 'reader', 'reader': 'reader',
'writer': 'writer', 'writer': 'writer',
'writerwithoutprivateaccess': 'writerWithoutPrivateAccess',
'none': 'none', 'none': 'none',
} }

View File

@@ -20,6 +20,9 @@ Calendar ACL roles (as seen in Calendar GUI):
* `owner` - Make changes to events and manage sharing * `owner` - Make changes to events and manage sharing
* `freebusy` & `freebusyreader` - See only free/busy (hide details) * `freebusy` & `freebusyreader` - See only free/busy (hide details)
Added `writerwithoutprivateaccess` to `<CalendarACLRole>` in 7.44.03; this will become effective 2026-06-29.
* See: https://developers.google.com/workspace/calendar/release-notes#June_01_2026
## API documentation ## API documentation
* [Calendar API - ACLs](https://developers.google.com/google-apps/calendar/v3/reference/acl) * [Calendar API - ACLs](https://developers.google.com/google-apps/calendar/v3/reference/acl)
@@ -30,10 +33,15 @@ Calendar ACL roles (as seen in Calendar GUI):
<CalendarEntity> ::= <CalendarList> | <FileSelector> | <CSVkmdSelector> | <CSVDataSelector> <CalendarEntity> ::= <CalendarList> | <FileSelector> | <CSVkmdSelector> | <CSVDataSelector>
See: https://github.com/GAM-team/GAM/wiki/Collections-of-Items See: https://github.com/GAM-team/GAM/wiki/Collections-of-Items
<CalendarACLRole> ::= editor|freebusy|freebusyreader|owner|reader|writer <CalendarACLRole> ::=
<CalendarACLScope> ::= <EmailAddress>|user:<EmailAdress>|group:<EmailAddress>|domain:<DomainName>|domain|default editor|freebusy|freebusyreader|owner|reader|writer|writerwithoutprivateaccess|none
<CalendarACLScopeList> ::= "<CalendarACLScope>(,<CalendarACLScope>)*" <CalendarACLScope> ::=
<CalendarACLScopeEntity>::= <CalendarACLScopeList> | <FileSelector> | <CSVkmdSelector> | <CSVDataSelector> <EmailAddress>|user:<EmailAdress>|group:<EmailAddress>|
domain:<DomainName>|domain|default
<CalendarACLScopeList> ::=
"<CalendarACLScope>(,<CalendarACLScope>)*"
<CalendarACLScopeEntity>::=
<CalendarACLScopeList> | <FileSelector> | <CSVkmdSelector> | <CSVDataSelector>
``` ```
## Manage calendar access ## Manage calendar access
``` ```

View File

@@ -98,6 +98,7 @@ gam oauth create
autoupdateexpiration| autoupdateexpiration|
autoupdatethrough| autoupdatethrough|
backlightinfo| backlightinfo|
bluetoothadapterinfo|
bootmode| bootmode|
chromeostype| chromeostype|
cpuinfo| cpuinfo|
@@ -131,6 +132,7 @@ gam oauth create
orgunitpath|org|ou| orgunitpath|org|ou|
osupdatestatus| osupdatestatus|
osversion| osversion|
osversioncompliance|
platformversion| platformversion|
recentusers| recentusers|
screenshotfiles| screenshotfiles|
@@ -185,25 +187,30 @@ gam oauth create
<CrOSActivityListFieldNameList> ::= "<CrOSActivityListFieldName>(,<CrOSActivityListFieldName>)*" <CrOSActivityListFieldNameList> ::= "<CrOSActivityListFieldName>(,<CrOSActivityListFieldName>)*"
<CrOSTelemetryFieldName> ::= <CrOSTelemetryFieldName> ::=
appreport|
audiostatusreport| audiostatusreport|
batteryinfo| batteryinfo|
batterystatusreport| batterystatusreport|
bootPerformancereport| bootperformancereport|
cpuinfo| cpuinfo|
cpustatusreport| cpustatusreport|
customer| customer|
deviceid| deviceid|
graphicsinfo| graphicsinfo|
graphicsstatusreport| graphicsstatusreport|
heartbeatstatusreport|
kioskappstatusreport|
memoryinfo| memoryinfo|
memorystatusreport| memorystatusreport|
name| name|
networkbandwidthreport|
networkdiagnosticsreport| networkdiagnosticsreport|
networkinfo| networkinfo|
networkstatusreport| networkstatusreport|
orgunitid| orgunitid|
osupdatestatus| osupdatestatus|
peripheralsreport| peripheralsreport|
runtimecountersreport|
serialnumber| serialnumber|
storageinfo| storageinfo|
storagestatusreport| storagestatusreport|
@@ -211,20 +218,22 @@ gam oauth create
<CrOSTelemetryFieldNameList> ::= "<CrOSTelemetryFieldName>(,<CrOSTelemetryFieldName>)*" <CrOSTelemetryFieldNameList> ::= "<CrOSTelemetryFieldName>(,<CrOSTelemetryFieldName>)*"
<CrOSTelemetryListFieldName> ::= <CrOSTelemetryListFieldName> ::=
appreport|
audiostatusreport| audiostatusreport|
batteryinfo|
batterystatusreport| batterystatusreport|
bootperformancereport| bootperformancereport|
cpuinfo|
cpustatusreport| cpustatusreport|
graphicsstatusreport| graphicsstatusreport|
heartbeatstatusreport|
kioskappstatusreport|
memorystatusreport| memorystatusreport|
networkbandwidthreport|
networkdiagnosticsreport| networkdiagnosticsreport|
networkstatusreport| networkstatusreport|
osupdatestatus| osupdatestatus|
peripheralsreport| peripheralsreport|
storagestatusreport| runtimecountersreport|
thunderboltinfo storagestatusreport
<CrOSTelemetryListFieldNameList> ::= "<CrOSTelemetryListFieldName>(,<CrOSTelemetryLIstFieldName>)*" <CrOSTelemetryListFieldNameList> ::= "<CrOSTelemetryListFieldName>(,<CrOSTelemetryLIstFieldName>)*"
``` ```
@@ -964,19 +973,21 @@ By default, Gam displays the information as an indented list of keys and values:
gam print crostelemetry [todrive <ToDriveAttribute>*] gam print crostelemetry [todrive <ToDriveAttribute>*]
[(ou|org|orgunit|ou_and_children <OrgUnitItem>)|(cros_sn <SerialNumber>)|(filter <String>)] [(ou|org|orgunit|ou_and_children <OrgUnitItem>)|(cros_sn <SerialNumber>)|(filter <String>)]
<CrOSTelemetryFieldName>* [fields <CrOSTelemetryFieldNameList>] <CrOSTelemetryFieldName>* [fields <CrOSTelemetryFieldNameList>]
[reverselists <CrOSTelemetryListFieldNameList>] [reverselists <CrOSTelemetryListFieldNameList>] [oneitemperrow]
[start <Date>] [end <Date>] [listlimit <Number>] [start <Date>] [end <Date>] [listlimit <Number>]
[formatjson [quotechar <Character>]] [formatjson [quotechar <Character>]]
``` ```
Use these options to select CrOS devices; if none are chosen, all CrOS devices in the account are selected. Use these options to select CrOS devices; if none are chosen, all CrOS devices in the account are selected.
- `ou|org|orgunit <OrgUnitItem>` - Select CrOS devices directly in the OU `<OrgUnitItem>` - `ou|org|orgunit <OrgUnitItem>` - Select CrOS devices directly in the OU `<OrgUnitItem>`
- `ou_and_children <OrgUnitItem>` - Select CrOS devices in the OU `<OrgUnitItem>` and its sub OUs - `ou_and_children <OrgUnitItem>` - Select CrOS devices in the OU `<OrgUnitItem>` and its sub OUs
- `cros_sn <SerialNumber>` - Select the CrOS device with serial number `<SerialNumber>`. - `cros_sn <SerialNumber>` - Select the CrOS device with serial number `<SerialNumber>`.
- `filter <String>` - Select the CrOS device with a filter. - `filter <String>` - Select the CrOS device with a filter.
Use these options to limit/modify the displayed lists.
- `listlimit <Number>` - Limits the number of repetitions to `<Number>`; if not specified or `<Number>` equals zero, there is no limit. - `listlimit <Number>` - Limits the number of repetitions to `<Number>`; if not specified or `<Number>` equals zero, there is no limit.
- `start <Date>` and `end <Date>` - Constrain list `reportTime` to fall within the specified `<Dates>`. If a `<Date>` isn't specified, there is no filtering in that range. - `start <Date>` and `end <Date>` - Constrain list `reportTime` to fall within the specified `<Dates>`. If a `<Date>` isn't specified, there is no filtering in that range.
- `reverselists <CrOSTelemetryListFieldNameList>` - For each list, change order from ascending (oldest to newest) to descending (newest to oldest); this makes it easy to get the `N` most recent values with `listlimit N reverselists cpustatusreport,memorystatusreport` - `reverselists <CrOSTelemetryListFieldNameList>` - For each list, change order from descending (newest to oldest) to ascending (oldest to newest)
- `oneitemrerrow` - Display each instance of a list item on a separate row; by default, all list items are displayed on a single row
By default, all telemetry data is displayed, use the following to select specific fields: By default, all telemetry data is displayed, use the following to select specific fields:
- `<CrOSTelemetryFieldName>*` - Specify fields individually - `<CrOSTelemetryFieldName>*` - Specify fields individually

View File

@@ -10,6 +10,30 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
### 7.44.03
Added `writerwithoutprivateaccess` to `<CalendarACLRole>`; this will become effective 2026-06-29.
* See: https://developers.google.com/workspace/calendar/release-notes#June_01_2026
### 7.44.02
Added fields `bluetoothadapterinfo` and `osversioncompliance` to `<CrOSFieldName>` for use
in `gam info|print cros`.
### 7.44.01
Added option `oneitemperrow` to `gam print crostelemetry` to have each of a device's
report field entries displayed on a separate row with all of the other device fields.
Added additional fields to `<CrOSTelemetryFieldName>`and `<CrOSTelemetryListFieldName>`:
```
appreport
heartbeatstatusreport
kioskappstatusreport
networkbandwidthreport
runtimecountersreport
```
### 7.44.00 ### 7.44.00
Added support for User data `archivalTime` and `suspensionTime` that is available Added support for User data `archivalTime` and `suspensionTime` that is available

View File

@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
``` ```
gamteam@server:/Users/gamteam$ rm -f /Users/gamteam/GAMConfig/oauth2.txt gamteam@server:/Users/gamteam$ rm -f /Users/gamteam/GAMConfig/oauth2.txt
gamteam@server:/Users/gamteam$ gam version gamteam@server:/Users/gamteam$ gam version
GAM 7.44.00 - https://github.com/GAM-team/GAM - pyinstaller GAM 7.44.03 - https://github.com/GAM-team/GAM - pyinstaller
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.5 64-bit final Python 3.14.5 64-bit final
macOS Tahoe 26.5 arm64 macOS Tahoe 26.5 arm64
@@ -1034,7 +1034,7 @@ writes the credentials into the file oauth2.txt.
``` ```
C:\>del C:\GAMConfig\oauth2.txt C:\>del C:\GAMConfig\oauth2.txt
C:\>gam version C:\>gam version
GAM 7.44.00 - https://github.com/GAM-team/GAM - pythonsource GAM 7.44.03 - https://github.com/GAM-team/GAM - pythonsource
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.5 64-bit final Python 3.14.5 64-bit final
Windows 11 10.0.26200 AMD64 Windows 11 10.0.26200 AMD64

View File

@@ -14,6 +14,9 @@ Calendar ACL roles (as seen in Calendar GUI):
* `owner` - Make changes to events and manage sharing * `owner` - Make changes to events and manage sharing
* `freebusy` & `freebusyreader` - See only free/busy (hide details) * `freebusy` & `freebusyreader` - See only free/busy (hide details)
Added `writerwithoutprivateaccess` to `<CalendarACLRole>` in 7.44.03; this will become effective 2026-06-29.
* See: https://developers.google.com/workspace/calendar/release-notes#June_01_2026
## API documentation ## API documentation
* [Calendar API - ACLs](https://developers.google.com/google-apps/calendar/v3/reference/acl) * [Calendar API - ACLs](https://developers.google.com/google-apps/calendar/v3/reference/acl)
@@ -55,10 +58,10 @@ Calendar ACL roles (as seen in Calendar GUI):
(timezone <TimeZone>) (timezone <TimeZone>)
<CalendarACLRole> ::= <CalendarACLRole> ::=
editor|freebusy|freebusyreader|owner|reader|writer editor|freebusy|freebusyreader|owner|reader|writer|writerwithoutprivateaccess|none
<CalendarACLScope> ::= <CalendarACLScope> ::=
<EmailAddress>|user:<EmailAdress>|group:<EmailAddress>| <EmailAddress>|user:<EmailAdress>|group:<EmailAddress>|
domain:<DomainName>|domain|default domain:<DomainName>|domain|default
<CalendarACLScopeList> ::= <CalendarACLScopeList> ::=
"<CalendarACLScope>(,<CalendarACLScope>)*" "<CalendarACLScope>(,<CalendarACLScope>)*"
<CalendarACLScopeEntity>::= <CalendarACLScopeEntity>::=

View File

@@ -3,7 +3,7 @@
Print the current version of Gam with details Print the current version of Gam with details
``` ```
gam version gam version
GAM 7.44.00 - https://github.com/GAM-team/GAM - pyinstaller GAM 7.44.03 - https://github.com/GAM-team/GAM - pyinstaller
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.5 64-bit final Python 3.14.5 64-bit final
macOS Tahoe 26.5 arm64 macOS Tahoe 26.5 arm64
@@ -15,7 +15,7 @@ Time: 2026-02-15T07:51:00-08:00
Print the current version of Gam with details and time offset information Print the current version of Gam with details and time offset information
``` ```
gam version timeoffset gam version timeoffset
GAM 7.44.00 - https://github.com/GAM-team/GAM - pyinstaller GAM 7.44.03 - https://github.com/GAM-team/GAM - pyinstaller
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.5 64-bit final Python 3.14.5 64-bit final
macOS Tahoe 26.5 arm64 macOS Tahoe 26.5 arm64
@@ -27,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second
Print the current version of Gam with extended details and SSL information Print the current version of Gam with extended details and SSL information
``` ```
gam version extended gam version extended
GAM 7.44.00 - https://github.com/GAM-team/GAM - pyinstaller GAM 7.44.03 - https://github.com/GAM-team/GAM - pyinstaller
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.5 64-bit final Python 3.14.5 64-bit final
macOS Tahoe 26.5 arm64 macOS Tahoe 26.5 arm64
@@ -68,7 +68,7 @@ MacOS High Sierra 10.13.6 x86_64
Path: /Users/gamteam/bin/gam7 Path: /Users/gamteam/bin/gam7
Version Check: Version Check:
Current: 5.35.08 Current: 5.35.08
Latest: 7.44.00 Latest: 7.44.03
echo $? echo $?
1 1
``` ```
@@ -76,7 +76,7 @@ echo $?
Print the current version number without details Print the current version number without details
``` ```
gam version simple gam version simple
7.44.00 7.44.03
``` ```
In Linux/MacOS you can do: In Linux/MacOS you can do:
``` ```
@@ -86,7 +86,7 @@ echo $VER
Print the current version of Gam and address of this Wiki Print the current version of Gam and address of this Wiki
``` ```
gam help gam help
GAM 7.44.00 - https://github.com/GAM-team/GAM GAM 7.44.03 - https://github.com/GAM-team/GAM
GAM Team <google-apps-manager@googlegroups.com> GAM Team <google-apps-manager@googlegroups.com>
Python 3.14.5 64-bit final Python 3.14.5 64-bit final
macOS Tahoe 26.5 arm64 macOS Tahoe 26.5 arm64