gam7 7.6.14__py3-none-any.whl → 7.7.1__py3-none-any.whl

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.
gam/__init__.py CHANGED
@@ -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.06.14'
28
+ __version__ = '7.07.01'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -5655,8 +5655,8 @@ def getGDataUserCredentials(api, user, i, count):
5655
5655
  handleOAuthTokenError(e, True, True, i, count)
5656
5656
  return (userEmail, None)
5657
5657
 
5658
- def getContactsObject(contactFeed):
5659
- contactsObject = initGDataObject(gdata.apps.contacts.service.ContactsService(contactFeed=contactFeed),
5658
+ def getContactsObject():
5659
+ contactsObject = initGDataObject(gdata.apps.contacts.service.ContactsService(contactFeed=True),
5660
5660
  API.CONTACTS)
5661
5661
  return (GC.Values[GC.DOMAIN], contactsObject)
5662
5662
 
@@ -19996,7 +19996,9 @@ def dedupEmailAddressMatches(contactsManager, emailMatchType, fields):
19996
19996
  fields[CONTACT_EMAILS] = savedAddresses
19997
19997
  return updateRequired
19998
19998
 
19999
- def _createContact():
19999
+ # gam create contact <ContactAttribute>+
20000
+ # [(csv [todrive <ToDriveAttribute>*] (addcsvdata <FieldName> <String>)*))| returnidonly]
20001
+ def doCreateDomainContact():
20000
20002
  entityType = Ent.DOMAIN
20001
20003
  contactsManager = ContactsManager()
20002
20004
  parameters = {'csvPF': None, 'titles': ['Domain', CONTACT_ID], 'addCSVData': {}, 'returnIdOnly': False}
@@ -20007,7 +20009,7 @@ def _createContact():
20007
20009
  csvPF.AddTitles(sorted(addCSVData.keys()))
20008
20010
  returnIdOnly = parameters['returnIdOnly']
20009
20011
  contactEntry = contactsManager.FieldsToContact(fields)
20010
- user, contactsObject = getContactsObject(True)
20012
+ user, contactsObject = getContactsObject()
20011
20013
  try:
20012
20014
  contact = callGData(contactsObject, 'CreateContact',
20013
20015
  throwErrors=[GDATA.BAD_REQUEST, GDATA.SERVICE_NOT_APPLICABLE, GDATA.FORBIDDEN],
@@ -20032,11 +20034,6 @@ def _createContact():
20032
20034
  if csvPF:
20033
20035
  csvPF.writeCSVfile('Contacts')
20034
20036
 
20035
- # gam create contact <ContactAttribute>+
20036
- # [(csv [todrive <ToDriveAttribute>*] (addcsvdata <FieldName> <String>)*))| returnidonly]
20037
- def doCreateDomainContact():
20038
- _createContact()
20039
-
20040
20037
  def _clearUpdateContacts(updateContacts):
20041
20038
  entityType = Ent.DOMAIN
20042
20039
  contactsManager = ContactsManager()
@@ -20058,7 +20055,7 @@ def _clearUpdateContacts(updateContacts):
20058
20055
  unknownArgumentExit()
20059
20056
  if not contactClear['emailClearPattern']:
20060
20057
  missingArgumentExit('emailclearpattern')
20061
- user, contactsObject = getContactsObject(True)
20058
+ user, contactsObject = getContactsObject()
20062
20059
  if queriedContacts:
20063
20060
  entityList = queryContacts(contactsObject, contactQuery)
20064
20061
  if entityList is None:
@@ -20129,7 +20126,8 @@ def doClearDomainContacts():
20129
20126
  def doUpdateDomainContacts():
20130
20127
  _clearUpdateContacts(True)
20131
20128
 
20132
- def _dedupContacts():
20129
+ # gam dedup contacts <ContactEntity>|<ContactSelection> [matchType [<Boolean>]]
20130
+ def doDedupDomainContacts():
20133
20131
  entityType = Ent.DOMAIN
20134
20132
  contactsManager = ContactsManager()
20135
20133
  contactQuery = _initContactQueryAttributes()
@@ -20140,7 +20138,7 @@ def _dedupContacts():
20140
20138
  emailMatchType = getBoolean()
20141
20139
  else:
20142
20140
  _getContactQueryAttributes(contactQuery, myarg, -1, False)
20143
- user, contactsObject = getContactsObject(True)
20141
+ user, contactsObject = getContactsObject()
20144
20142
  contacts = queryContacts(contactsObject, contactQuery)
20145
20143
  if contacts is None:
20146
20144
  return
@@ -20180,15 +20178,12 @@ def _dedupContacts():
20180
20178
  break
20181
20179
  Ind.Decrement()
20182
20180
 
20183
- # gam dedup contacts <ContactEntity>|<ContactSelection> [matchType [<Boolean>]]
20184
- def doDedupDomainContacts():
20185
- _dedupContacts()
20186
-
20187
- def _deleteContacts():
20181
+ # gam delete contacts <ContactEntity>|<ContactSelection>
20182
+ def doDeleteDomainContacts():
20188
20183
  entityType = Ent.DOMAIN
20189
20184
  contactsManager = ContactsManager()
20190
20185
  entityList, contactQuery, queriedContacts = _getContactEntityList(-1, False)
20191
- user, contactsObject = getContactsObject(True)
20186
+ user, contactsObject = getContactsObject()
20192
20187
  if queriedContacts:
20193
20188
  entityList = queryContacts(contactsObject, contactQuery)
20194
20189
  if entityList is None:
@@ -20228,10 +20223,6 @@ def _deleteContacts():
20228
20223
  break
20229
20224
  Ind.Decrement()
20230
20225
 
20231
- # gam delete contacts <ContactEntity>|<ContactSelection>
20232
- def doDeleteDomainContacts():
20233
- _deleteContacts()
20234
-
20235
20226
  CONTACT_TIME_OBJECTS = {CONTACT_UPDATED}
20236
20227
  CONTACT_FIELDS_WITH_CRS_NLS = {CONTACT_NOTES, CONTACT_BILLING_INFORMATION}
20237
20228
 
@@ -20299,7 +20290,10 @@ def _getContactFieldsList(contactsManager, displayFieldsList):
20299
20290
  else:
20300
20291
  invalidChoiceExit(field, contactsManager.CONTACT_ARGUMENT_TO_PROPERTY_MAP, True)
20301
20292
 
20302
- def _infoContacts(contactFeed):
20293
+ # gam info contacts <ContactEntity>
20294
+ # [basic|full]
20295
+ # [fields <ContactFieldNameList>] [formatjson]
20296
+ def doInfoDomainContacts():
20303
20297
  entityType = Ent.DOMAIN
20304
20298
  contactsManager = ContactsManager()
20305
20299
  entityList = getEntityList(Cmd.OB_CONTACT_ENTITY)
@@ -20314,7 +20308,7 @@ def _infoContacts(contactFeed):
20314
20308
  _getContactFieldsList(contactsManager, displayFieldsList)
20315
20309
  else:
20316
20310
  FJQC.GetFormatJSON(myarg)
20317
- user, contactsObject = getContactsObject(contactFeed)
20311
+ user, contactsObject = getContactsObject()
20318
20312
  j = 0
20319
20313
  jcount = len(entityList)
20320
20314
  if not FJQC.formatJSON:
@@ -20342,19 +20336,13 @@ def _infoContacts(contactFeed):
20342
20336
  break
20343
20337
  Ind.Decrement()
20344
20338
 
20345
- # gam info contacts <ContactEntity>
20346
- # [basic|full]
20347
- # [fields <ContactFieldNameList>] [formatjson]
20348
- def doInfoDomainContacts():
20349
- _infoContacts(True)
20350
-
20351
- # gam info gal <ContactEntity>
20352
- # [basic|full]
20339
+ # gam print contacts [todrive <ToDriveAttribute>*] <ContactSelection>
20340
+ # [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
20341
+ # [fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
20342
+ # gam show contacts <ContactSelection>
20343
+ # [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
20353
20344
  # [fields <ContactFieldNameList>] [formatjson]
20354
- def doInfoGAL():
20355
- _infoContacts(False)
20356
-
20357
- def _printShowContacts(contactFeed):
20345
+ def doPrintShowDomainContacts():
20358
20346
  entityType = Ent.DOMAIN
20359
20347
  entityTypeName = Ent.Singular(entityType)
20360
20348
  contactsManager = ContactsManager()
@@ -20380,7 +20368,7 @@ def _printShowContacts(contactFeed):
20380
20368
  pass
20381
20369
  else:
20382
20370
  FJQC.GetFormatJSONQuoteChar(myarg, True)
20383
- user, contactsObject = getContactsObject(contactFeed)
20371
+ user, contactsObject = getContactsObject()
20384
20372
  contacts = queryContacts(contactsObject, contactQuery)
20385
20373
  if countsOnly:
20386
20374
  jcount = countLocalContactSelects(contactsManager, contacts, contactQuery)
@@ -20466,24 +20454,6 @@ def _printShowContacts(contactFeed):
20466
20454
  if csvPF:
20467
20455
  csvPF.writeCSVfile(CSVTitle)
20468
20456
 
20469
- # gam print contacts [todrive <ToDriveAttribute>*] <ContactSelection>
20470
- # [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
20471
- # [fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
20472
- # gam show contacts <ContactSelection>
20473
- # [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
20474
- # [fields <ContactFieldNameList>] [formatjson]
20475
- def doPrintShowDomainContacts():
20476
- _printShowContacts(True)
20477
-
20478
- # gam print gal [todrive <ToDriveAttribute>*] <ContactSelection>
20479
- # [basic|full] [orderby <ContactOrderByFieldName> [ascending|descending]]
20480
- # [fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
20481
- # gam show gal <ContactSelection>
20482
- # [basic|full|countsonly] [orderby <ContactOrderByFieldName> [ascending|descending]]
20483
- # [fields <ContactFieldNameList>] [formatjson]
20484
- def doPrintShowGAL():
20485
- _printShowContacts(False)
20486
-
20487
20457
  # Prople commands utilities
20488
20458
  #
20489
20459
  def normalizePeopleResourceName(resourceName):
@@ -28213,75 +28183,171 @@ def doDeleteChromePolicy():
28213
28183
  except (GAPI.notFound, GAPI.permissionDenied, GAPI.invalidArgument, GAPI.serviceNotAvailable, GAPI.quotaExceeded) as e:
28214
28184
  entityActionFailedWarning(kvList, str(e))
28215
28185
 
28216
- CHROME_SCHEMA_TYPE_MESSAGE = {
28217
- 'chrome.users.AutoUpdateCheckPeriodNew':
28218
- {'autoupdatecheckperiodminutesnew':
28219
- {'casedField': 'autoUpdateCheckPeriodMinutesNew',
28220
- 'type': 'duration', 'minVal': 1, 'maxVal': 720, 'scale': 60}},
28186
+ CHROME_SCHEMA_SPECIAL_CASES = {
28221
28187
  'chrome.users.AutoUpdateCheckPeriodNewV2':
28222
28188
  {'autoupdatecheckperiodminutesnew':
28223
28189
  {'casedField': 'autoUpdateCheckPeriodMinutesNew',
28224
- 'type': 'duration', 'minVal': 1, 'maxVal': 720, 'scale': 60}},
28225
- 'chrome.users.BrowserSwitcherDelayDuration':
28190
+ 'type': 'duration', 'minVal': 1, 'maxVal': 720}},
28191
+ 'chrome.users.Avatar':
28192
+ {'useravatarimage':
28193
+ {'casedField': 'userAvatarImage',
28194
+ 'type': 'downloadUri'}},
28195
+ 'chrome.users.BrowserSwitcherDelayDurationV2':
28226
28196
  {'browserswitcherdelayduration':
28227
28197
  {'casedField': 'browserSwitcherDelayDuration',
28228
- 'type': 'duration', 'minVal': 0, 'maxVal': 30, 'scale': 1}},
28198
+ 'type': 'duration', 'minVal': 0, 'maxVal': 30}},
28199
+ 'chrome.users.BrowsingDataLifetimeV2':
28200
+ {'browsinghistoryttl':
28201
+ {'casedField': 'browsingHistoryTtl',
28202
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28203
+ 'downloadhistoryttl':
28204
+ {'casedField': 'downloadHistoryTtl',
28205
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28206
+ 'cookiesandothersitedatattl':
28207
+ {'casedField': 'cookiesAndOtherSiteDataTtl',
28208
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28209
+ 'cachedimagesandfilesttl':
28210
+ {'casedField': 'cachedImagesAndFilesTtl',
28211
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28212
+ 'passwordsigninttl':
28213
+ {'casedField': 'passwordSigninTtl',
28214
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28215
+ 'autofillttl':
28216
+ {'casedField': 'autofillTtl',
28217
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28218
+ 'sitesettingsttl':
28219
+ {'casedField': 'siteSettingsTtl',
28220
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28221
+ 'hostedappdatattl':
28222
+ {'casedField': 'hostedAppDataTtl',
28223
+ 'type': 'duration', 'minVal': 1, 'maxVal': None}},
28229
28224
  'chrome.users.CloudReportingUploadFrequencyV2':
28230
28225
  {'cloudreportinguploadfrequency':
28231
28226
  {'casedField': 'cloudReportingUploadFrequency',
28232
- 'type': 'count', 'minVal': 3, 'maxVal': 24, 'scale': 1}},
28233
- 'chrome.users.FetchKeepaliveDurationSecondsOnShutdown':
28227
+ 'type': 'duration', 'minVal': 3, 'maxVal': 24}},
28228
+ 'chrome.users.FetchKeepaliveDurationSecondsOnShutdownV2':
28234
28229
  {'fetchkeepalivedurationsecondsonshutdown':
28235
28230
  {'casedField': 'fetchKeepaliveDurationSecondsOnShutdown',
28236
- 'type': 'duration', 'minVal': 0, 'maxVal': 5, 'scale': 1}},
28237
- 'chrome.users.MaxInvalidationFetchDelay':
28231
+ 'type': 'duration', 'minVal': 0, 'maxVal': 5}},
28232
+ 'chrome.users.MaxInvalidationFetchDelayV2':
28238
28233
  {'maxinvalidationfetchdelay':
28239
28234
  {'casedField': 'maxInvalidationFetchDelay',
28240
- 'type': 'duration', 'minVal': 1, 'maxVal': 30, 'scale': 1, 'default': 10}},
28235
+ 'type': 'duration', 'minVal': 1, 'maxVal': 30, 'default': 10}},
28241
28236
  'chrome.users.PrintingMaxSheetsAllowed':
28242
28237
  {'printingmaxsheetsallowednullable':
28243
28238
  {'casedField': 'printingMaxSheetsAllowedNullable',
28244
- 'type': 'value', 'minVal': 1, 'maxVal': None, 'scale': 1}},
28245
- 'chrome.users.PrintJobHistoryExpirationPeriodNew':
28239
+ 'type': 'value', 'minVal': 1, 'maxVal': None}},
28240
+ 'chrome.users.PrintJobHistoryExpirationPeriodNewV2':
28246
28241
  {'printjobhistoryexpirationperioddaysnew':
28247
28242
  {'casedField': 'printJobHistoryExpirationPeriodDaysNew',
28248
- 'type': 'duration', 'minVal': -1, 'maxVal': None, 'scale': 86400}},
28243
+ 'type': 'duration', 'minVal': -1, 'maxVal': None}},
28249
28244
  'chrome.users.RelaunchNotificationWithDurationV2':
