gam7 7.22.6__py3-none-any.whl → 7.23.0__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.

Potentially problematic release.


This version of gam7 might be problematic. Click here for more details.

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.22.06'
28
+ __version__ = '7.23.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
@@ -26579,7 +26579,7 @@ def printShowChatEmojis(users):
26579
26579
  pageMessage=_getChatPageMessage(Ent.CHAT_EMOJI, user, i, count, pfilter),
26580
26580
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
26581
26581
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
26582
- pageSize=CHAT_PAGE_SIZE, filter=pfilter)
26582
+ pageSize=GC.Values[GC.CHAT_MAX_RESULTS], filter=pfilter)
26583
26583
  except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
26584
26584
  exitIfChatNotConfigured(chat, kvList, str(e), i, count)
26585
26585
  continue
@@ -26649,7 +26649,14 @@ def getChatSpaceParameters(myarg, body, typeChoicesMap, updateMask):
26649
26649
 
26650
26650
  CHAT_MEMBER_ROLE_MAP = {
26651
26651
  'member': 'ROLE_MEMBER',
26652
- 'manager': 'ROLE_MANAGER'
26652
+ 'manager': 'ROLE_MANAGER',
26653
+ 'owner': 'ROLE_OWNER',
26654
+ }
26655
+
26656
+ CHAT_ROLE_ENTITY_TYPE_MAP = {
26657
+ 'ROLE_MEMBER': Ent.CHAT_MEMBER_USER,
26658
+ 'ROLE_MANAGER': Ent.CHAT_MANAGER_USER,
26659
+ 'ROLE_OWNER': Ent.CHAT_OWNER_USER,
26653
26660
  }
26654
26661
 
26655
26662
  CHAT_MEMBER_TYPE_MAP = {
@@ -27006,7 +27013,6 @@ def _getChatSpaceSearchParms(myarg, queries, queryTimes, OBY):
27006
27013
  return False
27007
27014
  return True
27008
27015
 
27009
- CHAT_PAGE_SIZE = 1000
27010
27016
  CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP = {
27011
27017
  'createtime': 'createTime',
27012
27018
  'lastactivetime': 'lastActiveTime',
@@ -27086,7 +27092,7 @@ def printShowChatSpaces(users):
27086
27092
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
27087
27093
  GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
27088
27094
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27089
- fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargsCS)
27095
+ fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargsCS)
27090
27096
  if showAccessSettings:
27091
27097
  for space in spaces:
27092
27098
  if space['spaceType'] == 'SPACE':
@@ -27152,7 +27158,7 @@ def _getChatSpaceMembers(cd, chatSpace, ciGroupName):
27152
27158
  pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, 0, 0, qfilter),
27153
27159
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
27154
27160
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27155
- parent=chatSpace, fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargsUAA)
27161
+ parent=chatSpace, fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargsUAA)
27156
27162
  for member in members:
27157
27163
  _getChatMemberEmail(cd, member)
27158
27164
  gmember = {}
@@ -27289,7 +27295,7 @@ def createChatMember(users):
27289
27295
  missingArgumentExit('space')
27290
27296
  if not userList and not groupList:
27291
27297
  missingArgumentExit('user|members|group|groups')
27292
- userEntityType = Ent.CHAT_MEMBER_USER if role == 'ROLE_MEMBER' else Ent.CHAT_MANAGER_USER
27298
+ userEntityType = CHAT_ROLE_ENTITY_TYPE_MAP[role]
27293
27299
  userMembers = []
27294
27300
  for user in userList:
27295
27301
  userMembers.append({'member': {'name': f'users/{user}', 'type': mtype}})
@@ -27546,7 +27552,7 @@ def syncChatMembers(users):
27546
27552
  unknownArgumentExit()
27547
27553
  if not parent:
27548
27554
  missingArgumentExit('space')
