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 +157 -40
- gam/gamlib/glclargs.py +1 -0
- {gam7-7.22.4.dist-info → gam7-7.22.6.dist-info}/METADATA +1 -1
- {gam7-7.22.4.dist-info → gam7-7.22.6.dist-info}/RECORD +7 -7
- {gam7-7.22.4.dist-info → gam7-7.22.6.dist-info}/WHEEL +0 -0
- {gam7-7.22.4.dist-info → gam7-7.22.6.dist-info}/entry_points.txt +0 -0
- {gam7-7.22.4.dist-info → gam7-7.22.6.dist-info}/licenses/LICENSE +0 -0
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.
|
|
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
|
-
|
|
41855
|
-
|
|
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
|
|
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>]
|
|
41913
|
-
#
|
|
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
|
-
#
|
|
41916
|
-
#
|
|
41917
|
-
# [
|
|
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
|
-
#
|
|
41922
|
-
# [driveversiondate <Date>|<Time>] [includeaccessinfo <Boolean>]
|
|
41937
|
+
# (covereddata calllogs|textmessages|voicemails)*
|
|
41923
41938
|
# [driveclientsideencryption any|encrypted|unencrypted]
|
|
41924
|
-
# [
|
|
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 == '
|
|
41949
|
-
|
|
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']
|
|
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
|
|
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
|
-
|
|
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>
|
|
43514
|
-
#
|
|
43515
|
-
#
|
|
43516
|
-
#
|
|
43517
|
-
#
|
|
43518
|
-
# [scope
|
|
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,
|
|
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,4 +1,4 @@
|
|
|
1
|
-
gam/__init__.py,sha256=
|
|
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=
|
|
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.
|
|
51
|
-
gam7-7.22.
|
|
52
|
-
gam7-7.22.
|
|
53
|
-
gam7-7.22.
|
|
54
|
-
gam7-7.22.
|
|
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
|
|
File without changes
|
|
File without changes
|