28250
28245
  {'relaunchnotificationperiodduration':
28251
28246
  {'casedField': 'relaunchNotificationPeriodDuration',
28252
- 'type': 'duration', 'minVal': -1, 'maxVal': None, 'scale': 3600}},
28253
- 'chrome.users.SecurityTokenSessionSettings':
28247
+ 'type': 'duration', 'minVal': -1, 'maxVal': None}},
28248
+ 'chrome.users.SecurityTokenSessionSettingsV2':
28254
28249
  {'securitytokensessionnotificationseconds':
28255
28250
  {'casedField': 'securityTokenSessionNotificationSeconds',
28256
- 'type': 'duration', 'minVal': 0, 'maxVal': 9999, 'scale': 1}},
28257
- 'chrome.users.SessionLength':
28251
+ 'type': 'duration', 'minVal': 0, 'maxVal': 9999}},
28252
+ 'chrome.users.SessionLengthV2':
28258
28253
  {'sessiondurationlimit':
28259
28254
  {'casedField': 'sessionDurationLimit',
28260
- 'type': 'duration', 'minVal': 1, 'maxVal': 1440, 'scale': 60}},
28255
+ 'type': 'duration', 'minVal': 1, 'maxVal': 1440}},
28261
28256
  'chrome.users.UpdatesSuppressed':
