mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 12:21:35 +00:00
Added commands to display Google Tag Manager objects
This commit is contained in:
@@ -622,6 +622,14 @@ If an item contains spaces, it should be surrounded by ".
|
|||||||
gs://<StorageBucketName>/<StorageObjectName>|
|
gs://<StorageBucketName>/<StorageObjectName>|
|
||||||
<StorageBucketName>/<StorageObjectName>
|
<StorageBucketName>/<StorageObjectName>
|
||||||
<Tag> ::= <String>
|
<Tag> ::= <String>
|
||||||
|
<TagManagerAccountID> ::= <String>
|
||||||
|
<TagManagerAccountPath> ::= accounts/<TagManagerAccountID>
|
||||||
|
<TagManagerContainerID> ::= <String>
|
||||||
|
<TagManagerContainerPath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>
|
||||||
|
<TagManagerWorkspaceID> ::= <String>
|
||||||
|
<TagManagerWorkspacePath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>/workspaces/<TagManagerWorkspaceID>
|
||||||
|
<TagManagerTagID> ::= <String>
|
||||||
|
<TagManagerTagPath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>/workspaces/<TagManagerWorkspaceID>/tags/<TagManagerTagID>
|
||||||
<TakeoutBucketName> ::= takeout-export-[a-f,0-9,-]*
|
<TakeoutBucketName> ::= takeout-export-[a-f,0-9,-]*
|
||||||
<TaskID> ::= <String>
|
<TaskID> ::= <String>
|
||||||
<TaskListID> ::= <String>
|
<TaskListID> ::= <String>
|
||||||
@@ -771,6 +779,9 @@ If an item contains spaces, it should be surrounded by ".
|
|||||||
<SharedDriveACLRoleList> ::= "<SharedDriveACLRole>(,<SharedDriveACLRole>)*"
|
<SharedDriveACLRoleList> ::= "<SharedDriveACLRole>(,<SharedDriveACLRole>)*"
|
||||||
<SharedDriveIDList> ::= "<SharedDriveID>(,<SharedDriveID>)*"
|
<SharedDriveIDList> ::= "<SharedDriveID>(,<SharedDriveID>)*"
|
||||||
<StringList> ::= "<String>(,<String>)*"
|
<StringList> ::= "<String>(,<String>)*"
|
||||||
|
<TagManagerAccountPathList> ::= "<TagManagerAccountPath>(,<TagManagerAccountPath>)*"
|
||||||
|
<TagManagerContainerPathList> ::= "<TagManagerContainerPath>(,<TagManagerContainerPath>)*"
|
||||||
|
<TagManagerWorkspacePathList> ::= "<TagManagerWorkspacePath>(,<TagManagerWorkspacePath>)*"
|
||||||
<TasklistIDList> ::= "<TasklistID>(,<TasklistID>)*"
|
<TasklistIDList> ::= "<TasklistID>(,<TasklistID>)*"
|
||||||
<TasklistTitleList> ::= "'<TasklistTitle>'(,'<TasklistTitle>')*"
|
<TasklistTitleList> ::= "'<TasklistTitle>'(,'<TasklistTitle>')*"
|
||||||
<TasklistIDTaskIDList> ::= "<TasklistIDTaskID>(,<TasklistIDTaskID>)*"
|
<TasklistIDTaskIDList> ::= "<TasklistIDTaskID>(,<TasklistIDTaskID>)*"
|
||||||
@@ -1026,7 +1037,10 @@ Specify a collection of items by directly specifying them; the item type is dete
|
|||||||
<CalendarEntity> ::=
|
<CalendarEntity> ::=
|
||||||
<CalendarList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
<CalendarList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||||
<ChromeProfileNameEntity> ::=
|
<ChromeProfileNameEntity> ::=
|
||||||
<ChromeProfileNameList> | <FileSelector> | <CSVFileSelector>
|
<ChromeProfileNameList> |
|
||||||
|
(select <FileSelector>|<CSVFileSelector>) |
|
||||||
|
(filter <String> (filtertime<String> <Time>)* [orderby <ChromeProfileOrderByFieldName> [ascending|descending]]) |
|
||||||
|
(commands <ChromeProfileCommandNameList>|<FileSelector>|<CSVFileSelector>)
|
||||||
<CIPolicyNameEntity> ::=
|
<CIPolicyNameEntity> ::=
|
||||||
<CIPolicyNameList> | <FileSelector> | <CSVFileSelector>
|
<CIPolicyNameList> | <FileSelector> | <CSVFileSelector>
|
||||||
<ClassificationLabelNameEntity> ::=
|
<ClassificationLabelNameEntity> ::=
|
||||||
@@ -1229,6 +1243,15 @@ Specify a collection of items by directly specifying them; the item type is dete
|
|||||||
<SiteACLScopeList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
<SiteACLScopeList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||||
<SiteEntity> ::=
|
<SiteEntity> ::=
|
||||||
<SiteList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
<SiteList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||||
|
<TagManagerAccountPathEntity> ::=
|
||||||
|
<TagManagerAccountPathList> |
|
||||||
|
(select <FileSelector>|<CSVFileSelector>) |
|
||||||
|
<TagManagerContainerPathEntity> ::=
|
||||||
|
<TagManagerContainerPathList> |
|
||||||
|
(select <FileSelector>|<CSVFileSelector>) |
|
||||||
|
<TagManagerWorkspacePathEntity> ::=
|
||||||
|
<TagManagerWorkspacePathList> |
|
||||||
|
(select <FileSelector>|<CSVFileSelector>) |
|
||||||
<TasklistEntity> ::=
|
<TasklistEntity> ::=
|
||||||
<TasklistIDList> | <TaskListTitleList> | <FileSelector> | <CSVFileSelector>
|
<TasklistIDList> | <TaskListTitleList> | <FileSelector> | <CSVFileSelector>
|
||||||
<TasklistIDTaskIDEntity> ::=
|
<TasklistIDTaskIDEntity> ::=
|
||||||
@@ -8337,6 +8360,54 @@ gam <UserTypeEntity> profile share|shared|unshare|unshared
|
|||||||
|
|
||||||
gam <UserTypeEntity> show profile
|
gam <UserTypeEntity> show profile
|
||||||
|
|
||||||
|
# Users - Tag Manager
|
||||||
|
|
||||||
|
<TagManagerAccountID> ::= <String>
|
||||||
|
<TagManagerAccountPath> ::= accounts/<TagManagerAccountID>
|
||||||
|
<TagManagerAccountPathList> ::= "<TagManagerAccountPath>(,<TagManagerAccountPath>)*"
|
||||||
|
<TagManagerAccountPathEntity> ::=
|
||||||
|
<TagManagerAccountPathList> |
|
||||||
|
(select <FileSelector>|<CSVFileSelector>) |
|
||||||
|
|
||||||
|
<TagManagerContainerID> ::= <String>
|
||||||
|
<TagManagerContainerPath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>
|
||||||
|
<TagManagerContainerPathList> ::= "<TagManagerContainerPath>(,<TagManagerContainerPath>)*"
|
||||||
|
<TagManagerContainerPathEntity> ::=
|
||||||
|
<TagManagerContainerPathList> |
|
||||||
|
(select <FileSelector>|<CSVFileSelector>) |
|
||||||
|
|
||||||
|
<TagManagerWorkspaceID> ::= <String>
|
||||||
|
<TagManagerWorkspacePath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>/workspaces/<TagManagerWorkspaceID>
|
||||||
|
<TagManagerWorkspacePathList> ::= "<TagManagerWorkspacePath>(,<TagManagerWorkspacePath>)*"
|
||||||
|
<TagManagerWorkspacePathEntity> ::=
|
||||||
|
<TagManagerWorkspacePathList> |
|
||||||
|
(select <FileSelector>|<CSVFileSelector>) |
|
||||||
|
|
||||||
|
<TagManagerTagID> ::= <String>
|
||||||
|
<TagManagerTagPath> ::= accounts/<TagManagerAccountID>/containers/<TagManagerContainerID>/workspaces/<TagManagerWorkspaceID>/tags/<TagManagerTagID>
|
||||||
|
|
||||||
|
gam <UserTypeEntity> show tagmanageraccounts
|
||||||
|
[includegoogletags [<Boolean>]]
|
||||||
|
[formatjson]
|
||||||
|
gam <UserTypeEntity> print tagmanagerccounts [todrive <ToDriveAttribute>*]
|
||||||
|
[includegoogletags [<Boolean>]]
|
||||||
|
[formatjson [quotechar <Character>]]
|
||||||
|
|
||||||
|
gam <UserTypeEntity> show tagmanagercontainers <TagManagerAccountPathEntity>
|
||||||
|
[formatjson]
|
||||||
|
gam <UserTypeEntity> print tagmanagercontainers <TagManagerAccountPathEntity> [todrive <ToDriveAttribute>*]
|
||||||
|
[formatjson [quotechar <Character>]]
|
||||||
|
|
||||||
|
gam <UserTypeEntity> show tagmanagerworkspaces <TagManagerContainerPathEntity>
|
||||||
|
[formatjson]
|
||||||
|
gam <UserTypeEntity> print tagmanagerworkspaces <TagManagerContainerPathEntity> [todrive <ToDriveAttribute>*]
|
||||||
|
[formatjson [quotechar <Character>]]
|
||||||
|
|
||||||
|
gam <UserTypeEntity> show tagmanagertags <TagManagerWorkspacePathEntity>
|
||||||
|
[formatjson]
|
||||||
|
gam <UserTypeEntity> print tagmanagertags <TagManagerWorkspacePathEntity> [todrive <ToDriveAttribute>*]
|
||||||
|
[formatjson [quotechar <Character>]]
|
||||||
|
|
||||||
# Users - Tasks
|
# Users - Tasks
|
||||||
|
|
||||||
<TaskAttribute> ::=
|
<TaskAttribute> ::=
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
7.14.00
|
||||||
|
|
||||||
|
Added commands to display Google Tag Manager accounts, containers, workspaces and tags.
|
||||||
|
|
||||||
|
* See: https://github.com/GAM-team/GAM/wiki/Users-Tag-Manager
|
||||||
|
|
||||||
7.13.03
|
7.13.03
|
||||||
|
|
||||||
Added option `csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]`
|
Added option `csv [todrive <ToDriveAttribute>*] [formatjson [quotechar <Character>]]]`
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
||||||
__version__ = '7.13.03'
|
__version__ = '7.14.00'
|
||||||
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||||
|
|
||||||
#pylint: disable=wrong-import-position
|
#pylint: disable=wrong-import-position
|
||||||
@@ -24113,7 +24113,10 @@ def infoCrOSDevices(entityList):
|
|||||||
printKeyValueList([up, ''])
|
printKeyValueList([up, ''])
|
||||||
Ind.Increment()
|
Ind.Increment()
|
||||||
for key, value in sorted(iter(cros[up].items())):
|
for key, value in sorted(iter(cros[up].items())):
|
||||||
printKeyValueList([key, value])
|
if key not in CROS_TIME_OBJECTS:
|
||||||
|
printKeyValueList([key, value])
|
||||||
|
else:
|
||||||
|
printKeyValueList([key, formatLocalTime(value)])
|
||||||
Ind.Decrement()
|
Ind.Decrement()
|
||||||
if not noLists:
|
if not noLists:
|
||||||
activeTimeRanges = _filterActiveTimeRanges(cros, True, listLimit, startDate, endDate, activeTimeRangesOrder)
|
activeTimeRanges = _filterActiveTimeRanges(cros, True, listLimit, startDate, endDate, activeTimeRangesOrder)
|
||||||
@@ -76488,6 +76491,134 @@ def importTasklist(users):
|
|||||||
tasklist=tasklistId, parent=parent, body=task)
|
tasklist=tasklistId, parent=parent, body=task)
|
||||||
parentIdMap[taskId] = result['id']
|
parentIdMap[taskId] = result['id']
|
||||||
|
|
||||||
|
TAGMANAGER_PARAMETERS = {
|
||||||
|
Ent.TAGMANAGER_ACCOUNT: {'respType': 'account', 'parentEntityType': None,
|
||||||
|
'idList': ['accountId']},
|
||||||
|
Ent.TAGMANAGER_CONTAINER: {'respType': 'container', 'parentEntityType': Ent.TAGMANAGER_ACCOUNT,
|
||||||
|
'idList': ['accountId', 'containerId']},
|
||||||
|
Ent.TAGMANAGER_WORKSPACE: {'respType': 'workspace', 'parentEntityType': Ent.TAGMANAGER_CONTAINER,
|
||||||
|
'idList': ['accountId', 'containerId', 'workspaceId']},
|
||||||
|
Ent.TAGMANAGER_TAG: {'respType': 'tag', 'parentEntityType': Ent.TAGMANAGER_WORKSPACE,
|
||||||
|
'idList': ['accountId', 'containerId', 'workspaceId', 'tagId']},
|
||||||
|
}
|
||||||
|
|
||||||
|
def printShowTagManagerObjects(users, entityType):
|
||||||
|
csvPF = CSVPrintFile(['User', 'name', 'path']) if Act.csvFormat() else None
|
||||||
|
FJQC = FormatJSONQuoteChar(csvPF)
|
||||||
|
if entityType == Ent.TAGMANAGER_ACCOUNT:
|
||||||
|
kwargs = {'includeGoogleTags': False}
|
||||||
|
parentList = [None]
|
||||||
|
else:
|
||||||
|
kwargs = {'parent': None}
|
||||||
|
if not checkArgumentPresent('select'):
|
||||||
|
parentList = getString(Cmd.OB_TAGMANAGER_PATH_LIST).replace(',', ' ').split()
|
||||||
|
else:
|
||||||
|
parentList = getEntityList(Cmd.OB_TAGMANAGER_PATH_LIST)
|
||||||
|
parameters = TAGMANAGER_PARAMETERS[entityType]
|
||||||
|
while Cmd.ArgumentsRemaining():
|
||||||
|
myarg = getArgument()
|
||||||
|
if csvPF and myarg == 'todrive':
|
||||||
|
csvPF.GetTodriveParameters()
|
||||||
|
elif entityType == Ent.TAGMANAGER_ACCOUNT and myarg == 'includegoogletags':
|
||||||
|
kwargs['includeGoogleTags'] = getBoolean()
|
||||||
|
else:
|
||||||
|
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
||||||
|
i, count, users = getEntityArgument(users)
|
||||||
|
for user in users:
|
||||||
|
i += 1
|
||||||
|
user, svc = buildGAPIServiceObject(API.TAGMANAGER, user, i, count)
|
||||||
|
if not svc:
|
||||||
|
continue
|
||||||
|
if entityType == Ent.TAGMANAGER_ACCOUNT:
|
||||||
|
svc = svc.accounts()
|
||||||
|
elif entityType == Ent.TAGMANAGER_CONTAINER:
|
||||||
|
svc = svc.accounts().containers()
|
||||||
|
elif entityType == Ent.TAGMANAGER_WORKSPACE:
|
||||||
|
svc = svc.accounts().containers().workspaces()
|
||||||
|
else: #elif entityType == Ent.TAGMANAGER_TAG:
|
||||||
|
svc = svc.accounts().containers().workspaces().tags()
|
||||||
|
jcount = len(parentList)
|
||||||
|
j = 0
|
||||||
|
for parent in parentList:
|
||||||
|
j += 1
|
||||||
|
if entityType == Ent.TAGMANAGER_ACCOUNT:
|
||||||
|
printGettingAllEntityItemsForWhom(entityType, user, i, count)
|
||||||
|
else:
|
||||||
|
kwargs['parent'] = parent
|
||||||
|
qualifier = f' for {Ent.Singular(parameters["parentEntityType"])}: {parent}'
|
||||||
|
printGettingAllEntityItemsForWhom(entityType, user, i, count, qualifier=qualifier)
|
||||||
|
try:
|
||||||
|
results = callGAPIpages(svc, 'list', parameters['respType'],
|
||||||
|
pageMessage=getPageMessageForWhom(),
|
||||||
|
throwReasons=GAPI.TAGMANAGER_THROW_REASONS,
|
||||||
|
**kwargs)
|
||||||
|
except (GAPI.badRequest, GAPI.invalid, GAPI.notFound) as e:
|
||||||
|
entityActionFailedWarning([Ent.USER, user, entityType, kwargs['parent']], str(e), j, jcount)
|
||||||
|
continue
|
||||||
|
kcount = len(results)
|
||||||
|
if not csvPF:
|
||||||
|
if not FJQC.formatJSON:
|
||||||
|
entityPerformActionNumItems([Ent.USER, user], kcount, entityType, j, jcount)
|
||||||
|
Ind.Increment()
|
||||||
|
k = 0
|
||||||
|
for result in results:
|
||||||
|
k += 1
|
||||||
|
if not FJQC.formatJSON:
|
||||||
|
printEntity([entityType, result['path']], k, kcount)
|
||||||
|
Ind.Increment()
|
||||||
|
for tmid in parameters['idList']:
|
||||||
|
printKeyValueList([tmid, result.pop(tmid)])
|
||||||
|
printKeyValueList(['name', result.pop('name')])
|
||||||
|
showJSON(None, result)
|
||||||
|
Ind.Decrement()
|
||||||
|
else:
|
||||||
|
printLine(json.dumps(cleanJSON(result), ensure_ascii=False, sort_keys=True))
|
||||||
|
Ind.Decrement()
|
||||||
|
else:
|
||||||
|
for result in results:
|
||||||
|
baseRow = {'User': user}
|
||||||
|
for tmid in parameters['idList']:
|
||||||
|
baseRow[tmid] = result.pop(tmid)
|
||||||
|
row = flattenJSON(result, flattened=baseRow)
|
||||||
|
if not FJQC.formatJSON:
|
||||||
|
csvPF.WriteRowTitles(row)
|
||||||
|
elif csvPF.CheckRowTitles(row):
|
||||||
|
row = {'User': user, 'name': result['name'], 'path': result['path']}
|
||||||
|
row['JSON'] = json.dumps(cleanJSON(result), ensure_ascii=False, sort_keys=True)
|
||||||
|
csvPF.WriteRowNoFilter(row)
|
||||||
|
if csvPF:
|
||||||
|
csvPF.writeCSVfile(Ent.Plural(entityType))
|
||||||
|
|
||||||
|
# gam <UserTypeEntity> show tagmanageraccounts
|
||||||
|
# [includegoogletags [<Boolean>]]
|
||||||
|
# [formatjson]
|
||||||
|
# gam <UserTypeEntity> print tagmanagerccounts [todrive <ToDriveAttribute>*]
|
||||||
|
# [includegoogletags [<Boolean>]]
|
||||||
|
# [formatjson [quotechar <Character>]]
|
||||||
|
def printShowTagManagerAccounts(users):
|
||||||
|
printShowTagManagerObjects(users, Ent.TAGMANAGER_ACCOUNT)
|
||||||
|
|
||||||
|
# gam <UserTypeEntity> show tagmanagercontainers <TagManagerAccountPathEntity>
|
||||||
|
# [formatjson]
|
||||||
|
# gam <UserTypeEntity> print tagmanagercontainers <TagManagerAccountPathEntity> [todrive <ToDriveAttribute>*]
|
||||||
|
# [formatjson [quotechar <Character>]]
|
||||||
|
def printShowTagManagerContainers(users):
|
||||||
|
printShowTagManagerObjects(users, Ent.TAGMANAGER_CONTAINER)
|
||||||
|
|
||||||
|
# gam <UserTypeEntity> show tagmanagerworkspaces <TagManagerContainerPathEntity>
|
||||||
|
# [formatjson]
|
||||||
|
# gam <UserTypeEntity> print tagmanagerworkspaces <TagManagerContainerPathEntity>
|
||||||
|
# [formatjson [quotechar <Character>]]
|
||||||
|
def printShowTagManagerWorkspaces(users):
|
||||||
|
printShowTagManagerObjects(users, Ent.TAGMANAGER_WORKSPACE)
|
||||||
|
|
||||||
|
# gam <UserTypeEntity> show tagmanagertags <TagManagerWorkspacePathEntity>
|
||||||
|
# [formatjson]
|
||||||
|
# gam <UserTypeEntity> print tagmanagertags <TagManagerWorkspacePathEntity> [todrive <ToDriveAttribute>*]
|
||||||
|
# [formatjson [quotechar <Character>]]
|
||||||
|
def printShowTagManagerTags(users):
|
||||||
|
printShowTagManagerObjects(users, Ent.TAGMANAGER_TAG)
|
||||||
|
|
||||||
def getCRMOrgId():
|
def getCRMOrgId():
|
||||||
setTrueCustomerId()
|
setTrueCustomerId()
|
||||||
_, crm = buildGAPIServiceObject(API.CLOUDRESOURCEMANAGER, None)
|
_, crm = buildGAPIServiceObject(API.CLOUDRESOURCEMANAGER, None)
|
||||||
@@ -78216,6 +78347,10 @@ USER_COMMANDS_WITH_OBJECTS = {
|
|||||||
Cmd.ARG_SITE: deprecatedUserSites,
|
Cmd.ARG_SITE: deprecatedUserSites,
|
||||||
Cmd.ARG_SITEACL: deprecatedUserSites,
|
Cmd.ARG_SITEACL: deprecatedUserSites,
|
||||||
Cmd.ARG_SITEACTIVITY: deprecatedUserSites,
|
Cmd.ARG_SITEACTIVITY: deprecatedUserSites,
|
||||||
|
Cmd.ARG_TAGMANAGERACCOUNT: printShowTagManagerAccounts,
|
||||||
|
Cmd.ARG_TAGMANAGERCONTAINER: printShowTagManagerContainers,
|
||||||
|
Cmd.ARG_TAGMANAGERWORKSPACE: printShowTagManagerWorkspaces,
|
||||||
|
Cmd.ARG_TAGMANAGERTAG: printShowTagManagerTags,
|
||||||
Cmd.ARG_TASK: printShowTasks,
|
Cmd.ARG_TASK: printShowTasks,
|
||||||
Cmd.ARG_TASKLIST: printShowTasklists,
|
Cmd.ARG_TASKLIST: printShowTasklists,
|
||||||
Cmd.ARG_THREAD: printShowThreads,
|
Cmd.ARG_THREAD: printShowThreads,
|
||||||
@@ -78323,6 +78458,10 @@ USER_COMMANDS_WITH_OBJECTS = {
|
|||||||
Cmd.ARG_SITE: deprecatedUserSites,
|
Cmd.ARG_SITE: deprecatedUserSites,
|
||||||
Cmd.ARG_SITEACL: deprecatedUserSites,
|
Cmd.ARG_SITEACL: deprecatedUserSites,
|
||||||
Cmd.ARG_SMIME: printShowSmimes,
|
Cmd.ARG_SMIME: printShowSmimes,
|
||||||
|
Cmd.ARG_TAGMANAGERACCOUNT: printShowTagManagerAccounts,
|
||||||
|
Cmd.ARG_TAGMANAGERCONTAINER: printShowTagManagerContainers,
|
||||||
|
Cmd.ARG_TAGMANAGERWORKSPACE: printShowTagManagerWorkspaces,
|
||||||
|
Cmd.ARG_TAGMANAGERTAG: printShowTagManagerTags,
|
||||||
Cmd.ARG_TASK: printShowTasks,
|
Cmd.ARG_TASK: printShowTasks,
|
||||||
Cmd.ARG_TASKLIST: printShowTasklists,
|
Cmd.ARG_TASKLIST: printShowTasklists,
|
||||||
Cmd.ARG_THREAD: printShowThreads,
|
Cmd.ARG_THREAD: printShowThreads,
|
||||||
@@ -78562,6 +78701,10 @@ USER_COMMANDS_OBJ_ALIASES = {
|
|||||||
Cmd.ARG_SITES: Cmd.ARG_SITE,
|
Cmd.ARG_SITES: Cmd.ARG_SITE,
|
||||||
Cmd.ARG_SITEACLS: Cmd.ARG_SITEACL,
|
Cmd.ARG_SITEACLS: Cmd.ARG_SITEACL,
|
||||||
Cmd.ARG_SMIMES: Cmd.ARG_SMIME,
|
Cmd.ARG_SMIMES: Cmd.ARG_SMIME,
|
||||||
|
Cmd.ARG_TAGMANAGERACCOUNTS: Cmd.ARG_TAGMANAGERACCOUNT,
|
||||||
|
Cmd.ARG_TAGMANAGERCONTAINERS: Cmd.ARG_TAGMANAGERCONTAINER,
|
||||||
|
Cmd.ARG_TAGMANAGERWORKSPACES: Cmd.ARG_TAGMANAGERWORKSPACE,
|
||||||
|
Cmd.ARG_TAGMANAGERTAGS: Cmd.ARG_TAGMANAGERTAG,
|
||||||
Cmd.ARG_TASKS: Cmd.ARG_TASK,
|
Cmd.ARG_TASKS: Cmd.ARG_TASK,
|
||||||
Cmd.ARG_TASKLISTS: Cmd.ARG_TASKLIST,
|
Cmd.ARG_TASKLISTS: Cmd.ARG_TASKLIST,
|
||||||
Cmd.ARG_TEAMDRIVE: Cmd.ARG_SHAREDDRIVE,
|
Cmd.ARG_TEAMDRIVE: Cmd.ARG_SHAREDDRIVE,
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ SITEVERIFICATION = 'siteVerification'
|
|||||||
STORAGE = 'storage'
|
STORAGE = 'storage'
|
||||||
STORAGEREAD = 'storageread'
|
STORAGEREAD = 'storageread'
|
||||||
STORAGEWRITE = 'storagewrite'
|
STORAGEWRITE = 'storagewrite'
|
||||||
|
TAGMANAGER = 'tagmanager'
|
||||||
TASKS = 'tasks'
|
TASKS = 'tasks'
|
||||||
VAULT = 'vault'
|
VAULT = 'vault'
|
||||||
YOUTUBE = 'youtube'
|
YOUTUBE = 'youtube'
|
||||||
@@ -199,6 +200,7 @@ PROJECT_APIS = [
|
|||||||
'sheets.googleapis.com',
|
'sheets.googleapis.com',
|
||||||
'siteverification.googleapis.com',
|
'siteverification.googleapis.com',
|
||||||
'storage-api.googleapis.com',
|
'storage-api.googleapis.com',
|
||||||
|
'tagmanager.googleapis.com',
|
||||||
'tasks.googleapis.com',
|
'tasks.googleapis.com',
|
||||||
'vault.googleapis.com',
|
'vault.googleapis.com',
|
||||||
'youtube.googleapis.com',
|
'youtube.googleapis.com',
|
||||||
@@ -277,6 +279,7 @@ _INFO = {
|
|||||||
STORAGE: {'name': 'Cloud Storage API', 'version': 'v1', 'v2discovery': True},
|
STORAGE: {'name': 'Cloud Storage API', 'version': 'v1', 'v2discovery': True},
|
||||||
STORAGEREAD: {'name': 'Cloud Storage API - Read', 'version': 'v1', 'v2discovery': True, 'mappedAPI': STORAGE},
|
STORAGEREAD: {'name': 'Cloud Storage API - Read', 'version': 'v1', 'v2discovery': True, 'mappedAPI': STORAGE},
|
||||||
STORAGEWRITE: {'name': 'Cloud Storage API - Write', 'version': 'v1', 'v2discovery': True, 'mappedAPI': STORAGE},
|
STORAGEWRITE: {'name': 'Cloud Storage API - Write', 'version': 'v1', 'v2discovery': True, 'mappedAPI': STORAGE},
|
||||||
|
TAGMANAGER: {'name': 'Tag Manager API', 'version': 'v2', 'v2discovery': True},
|
||||||
TASKS: {'name': 'Tasks API', 'version': 'v1', 'v2discovery': True},
|
TASKS: {'name': 'Tasks API', 'version': 'v1', 'v2discovery': True},
|
||||||
VAULT: {'name': 'Vault API', 'version': 'v1', 'v2discovery': True},
|
VAULT: {'name': 'Vault API', 'version': 'v1', 'v2discovery': True},
|
||||||
YOUTUBE: {'name': 'Youtube API', 'version': 'v3', 'v2discovery': True},
|
YOUTUBE: {'name': 'Youtube API', 'version': 'v3', 'v2discovery': True},
|
||||||
@@ -696,6 +699,10 @@ _SVCACCT_SCOPES = [
|
|||||||
'api': SHEETS,
|
'api': SHEETS,
|
||||||
'subscopes': READONLY,
|
'subscopes': READONLY,
|
||||||
'scope': 'https://www.googleapis.com/auth/spreadsheets'},
|
'scope': 'https://www.googleapis.com/auth/spreadsheets'},
|
||||||
|
{'name': 'Tag Manager API - read only',
|
||||||
|
'api': TAGMANAGER,
|
||||||
|
'subscopes': [],
|
||||||
|
'scope': 'https://www.googleapis.com/auth/tagmanager.readonly'},
|
||||||
{'name': 'Tasks API',
|
{'name': 'Tasks API',
|
||||||
'api': TASKS,
|
'api': TASKS,
|
||||||
'subscopes': READONLY,
|
'subscopes': READONLY,
|
||||||
|
|||||||
@@ -782,6 +782,14 @@ class GamCLArgs():
|
|||||||
ARG_SUSPENDED = 'suspended'
|
ARG_SUSPENDED = 'suspended'
|
||||||
ARG_SVCACCT = 'svcacct'
|
ARG_SVCACCT = 'svcacct'
|
||||||
ARG_SVCACCTS = 'svcaccts'
|
ARG_SVCACCTS = 'svcaccts'
|
||||||
|
ARG_TAGMANAGERACCOUNT = 'tagmanageraccount'
|
||||||
|
ARG_TAGMANAGERACCOUNTS = 'tagmanageraccounts'
|
||||||
|
ARG_TAGMANAGERCONTAINER = 'tagmanagercontainer'
|
||||||
|
ARG_TAGMANAGERCONTAINERS = 'tagmanagercontainers'
|
||||||
|
ARG_TAGMANAGERWORKSPACE = 'tagmanagerworkspace'
|
||||||
|
ARG_TAGMANAGERWORKSPACES = 'tagmanagerworkspaces'
|
||||||
|
ARG_TAGMANAGERTAG = 'tagmanagertag'
|
||||||
|
ARG_TAGMANAGERTAGS = 'tagmanagertags'
|
||||||
ARG_TASK = 'task'
|
ARG_TASK = 'task'
|
||||||
ARG_TASKS = 'tasks'
|
ARG_TASKS = 'tasks'
|
||||||
ARG_TASKLIST = 'tasklist'
|
ARG_TASKLIST = 'tasklist'
|
||||||
@@ -1039,6 +1047,7 @@ class GamCLArgs():
|
|||||||
OB_STRING_LIST = 'StringList'
|
OB_STRING_LIST = 'StringList'
|
||||||
OB_STUDENT_ITEM = 'StudentItem'
|
OB_STUDENT_ITEM = 'StudentItem'
|
||||||
OB_TAG = 'Tag'
|
OB_TAG = 'Tag'
|
||||||
|
OB_TAGMANAGER_PATH_LIST = 'TagManagerPathList'
|
||||||
OB_TASK_ID = 'TaskID'
|
OB_TASK_ID = 'TaskID'
|
||||||
OB_TASKLIST_ID = 'TaskListID'
|
OB_TASKLIST_ID = 'TaskListID'
|
||||||
OB_TASKLIST_ID_ENTITY = 'TaskListIDEntity'
|
OB_TASKLIST_ID_ENTITY = 'TaskListIDEntity'
|
||||||
|
|||||||
@@ -358,7 +358,11 @@ class GamEntity():
|
|||||||
SUBSCRIPTION = 'subs'
|
SUBSCRIPTION = 'subs'
|
||||||
SVCACCT = 'svac'
|
SVCACCT = 'svac'
|
||||||
SVCACCT_KEY = 'svky'
|
SVCACCT_KEY = 'svky'
|
||||||
TARGET_USER = 'tgt'
|
TAGMANAGER_ACCOUNT = 'tmac'
|
||||||
|
TAGMANAGER_CONTAINER = 'tmco'
|
||||||
|
TAGMANAGER_WORKSPACE = 'tmws'
|
||||||
|
TAGMANAGER_TAG = 'tmtg'
|
||||||
|
TARGET_USER = 'tgt '
|
||||||
TASK = 'task'
|
TASK = 'task'
|
||||||
TASKLIST = 'tali'
|
TASKLIST = 'tali'
|
||||||
TEACHER = 'teac'
|
TEACHER = 'teac'
|
||||||
@@ -710,6 +714,10 @@ class GamEntity():
|
|||||||
SUBSCRIPTION: ['Subscriptions', 'Subscription'],
|
SUBSCRIPTION: ['Subscriptions', 'Subscription'],
|
||||||
SVCACCT: ['Service Accounts', 'Service Account'],
|
SVCACCT: ['Service Accounts', 'Service Account'],
|
||||||
SVCACCT_KEY: ['Service Account Keys', 'Service Account Key'],
|
SVCACCT_KEY: ['Service Account Keys', 'Service Account Key'],
|
||||||
|
TAGMANAGER_ACCOUNT: ['Tag Manager Accounts', 'Tag Manager Account'],
|
||||||
|
TAGMANAGER_CONTAINER: ['Tag Manager Containers', 'Tag Manager Container'],
|
||||||
|
TAGMANAGER_WORKSPACE: ['Tag Manager Workspaces', 'Tag Manager Workspace'],
|
||||||
|
TAGMANAGER_TAG: ['Tag Manager Tags', 'Tag Manager Tag'],
|
||||||
TARGET_USER: ['Target Users', 'Target User'],
|
TARGET_USER: ['Target Users', 'Target User'],
|
||||||
TASK: ['Tasks', 'Task'],
|
TASK: ['Tasks', 'Task'],
|
||||||
TASKLIST: ['Tasklists', 'Tasklist'],
|
TASKLIST: ['Tasklists', 'Tasklist'],
|
||||||
|
|||||||
@@ -287,6 +287,7 @@ PEOPLE_ACCESS_THROW_REASONS = [SERVICE_NOT_AVAILABLE, FORBIDDEN, PERMISSION_DENI
|
|||||||
RESELLER_THROW_REASONS = [BAD_REQUEST, RESOURCE_NOT_FOUND, FORBIDDEN, INVALID]
|
RESELLER_THROW_REASONS = [BAD_REQUEST, RESOURCE_NOT_FOUND, FORBIDDEN, INVALID]
|
||||||
SHEETS_ACCESS_THROW_REASONS = DRIVE_USER_THROW_REASONS+[NOT_FOUND, PERMISSION_DENIED, FORBIDDEN, INTERNAL_ERROR, INSUFFICIENT_FILE_PERMISSIONS,
|
SHEETS_ACCESS_THROW_REASONS = DRIVE_USER_THROW_REASONS+[NOT_FOUND, PERMISSION_DENIED, FORBIDDEN, INTERNAL_ERROR, INSUFFICIENT_FILE_PERMISSIONS,
|
||||||
BAD_REQUEST, INVALID, INVALID_ARGUMENT, FAILED_PRECONDITION]
|
BAD_REQUEST, INVALID, INVALID_ARGUMENT, FAILED_PRECONDITION]
|
||||||
|
TAGMANAGER_THROW_REASONS = [BAD_REQUEST, PERMISSION_DENIED, INVALID, NOT_FOUND, ACCESS_NOT_CONFIGURED]
|
||||||
TASK_THROW_REASONS = [BAD_REQUEST, PERMISSION_DENIED, INVALID, NOT_FOUND, ACCESS_NOT_CONFIGURED]
|
TASK_THROW_REASONS = [BAD_REQUEST, PERMISSION_DENIED, INVALID, NOT_FOUND, ACCESS_NOT_CONFIGURED]
|
||||||
TASKLIST_THROW_REASONS = [BAD_REQUEST, PERMISSION_DENIED, INVALID, NOT_FOUND, ACCESS_NOT_CONFIGURED]
|
TASKLIST_THROW_REASONS = [BAD_REQUEST, PERMISSION_DENIED, INVALID, NOT_FOUND, ACCESS_NOT_CONFIGURED]
|
||||||
USER_GET_THROW_REASONS = [USER_NOT_FOUND, DOMAIN_NOT_FOUND, DOMAIN_CANNOT_USE_APIS, FORBIDDEN, BAD_REQUEST, SYSTEM_ERROR]
|
USER_GET_THROW_REASONS = [USER_NOT_FOUND, DOMAIN_NOT_FOUND, DOMAIN_CANNOT_USE_APIS, FORBIDDEN, BAD_REQUEST, SYSTEM_ERROR]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
name = GAM for Google Workspace
|
name = GAM for Google Workspace
|
||||||
#version = attr: gam.var.GAM_VERSION
|
#version = attr: gam.var.GAM_VERSION
|
||||||
version = 7.13.02
|
version = 7.14.
|
||||||
description = Command line management for Google Workspaces
|
description = Command line management for Google Workspaces
|
||||||
long_description = file: readme.md
|
long_description = file: readme.md
|
||||||
long_description_content_type = text/markdown
|
long_description_content_type = text/markdown
|
||||||
|
|||||||
Reference in New Issue
Block a user