27549
- userEntityType = Ent.CHAT_MEMBER_USER if role == 'ROLE_MEMBER' else Ent.CHAT_MANAGER_USER
27555
+ userEntityType = CHAT_ROLE_ENTITY_TYPE_MAP[role]
27550
27556
  userMembers = {}
27551
27557
  syncUsersSet = set()
27552
27558
  for user in userList:
@@ -27576,7 +27582,7 @@ def syncChatMembers(users):
27576
27582
  pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, i, count, qfilter),
27577
27583
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
27578
27584
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27579
- parent=parent, showGroups=groupsSpecified, pageSize=CHAT_PAGE_SIZE, **kwargs, **kwargsUAA)
27585
+ parent=parent, showGroups=groupsSpecified, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargs, **kwargsUAA)
27580
27586
  for member in members:
27581
27587
  if 'member' in member:
27582
27588
  if member['member']['type'] == mtype and member['role'] == role:
@@ -27777,7 +27783,7 @@ def printShowChatMembers(users):
27777
27783
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
27778
27784
  GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
27779
27785
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27780
- fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=CHAT_PAGE_SIZE,
27786
+ fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=GC.Values[GC.CHAT_MAX_RESULTS],
27781
27787
  **kwargsCS)
27782
27788
  for space in sorted(spaces, key=lambda k: k[sortName]):
27783
27789
  if space['spaceType'] == 'SPACE' and 'membershipCount' in space:
@@ -27794,7 +27800,7 @@ def printShowChatMembers(users):
27794
27800
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.INTERNAL_ERROR,
27795
27801
  GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
27796
27802
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27797
- fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=CHAT_PAGE_SIZE,
27803
+ fields="nextPageToken,spaces(name,displayName,spaceType,membershipCount)", pageSize=GC.Values[GC.CHAT_MAX_RESULTS],
27798
27804
  **kwargsCS)
27799
27805
  for space in sorted(spaces, key=lambda k: k[sortName]):
27800
27806
  # if 'membershipCount' in space:
@@ -27825,7 +27831,7 @@ def printShowChatMembers(users):
27825
27831
  pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, j, jcount, qfilter),
27826
27832
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
27827
27833
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
27828
- parent=parentName, fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargs, **kwargsUAA)
27834
+ parent=parentName, fields=fields, pageSize=GC.Values[GC.CHAT_MAX_RESULTS], **kwargs, **kwargsUAA)
27829
27835
  for member in members:
27830
27836
  _getChatMemberEmail(cd, member)
27831
27837
  except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
@@ -28139,7 +28145,7 @@ def printShowChatMessages(users):
28139
28145
  pageMessage=_getChatPageMessage(Ent.CHAT_MESSAGE, user, i, count, qfilter),
28140
28146
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
28141
28147
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
28142
- pageSize=CHAT_PAGE_SIZE, parent=parentName, filter=pfilter, showDeleted=showDeleted,
28148
+ pageSize=GC.Values[GC.CHAT_MAX_RESULTS], parent=parentName, filter=pfilter, showDeleted=showDeleted,
28143
28149
  fields=fields)
28144
28150
  for message in messages:
28145
28151
  if 'sender' in message:
@@ -28257,7 +28263,7 @@ def printShowChatEvents(users):
28257
28263
  pageMessage=_getChatPageMessage(Ent.CHAT_EVENT, user, i, count, qfilter),
28258
28264
  throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
28259
28265
  retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
28260
- pageSize=CHAT_PAGE_SIZE, parent=parentName, filter=pfilter)
28266
+ pageSize=GC.Values[GC.CHAT_MAX_RESULTS], parent=parentName, filter=pfilter)
28261
28267
  except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
28262
28268
  exitIfChatNotConfigured(chat, kvList, str(e), i, count)
28263
28269
  continue