28262
28257
  {'updatessuppresseddurationmin':
28263
28258
  {'casedField': 'updatesSuppressedDurationMin',
28264
- 'type': 'count', 'minVal': 1, 'maxVal': 1440, 'scale': 1},
28259
+ 'type': 'count', 'minVal': 1, 'maxVal': 1440},
28265
28260
  'updatessuppressedstarttime':
28266
28261
  {'casedField': 'updatesSuppressedStartTime',
28267
28262
  'type': 'timeOfDay'}},
28268
- 'chrome.devices.managedguest.Avatar':
28269
- {'useravatarimage':
28270
- {'casedField': 'userAvatarImage',
28271
- 'type': 'downloadUri'}},
28272
- 'chrome.devices.managedguest.Wallpaper':
28263
+ 'chrome.users.Wallpaper':
28273
28264
  {'wallpaperimage':
28274
28265
  {'casedField': 'wallpaperImage',
28275
28266
  'type': 'downloadUri'}},
28267
+ 'chrome.devices.EnableReportUploadFrequencyV2':
28268
+ {'reportdeviceuploadfrequency':
28269
+ {'casedField': 'reportDeviceUploadFrequency',
28270
+ 'type': 'duration', 'minVal': 60, 'maxVal': 25379}},
28271
+ 'chrome.devices.ScheduledRebootDurationV2':
28272
+ {'uptimelimitduration':
28273
+ {'casedField': 'uptimeLimitDuration',
28274
+ 'type': 'duration', 'minVal': 1, 'maxVal': 365}},
28276
28275
  'chrome.devices.SignInWallpaperImage':
