gam7 7.22.4__py3-none-any.whl → 7.22.6__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.04'
28
+ __version__ = '7.22.06'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -41716,6 +41716,7 @@ VAULT_SEARCH_METHODS_MAP = {
41716
41716
  'accounts': 'ACCOUNT',
41717
41717
  'chatspace': 'ROOM',
41718
41718
  'chatspaces': 'ROOM',
41719
+ 'documentids': 'DRIVE_DOCUMENT',
41719
41720
  'entireorg': 'ENTIRE_ORG',
41720
41721
  'everyone': 'ENTIRE_ORG',
41721
41722
  'org': 'ORG_UNIT',
@@ -41831,6 +41832,8 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41831
41832
  query['dataScope'] = 'ALL_DATA'
41832
41833
  if myarg == 'corpus':
41833
41834
  query['corpus'] = getChoice(corpusArgumentMap, mapChoice=True)
41835
+ elif myarg == 'scope':
41836
+ query['dataScope'] = getChoice(VAULT_EXPORT_DATASCOPE_MAP, mapChoice=True)
41834
41837
  elif myarg in VAULT_SEARCH_METHODS_MAP:
41835
41838
  if query.get('searchMethod'):
41836
41839
  Cmd.Backup()
@@ -41851,8 +41854,8 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41851
41854
  query['hangoutsChatInfo'] = {'roomId': roomIds}
41852
41855
  elif searchMethod == 'SITES_URL':
41853
41856
  query['sitesUrlInfo'] = {'urls': _getQueryList(Cmd.OB_URL_LIST)}
41854
- elif myarg == 'scope':
41855
- query['dataScope'] = getChoice(VAULT_EXPORT_DATASCOPE_MAP, mapChoice=True)
41857
+ elif searchMethod == 'DRIVE_DOCUMENT':
41858
+ query['driveDocumentInfo'] = {'documentIds': {'ids': _getQueryList(Cmd.OB_DRIVE_FILE_ID_LIST)}}
41856
41859
  elif myarg == 'terms':
41857
41860
  query['terms'] = getString(Cmd.OB_STRING)
41858
41861
  elif myarg in {'start', 'starttime'}:
@@ -41891,7 +41894,7 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41891
41894
  query['hangoutsChatOptions'] = {'includeRooms': getBoolean()}
41892
41895
  # mail
41893
41896
  elif myarg == 'excludedrafts':
41894
- query['mailOptions'] = {'excludeDrafts': getBoolean()}
41897
+ query.setdefault('mailOptions', {})['excludeDrafts'] = getBoolean()
41895
41898
  elif myarg == 'mailclientsideencryption':
41896
41899
  query.setdefault('mailOptions', {})['clientSideEncryptedOption'] = getChoice(VAULT_CSE_OPTION_MAP, mapChoice=True)
41897
41900
  # voice
@@ -41909,33 +41912,46 @@ def _validateVaultQuery(body, corpusArgumentMap):
41909
41912
  if body['query']['corpus'] != corpus:
41910
41913
  body['exportOptions'].pop(options, None)
41911
41914
 
41912
- # gam create vaultexport|export matter <MatterItem> [name <String>] corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
41913
- # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
41915
+ # gam create vaultexport|export matter <MatterItem> [name <String>]
41916
+ # vaultquery <QueryItem>
41917
+ # [driveclientsideencryption any|encrypted|unencrypted]
41918
+ # [includeaccessinfo <Boolean>]
41919
+ # [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
41920
+ # [showconfidentialmodecontent <Boolean>] [usenewexport <Boolean>] [exportlinkeddrivefiles <Boolean>]
41921
+ # [format ics|mbox|pst|xml]
41922
+ # [region any|europe|us] [showdetails|returnidonly]
41923
+ # gam create vaultexport|export matter <MatterItem> [name <String>]
41924
+ # corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
41925
+ # [scope all_data|held_data|unprocessed_data]
41926
+ # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
41927
+ # (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
41914
41928
  # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
41915
- # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
41916
- # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
41917
- # [scope <all_data|held_data|unprocessed_data>]
41929
+ # [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
41930
+ # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
41931
+ # [driveversiondate <Date>|<Time>]
41932
+ # [includerooms <Boolean>]
41933
+ # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
41918
41934
  # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
41919
41935
  # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
41920
41936
  # [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
41921
- # [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
41922
- # [driveversiondate <Date>|<Time>] [includeaccessinfo <Boolean>]
41937
+ # (covereddata calllogs|textmessages|voicemails)*
41923
41938
  # [driveclientsideencryption any|encrypted|unencrypted]
41924
- # [includerooms <Boolean>]
41939
+ # [includeaccessinfo <Boolean>]
41925
41940
  # [excludedrafts <Boolean>] [mailclientsideencryption any|encrypted|unencrypted]
41926
41941
  # [showconfidentialmodecontent <Boolean>] [usenewexport <Boolean>] [exportlinkeddrivefiles <Boolean>]
41927
- # [covereddata calllogs|textmessages|voicemails]
41928
41942
  # [format ics|mbox|pst|xml]
41929
41943
  # [region any|europe|us] [showdetails|returnidonly]
41930
41944
  def doCreateVaultExport():
41931
41945
  v = buildGAPIObject(API.VAULT)
41932
41946
  matterId = None
41933
41947
  body = {'query': {'dataScope': 'ALL_DATA'}, 'exportOptions': {}}
41948
+ includeAccessInfo = None
41934
41949
  exportFormat = None
41950
+ formatLocation = None
41951
+ useNewExport = None
41935
41952
  showConfidentialModeContent = None
41936
41953
  exportLinkedDriveFiles = None
41937
41954
  returnIdOnly = showDetails = False
41938
- useNewExport = None
41939
41955
  while Cmd.ArgumentsRemaining():
41940
41956
  myarg = getArgument()
41941
41957
  if myarg == 'matter':
@@ -41943,23 +41959,23 @@ def doCreateVaultExport():
41943
41959
  body['matterId'] = matterId
41944
41960
  elif myarg == 'name':
41945
41961
  body['name'] = getString(Cmd.OB_STRING)
41962
+ elif matterId is not None and myarg == 'vaultquery':
41963
+ _, _, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
41946
41964
  elif myarg in VAULT_QUERY_ARGS:
41947
41965
  _buildVaultQuery(myarg, body['query'], VAULT_CORPUS_ARGUMENT_MAP)
41948
- elif myarg == 'usenewexport':
41949
- useNewExport = getBoolean()
41966
+ elif myarg == 'includeaccessinfo':
41967
+ includeAccessInfo = getBoolean()
41950
41968
  elif myarg == 'format':
41969
+ formatLocation = Cmd.Location()
41951
41970
  exportFormat = getChoice(VAULT_EXPORT_FORMAT_MAP, mapChoice=True)
41971
+ elif myarg == 'usenewexport':
41972
+ useNewExport = getBoolean()
41952
41973
  elif myarg == 'showconfidentialmodecontent':
41953
41974
  showConfidentialModeContent = getBoolean()
41954
41975
  elif myarg == 'exportlinkeddrivefiles':
41955
41976
  exportLinkedDriveFiles = getBoolean()
41956
41977
  elif myarg == 'region':
41957
41978
  body['exportOptions']['region'] = getChoice(VAULT_EXPORT_REGION_MAP, mapChoice=True)
41958
- elif myarg == 'includeaccessinfo':
41959
- body['exportOptions'].setdefault('driveOptions', {})['includeAccessInfo'] = getBoolean()
41960
- elif myarg == 'covereddata':
41961
- body['exportOptions'].setdefault('voiceOptions', {'coveredData': []})
41962
- body['exportOptions']['voiceOptions']['coveredData'].append(getChoice(VAULT_VOICE_COVERED_DATA_MAP, mapChoice=True))
41963
41979
  elif myarg == 'showdetails':
41964
41980
  showDetails = True
41965
41981
  returnIdOnly = False
@@ -41971,15 +41987,19 @@ def doCreateVaultExport():
41971
41987
  if not matterId:
41972
41988
  missingArgumentExit('matter')
41973
41989
  _validateVaultQuery(body, VAULT_CORPUS_ARGUMENT_MAP)
41974
- if exportFormat is not None:
41975
- if not exportFormat in VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']]:
41976
- invalidChoiceExit(exportFormat, VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']], False)
41977
- elif body['query']['corpus'] != 'DRIVE':
41978
- exportFormat = VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']][0]
41979
41990
  if 'name' not in body:
41980
41991
  body['name'] = f'GAM {body["query"]["corpus"]} Export - {ISOformatTimeStamp(todaysTime())}'
41981
41992
  optionsField = VAULT_CORPUS_OPTIONS_MAP[body['query']['corpus']]
41982
- if body['query']['corpus'] != 'DRIVE':
41993
+ if body['query']['corpus'] == 'DRIVE':
41994
+ if includeAccessInfo is not None:
41995
+ body['exportOptions'][optionsField] = {'includeAccessInfo': includeAccessInfo}
41996
+ else:
41997
+ if exportFormat is not None:
41998
+ if not exportFormat in VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']]:
41999
+ Cmd.SetLocation(formatLocation)
42000
+ invalidChoiceExit(exportFormat, VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']], False)
42001
+ else:
42002
+ exportFormat = VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']][0]
41983
42003
  body['exportOptions'][optionsField] = {'exportFormat': exportFormat}
41984
42004
  if body['query']['corpus'] == 'MAIL':
41985
42005
  if showConfidentialModeContent is not None:
@@ -42461,7 +42481,7 @@ def _showVaultHold(matterNameId, hold, cd, FJQC, k=0, kcount=0):
42461
42481
  showJSON(None, hold, timeObjects=VAULT_HOLD_TIME_OBJECTS)
42462
42482
  Ind.Decrement()
42463
42483
 
42464
- def _useVaultQuery(v, matterId, matterNameId, body):
42484
+ def _useVaultQueryForHold(v, matterId, matterNameId, body):
42465
42485
  _, _, _, query = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
42466
42486
  body['corpus'] = query['corpus']
42467
42487
  method = query.get('method')
@@ -42566,7 +42586,7 @@ def doCreateVaultHold():
42566
42586
  elif myarg == 'name':
42567
42587
  body['name'] = getString(Cmd.OB_STRING)
42568
42588
  elif matterId is not None and myarg == 'vaultquery':
42569
- _useVaultQuery(v, matterId, matterNameId, body)
42589
+ _useVaultQueryForHold(v, matterId, matterNameId, body)
42570
42590
  usedVaultQuery = True
42571
42591
  elif myarg == 'corpus':
42572
42592
  body['corpus'] = getChoice(VAULT_CORPUS_ARGUMENT_MAP, mapChoice=True)
@@ -43025,6 +43045,99 @@ def _showVaultQuery(matterNameId, query, cd, drive, FJQC, k=0, kcount=0):
43025
43045
  showJSON(None, query, timeObjects=VAULT_QUERY_TIME_OBJECTS)
43026
43046
  Ind.Decrement()
43027
43047
 
43048
+ def doCreateCopyVaultQuery(copyCmd):
43049
+ v = buildGAPIObject(API.VAULT)
43050
+ body = {'query': {'dataScope': 'ALL_DATA'}, 'displayName': ''}
43051
+ matterId, matterNameId = getMatterItem(v)
43052
+ if copyCmd:
43053
+ _, queryName, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
43054
+ targetId = None
43055
+ cd = drive = None
43056
+ FJQC = FormatJSONQuoteChar()
43057
+ while Cmd.ArgumentsRemaining():
43058
+ myarg = getArgument()
43059
+ if myarg == 'name':
43060
+ body['displayName'] = getString(Cmd.OB_STRING)
43061
+ elif copyCmd and myarg == 'targetmatter':
43062
+ targetId, targetNameId = getMatterItem(v)
43063
+ elif not copyCmd and myarg in VAULT_QUERY_ARGS:
43064
+ _buildVaultQuery(myarg, body['query'], VAULT_CORPUS_ARGUMENT_MAP)
43065
+ elif myarg == 'shownames':
43066
+ cd = buildGAPIObject(API.DIRECTORY)
43067
+ _, drive = buildGAPIServiceObject(API.DRIVE3, _getAdminEmail())
43068
+ if drive is None:
43069
+ return
43070
+ else:
43071
+ FJQC.GetFormatJSON(myarg)
43072
+ if copyCmd:
43073
+ if targetId is None:
43074
+ targetId = matterId
43075
+ targetNameId = matterNameId
43076
+ if not body['displayName']:
43077
+ body['displayName'] = f'Copy of {queryName}' if matterId == targetId else queryName
43078
+ resultId = targetId
43079
+ resultNameId = targetNameId
43080
+ else:
43081
+ if not body['displayName']:
43082
+ body['displayName'] = 'GAM {body["query"]["corpus"]} Query - {ISOformatTimeStamp(todaysTime())}'
43083
+ resultId = matterId
43084
+ resultNameId = matterNameId
43085
+ try:
43086
+ result = callGAPI(v.matters().savedQueries(), 'create',
43087
+ throwReasons=[GAPI.NOT_FOUND, GAPI.BAD_REQUEST, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT, GAPI.ALREADY_EXISTS],
43088
+ matterId=resultId, body=body)
43089
+ _showVaultQuery(resultNameId, result, cd, drive, FJQC)
43090
+ except (GAPI.notFound, GAPI.badRequest, GAPI.forbidden, GAPI.invalidArgument, GAPI.alreadyExists) as e:
43091
+ entityActionFailedWarning([Ent.VAULT_MATTER, resultNameId, Ent.VAULT_QUERY, body['displayName']], str(e))
43092
+
43093
+ # gam create vaultquery <MatterItem> [name <String>]
43094
+ # corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
43095
+ # [scope all_data|held_data|unprocessed_data]
43096
+ # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
43097
+ # (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
43098
+ # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
43099
+ # [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
43100
+ # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
43101
+ # [driveversiondate <Date>|<Time>]
43102
+ # [includerooms <Boolean>]
43103
+ # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
43104
+ # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
43105
+ # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
43106
+ # [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
43107
+ # (covereddata calllogs|textmessages|voicemails)*
43108
+ # [shownames] [formatjson]
43109
+ def doCreateVaultQuery():
43110
+ doCreateCopyVaultQuery(False)
43111
+
43112
+ # gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem"] [name <String>]
43113
+ # [shownames] [formatjson]
43114
+ def doCopyVaultQuery():
43115
+ doCreateCopyVaultQuery(True)
43116
+
43117
+ # gam delete vaultquery <QueryItem> matter <MatterItem>
43118
+ # gam delete vaultquery <MatterItem> <QueryItem>
43119
+ def doDeleteVaultQuery():
43120
+ v = buildGAPIObject(API.VAULT)
43121
+ if not Cmd.ArgumentIsAhead('matter'):
43122
+ matterId, matterNameId = getMatterItem(v)
43123
+ queryId, queryName, queryNameId, _ = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
43124
+ else:
43125
+ queryName = getString(Cmd.OB_QUERY_ITEM)
43126
+ while Cmd.ArgumentsRemaining():
43127
+ myarg = getArgument()
43128
+ if myarg == 'matter':
43129
+ matterId, matterNameId = getMatterItem(v)
43130
+ queryId, queryName, queryNameId, _ = convertQueryNameToID(v, queryName, matterId, matterNameId)
43131
+ else:
43132
+ unknownArgumentExit()
43133
+ try:
43134
+ callGAPI(v.matters().savedQueries(), 'delete',
43135
+ throwReasons=[GAPI.NOT_FOUND, GAPI.BAD_REQUEST, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT],
43136
+ matterId=matterId, savedQueryId=queryId)
43137
+ entityActionPerformed([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, queryNameId])
43138
+ except (GAPI.notFound, GAPI.badRequest, GAPI.forbidden, GAPI.invalidArgument) as e:
43139
+ entityActionFailedWarning([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, queryNameId], str(e))
43140
+
43028
43141
  VAULT_QUERY_FIELDS_CHOICE_MAP = {
43029
43142
  'createtime': 'createTime',
43030
43143
  'displayname': 'displayName',
@@ -43510,12 +43623,13 @@ def doPrintShowVaultMatters():
43510
43623
  PRINT_VAULT_COUNTS_TITLES = ['account', 'count', 'error']
43511
43624
 
43512
43625
  # gam print vaultcounts [todrive <ToDriveAttributes>*]
43513
- # matter <MatterItem> corpus mail|groups
43514
- # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
43515
- # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
43516
- # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
43517
- # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
43518
- # [scope <all_data|held_data|unprocessed_data>]
43626
+ # matter <MatterItem> <QueryItem>
43627
+ # [wait <Integer>]
43628
+ # gam print vaultcounts [todrive <ToDriveAttributes>*]
43629
+ # matter <MatterItem>
43630
+ # corpus mail|groups
43631
+ # [scope all_data|held_data|unprocessed_data]
43632
+ # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
43519
43633
  # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
43520
43634
  # [excludedrafts <Boolean>]
43521
43635
  # [wait <Integer>]
@@ -43526,18 +43640,19 @@ def doPrintVaultCounts():
43526
43640
  csvPF = CSVPrintFile(PRINT_VAULT_COUNTS_TITLES, 'sortall')
43527
43641
  matterId = name = None
43528
43642
  operationWait = 15
43529
- body = {'view': 'ALL'}
43530
- query = {}
43643
+ body = {'view': 'ALL', 'query': {}}
43531
43644
  while Cmd.ArgumentsRemaining():
43532
43645
  myarg = getArgument()
43533
43646
  if csvPF and myarg == 'todrive':
43534
43647
  csvPF.GetTodriveParameters()
43535
43648
  elif myarg == 'matter':
43536
- matterId, _ = getMatterItem(v)
43649
+ matterId, matterNameId = getMatterItem(v)
43650
+ elif matterId is not None and myarg == 'vaultquery':
43651
+ _, _, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
43537
43652
  elif myarg == 'operation':
43538
43653
  name = getString(Cmd.OB_STRING)
43539
43654
  elif myarg in VAULT_QUERY_ARGS:
43540
- _buildVaultQuery(myarg, query, VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
43655
+ _buildVaultQuery(myarg, body['query'], VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
43541
43656
  elif myarg == 'wait':
43542
43657
  operationWait = getInteger(minVal=1)
43543
43658
  else:
@@ -43548,7 +43663,6 @@ def doPrintVaultCounts():
43548
43663
  operation = {'name': name}
43549
43664
  doWait = False
43550
43665
  else:
43551
- body['query'] = query
43552
43666
  _validateVaultQuery(body, VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
43553
43667
  try:
43554
43668
  operation = callGAPI(v.matters(), 'count',
@@ -77963,6 +78077,7 @@ MAIN_ADD_CREATE_FUNCTIONS = {
77963
78077
  Cmd.ARG_VAULTEXPORT: doCreateVaultExport,
77964
78078
  Cmd.ARG_VAULTHOLD: doCreateVaultHold,
77965
78079
  Cmd.ARG_VAULTMATTER: doCreateVaultMatter,
78080
+ Cmd.ARG_VAULTQUERY: doCreateVaultQuery,
77966
78081
  Cmd.ARG_VERIFY: doCreateSiteVerification,
77967
78082
  }
77968
78083
 
@@ -78020,6 +78135,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
78020
78135
  {Cmd.ARG_SHAREDDRIVEACLS: doCopySyncSharedDriveACLs,
78021
78136
  Cmd.ARG_STORAGEBUCKET: doCopyCloudStorageBucket,
78022
78137
  Cmd.ARG_VAULTEXPORT: doCopyVaultExport,
78138
+ Cmd.ARG_VAULTQUERY: doCopyVaultQuery,
78023
78139
  }
78024
78140
  ),
78025
78141
  'create':
@@ -78084,6 +78200,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
78084
78200
  Cmd.ARG_VAULTEXPORT: doDeleteVaultExport,
78085
78201
  Cmd.ARG_VAULTHOLD: doDeleteVaultHold,
78086
78202
  Cmd.ARG_VAULTMATTER: doDeleteVaultMatter,
78203
+ Cmd.ARG_VAULTQUERY: doDeleteVaultQuery,
78087
78204
  }
78088
78205
  ),
78089
78206
  'download':
gam/gamlib/glclargs.py CHANGED
@@ -1216,6 +1216,7 @@ class GamCLArgs():
1216
1216
  OB_DOMAIN_NAME_LIST = 'DomainNameList'
1217
1217
  OB_DRIVE_FILE_ENTITY = 'DriveFileEntity'
1218
1218
  OB_DRIVE_FILE_ID = 'DriveFileID'
1219
+ OB_DRIVE_FILE_ID_LIST = 'DriveFileIDList'
1219
1220
  OB_DRIVE_FILE_NAME = 'DriveFileName'
1220
1221
  OB_DRIVE_FILE_PERMISSION_ENTITY = 'DriveFilePermissionEntity'
1221
1222
  OB_DRIVE_FILE_PERMISSION_ID = 'DriveFilePermissionID'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.22.4
3
+ Version: 7.22.6
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=2bPGrpvBvJlhIm2RB--NdcPovJV1lruV2KngQgPiPVE,3612155
1
+ gam/__init__.py,sha256=2khaKs7eOqZNAinOq4YCDHYmbOqwx8Rv7LL1ZMArbg4,3617651
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
@@ -24,7 +24,7 @@ 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
26
  gam/gamlib/glcfg.py,sha256=7Ut-7sDTw-WVHZfvDWn_dlVNfuWd6VsPDBpQ3qnyzJE,28100
27
- gam/gamlib/glclargs.py,sha256=ARqlKA4s578PLOxQSLVWSnUdKNpv8LForlm1jpcfWeI,53207
27
+ gam/gamlib/glclargs.py,sha256=rGcAoRLaCv5L9cBxI56MrPXr0JcImO45bLQNaYahoUY,53251
28
28
  gam/gamlib/glentity.py,sha256=Dp15UbaxGbqDKYyF50z-wjFlQpKvi9mCIuPDsd_kL8Y,35284
29
29
  gam/gamlib/glgapi.py,sha256=pdBbwNtnCwFWxJGaP-_3hdTjSNoOCJF2yo76WdQOi1k,40426
30
30
  gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
@@ -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.4.dist-info/METADATA,sha256=gr6AsDjt7Td27C_dEL3sBhO6U7uzVJLnT_-eHCVjeOw,3092
51
- gam7-7.22.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
- gam7-7.22.4.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
53
- gam7-7.22.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
- gam7-7.22.4.dist-info/RECORD,,
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,,
File without changes