@@ -41814,11 +41820,13 @@ VAULT_QUERY_ARGS = [
41814
41820
  # drive
41815
41821
  'driveclientsideencryption', 'driveversiondate', 'includeshareddrives', 'includeteamdrives', 'shareddrivesoption',
41816
41822
  # hangoutsChat
41817
- 'includerooms',
41823
+ 'includerooms',
41818
41824
  # mail
41819
41825
  'mailclientsideencryption', 'excludedrafts',
41820
41826
  # voice
41821
41827
  'covereddata',
41828
+ # all
41829
+ 'json',
41822
41830
  ] + list(VAULT_SEARCH_METHODS_MAP.keys())
41823
41831
 
41824
41832
  def _buildVaultQuery(myarg, query, corpusArgumentMap):
@@ -41835,11 +41843,11 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41835
41843
  elif myarg == 'scope':
41836
41844
  query['dataScope'] = getChoice(VAULT_EXPORT_DATASCOPE_MAP, mapChoice=True)
41837
41845
  elif myarg in VAULT_SEARCH_METHODS_MAP:
41838
- if query.get('searchMethod'):
41846
+ if query.get('method'):
41839
41847
  Cmd.Backup()
41840
41848
  usageErrorExit(Msg.MULTIPLE_SEARCH_METHODS_SPECIFIED.format(formatChoiceList(VAULT_SEARCH_METHODS_MAP)))
41841
41849
  searchMethod = VAULT_SEARCH_METHODS_MAP[myarg]
41842
- query['searchMethod'] = searchMethod
41850
+ query['method'] = searchMethod
41843
41851
  if searchMethod == 'ACCOUNT':
41844
41852
  query['accountInfo'] = {'emails': getNormalizedEmailAddressEntity()}
41845
41853
  elif searchMethod == 'ORG_UNIT':
@@ -41901,11 +41909,19 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41901
41909
  elif myarg == 'covereddata':
41902
41910
  query.setdefault('voiceOptions', {'coveredData': []})
41903
41911
  query['voiceOptions']['coveredData'].append(getChoice(VAULT_VOICE_COVERED_DATA_MAP, mapChoice=True))
41912
+ # all
41913
+ elif myarg == 'json':
41914
+ jsonData = getJSON([])
41915
+ if 'query' in jsonData:
41916
+ query.update(jsonData['query'])
41917
+ else:
41918
+ query.update(jsonData)
41919
+
41904
41920
 
41905
41921
  def _validateVaultQuery(body, corpusArgumentMap):
41906
41922
  if 'corpus' not in body['query']:
41907
41923
  missingArgumentExit(f'corpus {formatChoiceList(corpusArgumentMap)}')
41908
- if 'searchMethod' not in body['query']:
41924
+ if 'method' not in body['query']:
41909
41925
  missingArgumentExit(formatChoiceList(VAULT_SEARCH_METHODS_MAP))
41910
41926
  if 'exportOptions' in body:
41911
41927
  for corpus, options in VAULT_CORPUS_OPTIONS_MAP.items():
@@ -41935,6 +41951,7 @@ def _validateVaultQuery(body, corpusArgumentMap):
41935
41951
  # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
41936
41952
  # [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
41937
41953
  # (covereddata calllogs|textmessages|voicemails)*
41954
+ # [<JSONData>]
41938
41955
  # [driveclientsideencryption any|encrypted|unencrypted]
41939
41956
  # [includeaccessinfo <Boolean>]
41940
41957
  # [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
@@ -43054,6 +43071,7 @@ def doCreateCopyVaultQuery(copyCmd):
43054
43071
  targetId = None
43055
43072
  cd = drive = None
43056
43073
  FJQC = FormatJSONQuoteChar()
43074
+ returnIdOnly = showDetails = False
43057
43075
  while Cmd.ArgumentsRemaining():
43058
43076
  myarg = getArgument()
43059
43077
  if myarg == 'name':
@@ -43067,6 +43085,12 @@ def doCreateCopyVaultQuery(copyCmd):
43067
43085
  _, drive = buildGAPIServiceObject(API.DRIVE3, _getAdminEmail())