28277
28276
  {'devicewallpaperimage':
28278
28277
  {'casedField': 'deviceWallpaperImage',
28279
28278
  'type': 'downloadUri'}},
28280
- 'chrome.users.Avatar':
28279
+ 'chrome.devices.kiosk.AcPowerSettingsV2':
28280
+ {'acidletimeout':
28281
+ {'casedField': 'acIdleTimeout',
28282
+ 'type': 'duration', 'minVal': 1, 'maxVal': 35000},
28283
+ 'acwarningtimeout':
28284
+ {'casedField': 'acWarningTimeout',
28285
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000},
28286
+ 'acdimtimeout':
28287
+ {'casedField': 'acDimTimeout',
28288
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000},
28289
+ 'acscreenofftimeout':
28290
+ {'casedField': 'acScreenOffTimeout',
28291
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000}},
28292
+ 'chrome.devices.kiosk.BatteryPowerSettingsV2':
28293
+ {'batteryidletimeout':
28294
+ {'casedField': 'batteryIdleTimeout',
28295
+ 'type': 'duration', 'minVal': 1, 'maxVal': 35000},
28296
+ 'batterywarningtimeout':
28297
+ {'casedField': 'batteryWarningTimeout',
28298
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000},
28299
+ 'batterydimtimeout':
28300
+ {'casedField': 'batteryDimTimeout',
28301
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000},
28302
+ 'batteryscreenofftimeout':
28303
+ {'casedField': 'batteryScreenOffTimeout',
28304
+ 'type': 'duration', 'minVal': 0, 'maxVal': 35000}},
28305
+ 'chrome.devices.managedguest.Avatar':
28281
28306
  {'useravatarimage':
28282
28307
  {'casedField': 'userAvatarImage',
28283
28308
  'type': 'downloadUri'}},
28284
- 'chrome.users.Wallpaper':
28309
+ 'chrome.devices.managedguest.BrowsingDataLifetimeV2':
28310
+ {'browsinghistoryttl':
28311
+ {'casedField': 'browsingHistoryTtl',
28312
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28313
+ 'downloadhistoryttl':
28314
+ {'casedField': 'downloadHistoryTtl',
28315
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28316
+ 'cookiesandothersitedatattl':
28317
+ {'casedField': 'cookiesAndOtherSiteDataTtl',
28318
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28319
+ 'cachedimagesandfilesttl':
28320
+ {'casedField': 'cachedImagesAndFilesTtl',
28321
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28322
+ 'passwordsigninttl':
28323
+ {'casedField': 'passwordSigninTtl',
28324
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28325
+ 'autofillttl':
28326
+ {'casedField': 'autofillTtl',
28327
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28328
+ 'sitesettingsttl':
28329
+ {'casedField': 'siteSettingsTtl',
28330
+ 'type': 'duration', 'minVal': 1, 'maxVal': None},
28331
+ 'hostedappdatattl':
28332
+ {'casedField': 'hostedAppDataTtl',
28333
+ 'type': 'duration', 'minVal': 1, 'maxVal': None}},
28334
+ 'chrome.devices.managedguest.MaxInvalidationFetchDelayV2':
28335
+ {'maxinvalidationfetchdelay':
28336
+ {'casedField': 'maxInvalidationFetchDelay',
28337
+ 'type': 'duration', 'minVal': 1, 'maxVal': 30, 'default': 10}},
28338
+ 'chrome.devices.managedguest.PrintJobHistoryExpirationPeriodNewV2':
28339
+ {'printjobhistoryexpirationperioddaysnew':
28340
+ {'casedField': 'printJobHistoryExpirationPeriodDaysNew',
28341
+ 'type': 'duration', 'minVal': -1, 'maxVal': None}},
28342
+ 'chrome.devices.managedguest.SecurityTokenSessionSettingsV2':
28343
+ {'securitytokensessionnotificationseconds':
28344
+ {'casedField': 'securityTokenSessionNotificationSeconds',
28345
+ 'type': 'duration', 'minVal': 0, 'maxVal': 9999}},
28346
+ 'chrome.devices.managedguest.SessionLengthV2':
28347
+ {'sessiondurationlimit':
28348
+ {'casedField': 'sessionDurationLimit',
28349
+ 'type': 'duration', 'minVal': 1, 'maxVal': 1440}},
28350
+ 'chrome.devices.managedguest.Wallpaper':
28285
28351
  {'wallpaperimage':
28286
28352
  {'casedField': 'wallpaperImage',
28287
28353
  'type': 'downloadUri'}},
@@ -28296,9 +28362,7 @@ CHROME_TARGET_VERSION_PATTERN = re.compile(r'^(\d{1,4}\.){1,4}$')
28296
28362
  # [(printerid <PrinterID>)|(appid <AppID>)]
28297
28363
  def doUpdateChromePolicy():
28298
28364
  def getSpecialVtypeValue(vtype, value):
28299
- if vtype == 'duration':
28300
- return {vtype: f'{value}s'}
28301
- if vtype in {'value', 'downloadUri'}:
28365
+ if vtype in {'duration', 'value', 'downloadUri'}:
28302
28366
  return {vtype: value}
28303
28367
  if vtype == 'count':
28304
28368
  return value
@@ -28356,8 +28420,8 @@ def doUpdateChromePolicy():
28356
28420
  for field in jsonData.get('fields', []):
28357
28421
  casedField = field['name']
28358
28422
  lowerField = casedField.lower()
28359
- # Handle TYPE_MESSAGE fields with durations, values, counts and timeOfDay as special cases
28360
- tmschema = CHROME_SCHEMA_TYPE_MESSAGE.get(schemaName, {}).get(lowerField)
28423
+ # Handle fields with durations, values, counts and timeOfDay as special cases
28424
+ tmschema = CHROME_SCHEMA_SPECIAL_CASES.get(schemaName, {}).get(lowerField)
28361
28425
  if tmschema:
28362
28426
  body['requests'][-1]['policyValue']['value'][casedField] = getSpecialVtypeValue(tmschema['type'], field['value'])
28363
28427
  body['requests'][-1]['updateMask'] += f'{casedField},'
@@ -28393,8 +28457,8 @@ def doUpdateChromePolicy():
28393
28457
  body['requests'][-1]['policyValue']['value'][casedField] = value
28394
28458
  body['requests'][-1]['updateMask'] += f'{casedField},'
28395
28459
  break
28396
- # Handle TYPE_MESSAGE fields with durations, values, counts and timeOfDay as special cases
28397
- tmschema = CHROME_SCHEMA_TYPE_MESSAGE.get(schemaName, {}).get(field)
28460
+ # Handle fields with durations, values, counts and timeOfDay as special cases
28461
+ tmschema = CHROME_SCHEMA_SPECIAL_CASES.get(schemaName, {}).get(field)
28398
28462
  if tmschema:
28399
28463
  casedField = tmschema['casedField']
28400
28464
  vtype = tmschema['type']
@@ -28402,9 +28466,9 @@ def doUpdateChromePolicy():
28402
28466
  value = getString(Cmd.OB_STRING)
28403
28467
  elif vtype != 'timeOfDay':
28404
28468
  if 'default' not in tmschema:
28405
- value = getInteger(minVal=tmschema['minVal'], maxVal=tmschema['maxVal'])*tmschema['scale']
28469
+ value = getInteger(minVal=tmschema['minVal'], maxVal=tmschema['maxVal'])
28406
28470
  else:
28407
- value = getIntegerEmptyAllowed(minVal=tmschema['minVal'], maxVal=tmschema['maxVal'], default=tmschema['default'])*tmschema['scale']
28471
+ value = getIntegerEmptyAllowed(minVal=tmschema['minVal'], maxVal=tmschema['maxVal'], default=tmschema['default'])
28408
28472
  else:
28409
28473
  value = getHHMM()
28410
28474
  body['requests'][-1]['policyValue']['value'][casedField] = getSpecialVtypeValue(vtype, value)
@@ -28537,20 +28601,14 @@ def doPrintShowChromePolicies():
28537
28601
  'chrome.users.apps.ManagedConfiguration'} and 'managedConfiguration' in values:
28538
28602
  values['managedConfiguration'] = json.dumps(values['managedConfiguration'], ensure_ascii=False).replace('\\n', '').replace('\\"', '"')[1:-1]
28539
28603
  for setting, value in values.items():
28540
- # Handle TYPE_MESSAGE fields with durations, values, counts and timeOfDay as special cases
28541
- schema = CHROME_SCHEMA_TYPE_MESSAGE.get(name, {}).get(setting.lower())
28604
+ # Handle fields with durations, values, counts and timeOfDay as special cases
28605
+ schema = CHROME_SCHEMA_SPECIAL_CASES.get(name, {}).get(setting.lower())
28542
28606
  if schema and setting == schema['casedField']:
28543
28607
  vtype = schema['type']
28544
- if vtype in {'duration', 'value'}:
28608
+ if vtype in {'duration', 'value', 'downloadUri'}:
28545
28609
  value = value.get(vtype, '')
28546
- if value:
28547
- if value.endswith('s'):
28548
- value = value[:-1]
28549
- value = int(value) // schema['scale']
28550
28610
  elif vtype == 'count':
28551
28611
  pass
28552
- elif vtype == 'downloadUri':
28553
- value = value.get(vtype, '')
28554
28612
  else: #timeOfDay
28555
28613
  hours = value.get(vtype, {}).get('hours', 0)
28556
28614
  minutes = value.get(vtype, {}).get('minutes', 0)
@@ -75645,7 +75703,6 @@ MAIN_COMMANDS_WITH_OBJECTS = {
75645
75703
  Cmd.ARG_DRIVEFILEACL: doInfoDriveFileACLs,
75646
75704
  Cmd.ARG_DRIVELABEL: doInfoDriveLabels,
75647
75705
  Cmd.ARG_INSTANCE: doInfoInstance,
75648
- Cmd.ARG_GAL: doInfoGAL,
75649
75706
  Cmd.ARG_GROUP: doInfoGroups,
75650
75707
  Cmd.ARG_GROUPMEMBERS: doInfoGroupMembers,
75651
75708
  Cmd.ARG_INBOUNDSSOASSIGNMENT: doInfoInboundSSOAssignment,
@@ -75740,7 +75797,6 @@ MAIN_COMMANDS_WITH_OBJECTS = {
75740
75797
  Cmd.ARG_DRIVELABEL: doPrintShowDriveLabels,
75741
75798
  Cmd.ARG_DRIVELABELPERMISSION: doPrintShowDriveLabelPermissions,
75742
75799
  Cmd.ARG_FEATURE: doPrintShowFeatures,
75743
- Cmd.ARG_GAL: doPrintShowGAL,
75744
75800
  Cmd.ARG_GROUP: doPrintGroups,
75745
75801
  Cmd.ARG_GROUPMEMBERS: doPrintGroupMembers,
75746
75802
  Cmd.ARG_GROUPTREE: doPrintShowGroupTree,
@@ -75858,7 +75914,6 @@ MAIN_COMMANDS_WITH_OBJECTS = {
75858
75914
  Cmd.ARG_DRIVELABEL: doPrintShowDriveLabels,
75859
75915
  Cmd.ARG_DRIVELABELPERMISSION: doPrintShowDriveLabelPermissions,
75860
75916
  Cmd.ARG_FEATURE: doPrintShowFeatures,
75861
- Cmd.ARG_GAL: doPrintShowGAL,
75862
75917
  Cmd.ARG_GROUPMEMBERS: doShowGroupMembers,
75863
75918
  Cmd.ARG_GROUPTREE: doPrintShowGroupTree,
75864
75919
  Cmd.ARG_GUARDIAN: doPrintShowGuardians,
gam/gamlib/glclargs.py CHANGED
@@ -616,7 +616,6 @@ class GamCLArgs():
616
616
  ARG_FORWARDS = 'forwards'
617
617
  ARG_FORWARDINGADDRESS = 'forwardingaddress'
618
618
  ARG_FORWARDINGADDRESSES = 'forwardingaddresses'
619
- ARG_GAL = 'gal'
620
619
  ARG_GCPFOLDER = 'gcpfolder'
621
620
  ARG_GCPSERVICEACCOUNT = 'gcpserviceaccount'
622
621
  ARG_GMAIL = 'gmail'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.6.14
3
+ Version: 7.7.1
4
4
  Summary: CLI tool to manage Google Workspace
5
5
  Project-URL: Homepage, https://github.com/GAM-team/GAM
6
6
  Project-URL: Issues, https://github.com/GAM-team/GAM/issues
@@ -1,4 +1,4 @@
1
- gam/__init__.py,sha256=tqFnE0dQXTWJ4dRdDjHygddy5wvRaWrl6aNHzL1AtIA,3495775
1
+ gam/__init__.py,sha256=ZrcsSOvwCZR3oAYBrH2ei3gtfbJ7RKvu49OUNN-1TaA,3498690
2
2
  gam/__main__.py,sha256=amz0-959ph6zkZKqjaar4n60yho-T37w6qWI36qx0CA,1049
3
3
  gam/cacerts.pem,sha256=nJuWha0xm5dHw_5ptGphwRoO-r36Ccpqiww9pCEDbSc,67484
4
4
  gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
@@ -25,7 +25,7 @@ gam/gamlib/__init__.py,sha256=z5mF-y0j8pm-YNFBaiuxB4M_GAUPG-cXWwrhYwrVReM,679
25
25
  gam/gamlib/glaction.py,sha256=1Il_HrChVnPkzZwiZs5au4mFQVtq4K1Z42uIuR6qdnI,9419
26
26
  gam/gamlib/glapi.py,sha256=85YwZ5LhBoVd9kU3m-gwLRq8FwTWCaRIwARuQvH8Mjc,34022
27
27
  gam/gamlib/glcfg.py,sha256=cV011FpIWge4oi5_dJrdof66vUqX6UCvTGWWTNVmYEg,28055
28
- gam/gamlib/glclargs.py,sha256=6irl5ZEu-pd4cGimc0PHZtJS8Ui6QHHgNzFO93beEcc,42206
28
+ gam/gamlib/glclargs.py,sha256=y10uzxjUeDX4YqbFnJJhWLL2D6pqW6Aqx17GA1-5X4c,42188
29
29
  gam/gamlib/glentity.py,sha256=fqWUlxQqPKlfFrkuPjCK2lZhhFBIZboCuO0qCxuEwqA,33691
30
30
  gam/gamlib/glgapi.py,sha256=xk3pEaIE-zHrTNCn5rJYERqqpbN55E1wXlKoqvWP44E,39232
31
31
  gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
@@ -65,8 +65,8 @@ gam/googleapiclient/discovery_cache/base.py,sha256=yCDPtxnbNN-p5_9fzBacC6P3wcUPl
65
65
  gam/googleapiclient/discovery_cache/file_cache.py,sha256=sim3Mg4HgRYo3vX75jvcKy_aV568EvIrtBfvfbw-044,4774
66
66
  gam/iso8601/__init__.py,sha256=Z2PsYbXgAH5a5xzUvgczCboPzqWpm65kRcIngCnhViU,1218
67
67
  gam/iso8601/iso8601.py,sha256=Li2FHZ4sBTWuthuQhyCvmvj0j6At8JbGzkSv2fc2RHU,4384
68
- gam7-7.6.14.dist-info/METADATA,sha256=lmYxagjYKa44rO1m2o0CcQYbpAH418qA2GAERpB4Btw,2970
69
- gam7-7.6.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
70
- gam7-7.6.14.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
71
- gam7-7.6.14.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
72
- gam7-7.6.14.dist-info/RECORD,,
68
+ gam7-7.7.1.dist-info/METADATA,sha256=XFgikxYfyOd56QEPd77XMra_-N0HfZnASQXsi1fIhmU,2969
69
+ gam7-7.7.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
70
+ gam7-7.7.1.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
71
+ gam7-7.7.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
72
+ gam7-7.7.1.dist-info/RECORD,,
File without changes