43068
43086
  if drive is None:
43069
43087
  return
43088
+ elif myarg == 'showdetails':
43089
+ showDetails = True
43090
+ returnIdOnly = False
43091
+ elif myarg == 'returnidonly':
43092
+ returnIdOnly = True
43093
+ showDetails = False
43070
43094
  else:
43071
43095
  FJQC.GetFormatJSON(myarg)
43072
43096
  if copyCmd:
@@ -43078,6 +43102,7 @@ def doCreateCopyVaultQuery(copyCmd):
43078
43102
  resultId = targetId
43079
43103
  resultNameId = targetNameId
43080
43104
  else:
43105
+ _validateVaultQuery(body, VAULT_CORPUS_ARGUMENT_MAP)
43081
43106
  if not body['displayName']:
43082
43107
  body['displayName'] = 'GAM {body["query"]["corpus"]} Query - {ISOformatTimeStamp(todaysTime())}'
43083
43108
  resultId = matterId
@@ -43086,7 +43111,13 @@ def doCreateCopyVaultQuery(copyCmd):
43086
43111
  result = callGAPI(v.matters().savedQueries(), 'create',
43087
43112
  throwReasons=[GAPI.NOT_FOUND, GAPI.BAD_REQUEST, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT, GAPI.ALREADY_EXISTS],
43088
43113
  matterId=resultId, body=body)
43089
- _showVaultQuery(resultNameId, result, cd, drive, FJQC)
43114
+ if not returnIdOnly:
43115
+ if not FJQC.formatJSON:
43116
+ entityActionPerformed([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, formatVaultNameId(result['displayName'], result['savedQueryId'])])
43117
+ if showDetails or FJQC.formatJSON:
43118
+ _showVaultQuery(resultNameId, result, cd, drive, FJQC)
43119
+ else:
43120
+ writeStdout(f'{result["savedQueryId"]}\n')
43090
43121
  except (GAPI.notFound, GAPI.badRequest, GAPI.forbidden, GAPI.invalidArgument, GAPI.alreadyExists) as e:
43091
43122
  entityActionFailedWarning([Ent.VAULT_MATTER, resultNameId, Ent.VAULT_QUERY, body['displayName']], str(e))
43092
43123
 
@@ -43105,12 +43136,15 @@ def doCreateCopyVaultQuery(copyCmd):
43105
43136
  # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
43106
43137
  # [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
43107
43138
  # (covereddata calllogs|textmessages|voicemails)*
43108
- # [shownames] [formatjson]
43139
+ # [<JSONData>]
43140
+ # [shownames]
43141
+ # [showdetails|returnidonly|formatjson]
43109
43142
  def doCreateVaultQuery():
43110
43143
  doCreateCopyVaultQuery(False)
43111
43144
 
43112
- # gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem"] [name <String>]
43113
- # [shownames] [formatjson]
43145
+ # gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem>] [name <String>]
43146
+ # [shownames]
43147
+ # [showdetails|returnidonly|formatjson]
43114
43148
  def doCopyVaultQuery():
43115
43149
  doCreateCopyVaultQuery(True)
43116
43150
 
@@ -43632,6 +43666,7 @@ PRINT_VAULT_COUNTS_TITLES = ['account', 'count', 'error']
43632
43666
  # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
43633
43667
  # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
43634
43668
  # [excludedrafts <Boolean>]
43669
+ # [<JSONData>]
43635
43670
  # [wait <Integer>]
43636
43671
  # gam print vaultcounts [todrive <ToDriveAttributes>*]
43637
43672
  # matter <MatterItem> operation <String> [wait <Integer>]
@@ -43686,7 +43721,7 @@ def doPrintVaultCounts():
43686
43721
  doWait = True
43687
43722
  response = operation.get('response', {})
43688
43723
  query = operation['metadata']['query']
43689
- search_method = query.get('searchMethod')
43724
+ search_method = query.get('method')
43690
43725
  # ARGH count results don't include accounts with zero items.
43691
43726
  # so we keep track of which accounts we searched and can report
43692
43727
  # zero data for them.
gam/gamlib/glcfg.py CHANGED
@@ -69,6 +69,8 @@ CACHE_DISCOVERY_ONLY = 'cache_discovery_only'
69
69
  CHANNEL_CUSTOMER_ID = 'channel_customer_id'
70
70
  # Character set of batch, csv, data files
71
71
  CHARSET = 'charset'
72
+ # When retrieving lists of Chat items from API, how many should be retrieved in each chunk
73
+ CHAT_MAX_RESULTS = 'chat_max_results'
72
74
  # When retrieving lists of Google Classroom items from API, how many should be retrieved in each chunk
73
75
  CLASSROOM_MAX_RESULTS = 'classroom_max_results'
74
76
  # Path to client_secrets.json
@@ -335,6 +337,7 @@ Defaults = {
335
337
  CACHE_DISCOVERY_ONLY: TRUE,
336
338
  CHARSET: DEFAULT_CHARSET,
337
339
  CHANNEL_CUSTOMER_ID: '',
340
+ CHAT_MAX_RESULTS: '100',
338
341
  CLASSROOM_MAX_RESULTS: '0',
339
342
  CLIENT_SECRETS_JSON: FN_CLIENT_SECRETS_JSON,
340
343
  CLOCK_SKEW_IN_SECONDS: '10',
@@ -502,6 +505,7 @@ VAR_INFO = {
502
505
  CACHE_DISCOVERY_ONLY: {VAR_TYPE: TYPE_BOOLEAN, VAR_SIGFILE: 'allcache.txt', VAR_SFFT: (TRUE, FALSE)},
503
506
  CHARSET: {VAR_TYPE: TYPE_STRING, VAR_ENVVAR: 'GAM_CHARSET', VAR_LIMITS: (1, None)},
504
507
  CHANNEL_CUSTOMER_ID: {VAR_TYPE: TYPE_STRING, VAR_LIMITS: (0, None)},
508
+ CHAT_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (1, 1000)},
505
509
  CLASSROOM_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (0, 1000)},
506
510
  CLIENT_SECRETS_JSON: {VAR_TYPE: TYPE_FILE, VAR_ENVVAR: 'CLIENTSECRETS', VAR_ACCESS: os.R_OK},
507
511
  CLOCK_SKEW_IN_SECONDS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (10, 3600)},
gam/gamlib/glentity.py CHANGED
@@ -96,6 +96,7 @@ class GamEntity():
96
96
  CHAT_MEMBER_USER = 'chmu'
97
97
  CHAT_MESSAGE = 'chms'
98
98
  CHAT_MESSAGE_ID = 'chmi'
99
+ CHAT_OWNER_USER = 'chou'
99
100
  CHAT_SPACE = 'chsp'
100
101
  CHAT_THREAD = 'chth'
101
102
  CHILD_ORGANIZATIONAL_UNIT = 'corg'
@@ -462,6 +463,7 @@ class GamEntity():
462
463
  CHAT_MEMBER: ['Chat Members', 'Chat Member'],
463
464
  CHAT_MEMBER_GROUP: ['Chat Group Members', 'Chat Group Member'],
464
465
  CHAT_MEMBER_USER: ['Chat User Members', 'Chat User Member'],
466
+ CHAT_OWNER_USER: ['Chat User Owners', 'Chat User Owner'],
465
467
  CHAT_SPACE: ['Chat Spaces', 'Chat Space'],
466
468
  CHAT_THREAD: ['Chat Threads', 'Chat Thread'],
467
469
  CHILD_ORGANIZATIONAL_UNIT: ['Child Organizational Units', 'Child Organizational Unit'],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.22.6
3
+ Version: 7.23.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
@@ -1,4 +1,4 @@
1
- gam/__init__.py,sha256=2khaKs7eOqZNAinOq4YCDHYmbOqwx8Rv7LL1ZMArbg4,3617651
1
+ gam/__init__.py,sha256=B15MBh8MjHLx7wUI6Mu-cjocTqeiWBLc0Eszj9RcLKk,3618696
2
2
  gam/__main__.py,sha256=amz0-959ph6zkZKqjaar4n60yho-T37w6qWI36qx0CA,1049
3
3
  gam/cacerts.pem,sha256=DUsVo2XlFYwfkhe3gnxa-Km4Z4noz74hSApXwTT-nQE,44344
4
4
  gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
@@ -23,9 +23,9 @@ gam/atom/url.py,sha256=pxO1TlORxyKQTQ1bkBE1unFzjnv9c8LjJkm-UEORShY,4276
23
23
  gam/gamlib/__init__.py,sha256=z5mF-y0j8pm-YNFBaiuxB4M_GAUPG-cXWwrhYwrVReM,679
24
24
  gam/gamlib/glaction.py,sha256=1Il_HrChVnPkzZwiZs5au4mFQVtq4K1Z42uIuR6qdnI,9419
25
25
  gam/gamlib/glapi.py,sha256=u97M7Y2BeP3tYEEGYEz-9kY4fdV0fYkeqC3YN-sRwNc,36028
26
- gam/gamlib/glcfg.py,sha256=7Ut-7sDTw-WVHZfvDWn_dlVNfuWd6VsPDBpQ3qnyzJE,28100
26
+ gam/gamlib/glcfg.py,sha256=jX9IIrqSa8CPZ-UdnMDs2RuGo8vPh3jpgvRhI9VRbII,28325
27
27
  gam/gamlib/glclargs.py,sha256=rGcAoRLaCv5L9cBxI56MrPXr0JcImO45bLQNaYahoUY,53251
28
- gam/gamlib/glentity.py,sha256=Dp15UbaxGbqDKYyF50z-wjFlQpKvi9mCIuPDsd_kL8Y,35284
28
+ gam/gamlib/glentity.py,sha256=KWFomkoNE6lLE83zVqVIlJ2rkzfLkhEasW1M0TWGieA,35373
29
29
  gam/gamlib/glgapi.py,sha256=pdBbwNtnCwFWxJGaP-_3hdTjSNoOCJF2yo76WdQOi1k,40426
30
30
  gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
31
31
  gam/gamlib/glglobals.py,sha256=oJfaLUQj46XqwrOzRfWhGqO0f1P26xjJZefaILJUFGE,9695
@@ -47,8 +47,8 @@ gam/gdata/apps/audit/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrK
47
47
  gam/gdata/apps/audit/service.py,sha256=Z1eueThcNeVUMWP1DRWc_DGHrJCiJI8W_xj6L-cqu-Q,9658
48
48
  gam/gdata/apps/contacts/__init__.py,sha256=Um6zgIkiahZns7yAEuC3pxHSMD8iciZ_EoynSLoYPfU,30463
49
49
  gam/gdata/apps/contacts/service.py,sha256=5lNb-Ii1Gyek6ePFji3kyoYtCBc8CuJTwagx2BL2o14,15684
50
- gam7-7.22.6.dist-info/METADATA,sha256=Wkf_5GQhkbuMkzXX_ZfIvJKvE_klQjf3Svy7H-VA_5U,3092
51
- gam7-7.22.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
- gam7-7.22.6.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
53
- gam7-7.22.6.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
- gam7-7.22.6.dist-info/RECORD,,
50
+ gam7-7.23.0.dist-info/METADATA,sha256=6bM_Q9wj9LkT4QtgN-MnPfL6gwaWjLf-c6qSDtSW5dM,3092
51
+ gam7-7.23.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
+ gam7-7.23.0.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
53
+ gam7-7.23.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
+ gam7-7.23.0.dist-info/RECORD,,
File without changes