TAGMANAGER

tagmanager.accounts.containers.combine

enum_SettingSourceParameter := [ "settingSourceUnspecified", "current", "other" ]

valid {
    input.ReqMap.path == STRING
    input.Qs.allowUserPermissionFeatureUpdate == BOOLEAN
    input.Qs.containerId == STRING
    input.Qs.settingSource == enum_SettingSourceParameter[_]
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.create

enum_ContainerUsageContext := [ "usageContextUnspecified", "web", "android", "ios", "androidSdk5", "iosSdk5", "amp", "server" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.domainName[_] == STRING
    input.Body.features.supportBuiltInVariables == BOOLEAN
    input.Body.features.supportClients == BOOLEAN
    input.Body.features.supportEnvironments == BOOLEAN
    input.Body.features.supportFolders == BOOLEAN
    input.Body.features.supportGtagConfigs == BOOLEAN
    input.Body.features.supportTags == BOOLEAN
    input.Body.features.supportTemplates == BOOLEAN
    input.Body.features.supportTransformations == BOOLEAN
    input.Body.features.supportTriggers == BOOLEAN
    input.Body.features.supportUserPermissions == BOOLEAN
    input.Body.features.supportVariables == BOOLEAN
    input.Body.features.supportVersions == BOOLEAN
    input.Body.features.supportWorkspaces == BOOLEAN
    input.Body.features.supportZones == BOOLEAN
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.path == STRING
    input.Body.publicId == STRING
    input.Body.tagIds[_] == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.taggingServerUrls[_] == STRING
    input.Body.usageContext[_] == enum_ContainerUsageContext[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.destinations.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.destinations.link

valid {
    input.ReqMap.parent == STRING
    input.Qs.allowUserPermissionFeatureUpdate == BOOLEAN
    input.Qs.destinationId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.destinations.list

valid {
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.environments.create

enum_EnvironmentType := [ "user", "live", "latest", "workspace" ]

valid {
    input.Body.accountId == STRING
    input.Body.authorizationCode == STRING
    input.Body.authorizationTimestamp == STRING
    input.Body.containerId == STRING
    input.Body.containerVersionId == STRING
    input.Body.description == STRING
    input.Body.enableDebug == BOOLEAN
    input.Body.environmentId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.type == enum_EnvironmentType[_]
    input.Body.url == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.environments.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.environments.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.environments.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.environments.reauthorize

enum_EnvironmentType := [ "user", "live", "latest", "workspace" ]

valid {
    input.Body.accountId == STRING
    input.Body.authorizationCode == STRING
    input.Body.authorizationTimestamp == STRING
    input.Body.containerId == STRING
    input.Body.containerVersionId == STRING
    input.Body.description == STRING
    input.Body.enableDebug == BOOLEAN
    input.Body.environmentId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.type == enum_EnvironmentType[_]
    input.Body.url == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.environments.update

enum_EnvironmentType := [ "user", "live", "latest", "workspace" ]

valid {
    input.Body.accountId == STRING
    input.Body.authorizationCode == STRING
    input.Body.authorizationTimestamp == STRING
    input.Body.containerId == STRING
    input.Body.containerVersionId == STRING
    input.Body.description == STRING
    input.Body.enableDebug == BOOLEAN
    input.Body.environmentId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.type == enum_EnvironmentType[_]
    input.Body.url == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.folders.create

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.folderId == STRING
    input.Body.name == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.folders.delete

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.folderId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.folders.entities.list

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.folderId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.folders.get

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.folderId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.folders.list

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.folders.update

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.folderId == STRING
    input.Body.name == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.folderId == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.lookup

valid {
    input.Qs.destinationId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.move_folders.update

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.folderId == STRING
    input.Body.name == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.folderId == STRING
    input.Qs.tagId == STRING
    input.Qs.triggerId == STRING
    input.Qs.variableId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.move_tag_id

valid {
    input.ReqMap.path == STRING
    input.Qs.allowUserPermissionFeatureUpdate == BOOLEAN
    input.Qs.copySettings == BOOLEAN
    input.Qs.copyTermsOfService == BOOLEAN
    input.Qs.copyUsers == BOOLEAN
    input.Qs.tagId == STRING
    input.Qs.tagName == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.reauthorize_environments.update

enum_EnvironmentType := [ "user", "live", "latest", "draft" ]

valid {
    input.Body.accountId == STRING
    input.Body.authorizationCode == STRING
    input.Body.authorizationTimestampMs == STRING
    input.Body.containerId == STRING
    input.Body.containerVersionId == STRING
    input.Body.description == STRING
    input.Body.enableDebug == BOOLEAN
    input.Body.environmentId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.type == enum_EnvironmentType[_]
    input.Body.url == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.environmentId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.snippet

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.tags.create

enum_ParameterType := [ "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TagTagFiringOption := [ "unlimited", "oncePerEvent", "oncePerLoad" ]

valid {
    input.Body.accountId == STRING
    input.Body.blockingRuleId[_] == STRING
    input.Body.blockingTriggerId[_] == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.firingRuleId[_] == STRING
    input.Body.firingTriggerId[_] == STRING
    input.Body.liveOnly == BOOLEAN
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.paused == BOOLEAN
    input.Body.priority.key == STRING
    input.Body.priority.list[_] == NESTED
    input.Body.priority.map[_] == NESTED
    input.Body.priority.type == enum_ParameterType[_]
    input.Body.priority.value == STRING
    input.Body.scheduleEndMs == STRING
    input.Body.scheduleStartMs == STRING
    input.Body.setupTag[_].stopOnSetupFailure == BOOLEAN
    input.Body.setupTag[_].tagName == STRING
    input.Body.tagFiringOption == enum_TagTagFiringOption[_]
    input.Body.tagId == STRING
    input.Body.teardownTag[_].stopTeardownOnFailure == BOOLEAN
    input.Body.teardownTag[_].tagName == STRING
    input.Body.type == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.tags.delete

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.tagId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.tags.get

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.tagId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.tags.list

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.tags.update

enum_ParameterType := [ "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TagTagFiringOption := [ "unlimited", "oncePerEvent", "oncePerLoad" ]

valid {
    input.Body.accountId == STRING
    input.Body.blockingRuleId[_] == STRING
    input.Body.blockingTriggerId[_] == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.firingRuleId[_] == STRING
    input.Body.firingTriggerId[_] == STRING
    input.Body.liveOnly == BOOLEAN
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.paused == BOOLEAN
    input.Body.priority.key == STRING
    input.Body.priority.list[_] == NESTED
    input.Body.priority.map[_] == NESTED
    input.Body.priority.type == enum_ParameterType[_]
    input.Body.priority.value == STRING
    input.Body.scheduleEndMs == STRING
    input.Body.scheduleStartMs == STRING
    input.Body.setupTag[_].stopOnSetupFailure == BOOLEAN
    input.Body.setupTag[_].tagName == STRING
    input.Body.tagFiringOption == enum_TagTagFiringOption[_]
    input.Body.tagId == STRING
    input.Body.teardownTag[_].stopTeardownOnFailure == BOOLEAN
    input.Body.teardownTag[_].tagName == STRING
    input.Body.type == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.tagId == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.triggers.create

enum_ConditionType := [ "equals", "contains", "startsWith", "endsWith", "matchRegex", "greater", "greaterOrEquals", "less", "lessOrEquals", "cssSelector", "urlMatches" ]
enum_ParameterType := [ "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TriggerType := [ "pageview", "domReady", "windowLoaded", "customEvent", "triggerGroup", "always", "formSubmission", "click", "linkClick", "jsError", "historyChange", "timer", "ampClick", "ampTimer", "ampScroll", "ampVisibility", "youTubeVideo", "scrollDepth", "elementVisibility" ]

valid {
    input.Body.accountId == STRING
    input.Body.autoEventFilter[_].parameter[_].key == STRING
    input.Body.autoEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.autoEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.autoEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.autoEventFilter[_].parameter[_].value == STRING
    input.Body.autoEventFilter[_].type == enum_ConditionType[_]
    input.Body.checkValidation.key == STRING
    input.Body.checkValidation.list[_] == NESTED
    input.Body.checkValidation.map[_] == NESTED
    input.Body.checkValidation.type == enum_ParameterType[_]
    input.Body.checkValidation.value == STRING
    input.Body.containerId == STRING
    input.Body.continuousTimeMinMilliseconds.key == STRING
    input.Body.continuousTimeMinMilliseconds.list[_] == NESTED
    input.Body.continuousTimeMinMilliseconds.map[_] == NESTED
    input.Body.continuousTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.continuousTimeMinMilliseconds.value == STRING
    input.Body.customEventFilter[_].parameter[_].key == STRING
    input.Body.customEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.customEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.customEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.customEventFilter[_].parameter[_].value == STRING
    input.Body.customEventFilter[_].type == enum_ConditionType[_]
    input.Body.eventName.key == STRING
    input.Body.eventName.list[_] == NESTED
    input.Body.eventName.map[_] == NESTED
    input.Body.eventName.type == enum_ParameterType[_]
    input.Body.eventName.value == STRING
    input.Body.filter[_].parameter[_].key == STRING
    input.Body.filter[_].parameter[_].list[_] == NESTED
    input.Body.filter[_].parameter[_].map[_] == NESTED
    input.Body.filter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.filter[_].parameter[_].value == STRING
    input.Body.filter[_].type == enum_ConditionType[_]
    input.Body.fingerprint == STRING
    input.Body.horizontalScrollPercentageList.key == STRING
    input.Body.horizontalScrollPercentageList.list[_] == NESTED
    input.Body.horizontalScrollPercentageList.map[_] == NESTED
    input.Body.horizontalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.horizontalScrollPercentageList.value == STRING
    input.Body.interval.key == STRING
    input.Body.interval.list[_] == NESTED
    input.Body.interval.map[_] == NESTED
    input.Body.interval.type == enum_ParameterType[_]
    input.Body.interval.value == STRING
    input.Body.intervalSeconds.key == STRING
    input.Body.intervalSeconds.list[_] == NESTED
    input.Body.intervalSeconds.map[_] == NESTED
    input.Body.intervalSeconds.type == enum_ParameterType[_]
    input.Body.intervalSeconds.value == STRING
    input.Body.limit.key == STRING
    input.Body.limit.list[_] == NESTED
    input.Body.limit.map[_] == NESTED
    input.Body.limit.type == enum_ParameterType[_]
    input.Body.limit.value == STRING
    input.Body.maxTimerLengthSeconds.key == STRING
    input.Body.maxTimerLengthSeconds.list[_] == NESTED
    input.Body.maxTimerLengthSeconds.map[_] == NESTED
    input.Body.maxTimerLengthSeconds.type == enum_ParameterType[_]
    input.Body.maxTimerLengthSeconds.value == STRING
    input.Body.name == STRING
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.selector.key == STRING
    input.Body.selector.list[_] == NESTED
    input.Body.selector.map[_] == NESTED
    input.Body.selector.type == enum_ParameterType[_]
    input.Body.selector.value == STRING
    input.Body.totalTimeMinMilliseconds.key == STRING
    input.Body.totalTimeMinMilliseconds.list[_] == NESTED
    input.Body.totalTimeMinMilliseconds.map[_] == NESTED
    input.Body.totalTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.totalTimeMinMilliseconds.value == STRING
    input.Body.triggerId == STRING
    input.Body.type == enum_TriggerType[_]
    input.Body.uniqueTriggerId.key == STRING
    input.Body.uniqueTriggerId.list[_] == NESTED
    input.Body.uniqueTriggerId.map[_] == NESTED
    input.Body.uniqueTriggerId.type == enum_ParameterType[_]
    input.Body.uniqueTriggerId.value == STRING
    input.Body.verticalScrollPercentageList.key == STRING
    input.Body.verticalScrollPercentageList.list[_] == NESTED
    input.Body.verticalScrollPercentageList.map[_] == NESTED
    input.Body.verticalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.verticalScrollPercentageList.value == STRING
    input.Body.visibilitySelector.key == STRING
    input.Body.visibilitySelector.list[_] == NESTED
    input.Body.visibilitySelector.map[_] == NESTED
    input.Body.visibilitySelector.type == enum_ParameterType[_]
    input.Body.visibilitySelector.value == STRING
    input.Body.visiblePercentageMax.key == STRING
    input.Body.visiblePercentageMax.list[_] == NESTED
    input.Body.visiblePercentageMax.map[_] == NESTED
    input.Body.visiblePercentageMax.type == enum_ParameterType[_]
    input.Body.visiblePercentageMax.value == STRING
    input.Body.visiblePercentageMin.key == STRING
    input.Body.visiblePercentageMin.list[_] == NESTED
    input.Body.visiblePercentageMin.map[_] == NESTED
    input.Body.visiblePercentageMin.type == enum_ParameterType[_]
    input.Body.visiblePercentageMin.value == STRING
    input.Body.waitForTags.key == STRING
    input.Body.waitForTags.list[_] == NESTED
    input.Body.waitForTags.map[_] == NESTED
    input.Body.waitForTags.type == enum_ParameterType[_]
    input.Body.waitForTags.value == STRING
    input.Body.waitForTagsTimeout.key == STRING
    input.Body.waitForTagsTimeout.list[_] == NESTED
    input.Body.waitForTagsTimeout.map[_] == NESTED
    input.Body.waitForTagsTimeout.type == enum_ParameterType[_]
    input.Body.waitForTagsTimeout.value == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.triggers.delete

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.triggerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.triggers.get

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.triggerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.triggers.list

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.triggers.update

enum_ConditionType := [ "equals", "contains", "startsWith", "endsWith", "matchRegex", "greater", "greaterOrEquals", "less", "lessOrEquals", "cssSelector", "urlMatches" ]
enum_ParameterType := [ "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TriggerType := [ "pageview", "domReady", "windowLoaded", "customEvent", "triggerGroup", "always", "formSubmission", "click", "linkClick", "jsError", "historyChange", "timer", "ampClick", "ampTimer", "ampScroll", "ampVisibility", "youTubeVideo", "scrollDepth", "elementVisibility" ]

valid {
    input.Body.accountId == STRING
    input.Body.autoEventFilter[_].parameter[_].key == STRING
    input.Body.autoEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.autoEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.autoEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.autoEventFilter[_].parameter[_].value == STRING
    input.Body.autoEventFilter[_].type == enum_ConditionType[_]
    input.Body.checkValidation.key == STRING
    input.Body.checkValidation.list[_] == NESTED
    input.Body.checkValidation.map[_] == NESTED
    input.Body.checkValidation.type == enum_ParameterType[_]
    input.Body.checkValidation.value == STRING
    input.Body.containerId == STRING
    input.Body.continuousTimeMinMilliseconds.key == STRING
    input.Body.continuousTimeMinMilliseconds.list[_] == NESTED
    input.Body.continuousTimeMinMilliseconds.map[_] == NESTED
    input.Body.continuousTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.continuousTimeMinMilliseconds.value == STRING
    input.Body.customEventFilter[_].parameter[_].key == STRING
    input.Body.customEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.customEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.customEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.customEventFilter[_].parameter[_].value == STRING
    input.Body.customEventFilter[_].type == enum_ConditionType[_]
    input.Body.eventName.key == STRING
    input.Body.eventName.list[_] == NESTED
    input.Body.eventName.map[_] == NESTED
    input.Body.eventName.type == enum_ParameterType[_]
    input.Body.eventName.value == STRING
    input.Body.filter[_].parameter[_].key == STRING
    input.Body.filter[_].parameter[_].list[_] == NESTED
    input.Body.filter[_].parameter[_].map[_] == NESTED
    input.Body.filter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.filter[_].parameter[_].value == STRING
    input.Body.filter[_].type == enum_ConditionType[_]
    input.Body.fingerprint == STRING
    input.Body.horizontalScrollPercentageList.key == STRING
    input.Body.horizontalScrollPercentageList.list[_] == NESTED
    input.Body.horizontalScrollPercentageList.map[_] == NESTED
    input.Body.horizontalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.horizontalScrollPercentageList.value == STRING
    input.Body.interval.key == STRING
    input.Body.interval.list[_] == NESTED
    input.Body.interval.map[_] == NESTED
    input.Body.interval.type == enum_ParameterType[_]
    input.Body.interval.value == STRING
    input.Body.intervalSeconds.key == STRING
    input.Body.intervalSeconds.list[_] == NESTED
    input.Body.intervalSeconds.map[_] == NESTED
    input.Body.intervalSeconds.type == enum_ParameterType[_]
    input.Body.intervalSeconds.value == STRING
    input.Body.limit.key == STRING
    input.Body.limit.list[_] == NESTED
    input.Body.limit.map[_] == NESTED
    input.Body.limit.type == enum_ParameterType[_]
    input.Body.limit.value == STRING
    input.Body.maxTimerLengthSeconds.key == STRING
    input.Body.maxTimerLengthSeconds.list[_] == NESTED
    input.Body.maxTimerLengthSeconds.map[_] == NESTED
    input.Body.maxTimerLengthSeconds.type == enum_ParameterType[_]
    input.Body.maxTimerLengthSeconds.value == STRING
    input.Body.name == STRING
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.selector.key == STRING
    input.Body.selector.list[_] == NESTED
    input.Body.selector.map[_] == NESTED
    input.Body.selector.type == enum_ParameterType[_]
    input.Body.selector.value == STRING
    input.Body.totalTimeMinMilliseconds.key == STRING
    input.Body.totalTimeMinMilliseconds.list[_] == NESTED
    input.Body.totalTimeMinMilliseconds.map[_] == NESTED
    input.Body.totalTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.totalTimeMinMilliseconds.value == STRING
    input.Body.triggerId == STRING
    input.Body.type == enum_TriggerType[_]
    input.Body.uniqueTriggerId.key == STRING
    input.Body.uniqueTriggerId.list[_] == NESTED
    input.Body.uniqueTriggerId.map[_] == NESTED
    input.Body.uniqueTriggerId.type == enum_ParameterType[_]
    input.Body.uniqueTriggerId.value == STRING
    input.Body.verticalScrollPercentageList.key == STRING
    input.Body.verticalScrollPercentageList.list[_] == NESTED
    input.Body.verticalScrollPercentageList.map[_] == NESTED
    input.Body.verticalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.verticalScrollPercentageList.value == STRING
    input.Body.visibilitySelector.key == STRING
    input.Body.visibilitySelector.list[_] == NESTED
    input.Body.visibilitySelector.map[_] == NESTED
    input.Body.visibilitySelector.type == enum_ParameterType[_]
    input.Body.visibilitySelector.value == STRING
    input.Body.visiblePercentageMax.key == STRING
    input.Body.visiblePercentageMax.list[_] == NESTED
    input.Body.visiblePercentageMax.map[_] == NESTED
    input.Body.visiblePercentageMax.type == enum_ParameterType[_]
    input.Body.visiblePercentageMax.value == STRING
    input.Body.visiblePercentageMin.key == STRING
    input.Body.visiblePercentageMin.list[_] == NESTED
    input.Body.visiblePercentageMin.map[_] == NESTED
    input.Body.visiblePercentageMin.type == enum_ParameterType[_]
    input.Body.visiblePercentageMin.value == STRING
    input.Body.waitForTags.key == STRING
    input.Body.waitForTags.list[_] == NESTED
    input.Body.waitForTags.map[_] == NESTED
    input.Body.waitForTags.type == enum_ParameterType[_]
    input.Body.waitForTags.value == STRING
    input.Body.waitForTagsTimeout.key == STRING
    input.Body.waitForTagsTimeout.list[_] == NESTED
    input.Body.waitForTagsTimeout.map[_] == NESTED
    input.Body.waitForTagsTimeout.type == enum_ParameterType[_]
    input.Body.waitForTagsTimeout.value == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.triggerId == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.update

enum_ContainerUsageContext := [ "usageContextUnspecified", "web", "android", "ios", "androidSdk5", "iosSdk5", "amp", "server" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.domainName[_] == STRING
    input.Body.features.supportBuiltInVariables == BOOLEAN
    input.Body.features.supportClients == BOOLEAN
    input.Body.features.supportEnvironments == BOOLEAN
    input.Body.features.supportFolders == BOOLEAN
    input.Body.features.supportGtagConfigs == BOOLEAN
    input.Body.features.supportTags == BOOLEAN
    input.Body.features.supportTemplates == BOOLEAN
    input.Body.features.supportTransformations == BOOLEAN
    input.Body.features.supportTriggers == BOOLEAN
    input.Body.features.supportUserPermissions == BOOLEAN
    input.Body.features.supportVariables == BOOLEAN
    input.Body.features.supportVersions == BOOLEAN
    input.Body.features.supportWorkspaces == BOOLEAN
    input.Body.features.supportZones == BOOLEAN
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.path == STRING
    input.Body.publicId == STRING
    input.Body.tagIds[_] == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.taggingServerUrls[_] == STRING
    input.Body.usageContext[_] == enum_ContainerUsageContext[_]
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.variables.create

enum_ParameterType := [ "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.disablingTriggerId[_] == STRING
    input.Body.enablingTriggerId[_] == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.scheduleEndMs == STRING
    input.Body.scheduleStartMs == STRING
    input.Body.type == STRING
    input.Body.variableId == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.variables.delete

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.variableId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.variables.get

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.variableId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.variables.list

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.variables.update

enum_ParameterType := [ "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.disablingTriggerId[_] == STRING
    input.Body.enablingTriggerId[_] == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.scheduleEndMs == STRING
    input.Body.scheduleStartMs == STRING
    input.Body.type == STRING
    input.Body.variableId == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.variableId == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.version_headers.latest

valid {
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.version_headers.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.includeDeleted == BOOLEAN
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.create

valid {
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.quickPreview == BOOLEAN
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.get

valid {
    input.ReqMap.path == STRING
    input.Qs.containerVersionId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.list

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.Qs.headers == BOOLEAN
    input.Qs.includeDeleted == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.live

valid {
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.publish

valid {
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.restore

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.containerId == STRING
    input.ReqMap.containerVersionId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.set_latest

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.undelete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.versions.update

enum_BuiltInVariableType := [ "builtInVariableTypeUnspecified", "pageUrl", "pageHostname", "pagePath", "referrer", "event", "clickElement", "clickClasses", "clickId", "clickTarget", "clickUrl", "clickText", "firstPartyServingUrl", "formElement", "formClasses", "formId", "formTarget", "formUrl", "formText", "errorMessage", "errorUrl", "errorLine", "newHistoryUrl", "oldHistoryUrl", "newHistoryFragment", "oldHistoryFragment", "newHistoryState", "oldHistoryState", "historySource", "containerVersion", "debugMode", "randomNumber", "containerId", "appId", "appName", "appVersionCode", "appVersionName", "language", "osVersion", "platform", "sdkVersion", "deviceName", "resolution", "advertiserId", "advertisingTrackingEnabled", "htmlId", "environmentName", "ampBrowserLanguage", "ampCanonicalPath", "ampCanonicalUrl", "ampCanonicalHost", "ampReferrer", "ampTitle", "ampClientId", "ampClientTimezone", "ampClientTimestamp", "ampClientScreenWidth", "ampClientScreenHeight", "ampClientScrollX", "ampClientScrollY", "ampClientMaxScrollX", "ampClientMaxScrollY", "ampTotalEngagedTime", "ampPageViewId", "ampPageLoadTime", "ampPageDownloadTime", "ampGtmEvent", "eventName", "firebaseEventParameterCampaign", "firebaseEventParameterCampaignAclid", "firebaseEventParameterCampaignAnid", "firebaseEventParameterCampaignClickTimestamp", "firebaseEventParameterCampaignContent", "firebaseEventParameterCampaignCp1", "firebaseEventParameterCampaignGclid", "firebaseEventParameterCampaignSource", "firebaseEventParameterCampaignTerm", "firebaseEventParameterCurrency", "firebaseEventParameterDynamicLinkAcceptTime", "firebaseEventParameterDynamicLinkLinkid", "firebaseEventParameterNotificationMessageDeviceTime", "firebaseEventParameterNotificationMessageId", "firebaseEventParameterNotificationMessageName", "firebaseEventParameterNotificationMessageTime", "firebaseEventParameterNotificationTopic", "firebaseEventParameterPreviousAppVersion", "firebaseEventParameterPreviousOsVersion", "firebaseEventParameterPrice", "firebaseEventParameterProductId", "firebaseEventParameterQuantity", "firebaseEventParameterValue", "videoProvider", "videoUrl", "videoTitle", "videoDuration", "videoPercent", "videoVisible", "videoStatus", "videoCurrentTime", "scrollDepthThreshold", "scrollDepthUnits", "scrollDepthDirection", "elementVisibilityRatio", "elementVisibilityTime", "elementVisibilityFirstTime", "elementVisibilityRecentTime", "requestPath", "requestMethod", "clientName", "queryString", "serverPageLocationUrl", "serverPageLocationPath", "serverPageLocationHostname", "visitorRegion" ]
enum_ConditionType := [ "conditionTypeUnspecified", "equals", "contains", "startsWith", "endsWith", "matchRegex", "greater", "greaterOrEquals", "less", "lessOrEquals", "cssSelector", "urlMatches" ]
enum_ContainerUsageContext := [ "usageContextUnspecified", "web", "android", "ios", "androidSdk5", "iosSdk5", "amp", "server" ]
enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TagConsentSettingConsentStatus := [ "notSet", "notNeeded", "needed" ]
enum_TagTagFiringOption := [ "tagFiringOptionUnspecified", "unlimited", "oncePerEvent", "oncePerLoad" ]
enum_TriggerType := [ "eventTypeUnspecified", "pageview", "domReady", "windowLoaded", "customEvent", "triggerGroup", "init", "consentInit", "serverPageview", "always", "firebaseAppException", "firebaseAppUpdate", "firebaseCampaign", "firebaseFirstOpen", "firebaseInAppPurchase", "firebaseNotificationDismiss", "firebaseNotificationForeground", "firebaseNotificationOpen", "firebaseNotificationReceive", "firebaseOsUpdate", "firebaseSessionStart", "firebaseUserEngagement", "formSubmission", "click", "linkClick", "jsError", "historyChange", "timer", "ampClick", "ampTimer", "ampScroll", "ampVisibility", "youTubeVideo", "scrollDepth", "elementVisibility" ]
enum_VariableFormatValueCaseConversionType := [ "none", "lowercase", "uppercase" ]

valid {
    input.Body.accountId == STRING
    input.Body.builtInVariable[_].accountId == STRING
    input.Body.builtInVariable[_].containerId == STRING
    input.Body.builtInVariable[_].name == STRING
    input.Body.builtInVariable[_].path == STRING
    input.Body.builtInVariable[_].type == enum_BuiltInVariableType[_]
    input.Body.builtInVariable[_].workspaceId == STRING
    input.Body.client[_].accountId == STRING
    input.Body.client[_].clientId == STRING
    input.Body.client[_].containerId == STRING
    input.Body.client[_].fingerprint == STRING
    input.Body.client[_].name == STRING
    input.Body.client[_].notes == STRING
    input.Body.client[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.client[_].parameter[_].key == STRING
    input.Body.client[_].parameter[_].list[_] == NESTED
    input.Body.client[_].parameter[_].map[_] == NESTED
    input.Body.client[_].parameter[_].type == enum_ParameterType[_]
    input.Body.client[_].parameter[_].value == STRING
    input.Body.client[_].parentFolderId == STRING
    input.Body.client[_].path == STRING
    input.Body.client[_].priority == INTEGER
    input.Body.client[_].tagManagerUrl == STRING
    input.Body.client[_].type == STRING
    input.Body.client[_].workspaceId == STRING
    input.Body.container.accountId == STRING
    input.Body.container.containerId == STRING
    input.Body.container.domainName[_] == STRING
    input.Body.container.features.supportBuiltInVariables == BOOLEAN
    input.Body.container.features.supportClients == BOOLEAN
    input.Body.container.features.supportEnvironments == BOOLEAN
    input.Body.container.features.supportFolders == BOOLEAN
    input.Body.container.features.supportGtagConfigs == BOOLEAN
    input.Body.container.features.supportTags == BOOLEAN
    input.Body.container.features.supportTemplates == BOOLEAN
    input.Body.container.features.supportTransformations == BOOLEAN
    input.Body.container.features.supportTriggers == BOOLEAN
    input.Body.container.features.supportUserPermissions == BOOLEAN
    input.Body.container.features.supportVariables == BOOLEAN
    input.Body.container.features.supportVersions == BOOLEAN
    input.Body.container.features.supportWorkspaces == BOOLEAN
    input.Body.container.features.supportZones == BOOLEAN
    input.Body.container.fingerprint == STRING
    input.Body.container.name == STRING
    input.Body.container.notes == STRING
    input.Body.container.path == STRING
    input.Body.container.publicId == STRING
    input.Body.container.tagIds[_] == STRING
    input.Body.container.tagManagerUrl == STRING
    input.Body.container.taggingServerUrls[_] == STRING
    input.Body.container.usageContext[_] == enum_ContainerUsageContext[_]
    input.Body.containerId == STRING
    input.Body.containerVersionId == STRING
    input.Body.customTemplate[_].accountId == STRING
    input.Body.customTemplate[_].containerId == STRING
    input.Body.customTemplate[_].fingerprint == STRING
    input.Body.customTemplate[_].galleryReference.host == STRING
    input.Body.customTemplate[_].galleryReference.isModified == BOOLEAN
    input.Body.customTemplate[_].galleryReference.owner == STRING
    input.Body.customTemplate[_].galleryReference.repository == STRING
    input.Body.customTemplate[_].galleryReference.signature == STRING
    input.Body.customTemplate[_].galleryReference.version == STRING
    input.Body.customTemplate[_].name == STRING
    input.Body.customTemplate[_].path == STRING
    input.Body.customTemplate[_].tagManagerUrl == STRING
    input.Body.customTemplate[_].templateData == STRING
    input.Body.customTemplate[_].templateId == STRING
    input.Body.customTemplate[_].workspaceId == STRING
    input.Body.deleted == BOOLEAN
    input.Body.description == STRING
    input.Body.fingerprint == STRING
    input.Body.folder[_].accountId == STRING
    input.Body.folder[_].containerId == STRING
    input.Body.folder[_].fingerprint == STRING
    input.Body.folder[_].folderId == STRING
    input.Body.folder[_].name == STRING
    input.Body.folder[_].notes == STRING
    input.Body.folder[_].path == STRING
    input.Body.folder[_].tagManagerUrl == STRING
    input.Body.folder[_].workspaceId == STRING
    input.Body.gtagConfig[_].accountId == STRING
    input.Body.gtagConfig[_].containerId == STRING
    input.Body.gtagConfig[_].fingerprint == STRING
    input.Body.gtagConfig[_].gtagConfigId == STRING
    input.Body.gtagConfig[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.gtagConfig[_].parameter[_].key == STRING
    input.Body.gtagConfig[_].parameter[_].list[_] == NESTED
    input.Body.gtagConfig[_].parameter[_].map[_] == NESTED
    input.Body.gtagConfig[_].parameter[_].type == enum_ParameterType[_]
    input.Body.gtagConfig[_].parameter[_].value == STRING
    input.Body.gtagConfig[_].path == STRING
    input.Body.gtagConfig[_].tagManagerUrl == STRING
    input.Body.gtagConfig[_].type == STRING
    input.Body.gtagConfig[_].workspaceId == STRING
    input.Body.name == STRING
    input.Body.path == STRING
    input.Body.tag[_].accountId == STRING
    input.Body.tag[_].blockingRuleId[_] == STRING
    input.Body.tag[_].blockingTriggerId[_] == STRING
    input.Body.tag[_].consentSettings.consentStatus == enum_TagConsentSettingConsentStatus[_]
    input.Body.tag[_].consentSettings.consentType.isWeakReference == BOOLEAN
    input.Body.tag[_].consentSettings.consentType.key == STRING
    input.Body.tag[_].consentSettings.consentType.list[_] == NESTED
    input.Body.tag[_].consentSettings.consentType.map[_] == NESTED
    input.Body.tag[_].consentSettings.consentType.type == enum_ParameterType[_]
    input.Body.tag[_].consentSettings.consentType.value == STRING
    input.Body.tag[_].containerId == STRING
    input.Body.tag[_].fingerprint == STRING
    input.Body.tag[_].firingRuleId[_] == STRING
    input.Body.tag[_].firingTriggerId[_] == STRING
    input.Body.tag[_].liveOnly == BOOLEAN
    input.Body.tag[_].monitoringMetadata.isWeakReference == BOOLEAN
    input.Body.tag[_].monitoringMetadata.key == STRING
    input.Body.tag[_].monitoringMetadata.list[_] == NESTED
    input.Body.tag[_].monitoringMetadata.map[_] == NESTED
    input.Body.tag[_].monitoringMetadata.type == enum_ParameterType[_]
    input.Body.tag[_].monitoringMetadata.value == STRING
    input.Body.tag[_].monitoringMetadataTagNameKey == STRING
    input.Body.tag[_].name == STRING
    input.Body.tag[_].notes == STRING
    input.Body.tag[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.tag[_].parameter[_].key == STRING
    input.Body.tag[_].parameter[_].list[_] == NESTED
    input.Body.tag[_].parameter[_].map[_] == NESTED
    input.Body.tag[_].parameter[_].type == enum_ParameterType[_]
    input.Body.tag[_].parameter[_].value == STRING
    input.Body.tag[_].parentFolderId == STRING
    input.Body.tag[_].path == STRING
    input.Body.tag[_].paused == BOOLEAN
    input.Body.tag[_].priority.isWeakReference == BOOLEAN
    input.Body.tag[_].priority.key == STRING
    input.Body.tag[_].priority.list[_] == NESTED
    input.Body.tag[_].priority.map[_] == NESTED
    input.Body.tag[_].priority.type == enum_ParameterType[_]
    input.Body.tag[_].priority.value == STRING
    input.Body.tag[_].scheduleEndMs == STRING
    input.Body.tag[_].scheduleStartMs == STRING
    input.Body.tag[_].setupTag[_].stopOnSetupFailure == BOOLEAN
    input.Body.tag[_].setupTag[_].tagName == STRING
    input.Body.tag[_].tagFiringOption == enum_TagTagFiringOption[_]
    input.Body.tag[_].tagId == STRING
    input.Body.tag[_].tagManagerUrl == STRING
    input.Body.tag[_].teardownTag[_].stopTeardownOnFailure == BOOLEAN
    input.Body.tag[_].teardownTag[_].tagName == STRING
    input.Body.tag[_].type == STRING
    input.Body.tag[_].workspaceId == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.transformation[_].accountId == STRING
    input.Body.transformation[_].containerId == STRING
    input.Body.transformation[_].fingerprint == STRING
    input.Body.transformation[_].name == STRING
    input.Body.transformation[_].notes == STRING
    input.Body.transformation[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.transformation[_].parameter[_].key == STRING
    input.Body.transformation[_].parameter[_].list[_] == NESTED
    input.Body.transformation[_].parameter[_].map[_] == NESTED
    input.Body.transformation[_].parameter[_].type == enum_ParameterType[_]
    input.Body.transformation[_].parameter[_].value == STRING
    input.Body.transformation[_].parentFolderId == STRING
    input.Body.transformation[_].path == STRING
    input.Body.transformation[_].tagManagerUrl == STRING
    input.Body.transformation[_].transformationId == STRING
    input.Body.transformation[_].type == STRING
    input.Body.transformation[_].workspaceId == STRING
    input.Body.trigger[_].accountId == STRING
    input.Body.trigger[_].autoEventFilter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.trigger[_].autoEventFilter[_].parameter[_].key == STRING
    input.Body.trigger[_].autoEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.trigger[_].autoEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.trigger[_].autoEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.trigger[_].autoEventFilter[_].parameter[_].value == STRING
    input.Body.trigger[_].autoEventFilter[_].type == enum_ConditionType[_]
    input.Body.trigger[_].checkValidation.isWeakReference == BOOLEAN
    input.Body.trigger[_].checkValidation.key == STRING
    input.Body.trigger[_].checkValidation.list[_] == NESTED
    input.Body.trigger[_].checkValidation.map[_] == NESTED
    input.Body.trigger[_].checkValidation.type == enum_ParameterType[_]
    input.Body.trigger[_].checkValidation.value == STRING
    input.Body.trigger[_].containerId == STRING
    input.Body.trigger[_].continuousTimeMinMilliseconds.isWeakReference == BOOLEAN
    input.Body.trigger[_].continuousTimeMinMilliseconds.key == STRING
    input.Body.trigger[_].continuousTimeMinMilliseconds.list[_] == NESTED
    input.Body.trigger[_].continuousTimeMinMilliseconds.map[_] == NESTED
    input.Body.trigger[_].continuousTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.trigger[_].continuousTimeMinMilliseconds.value == STRING
    input.Body.trigger[_].customEventFilter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.trigger[_].customEventFilter[_].parameter[_].key == STRING
    input.Body.trigger[_].customEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.trigger[_].customEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.trigger[_].customEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.trigger[_].customEventFilter[_].parameter[_].value == STRING
    input.Body.trigger[_].customEventFilter[_].type == enum_ConditionType[_]
    input.Body.trigger[_].eventName.isWeakReference == BOOLEAN
    input.Body.trigger[_].eventName.key == STRING
    input.Body.trigger[_].eventName.list[_] == NESTED
    input.Body.trigger[_].eventName.map[_] == NESTED
    input.Body.trigger[_].eventName.type == enum_ParameterType[_]
    input.Body.trigger[_].eventName.value == STRING
    input.Body.trigger[_].filter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.trigger[_].filter[_].parameter[_].key == STRING
    input.Body.trigger[_].filter[_].parameter[_].list[_] == NESTED
    input.Body.trigger[_].filter[_].parameter[_].map[_] == NESTED
    input.Body.trigger[_].filter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.trigger[_].filter[_].parameter[_].value == STRING
    input.Body.trigger[_].filter[_].type == enum_ConditionType[_]
    input.Body.trigger[_].fingerprint == STRING
    input.Body.trigger[_].horizontalScrollPercentageList.isWeakReference == BOOLEAN
    input.Body.trigger[_].horizontalScrollPercentageList.key == STRING
    input.Body.trigger[_].horizontalScrollPercentageList.list[_] == NESTED
    input.Body.trigger[_].horizontalScrollPercentageList.map[_] == NESTED
    input.Body.trigger[_].horizontalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.trigger[_].horizontalScrollPercentageList.value == STRING
    input.Body.trigger[_].interval.isWeakReference == BOOLEAN
    input.Body.trigger[_].interval.key == STRING
    input.Body.trigger[_].interval.list[_] == NESTED
    input.Body.trigger[_].interval.map[_] == NESTED
    input.Body.trigger[_].interval.type == enum_ParameterType[_]
    input.Body.trigger[_].interval.value == STRING
    input.Body.trigger[_].intervalSeconds.isWeakReference == BOOLEAN
    input.Body.trigger[_].intervalSeconds.key == STRING
    input.Body.trigger[_].intervalSeconds.list[_] == NESTED
    input.Body.trigger[_].intervalSeconds.map[_] == NESTED
    input.Body.trigger[_].intervalSeconds.type == enum_ParameterType[_]
    input.Body.trigger[_].intervalSeconds.value == STRING
    input.Body.trigger[_].limit.isWeakReference == BOOLEAN
    input.Body.trigger[_].limit.key == STRING
    input.Body.trigger[_].limit.list[_] == NESTED
    input.Body.trigger[_].limit.map[_] == NESTED
    input.Body.trigger[_].limit.type == enum_ParameterType[_]
    input.Body.trigger[_].limit.value == STRING
    input.Body.trigger[_].maxTimerLengthSeconds.isWeakReference == BOOLEAN
    input.Body.trigger[_].maxTimerLengthSeconds.key == STRING
    input.Body.trigger[_].maxTimerLengthSeconds.list[_] == NESTED
    input.Body.trigger[_].maxTimerLengthSeconds.map[_] == NESTED
    input.Body.trigger[_].maxTimerLengthSeconds.type == enum_ParameterType[_]
    input.Body.trigger[_].maxTimerLengthSeconds.value == STRING
    input.Body.trigger[_].name == STRING
    input.Body.trigger[_].notes == STRING
    input.Body.trigger[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.trigger[_].parameter[_].key == STRING
    input.Body.trigger[_].parameter[_].list[_] == NESTED
    input.Body.trigger[_].parameter[_].map[_] == NESTED
    input.Body.trigger[_].parameter[_].type == enum_ParameterType[_]
    input.Body.trigger[_].parameter[_].value == STRING
    input.Body.trigger[_].parentFolderId == STRING
    input.Body.trigger[_].path == STRING
    input.Body.trigger[_].selector.isWeakReference == BOOLEAN
    input.Body.trigger[_].selector.key == STRING
    input.Body.trigger[_].selector.list[_] == NESTED
    input.Body.trigger[_].selector.map[_] == NESTED
    input.Body.trigger[_].selector.type == enum_ParameterType[_]
    input.Body.trigger[_].selector.value == STRING
    input.Body.trigger[_].tagManagerUrl == STRING
    input.Body.trigger[_].totalTimeMinMilliseconds.isWeakReference == BOOLEAN
    input.Body.trigger[_].totalTimeMinMilliseconds.key == STRING
    input.Body.trigger[_].totalTimeMinMilliseconds.list[_] == NESTED
    input.Body.trigger[_].totalTimeMinMilliseconds.map[_] == NESTED
    input.Body.trigger[_].totalTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.trigger[_].totalTimeMinMilliseconds.value == STRING
    input.Body.trigger[_].triggerId == STRING
    input.Body.trigger[_].type == enum_TriggerType[_]
    input.Body.trigger[_].uniqueTriggerId.isWeakReference == BOOLEAN
    input.Body.trigger[_].uniqueTriggerId.key == STRING
    input.Body.trigger[_].uniqueTriggerId.list[_] == NESTED
    input.Body.trigger[_].uniqueTriggerId.map[_] == NESTED
    input.Body.trigger[_].uniqueTriggerId.type == enum_ParameterType[_]
    input.Body.trigger[_].uniqueTriggerId.value == STRING
    input.Body.trigger[_].verticalScrollPercentageList.isWeakReference == BOOLEAN
    input.Body.trigger[_].verticalScrollPercentageList.key == STRING
    input.Body.trigger[_].verticalScrollPercentageList.list[_] == NESTED
    input.Body.trigger[_].verticalScrollPercentageList.map[_] == NESTED
    input.Body.trigger[_].verticalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.trigger[_].verticalScrollPercentageList.value == STRING
    input.Body.trigger[_].visibilitySelector.isWeakReference == BOOLEAN
    input.Body.trigger[_].visibilitySelector.key == STRING
    input.Body.trigger[_].visibilitySelector.list[_] == NESTED
    input.Body.trigger[_].visibilitySelector.map[_] == NESTED
    input.Body.trigger[_].visibilitySelector.type == enum_ParameterType[_]
    input.Body.trigger[_].visibilitySelector.value == STRING
    input.Body.trigger[_].visiblePercentageMax.isWeakReference == BOOLEAN
    input.Body.trigger[_].visiblePercentageMax.key == STRING
    input.Body.trigger[_].visiblePercentageMax.list[_] == NESTED
    input.Body.trigger[_].visiblePercentageMax.map[_] == NESTED
    input.Body.trigger[_].visiblePercentageMax.type == enum_ParameterType[_]
    input.Body.trigger[_].visiblePercentageMax.value == STRING
    input.Body.trigger[_].visiblePercentageMin.isWeakReference == BOOLEAN
    input.Body.trigger[_].visiblePercentageMin.key == STRING
    input.Body.trigger[_].visiblePercentageMin.list[_] == NESTED
    input.Body.trigger[_].visiblePercentageMin.map[_] == NESTED
    input.Body.trigger[_].visiblePercentageMin.type == enum_ParameterType[_]
    input.Body.trigger[_].visiblePercentageMin.value == STRING
    input.Body.trigger[_].waitForTags.isWeakReference == BOOLEAN
    input.Body.trigger[_].waitForTags.key == STRING
    input.Body.trigger[_].waitForTags.list[_] == NESTED
    input.Body.trigger[_].waitForTags.map[_] == NESTED
    input.Body.trigger[_].waitForTags.type == enum_ParameterType[_]
    input.Body.trigger[_].waitForTags.value == STRING
    input.Body.trigger[_].waitForTagsTimeout.isWeakReference == BOOLEAN
    input.Body.trigger[_].waitForTagsTimeout.key == STRING
    input.Body.trigger[_].waitForTagsTimeout.list[_] == NESTED
    input.Body.trigger[_].waitForTagsTimeout.map[_] == NESTED
    input.Body.trigger[_].waitForTagsTimeout.type == enum_ParameterType[_]
    input.Body.trigger[_].waitForTagsTimeout.value == STRING
    input.Body.trigger[_].workspaceId == STRING
    input.Body.variable[_].accountId == STRING
    input.Body.variable[_].containerId == STRING
    input.Body.variable[_].disablingTriggerId[_] == STRING
    input.Body.variable[_].enablingTriggerId[_] == STRING
    input.Body.variable[_].fingerprint == STRING
    input.Body.variable[_].formatValue.caseConversionType == enum_VariableFormatValueCaseConversionType[_]
    input.Body.variable[_].formatValue.convertFalseToValue.isWeakReference == BOOLEAN
    input.Body.variable[_].formatValue.convertFalseToValue.key == STRING
    input.Body.variable[_].formatValue.convertFalseToValue.list[_] == NESTED
    input.Body.variable[_].formatValue.convertFalseToValue.map[_] == NESTED
    input.Body.variable[_].formatValue.convertFalseToValue.type == enum_ParameterType[_]
    input.Body.variable[_].formatValue.convertFalseToValue.value == STRING
    input.Body.variable[_].formatValue.convertNullToValue.isWeakReference == BOOLEAN
    input.Body.variable[_].formatValue.convertNullToValue.key == STRING
    input.Body.variable[_].formatValue.convertNullToValue.list[_] == NESTED
    input.Body.variable[_].formatValue.convertNullToValue.map[_] == NESTED
    input.Body.variable[_].formatValue.convertNullToValue.type == enum_ParameterType[_]
    input.Body.variable[_].formatValue.convertNullToValue.value == STRING
    input.Body.variable[_].formatValue.convertTrueToValue.isWeakReference == BOOLEAN
    input.Body.variable[_].formatValue.convertTrueToValue.key == STRING
    input.Body.variable[_].formatValue.convertTrueToValue.list[_] == NESTED
    input.Body.variable[_].formatValue.convertTrueToValue.map[_] == NESTED
    input.Body.variable[_].formatValue.convertTrueToValue.type == enum_ParameterType[_]
    input.Body.variable[_].formatValue.convertTrueToValue.value == STRING
    input.Body.variable[_].formatValue.convertUndefinedToValue.isWeakReference == BOOLEAN
    input.Body.variable[_].formatValue.convertUndefinedToValue.key == STRING
    input.Body.variable[_].formatValue.convertUndefinedToValue.list[_] == NESTED
    input.Body.variable[_].formatValue.convertUndefinedToValue.map[_] == NESTED
    input.Body.variable[_].formatValue.convertUndefinedToValue.type == enum_ParameterType[_]
    input.Body.variable[_].formatValue.convertUndefinedToValue.value == STRING
    input.Body.variable[_].name == STRING
    input.Body.variable[_].notes == STRING
    input.Body.variable[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.variable[_].parameter[_].key == STRING
    input.Body.variable[_].parameter[_].list[_] == NESTED
    input.Body.variable[_].parameter[_].map[_] == NESTED
    input.Body.variable[_].parameter[_].type == enum_ParameterType[_]
    input.Body.variable[_].parameter[_].value == STRING
    input.Body.variable[_].parentFolderId == STRING
    input.Body.variable[_].path == STRING
    input.Body.variable[_].scheduleEndMs == STRING
    input.Body.variable[_].scheduleStartMs == STRING
    input.Body.variable[_].tagManagerUrl == STRING
    input.Body.variable[_].type == STRING
    input.Body.variable[_].variableId == STRING
    input.Body.variable[_].workspaceId == STRING
    input.Body.zone[_].accountId == STRING
    input.Body.zone[_].boundary.condition[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.zone[_].boundary.condition[_].parameter[_].key == STRING
    input.Body.zone[_].boundary.condition[_].parameter[_].list[_] == NESTED
    input.Body.zone[_].boundary.condition[_].parameter[_].map[_] == NESTED
    input.Body.zone[_].boundary.condition[_].parameter[_].type == enum_ParameterType[_]
    input.Body.zone[_].boundary.condition[_].parameter[_].value == STRING
    input.Body.zone[_].boundary.condition[_].type == enum_ConditionType[_]
    input.Body.zone[_].boundary.customEvaluationTriggerId[_] == STRING
    input.Body.zone[_].childContainer[_].nickname == STRING
    input.Body.zone[_].childContainer[_].publicId == STRING
    input.Body.zone[_].containerId == STRING
    input.Body.zone[_].fingerprint == STRING
    input.Body.zone[_].name == STRING
    input.Body.zone[_].notes == STRING
    input.Body.zone[_].path == STRING
    input.Body.zone[_].tagManagerUrl == STRING
    input.Body.zone[_].typeRestriction.enable == BOOLEAN
    input.Body.zone[_].typeRestriction.whitelistedTypeId[_] == STRING
    input.Body.zone[_].workspaceId == STRING
    input.Body.zone[_].zoneId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.built_in_variables.create

enum_TypeParameter := [ "builtInVariableTypeUnspecified", "pageUrl", "pageHostname", "pagePath", "referrer", "event", "clickElement", "clickClasses", "clickId", "clickTarget", "clickUrl", "clickText", "firstPartyServingUrl", "formElement", "formClasses", "formId", "formTarget", "formUrl", "formText", "errorMessage", "errorUrl", "errorLine", "newHistoryUrl", "oldHistoryUrl", "newHistoryFragment", "oldHistoryFragment", "newHistoryState", "oldHistoryState", "historySource", "containerVersion", "debugMode", "randomNumber", "containerId", "appId", "appName", "appVersionCode", "appVersionName", "language", "osVersion", "platform", "sdkVersion", "deviceName", "resolution", "advertiserId", "advertisingTrackingEnabled", "htmlId", "environmentName", "ampBrowserLanguage", "ampCanonicalPath", "ampCanonicalUrl", "ampCanonicalHost", "ampReferrer", "ampTitle", "ampClientId", "ampClientTimezone", "ampClientTimestamp", "ampClientScreenWidth", "ampClientScreenHeight", "ampClientScrollX", "ampClientScrollY", "ampClientMaxScrollX", "ampClientMaxScrollY", "ampTotalEngagedTime", "ampPageViewId", "ampPageLoadTime", "ampPageDownloadTime", "ampGtmEvent", "eventName", "firebaseEventParameterCampaign", "firebaseEventParameterCampaignAclid", "firebaseEventParameterCampaignAnid", "firebaseEventParameterCampaignClickTimestamp", "firebaseEventParameterCampaignContent", "firebaseEventParameterCampaignCp1", "firebaseEventParameterCampaignGclid", "firebaseEventParameterCampaignSource", "firebaseEventParameterCampaignTerm", "firebaseEventParameterCurrency", "firebaseEventParameterDynamicLinkAcceptTime", "firebaseEventParameterDynamicLinkLinkid", "firebaseEventParameterNotificationMessageDeviceTime", "firebaseEventParameterNotificationMessageId", "firebaseEventParameterNotificationMessageName", "firebaseEventParameterNotificationMessageTime", "firebaseEventParameterNotificationTopic", "firebaseEventParameterPreviousAppVersion", "firebaseEventParameterPreviousOsVersion", "firebaseEventParameterPrice", "firebaseEventParameterProductId", "firebaseEventParameterQuantity", "firebaseEventParameterValue", "videoProvider", "videoUrl", "videoTitle", "videoDuration", "videoPercent", "videoVisible", "videoStatus", "videoCurrentTime", "scrollDepthThreshold", "scrollDepthUnits", "scrollDepthDirection", "elementVisibilityRatio", "elementVisibilityTime", "elementVisibilityFirstTime", "elementVisibilityRecentTime", "requestPath", "requestMethod", "clientName", "queryString", "serverPageLocationUrl", "serverPageLocationPath", "serverPageLocationHostname", "visitorRegion" ]

valid {
    input.ReqMap.parent == STRING
    input.Qs.type == enum_TypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.built_in_variables.delete

enum_TypeParameter := [ "builtInVariableTypeUnspecified", "pageUrl", "pageHostname", "pagePath", "referrer", "event", "clickElement", "clickClasses", "clickId", "clickTarget", "clickUrl", "clickText", "firstPartyServingUrl", "formElement", "formClasses", "formId", "formTarget", "formUrl", "formText", "errorMessage", "errorUrl", "errorLine", "newHistoryUrl", "oldHistoryUrl", "newHistoryFragment", "oldHistoryFragment", "newHistoryState", "oldHistoryState", "historySource", "containerVersion", "debugMode", "randomNumber", "containerId", "appId", "appName", "appVersionCode", "appVersionName", "language", "osVersion", "platform", "sdkVersion", "deviceName", "resolution", "advertiserId", "advertisingTrackingEnabled", "htmlId", "environmentName", "ampBrowserLanguage", "ampCanonicalPath", "ampCanonicalUrl", "ampCanonicalHost", "ampReferrer", "ampTitle", "ampClientId", "ampClientTimezone", "ampClientTimestamp", "ampClientScreenWidth", "ampClientScreenHeight", "ampClientScrollX", "ampClientScrollY", "ampClientMaxScrollX", "ampClientMaxScrollY", "ampTotalEngagedTime", "ampPageViewId", "ampPageLoadTime", "ampPageDownloadTime", "ampGtmEvent", "eventName", "firebaseEventParameterCampaign", "firebaseEventParameterCampaignAclid", "firebaseEventParameterCampaignAnid", "firebaseEventParameterCampaignClickTimestamp", "firebaseEventParameterCampaignContent", "firebaseEventParameterCampaignCp1", "firebaseEventParameterCampaignGclid", "firebaseEventParameterCampaignSource", "firebaseEventParameterCampaignTerm", "firebaseEventParameterCurrency", "firebaseEventParameterDynamicLinkAcceptTime", "firebaseEventParameterDynamicLinkLinkid", "firebaseEventParameterNotificationMessageDeviceTime", "firebaseEventParameterNotificationMessageId", "firebaseEventParameterNotificationMessageName", "firebaseEventParameterNotificationMessageTime", "firebaseEventParameterNotificationTopic", "firebaseEventParameterPreviousAppVersion", "firebaseEventParameterPreviousOsVersion", "firebaseEventParameterPrice", "firebaseEventParameterProductId", "firebaseEventParameterQuantity", "firebaseEventParameterValue", "videoProvider", "videoUrl", "videoTitle", "videoDuration", "videoPercent", "videoVisible", "videoStatus", "videoCurrentTime", "scrollDepthThreshold", "scrollDepthUnits", "scrollDepthDirection", "elementVisibilityRatio", "elementVisibilityTime", "elementVisibilityFirstTime", "elementVisibilityRecentTime", "requestPath", "requestMethod", "clientName", "queryString", "serverPageLocationUrl", "serverPageLocationPath", "serverPageLocationHostname", "visitorRegion" ]

valid {
    input.ReqMap.path == STRING
    input.Qs.type == enum_TypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.built_in_variables.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.built_in_variables.revert

enum_TypeParameter := [ "builtInVariableTypeUnspecified", "pageUrl", "pageHostname", "pagePath", "referrer", "event", "clickElement", "clickClasses", "clickId", "clickTarget", "clickUrl", "clickText", "firstPartyServingUrl", "formElement", "formClasses", "formId", "formTarget", "formUrl", "formText", "errorMessage", "errorUrl", "errorLine", "newHistoryUrl", "oldHistoryUrl", "newHistoryFragment", "oldHistoryFragment", "newHistoryState", "oldHistoryState", "historySource", "containerVersion", "debugMode", "randomNumber", "containerId", "appId", "appName", "appVersionCode", "appVersionName", "language", "osVersion", "platform", "sdkVersion", "deviceName", "resolution", "advertiserId", "advertisingTrackingEnabled", "htmlId", "environmentName", "ampBrowserLanguage", "ampCanonicalPath", "ampCanonicalUrl", "ampCanonicalHost", "ampReferrer", "ampTitle", "ampClientId", "ampClientTimezone", "ampClientTimestamp", "ampClientScreenWidth", "ampClientScreenHeight", "ampClientScrollX", "ampClientScrollY", "ampClientMaxScrollX", "ampClientMaxScrollY", "ampTotalEngagedTime", "ampPageViewId", "ampPageLoadTime", "ampPageDownloadTime", "ampGtmEvent", "eventName", "firebaseEventParameterCampaign", "firebaseEventParameterCampaignAclid", "firebaseEventParameterCampaignAnid", "firebaseEventParameterCampaignClickTimestamp", "firebaseEventParameterCampaignContent", "firebaseEventParameterCampaignCp1", "firebaseEventParameterCampaignGclid", "firebaseEventParameterCampaignSource", "firebaseEventParameterCampaignTerm", "firebaseEventParameterCurrency", "firebaseEventParameterDynamicLinkAcceptTime", "firebaseEventParameterDynamicLinkLinkid", "firebaseEventParameterNotificationMessageDeviceTime", "firebaseEventParameterNotificationMessageId", "firebaseEventParameterNotificationMessageName", "firebaseEventParameterNotificationMessageTime", "firebaseEventParameterNotificationTopic", "firebaseEventParameterPreviousAppVersion", "firebaseEventParameterPreviousOsVersion", "firebaseEventParameterPrice", "firebaseEventParameterProductId", "firebaseEventParameterQuantity", "firebaseEventParameterValue", "videoProvider", "videoUrl", "videoTitle", "videoDuration", "videoPercent", "videoVisible", "videoStatus", "videoCurrentTime", "scrollDepthThreshold", "scrollDepthUnits", "scrollDepthDirection", "elementVisibilityRatio", "elementVisibilityTime", "elementVisibilityFirstTime", "elementVisibilityRecentTime", "requestPath", "requestMethod", "clientName", "queryString", "serverPageLocationUrl", "serverPageLocationPath", "serverPageLocationHostname", "visitorRegion" ]

valid {
    input.ReqMap.path == STRING
    input.Qs.type == enum_TypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.clients.create

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.clientId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.priority == INTEGER
    input.Body.tagManagerUrl == STRING
    input.Body.type == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.clients.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.clients.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.clients.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.clients.revert

valid {
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.clients.update

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.clientId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.priority == INTEGER
    input.Body.tagManagerUrl == STRING
    input.Body.type == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.create

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.description == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.create_version

valid {
    input.Body.name == STRING
    input.Body.notes == STRING
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.folders.create

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.folderId == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.folders.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.folders.entities

valid {
    input.ReqMap.path == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.folders.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.folders.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.folders.move_entities_to_folder

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.folderId == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.tagId == STRING
    input.Qs.triggerId == STRING
    input.Qs.variableId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.folders.revert

valid {
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.folders.update

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.folderId == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.getStatus

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.gtag_config.create

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.gtagConfigId == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.type == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.gtag_config.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.gtag_config.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.gtag_config.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.gtag_config.update

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.gtagConfigId == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.type == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.quick_preview

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.resolve_conflict

enum_BuiltInVariableType := [ "builtInVariableTypeUnspecified", "pageUrl", "pageHostname", "pagePath", "referrer", "event", "clickElement", "clickClasses", "clickId", "clickTarget", "clickUrl", "clickText", "firstPartyServingUrl", "formElement", "formClasses", "formId", "formTarget", "formUrl", "formText", "errorMessage", "errorUrl", "errorLine", "newHistoryUrl", "oldHistoryUrl", "newHistoryFragment", "oldHistoryFragment", "newHistoryState", "oldHistoryState", "historySource", "containerVersion", "debugMode", "randomNumber", "containerId", "appId", "appName", "appVersionCode", "appVersionName", "language", "osVersion", "platform", "sdkVersion", "deviceName", "resolution", "advertiserId", "advertisingTrackingEnabled", "htmlId", "environmentName", "ampBrowserLanguage", "ampCanonicalPath", "ampCanonicalUrl", "ampCanonicalHost", "ampReferrer", "ampTitle", "ampClientId", "ampClientTimezone", "ampClientTimestamp", "ampClientScreenWidth", "ampClientScreenHeight", "ampClientScrollX", "ampClientScrollY", "ampClientMaxScrollX", "ampClientMaxScrollY", "ampTotalEngagedTime", "ampPageViewId", "ampPageLoadTime", "ampPageDownloadTime", "ampGtmEvent", "eventName", "firebaseEventParameterCampaign", "firebaseEventParameterCampaignAclid", "firebaseEventParameterCampaignAnid", "firebaseEventParameterCampaignClickTimestamp", "firebaseEventParameterCampaignContent", "firebaseEventParameterCampaignCp1", "firebaseEventParameterCampaignGclid", "firebaseEventParameterCampaignSource", "firebaseEventParameterCampaignTerm", "firebaseEventParameterCurrency", "firebaseEventParameterDynamicLinkAcceptTime", "firebaseEventParameterDynamicLinkLinkid", "firebaseEventParameterNotificationMessageDeviceTime", "firebaseEventParameterNotificationMessageId", "firebaseEventParameterNotificationMessageName", "firebaseEventParameterNotificationMessageTime", "firebaseEventParameterNotificationTopic", "firebaseEventParameterPreviousAppVersion", "firebaseEventParameterPreviousOsVersion", "firebaseEventParameterPrice", "firebaseEventParameterProductId", "firebaseEventParameterQuantity", "firebaseEventParameterValue", "videoProvider", "videoUrl", "videoTitle", "videoDuration", "videoPercent", "videoVisible", "videoStatus", "videoCurrentTime", "scrollDepthThreshold", "scrollDepthUnits", "scrollDepthDirection", "elementVisibilityRatio", "elementVisibilityTime", "elementVisibilityFirstTime", "elementVisibilityRecentTime", "requestPath", "requestMethod", "clientName", "queryString", "serverPageLocationUrl", "serverPageLocationPath", "serverPageLocationHostname", "visitorRegion" ]
enum_ConditionType := [ "conditionTypeUnspecified", "equals", "contains", "startsWith", "endsWith", "matchRegex", "greater", "greaterOrEquals", "less", "lessOrEquals", "cssSelector", "urlMatches" ]
enum_EntityChangeStatus := [ "changeStatusUnspecified", "none", "added", "deleted", "updated" ]
enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TagConsentSettingConsentStatus := [ "notSet", "notNeeded", "needed" ]
enum_TagTagFiringOption := [ "tagFiringOptionUnspecified", "unlimited", "oncePerEvent", "oncePerLoad" ]
enum_TriggerType := [ "eventTypeUnspecified", "pageview", "domReady", "windowLoaded", "customEvent", "triggerGroup", "init", "consentInit", "serverPageview", "always", "firebaseAppException", "firebaseAppUpdate", "firebaseCampaign", "firebaseFirstOpen", "firebaseInAppPurchase", "firebaseNotificationDismiss", "firebaseNotificationForeground", "firebaseNotificationOpen", "firebaseNotificationReceive", "firebaseOsUpdate", "firebaseSessionStart", "firebaseUserEngagement", "formSubmission", "click", "linkClick", "jsError", "historyChange", "timer", "ampClick", "ampTimer", "ampScroll", "ampVisibility", "youTubeVideo", "scrollDepth", "elementVisibility" ]
enum_VariableFormatValueCaseConversionType := [ "none", "lowercase", "uppercase" ]

valid {
    input.Body.builtInVariable.accountId == STRING
    input.Body.builtInVariable.containerId == STRING
    input.Body.builtInVariable.name == STRING
    input.Body.builtInVariable.path == STRING
    input.Body.builtInVariable.type == enum_BuiltInVariableType[_]
    input.Body.builtInVariable.workspaceId == STRING
    input.Body.changeStatus == enum_EntityChangeStatus[_]
    input.Body.client.accountId == STRING
    input.Body.client.clientId == STRING
    input.Body.client.containerId == STRING
    input.Body.client.fingerprint == STRING
    input.Body.client.name == STRING
    input.Body.client.notes == STRING
    input.Body.client.parameter[_].isWeakReference == BOOLEAN
    input.Body.client.parameter[_].key == STRING
    input.Body.client.parameter[_].list[_] == NESTED
    input.Body.client.parameter[_].map[_] == NESTED
    input.Body.client.parameter[_].type == enum_ParameterType[_]
    input.Body.client.parameter[_].value == STRING
    input.Body.client.parentFolderId == STRING
    input.Body.client.path == STRING
    input.Body.client.priority == INTEGER
    input.Body.client.tagManagerUrl == STRING
    input.Body.client.type == STRING
    input.Body.client.workspaceId == STRING
    input.Body.customTemplate.accountId == STRING
    input.Body.customTemplate.containerId == STRING
    input.Body.customTemplate.fingerprint == STRING
    input.Body.customTemplate.galleryReference.host == STRING
    input.Body.customTemplate.galleryReference.isModified == BOOLEAN
    input.Body.customTemplate.galleryReference.owner == STRING
    input.Body.customTemplate.galleryReference.repository == STRING
    input.Body.customTemplate.galleryReference.signature == STRING
    input.Body.customTemplate.galleryReference.version == STRING
    input.Body.customTemplate.name == STRING
    input.Body.customTemplate.path == STRING
    input.Body.customTemplate.tagManagerUrl == STRING
    input.Body.customTemplate.templateData == STRING
    input.Body.customTemplate.templateId == STRING
    input.Body.customTemplate.workspaceId == STRING
    input.Body.folder.accountId == STRING
    input.Body.folder.containerId == STRING
    input.Body.folder.fingerprint == STRING
    input.Body.folder.folderId == STRING
    input.Body.folder.name == STRING
    input.Body.folder.notes == STRING
    input.Body.folder.path == STRING
    input.Body.folder.tagManagerUrl == STRING
    input.Body.folder.workspaceId == STRING
    input.Body.gtagConfig.accountId == STRING
    input.Body.gtagConfig.containerId == STRING
    input.Body.gtagConfig.fingerprint == STRING
    input.Body.gtagConfig.gtagConfigId == STRING
    input.Body.gtagConfig.parameter[_].isWeakReference == BOOLEAN
    input.Body.gtagConfig.parameter[_].key == STRING
    input.Body.gtagConfig.parameter[_].list[_] == NESTED
    input.Body.gtagConfig.parameter[_].map[_] == NESTED
    input.Body.gtagConfig.parameter[_].type == enum_ParameterType[_]
    input.Body.gtagConfig.parameter[_].value == STRING
    input.Body.gtagConfig.path == STRING
    input.Body.gtagConfig.tagManagerUrl == STRING
    input.Body.gtagConfig.type == STRING
    input.Body.gtagConfig.workspaceId == STRING
    input.Body.tag.accountId == STRING
    input.Body.tag.blockingRuleId[_] == STRING
    input.Body.tag.blockingTriggerId[_] == STRING
    input.Body.tag.consentSettings.consentStatus == enum_TagConsentSettingConsentStatus[_]
    input.Body.tag.consentSettings.consentType.isWeakReference == BOOLEAN
    input.Body.tag.consentSettings.consentType.key == STRING
    input.Body.tag.consentSettings.consentType.list[_] == NESTED
    input.Body.tag.consentSettings.consentType.map[_] == NESTED
    input.Body.tag.consentSettings.consentType.type == enum_ParameterType[_]
    input.Body.tag.consentSettings.consentType.value == STRING
    input.Body.tag.containerId == STRING
    input.Body.tag.fingerprint == STRING
    input.Body.tag.firingRuleId[_] == STRING
    input.Body.tag.firingTriggerId[_] == STRING
    input.Body.tag.liveOnly == BOOLEAN
    input.Body.tag.monitoringMetadata.isWeakReference == BOOLEAN
    input.Body.tag.monitoringMetadata.key == STRING
    input.Body.tag.monitoringMetadata.list[_] == NESTED
    input.Body.tag.monitoringMetadata.map[_] == NESTED
    input.Body.tag.monitoringMetadata.type == enum_ParameterType[_]
    input.Body.tag.monitoringMetadata.value == STRING
    input.Body.tag.monitoringMetadataTagNameKey == STRING
    input.Body.tag.name == STRING
    input.Body.tag.notes == STRING
    input.Body.tag.parameter[_].isWeakReference == BOOLEAN
    input.Body.tag.parameter[_].key == STRING
    input.Body.tag.parameter[_].list[_] == NESTED
    input.Body.tag.parameter[_].map[_] == NESTED
    input.Body.tag.parameter[_].type == enum_ParameterType[_]
    input.Body.tag.parameter[_].value == STRING
    input.Body.tag.parentFolderId == STRING
    input.Body.tag.path == STRING
    input.Body.tag.paused == BOOLEAN
    input.Body.tag.priority.isWeakReference == BOOLEAN
    input.Body.tag.priority.key == STRING
    input.Body.tag.priority.list[_] == NESTED
    input.Body.tag.priority.map[_] == NESTED
    input.Body.tag.priority.type == enum_ParameterType[_]
    input.Body.tag.priority.value == STRING
    input.Body.tag.scheduleEndMs == STRING
    input.Body.tag.scheduleStartMs == STRING
    input.Body.tag.setupTag[_].stopOnSetupFailure == BOOLEAN
    input.Body.tag.setupTag[_].tagName == STRING
    input.Body.tag.tagFiringOption == enum_TagTagFiringOption[_]
    input.Body.tag.tagId == STRING
    input.Body.tag.tagManagerUrl == STRING
    input.Body.tag.teardownTag[_].stopTeardownOnFailure == BOOLEAN
    input.Body.tag.teardownTag[_].tagName == STRING
    input.Body.tag.type == STRING
    input.Body.tag.workspaceId == STRING
    input.Body.transformation.accountId == STRING
    input.Body.transformation.containerId == STRING
    input.Body.transformation.fingerprint == STRING
    input.Body.transformation.name == STRING
    input.Body.transformation.notes == STRING
    input.Body.transformation.parameter[_].isWeakReference == BOOLEAN
    input.Body.transformation.parameter[_].key == STRING
    input.Body.transformation.parameter[_].list[_] == NESTED
    input.Body.transformation.parameter[_].map[_] == NESTED
    input.Body.transformation.parameter[_].type == enum_ParameterType[_]
    input.Body.transformation.parameter[_].value == STRING
    input.Body.transformation.parentFolderId == STRING
    input.Body.transformation.path == STRING
    input.Body.transformation.tagManagerUrl == STRING
    input.Body.transformation.transformationId == STRING
    input.Body.transformation.type == STRING
    input.Body.transformation.workspaceId == STRING
    input.Body.trigger.accountId == STRING
    input.Body.trigger.autoEventFilter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.trigger.autoEventFilter[_].parameter[_].key == STRING
    input.Body.trigger.autoEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.trigger.autoEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.trigger.autoEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.trigger.autoEventFilter[_].parameter[_].value == STRING
    input.Body.trigger.autoEventFilter[_].type == enum_ConditionType[_]
    input.Body.trigger.checkValidation.isWeakReference == BOOLEAN
    input.Body.trigger.checkValidation.key == STRING
    input.Body.trigger.checkValidation.list[_] == NESTED
    input.Body.trigger.checkValidation.map[_] == NESTED
    input.Body.trigger.checkValidation.type == enum_ParameterType[_]
    input.Body.trigger.checkValidation.value == STRING
    input.Body.trigger.containerId == STRING
    input.Body.trigger.continuousTimeMinMilliseconds.isWeakReference == BOOLEAN
    input.Body.trigger.continuousTimeMinMilliseconds.key == STRING
    input.Body.trigger.continuousTimeMinMilliseconds.list[_] == NESTED
    input.Body.trigger.continuousTimeMinMilliseconds.map[_] == NESTED
    input.Body.trigger.continuousTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.trigger.continuousTimeMinMilliseconds.value == STRING
    input.Body.trigger.customEventFilter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.trigger.customEventFilter[_].parameter[_].key == STRING
    input.Body.trigger.customEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.trigger.customEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.trigger.customEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.trigger.customEventFilter[_].parameter[_].value == STRING
    input.Body.trigger.customEventFilter[_].type == enum_ConditionType[_]
    input.Body.trigger.eventName.isWeakReference == BOOLEAN
    input.Body.trigger.eventName.key == STRING
    input.Body.trigger.eventName.list[_] == NESTED
    input.Body.trigger.eventName.map[_] == NESTED
    input.Body.trigger.eventName.type == enum_ParameterType[_]
    input.Body.trigger.eventName.value == STRING
    input.Body.trigger.filter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.trigger.filter[_].parameter[_].key == STRING
    input.Body.trigger.filter[_].parameter[_].list[_] == NESTED
    input.Body.trigger.filter[_].parameter[_].map[_] == NESTED
    input.Body.trigger.filter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.trigger.filter[_].parameter[_].value == STRING
    input.Body.trigger.filter[_].type == enum_ConditionType[_]
    input.Body.trigger.fingerprint == STRING
    input.Body.trigger.horizontalScrollPercentageList.isWeakReference == BOOLEAN
    input.Body.trigger.horizontalScrollPercentageList.key == STRING
    input.Body.trigger.horizontalScrollPercentageList.list[_] == NESTED
    input.Body.trigger.horizontalScrollPercentageList.map[_] == NESTED
    input.Body.trigger.horizontalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.trigger.horizontalScrollPercentageList.value == STRING
    input.Body.trigger.interval.isWeakReference == BOOLEAN
    input.Body.trigger.interval.key == STRING
    input.Body.trigger.interval.list[_] == NESTED
    input.Body.trigger.interval.map[_] == NESTED
    input.Body.trigger.interval.type == enum_ParameterType[_]
    input.Body.trigger.interval.value == STRING
    input.Body.trigger.intervalSeconds.isWeakReference == BOOLEAN
    input.Body.trigger.intervalSeconds.key == STRING
    input.Body.trigger.intervalSeconds.list[_] == NESTED
    input.Body.trigger.intervalSeconds.map[_] == NESTED
    input.Body.trigger.intervalSeconds.type == enum_ParameterType[_]
    input.Body.trigger.intervalSeconds.value == STRING
    input.Body.trigger.limit.isWeakReference == BOOLEAN
    input.Body.trigger.limit.key == STRING
    input.Body.trigger.limit.list[_] == NESTED
    input.Body.trigger.limit.map[_] == NESTED
    input.Body.trigger.limit.type == enum_ParameterType[_]
    input.Body.trigger.limit.value == STRING
    input.Body.trigger.maxTimerLengthSeconds.isWeakReference == BOOLEAN
    input.Body.trigger.maxTimerLengthSeconds.key == STRING
    input.Body.trigger.maxTimerLengthSeconds.list[_] == NESTED
    input.Body.trigger.maxTimerLengthSeconds.map[_] == NESTED
    input.Body.trigger.maxTimerLengthSeconds.type == enum_ParameterType[_]
    input.Body.trigger.maxTimerLengthSeconds.value == STRING
    input.Body.trigger.name == STRING
    input.Body.trigger.notes == STRING
    input.Body.trigger.parameter[_].isWeakReference == BOOLEAN
    input.Body.trigger.parameter[_].key == STRING
    input.Body.trigger.parameter[_].list[_] == NESTED
    input.Body.trigger.parameter[_].map[_] == NESTED
    input.Body.trigger.parameter[_].type == enum_ParameterType[_]
    input.Body.trigger.parameter[_].value == STRING
    input.Body.trigger.parentFolderId == STRING
    input.Body.trigger.path == STRING
    input.Body.trigger.selector.isWeakReference == BOOLEAN
    input.Body.trigger.selector.key == STRING
    input.Body.trigger.selector.list[_] == NESTED
    input.Body.trigger.selector.map[_] == NESTED
    input.Body.trigger.selector.type == enum_ParameterType[_]
    input.Body.trigger.selector.value == STRING
    input.Body.trigger.tagManagerUrl == STRING
    input.Body.trigger.totalTimeMinMilliseconds.isWeakReference == BOOLEAN
    input.Body.trigger.totalTimeMinMilliseconds.key == STRING
    input.Body.trigger.totalTimeMinMilliseconds.list[_] == NESTED
    input.Body.trigger.totalTimeMinMilliseconds.map[_] == NESTED
    input.Body.trigger.totalTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.trigger.totalTimeMinMilliseconds.value == STRING
    input.Body.trigger.triggerId == STRING
    input.Body.trigger.type == enum_TriggerType[_]
    input.Body.trigger.uniqueTriggerId.isWeakReference == BOOLEAN
    input.Body.trigger.uniqueTriggerId.key == STRING
    input.Body.trigger.uniqueTriggerId.list[_] == NESTED
    input.Body.trigger.uniqueTriggerId.map[_] == NESTED
    input.Body.trigger.uniqueTriggerId.type == enum_ParameterType[_]
    input.Body.trigger.uniqueTriggerId.value == STRING
    input.Body.trigger.verticalScrollPercentageList.isWeakReference == BOOLEAN
    input.Body.trigger.verticalScrollPercentageList.key == STRING
    input.Body.trigger.verticalScrollPercentageList.list[_] == NESTED
    input.Body.trigger.verticalScrollPercentageList.map[_] == NESTED
    input.Body.trigger.verticalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.trigger.verticalScrollPercentageList.value == STRING
    input.Body.trigger.visibilitySelector.isWeakReference == BOOLEAN
    input.Body.trigger.visibilitySelector.key == STRING
    input.Body.trigger.visibilitySelector.list[_] == NESTED
    input.Body.trigger.visibilitySelector.map[_] == NESTED
    input.Body.trigger.visibilitySelector.type == enum_ParameterType[_]
    input.Body.trigger.visibilitySelector.value == STRING
    input.Body.trigger.visiblePercentageMax.isWeakReference == BOOLEAN
    input.Body.trigger.visiblePercentageMax.key == STRING
    input.Body.trigger.visiblePercentageMax.list[_] == NESTED
    input.Body.trigger.visiblePercentageMax.map[_] == NESTED
    input.Body.trigger.visiblePercentageMax.type == enum_ParameterType[_]
    input.Body.trigger.visiblePercentageMax.value == STRING
    input.Body.trigger.visiblePercentageMin.isWeakReference == BOOLEAN
    input.Body.trigger.visiblePercentageMin.key == STRING
    input.Body.trigger.visiblePercentageMin.list[_] == NESTED
    input.Body.trigger.visiblePercentageMin.map[_] == NESTED
    input.Body.trigger.visiblePercentageMin.type == enum_ParameterType[_]
    input.Body.trigger.visiblePercentageMin.value == STRING
    input.Body.trigger.waitForTags.isWeakReference == BOOLEAN
    input.Body.trigger.waitForTags.key == STRING
    input.Body.trigger.waitForTags.list[_] == NESTED
    input.Body.trigger.waitForTags.map[_] == NESTED
    input.Body.trigger.waitForTags.type == enum_ParameterType[_]
    input.Body.trigger.waitForTags.value == STRING
    input.Body.trigger.waitForTagsTimeout.isWeakReference == BOOLEAN
    input.Body.trigger.waitForTagsTimeout.key == STRING
    input.Body.trigger.waitForTagsTimeout.list[_] == NESTED
    input.Body.trigger.waitForTagsTimeout.map[_] == NESTED
    input.Body.trigger.waitForTagsTimeout.type == enum_ParameterType[_]
    input.Body.trigger.waitForTagsTimeout.value == STRING
    input.Body.trigger.workspaceId == STRING
    input.Body.variable.accountId == STRING
    input.Body.variable.containerId == STRING
    input.Body.variable.disablingTriggerId[_] == STRING
    input.Body.variable.enablingTriggerId[_] == STRING
    input.Body.variable.fingerprint == STRING
    input.Body.variable.formatValue.caseConversionType == enum_VariableFormatValueCaseConversionType[_]
    input.Body.variable.formatValue.convertFalseToValue.isWeakReference == BOOLEAN
    input.Body.variable.formatValue.convertFalseToValue.key == STRING
    input.Body.variable.formatValue.convertFalseToValue.list[_] == NESTED
    input.Body.variable.formatValue.convertFalseToValue.map[_] == NESTED
    input.Body.variable.formatValue.convertFalseToValue.type == enum_ParameterType[_]
    input.Body.variable.formatValue.convertFalseToValue.value == STRING
    input.Body.variable.formatValue.convertNullToValue.isWeakReference == BOOLEAN
    input.Body.variable.formatValue.convertNullToValue.key == STRING
    input.Body.variable.formatValue.convertNullToValue.list[_] == NESTED
    input.Body.variable.formatValue.convertNullToValue.map[_] == NESTED
    input.Body.variable.formatValue.convertNullToValue.type == enum_ParameterType[_]
    input.Body.variable.formatValue.convertNullToValue.value == STRING
    input.Body.variable.formatValue.convertTrueToValue.isWeakReference == BOOLEAN
    input.Body.variable.formatValue.convertTrueToValue.key == STRING
    input.Body.variable.formatValue.convertTrueToValue.list[_] == NESTED
    input.Body.variable.formatValue.convertTrueToValue.map[_] == NESTED
    input.Body.variable.formatValue.convertTrueToValue.type == enum_ParameterType[_]
    input.Body.variable.formatValue.convertTrueToValue.value == STRING
    input.Body.variable.formatValue.convertUndefinedToValue.isWeakReference == BOOLEAN
    input.Body.variable.formatValue.convertUndefinedToValue.key == STRING
    input.Body.variable.formatValue.convertUndefinedToValue.list[_] == NESTED
    input.Body.variable.formatValue.convertUndefinedToValue.map[_] == NESTED
    input.Body.variable.formatValue.convertUndefinedToValue.type == enum_ParameterType[_]
    input.Body.variable.formatValue.convertUndefinedToValue.value == STRING
    input.Body.variable.name == STRING
    input.Body.variable.notes == STRING
    input.Body.variable.parameter[_].isWeakReference == BOOLEAN
    input.Body.variable.parameter[_].key == STRING
    input.Body.variable.parameter[_].list[_] == NESTED
    input.Body.variable.parameter[_].map[_] == NESTED
    input.Body.variable.parameter[_].type == enum_ParameterType[_]
    input.Body.variable.parameter[_].value == STRING
    input.Body.variable.parentFolderId == STRING
    input.Body.variable.path == STRING
    input.Body.variable.scheduleEndMs == STRING
    input.Body.variable.scheduleStartMs == STRING
    input.Body.variable.tagManagerUrl == STRING
    input.Body.variable.type == STRING
    input.Body.variable.variableId == STRING
    input.Body.variable.workspaceId == STRING
    input.Body.zone.accountId == STRING
    input.Body.zone.boundary.condition[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.zone.boundary.condition[_].parameter[_].key == STRING
    input.Body.zone.boundary.condition[_].parameter[_].list[_] == NESTED
    input.Body.zone.boundary.condition[_].parameter[_].map[_] == NESTED
    input.Body.zone.boundary.condition[_].parameter[_].type == enum_ParameterType[_]
    input.Body.zone.boundary.condition[_].parameter[_].value == STRING
    input.Body.zone.boundary.condition[_].type == enum_ConditionType[_]
    input.Body.zone.boundary.customEvaluationTriggerId[_] == STRING
    input.Body.zone.childContainer[_].nickname == STRING
    input.Body.zone.childContainer[_].publicId == STRING
    input.Body.zone.containerId == STRING
    input.Body.zone.fingerprint == STRING
    input.Body.zone.name == STRING
    input.Body.zone.notes == STRING
    input.Body.zone.path == STRING
    input.Body.zone.tagManagerUrl == STRING
    input.Body.zone.typeRestriction.enable == BOOLEAN
    input.Body.zone.typeRestriction.whitelistedTypeId[_] == STRING
    input.Body.zone.workspaceId == STRING
    input.Body.zone.zoneId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.sync

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.tags.create

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TagConsentSettingConsentStatus := [ "notSet", "notNeeded", "needed" ]
enum_TagTagFiringOption := [ "tagFiringOptionUnspecified", "unlimited", "oncePerEvent", "oncePerLoad" ]

valid {
    input.Body.accountId == STRING
    input.Body.blockingRuleId[_] == STRING
    input.Body.blockingTriggerId[_] == STRING
    input.Body.consentSettings.consentStatus == enum_TagConsentSettingConsentStatus[_]
    input.Body.consentSettings.consentType.isWeakReference == BOOLEAN
    input.Body.consentSettings.consentType.key == STRING
    input.Body.consentSettings.consentType.list[_] == NESTED
    input.Body.consentSettings.consentType.map[_] == NESTED
    input.Body.consentSettings.consentType.type == enum_ParameterType[_]
    input.Body.consentSettings.consentType.value == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.firingRuleId[_] == STRING
    input.Body.firingTriggerId[_] == STRING
    input.Body.liveOnly == BOOLEAN
    input.Body.monitoringMetadata.isWeakReference == BOOLEAN
    input.Body.monitoringMetadata.key == STRING
    input.Body.monitoringMetadata.list[_] == NESTED
    input.Body.monitoringMetadata.map[_] == NESTED
    input.Body.monitoringMetadata.type == enum_ParameterType[_]
    input.Body.monitoringMetadata.value == STRING
    input.Body.monitoringMetadataTagNameKey == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.paused == BOOLEAN
    input.Body.priority.isWeakReference == BOOLEAN
    input.Body.priority.key == STRING
    input.Body.priority.list[_] == NESTED
    input.Body.priority.map[_] == NESTED
    input.Body.priority.type == enum_ParameterType[_]
    input.Body.priority.value == STRING
    input.Body.scheduleEndMs == STRING
    input.Body.scheduleStartMs == STRING
    input.Body.setupTag[_].stopOnSetupFailure == BOOLEAN
    input.Body.setupTag[_].tagName == STRING
    input.Body.tagFiringOption == enum_TagTagFiringOption[_]
    input.Body.tagId == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.teardownTag[_].stopTeardownOnFailure == BOOLEAN
    input.Body.teardownTag[_].tagName == STRING
    input.Body.type == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.tags.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.tags.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.tags.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.tags.revert

valid {
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.tags.update

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TagConsentSettingConsentStatus := [ "notSet", "notNeeded", "needed" ]
enum_TagTagFiringOption := [ "tagFiringOptionUnspecified", "unlimited", "oncePerEvent", "oncePerLoad" ]

valid {
    input.Body.accountId == STRING
    input.Body.blockingRuleId[_] == STRING
    input.Body.blockingTriggerId[_] == STRING
    input.Body.consentSettings.consentStatus == enum_TagConsentSettingConsentStatus[_]
    input.Body.consentSettings.consentType.isWeakReference == BOOLEAN
    input.Body.consentSettings.consentType.key == STRING
    input.Body.consentSettings.consentType.list[_] == NESTED
    input.Body.consentSettings.consentType.map[_] == NESTED
    input.Body.consentSettings.consentType.type == enum_ParameterType[_]
    input.Body.consentSettings.consentType.value == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.firingRuleId[_] == STRING
    input.Body.firingTriggerId[_] == STRING
    input.Body.liveOnly == BOOLEAN
    input.Body.monitoringMetadata.isWeakReference == BOOLEAN
    input.Body.monitoringMetadata.key == STRING
    input.Body.monitoringMetadata.list[_] == NESTED
    input.Body.monitoringMetadata.map[_] == NESTED
    input.Body.monitoringMetadata.type == enum_ParameterType[_]
    input.Body.monitoringMetadata.value == STRING
    input.Body.monitoringMetadataTagNameKey == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.paused == BOOLEAN
    input.Body.priority.isWeakReference == BOOLEAN
    input.Body.priority.key == STRING
    input.Body.priority.list[_] == NESTED
    input.Body.priority.map[_] == NESTED
    input.Body.priority.type == enum_ParameterType[_]
    input.Body.priority.value == STRING
    input.Body.scheduleEndMs == STRING
    input.Body.scheduleStartMs == STRING
    input.Body.setupTag[_].stopOnSetupFailure == BOOLEAN
    input.Body.setupTag[_].tagName == STRING
    input.Body.tagFiringOption == enum_TagTagFiringOption[_]
    input.Body.tagId == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.teardownTag[_].stopTeardownOnFailure == BOOLEAN
    input.Body.teardownTag[_].tagName == STRING
    input.Body.type == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.templates.create

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.galleryReference.host == STRING
    input.Body.galleryReference.isModified == BOOLEAN
    input.Body.galleryReference.owner == STRING
    input.Body.galleryReference.repository == STRING
    input.Body.galleryReference.signature == STRING
    input.Body.galleryReference.version == STRING
    input.Body.name == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.templateData == STRING
    input.Body.templateId == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.templates.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.templates.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.templates.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.templates.revert

valid {
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.templates.update

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.galleryReference.host == STRING
    input.Body.galleryReference.isModified == BOOLEAN
    input.Body.galleryReference.owner == STRING
    input.Body.galleryReference.repository == STRING
    input.Body.galleryReference.signature == STRING
    input.Body.galleryReference.version == STRING
    input.Body.name == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.templateData == STRING
    input.Body.templateId == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.transformations.create

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.transformationId == STRING
    input.Body.type == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.transformations.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.transformations.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.transformations.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.transformations.revert

valid {
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.transformations.update

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.transformationId == STRING
    input.Body.type == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.triggers.create

enum_ConditionType := [ "conditionTypeUnspecified", "equals", "contains", "startsWith", "endsWith", "matchRegex", "greater", "greaterOrEquals", "less", "lessOrEquals", "cssSelector", "urlMatches" ]
enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TriggerType := [ "eventTypeUnspecified", "pageview", "domReady", "windowLoaded", "customEvent", "triggerGroup", "init", "consentInit", "serverPageview", "always", "firebaseAppException", "firebaseAppUpdate", "firebaseCampaign", "firebaseFirstOpen", "firebaseInAppPurchase", "firebaseNotificationDismiss", "firebaseNotificationForeground", "firebaseNotificationOpen", "firebaseNotificationReceive", "firebaseOsUpdate", "firebaseSessionStart", "firebaseUserEngagement", "formSubmission", "click", "linkClick", "jsError", "historyChange", "timer", "ampClick", "ampTimer", "ampScroll", "ampVisibility", "youTubeVideo", "scrollDepth", "elementVisibility" ]

valid {
    input.Body.accountId == STRING
    input.Body.autoEventFilter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.autoEventFilter[_].parameter[_].key == STRING
    input.Body.autoEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.autoEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.autoEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.autoEventFilter[_].parameter[_].value == STRING
    input.Body.autoEventFilter[_].type == enum_ConditionType[_]
    input.Body.checkValidation.isWeakReference == BOOLEAN
    input.Body.checkValidation.key == STRING
    input.Body.checkValidation.list[_] == NESTED
    input.Body.checkValidation.map[_] == NESTED
    input.Body.checkValidation.type == enum_ParameterType[_]
    input.Body.checkValidation.value == STRING
    input.Body.containerId == STRING
    input.Body.continuousTimeMinMilliseconds.isWeakReference == BOOLEAN
    input.Body.continuousTimeMinMilliseconds.key == STRING
    input.Body.continuousTimeMinMilliseconds.list[_] == NESTED
    input.Body.continuousTimeMinMilliseconds.map[_] == NESTED
    input.Body.continuousTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.continuousTimeMinMilliseconds.value == STRING
    input.Body.customEventFilter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.customEventFilter[_].parameter[_].key == STRING
    input.Body.customEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.customEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.customEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.customEventFilter[_].parameter[_].value == STRING
    input.Body.customEventFilter[_].type == enum_ConditionType[_]
    input.Body.eventName.isWeakReference == BOOLEAN
    input.Body.eventName.key == STRING
    input.Body.eventName.list[_] == NESTED
    input.Body.eventName.map[_] == NESTED
    input.Body.eventName.type == enum_ParameterType[_]
    input.Body.eventName.value == STRING
    input.Body.filter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.filter[_].parameter[_].key == STRING
    input.Body.filter[_].parameter[_].list[_] == NESTED
    input.Body.filter[_].parameter[_].map[_] == NESTED
    input.Body.filter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.filter[_].parameter[_].value == STRING
    input.Body.filter[_].type == enum_ConditionType[_]
    input.Body.fingerprint == STRING
    input.Body.horizontalScrollPercentageList.isWeakReference == BOOLEAN
    input.Body.horizontalScrollPercentageList.key == STRING
    input.Body.horizontalScrollPercentageList.list[_] == NESTED
    input.Body.horizontalScrollPercentageList.map[_] == NESTED
    input.Body.horizontalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.horizontalScrollPercentageList.value == STRING
    input.Body.interval.isWeakReference == BOOLEAN
    input.Body.interval.key == STRING
    input.Body.interval.list[_] == NESTED
    input.Body.interval.map[_] == NESTED
    input.Body.interval.type == enum_ParameterType[_]
    input.Body.interval.value == STRING
    input.Body.intervalSeconds.isWeakReference == BOOLEAN
    input.Body.intervalSeconds.key == STRING
    input.Body.intervalSeconds.list[_] == NESTED
    input.Body.intervalSeconds.map[_] == NESTED
    input.Body.intervalSeconds.type == enum_ParameterType[_]
    input.Body.intervalSeconds.value == STRING
    input.Body.limit.isWeakReference == BOOLEAN
    input.Body.limit.key == STRING
    input.Body.limit.list[_] == NESTED
    input.Body.limit.map[_] == NESTED
    input.Body.limit.type == enum_ParameterType[_]
    input.Body.limit.value == STRING
    input.Body.maxTimerLengthSeconds.isWeakReference == BOOLEAN
    input.Body.maxTimerLengthSeconds.key == STRING
    input.Body.maxTimerLengthSeconds.list[_] == NESTED
    input.Body.maxTimerLengthSeconds.map[_] == NESTED
    input.Body.maxTimerLengthSeconds.type == enum_ParameterType[_]
    input.Body.maxTimerLengthSeconds.value == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.selector.isWeakReference == BOOLEAN
    input.Body.selector.key == STRING
    input.Body.selector.list[_] == NESTED
    input.Body.selector.map[_] == NESTED
    input.Body.selector.type == enum_ParameterType[_]
    input.Body.selector.value == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.totalTimeMinMilliseconds.isWeakReference == BOOLEAN
    input.Body.totalTimeMinMilliseconds.key == STRING
    input.Body.totalTimeMinMilliseconds.list[_] == NESTED
    input.Body.totalTimeMinMilliseconds.map[_] == NESTED
    input.Body.totalTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.totalTimeMinMilliseconds.value == STRING
    input.Body.triggerId == STRING
    input.Body.type == enum_TriggerType[_]
    input.Body.uniqueTriggerId.isWeakReference == BOOLEAN
    input.Body.uniqueTriggerId.key == STRING
    input.Body.uniqueTriggerId.list[_] == NESTED
    input.Body.uniqueTriggerId.map[_] == NESTED
    input.Body.uniqueTriggerId.type == enum_ParameterType[_]
    input.Body.uniqueTriggerId.value == STRING
    input.Body.verticalScrollPercentageList.isWeakReference == BOOLEAN
    input.Body.verticalScrollPercentageList.key == STRING
    input.Body.verticalScrollPercentageList.list[_] == NESTED
    input.Body.verticalScrollPercentageList.map[_] == NESTED
    input.Body.verticalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.verticalScrollPercentageList.value == STRING
    input.Body.visibilitySelector.isWeakReference == BOOLEAN
    input.Body.visibilitySelector.key == STRING
    input.Body.visibilitySelector.list[_] == NESTED
    input.Body.visibilitySelector.map[_] == NESTED
    input.Body.visibilitySelector.type == enum_ParameterType[_]
    input.Body.visibilitySelector.value == STRING
    input.Body.visiblePercentageMax.isWeakReference == BOOLEAN
    input.Body.visiblePercentageMax.key == STRING
    input.Body.visiblePercentageMax.list[_] == NESTED
    input.Body.visiblePercentageMax.map[_] == NESTED
    input.Body.visiblePercentageMax.type == enum_ParameterType[_]
    input.Body.visiblePercentageMax.value == STRING
    input.Body.visiblePercentageMin.isWeakReference == BOOLEAN
    input.Body.visiblePercentageMin.key == STRING
    input.Body.visiblePercentageMin.list[_] == NESTED
    input.Body.visiblePercentageMin.map[_] == NESTED
    input.Body.visiblePercentageMin.type == enum_ParameterType[_]
    input.Body.visiblePercentageMin.value == STRING
    input.Body.waitForTags.isWeakReference == BOOLEAN
    input.Body.waitForTags.key == STRING
    input.Body.waitForTags.list[_] == NESTED
    input.Body.waitForTags.map[_] == NESTED
    input.Body.waitForTags.type == enum_ParameterType[_]
    input.Body.waitForTags.value == STRING
    input.Body.waitForTagsTimeout.isWeakReference == BOOLEAN
    input.Body.waitForTagsTimeout.key == STRING
    input.Body.waitForTagsTimeout.list[_] == NESTED
    input.Body.waitForTagsTimeout.map[_] == NESTED
    input.Body.waitForTagsTimeout.type == enum_ParameterType[_]
    input.Body.waitForTagsTimeout.value == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.triggers.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.triggers.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.triggers.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.triggers.revert

valid {
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.triggers.update

enum_ConditionType := [ "conditionTypeUnspecified", "equals", "contains", "startsWith", "endsWith", "matchRegex", "greater", "greaterOrEquals", "less", "lessOrEquals", "cssSelector", "urlMatches" ]
enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_TriggerType := [ "eventTypeUnspecified", "pageview", "domReady", "windowLoaded", "customEvent", "triggerGroup", "init", "consentInit", "serverPageview", "always", "firebaseAppException", "firebaseAppUpdate", "firebaseCampaign", "firebaseFirstOpen", "firebaseInAppPurchase", "firebaseNotificationDismiss", "firebaseNotificationForeground", "firebaseNotificationOpen", "firebaseNotificationReceive", "firebaseOsUpdate", "firebaseSessionStart", "firebaseUserEngagement", "formSubmission", "click", "linkClick", "jsError", "historyChange", "timer", "ampClick", "ampTimer", "ampScroll", "ampVisibility", "youTubeVideo", "scrollDepth", "elementVisibility" ]

valid {
    input.Body.accountId == STRING
    input.Body.autoEventFilter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.autoEventFilter[_].parameter[_].key == STRING
    input.Body.autoEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.autoEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.autoEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.autoEventFilter[_].parameter[_].value == STRING
    input.Body.autoEventFilter[_].type == enum_ConditionType[_]
    input.Body.checkValidation.isWeakReference == BOOLEAN
    input.Body.checkValidation.key == STRING
    input.Body.checkValidation.list[_] == NESTED
    input.Body.checkValidation.map[_] == NESTED
    input.Body.checkValidation.type == enum_ParameterType[_]
    input.Body.checkValidation.value == STRING
    input.Body.containerId == STRING
    input.Body.continuousTimeMinMilliseconds.isWeakReference == BOOLEAN
    input.Body.continuousTimeMinMilliseconds.key == STRING
    input.Body.continuousTimeMinMilliseconds.list[_] == NESTED
    input.Body.continuousTimeMinMilliseconds.map[_] == NESTED
    input.Body.continuousTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.continuousTimeMinMilliseconds.value == STRING
    input.Body.customEventFilter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.customEventFilter[_].parameter[_].key == STRING
    input.Body.customEventFilter[_].parameter[_].list[_] == NESTED
    input.Body.customEventFilter[_].parameter[_].map[_] == NESTED
    input.Body.customEventFilter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.customEventFilter[_].parameter[_].value == STRING
    input.Body.customEventFilter[_].type == enum_ConditionType[_]
    input.Body.eventName.isWeakReference == BOOLEAN
    input.Body.eventName.key == STRING
    input.Body.eventName.list[_] == NESTED
    input.Body.eventName.map[_] == NESTED
    input.Body.eventName.type == enum_ParameterType[_]
    input.Body.eventName.value == STRING
    input.Body.filter[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.filter[_].parameter[_].key == STRING
    input.Body.filter[_].parameter[_].list[_] == NESTED
    input.Body.filter[_].parameter[_].map[_] == NESTED
    input.Body.filter[_].parameter[_].type == enum_ParameterType[_]
    input.Body.filter[_].parameter[_].value == STRING
    input.Body.filter[_].type == enum_ConditionType[_]
    input.Body.fingerprint == STRING
    input.Body.horizontalScrollPercentageList.isWeakReference == BOOLEAN
    input.Body.horizontalScrollPercentageList.key == STRING
    input.Body.horizontalScrollPercentageList.list[_] == NESTED
    input.Body.horizontalScrollPercentageList.map[_] == NESTED
    input.Body.horizontalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.horizontalScrollPercentageList.value == STRING
    input.Body.interval.isWeakReference == BOOLEAN
    input.Body.interval.key == STRING
    input.Body.interval.list[_] == NESTED
    input.Body.interval.map[_] == NESTED
    input.Body.interval.type == enum_ParameterType[_]
    input.Body.interval.value == STRING
    input.Body.intervalSeconds.isWeakReference == BOOLEAN
    input.Body.intervalSeconds.key == STRING
    input.Body.intervalSeconds.list[_] == NESTED
    input.Body.intervalSeconds.map[_] == NESTED
    input.Body.intervalSeconds.type == enum_ParameterType[_]
    input.Body.intervalSeconds.value == STRING
    input.Body.limit.isWeakReference == BOOLEAN
    input.Body.limit.key == STRING
    input.Body.limit.list[_] == NESTED
    input.Body.limit.map[_] == NESTED
    input.Body.limit.type == enum_ParameterType[_]
    input.Body.limit.value == STRING
    input.Body.maxTimerLengthSeconds.isWeakReference == BOOLEAN
    input.Body.maxTimerLengthSeconds.key == STRING
    input.Body.maxTimerLengthSeconds.list[_] == NESTED
    input.Body.maxTimerLengthSeconds.map[_] == NESTED
    input.Body.maxTimerLengthSeconds.type == enum_ParameterType[_]
    input.Body.maxTimerLengthSeconds.value == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.selector.isWeakReference == BOOLEAN
    input.Body.selector.key == STRING
    input.Body.selector.list[_] == NESTED
    input.Body.selector.map[_] == NESTED
    input.Body.selector.type == enum_ParameterType[_]
    input.Body.selector.value == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.totalTimeMinMilliseconds.isWeakReference == BOOLEAN
    input.Body.totalTimeMinMilliseconds.key == STRING
    input.Body.totalTimeMinMilliseconds.list[_] == NESTED
    input.Body.totalTimeMinMilliseconds.map[_] == NESTED
    input.Body.totalTimeMinMilliseconds.type == enum_ParameterType[_]
    input.Body.totalTimeMinMilliseconds.value == STRING
    input.Body.triggerId == STRING
    input.Body.type == enum_TriggerType[_]
    input.Body.uniqueTriggerId.isWeakReference == BOOLEAN
    input.Body.uniqueTriggerId.key == STRING
    input.Body.uniqueTriggerId.list[_] == NESTED
    input.Body.uniqueTriggerId.map[_] == NESTED
    input.Body.uniqueTriggerId.type == enum_ParameterType[_]
    input.Body.uniqueTriggerId.value == STRING
    input.Body.verticalScrollPercentageList.isWeakReference == BOOLEAN
    input.Body.verticalScrollPercentageList.key == STRING
    input.Body.verticalScrollPercentageList.list[_] == NESTED
    input.Body.verticalScrollPercentageList.map[_] == NESTED
    input.Body.verticalScrollPercentageList.type == enum_ParameterType[_]
    input.Body.verticalScrollPercentageList.value == STRING
    input.Body.visibilitySelector.isWeakReference == BOOLEAN
    input.Body.visibilitySelector.key == STRING
    input.Body.visibilitySelector.list[_] == NESTED
    input.Body.visibilitySelector.map[_] == NESTED
    input.Body.visibilitySelector.type == enum_ParameterType[_]
    input.Body.visibilitySelector.value == STRING
    input.Body.visiblePercentageMax.isWeakReference == BOOLEAN
    input.Body.visiblePercentageMax.key == STRING
    input.Body.visiblePercentageMax.list[_] == NESTED
    input.Body.visiblePercentageMax.map[_] == NESTED
    input.Body.visiblePercentageMax.type == enum_ParameterType[_]
    input.Body.visiblePercentageMax.value == STRING
    input.Body.visiblePercentageMin.isWeakReference == BOOLEAN
    input.Body.visiblePercentageMin.key == STRING
    input.Body.visiblePercentageMin.list[_] == NESTED
    input.Body.visiblePercentageMin.map[_] == NESTED
    input.Body.visiblePercentageMin.type == enum_ParameterType[_]
    input.Body.visiblePercentageMin.value == STRING
    input.Body.waitForTags.isWeakReference == BOOLEAN
    input.Body.waitForTags.key == STRING
    input.Body.waitForTags.list[_] == NESTED
    input.Body.waitForTags.map[_] == NESTED
    input.Body.waitForTags.type == enum_ParameterType[_]
    input.Body.waitForTags.value == STRING
    input.Body.waitForTagsTimeout.isWeakReference == BOOLEAN
    input.Body.waitForTagsTimeout.key == STRING
    input.Body.waitForTagsTimeout.list[_] == NESTED
    input.Body.waitForTagsTimeout.map[_] == NESTED
    input.Body.waitForTagsTimeout.type == enum_ParameterType[_]
    input.Body.waitForTagsTimeout.value == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.update

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.description == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.variables.create

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_VariableFormatValueCaseConversionType := [ "none", "lowercase", "uppercase" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.disablingTriggerId[_] == STRING
    input.Body.enablingTriggerId[_] == STRING
    input.Body.fingerprint == STRING
    input.Body.formatValue.caseConversionType == enum_VariableFormatValueCaseConversionType[_]
    input.Body.formatValue.convertFalseToValue.isWeakReference == BOOLEAN
    input.Body.formatValue.convertFalseToValue.key == STRING
    input.Body.formatValue.convertFalseToValue.list[_] == NESTED
    input.Body.formatValue.convertFalseToValue.map[_] == NESTED
    input.Body.formatValue.convertFalseToValue.type == enum_ParameterType[_]
    input.Body.formatValue.convertFalseToValue.value == STRING
    input.Body.formatValue.convertNullToValue.isWeakReference == BOOLEAN
    input.Body.formatValue.convertNullToValue.key == STRING
    input.Body.formatValue.convertNullToValue.list[_] == NESTED
    input.Body.formatValue.convertNullToValue.map[_] == NESTED
    input.Body.formatValue.convertNullToValue.type == enum_ParameterType[_]
    input.Body.formatValue.convertNullToValue.value == STRING
    input.Body.formatValue.convertTrueToValue.isWeakReference == BOOLEAN
    input.Body.formatValue.convertTrueToValue.key == STRING
    input.Body.formatValue.convertTrueToValue.list[_] == NESTED
    input.Body.formatValue.convertTrueToValue.map[_] == NESTED
    input.Body.formatValue.convertTrueToValue.type == enum_ParameterType[_]
    input.Body.formatValue.convertTrueToValue.value == STRING
    input.Body.formatValue.convertUndefinedToValue.isWeakReference == BOOLEAN
    input.Body.formatValue.convertUndefinedToValue.key == STRING
    input.Body.formatValue.convertUndefinedToValue.list[_] == NESTED
    input.Body.formatValue.convertUndefinedToValue.map[_] == NESTED
    input.Body.formatValue.convertUndefinedToValue.type == enum_ParameterType[_]
    input.Body.formatValue.convertUndefinedToValue.value == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.scheduleEndMs == STRING
    input.Body.scheduleStartMs == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.type == STRING
    input.Body.variableId == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.variables.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.variables.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.variables.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.variables.revert

valid {
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.variables.update

enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]
enum_VariableFormatValueCaseConversionType := [ "none", "lowercase", "uppercase" ]

valid {
    input.Body.accountId == STRING
    input.Body.containerId == STRING
    input.Body.disablingTriggerId[_] == STRING
    input.Body.enablingTriggerId[_] == STRING
    input.Body.fingerprint == STRING
    input.Body.formatValue.caseConversionType == enum_VariableFormatValueCaseConversionType[_]
    input.Body.formatValue.convertFalseToValue.isWeakReference == BOOLEAN
    input.Body.formatValue.convertFalseToValue.key == STRING
    input.Body.formatValue.convertFalseToValue.list[_] == NESTED
    input.Body.formatValue.convertFalseToValue.map[_] == NESTED
    input.Body.formatValue.convertFalseToValue.type == enum_ParameterType[_]
    input.Body.formatValue.convertFalseToValue.value == STRING
    input.Body.formatValue.convertNullToValue.isWeakReference == BOOLEAN
    input.Body.formatValue.convertNullToValue.key == STRING
    input.Body.formatValue.convertNullToValue.list[_] == NESTED
    input.Body.formatValue.convertNullToValue.map[_] == NESTED
    input.Body.formatValue.convertNullToValue.type == enum_ParameterType[_]
    input.Body.formatValue.convertNullToValue.value == STRING
    input.Body.formatValue.convertTrueToValue.isWeakReference == BOOLEAN
    input.Body.formatValue.convertTrueToValue.key == STRING
    input.Body.formatValue.convertTrueToValue.list[_] == NESTED
    input.Body.formatValue.convertTrueToValue.map[_] == NESTED
    input.Body.formatValue.convertTrueToValue.type == enum_ParameterType[_]
    input.Body.formatValue.convertTrueToValue.value == STRING
    input.Body.formatValue.convertUndefinedToValue.isWeakReference == BOOLEAN
    input.Body.formatValue.convertUndefinedToValue.key == STRING
    input.Body.formatValue.convertUndefinedToValue.list[_] == NESTED
    input.Body.formatValue.convertUndefinedToValue.map[_] == NESTED
    input.Body.formatValue.convertUndefinedToValue.type == enum_ParameterType[_]
    input.Body.formatValue.convertUndefinedToValue.value == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.parameter[_].isWeakReference == BOOLEAN
    input.Body.parameter[_].key == STRING
    input.Body.parameter[_].list[_] == NESTED
    input.Body.parameter[_].map[_] == NESTED
    input.Body.parameter[_].type == enum_ParameterType[_]
    input.Body.parameter[_].value == STRING
    input.Body.parentFolderId == STRING
    input.Body.path == STRING
    input.Body.scheduleEndMs == STRING
    input.Body.scheduleStartMs == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.type == STRING
    input.Body.variableId == STRING
    input.Body.workspaceId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.zones.create

enum_ConditionType := [ "conditionTypeUnspecified", "equals", "contains", "startsWith", "endsWith", "matchRegex", "greater", "greaterOrEquals", "less", "lessOrEquals", "cssSelector", "urlMatches" ]
enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.boundary.condition[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.boundary.condition[_].parameter[_].key == STRING
    input.Body.boundary.condition[_].parameter[_].list[_] == NESTED
    input.Body.boundary.condition[_].parameter[_].map[_] == NESTED
    input.Body.boundary.condition[_].parameter[_].type == enum_ParameterType[_]
    input.Body.boundary.condition[_].parameter[_].value == STRING
    input.Body.boundary.condition[_].type == enum_ConditionType[_]
    input.Body.boundary.customEvaluationTriggerId[_] == STRING
    input.Body.childContainer[_].nickname == STRING
    input.Body.childContainer[_].publicId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.typeRestriction.enable == BOOLEAN
    input.Body.typeRestriction.whitelistedTypeId[_] == STRING
    input.Body.workspaceId == STRING
    input.Body.zoneId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.zones.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.zones.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.zones.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.zones.revert

valid {
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.containers.workspaces.zones.update

enum_ConditionType := [ "conditionTypeUnspecified", "equals", "contains", "startsWith", "endsWith", "matchRegex", "greater", "greaterOrEquals", "less", "lessOrEquals", "cssSelector", "urlMatches" ]
enum_ParameterType := [ "typeUnspecified", "template", "integer", "boolean", "list", "map", "triggerReference", "tagReference" ]

valid {
    input.Body.accountId == STRING
    input.Body.boundary.condition[_].parameter[_].isWeakReference == BOOLEAN
    input.Body.boundary.condition[_].parameter[_].key == STRING
    input.Body.boundary.condition[_].parameter[_].list[_] == NESTED
    input.Body.boundary.condition[_].parameter[_].map[_] == NESTED
    input.Body.boundary.condition[_].parameter[_].type == enum_ParameterType[_]
    input.Body.boundary.condition[_].parameter[_].value == STRING
    input.Body.boundary.condition[_].type == enum_ConditionType[_]
    input.Body.boundary.customEvaluationTriggerId[_] == STRING
    input.Body.childContainer[_].nickname == STRING
    input.Body.childContainer[_].publicId == STRING
    input.Body.containerId == STRING
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.notes == STRING
    input.Body.path == STRING
    input.Body.tagManagerUrl == STRING
    input.Body.typeRestriction.enable == BOOLEAN
    input.Body.typeRestriction.whitelistedTypeId[_] == STRING
    input.Body.workspaceId == STRING
    input.Body.zoneId == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.list

valid {
    input.Qs.includeGoogleTags == BOOLEAN
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.permissions.create

enum_AccountAccessPermission := [ "read", "edit", "publish", "delete", "manage", "editWorkspace" ]
enum_ContainerAccessPermission := [ "read", "edit", "publish", "delete", "manage", "editWorkspace" ]

valid {
    input.Body.accountAccess.permission[_] == enum_AccountAccessPermission[_]
    input.Body.accountId == STRING
    input.Body.containerAccess[_].containerId == STRING
    input.Body.containerAccess[_].permission[_] == enum_ContainerAccessPermission[_]
    input.Body.emailAddress == STRING
    input.Body.permissionId == STRING
    input.ReqMap.accountId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.permissions.delete

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.permissionId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.permissions.get

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.permissionId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.permissions.list

valid {
    input.ReqMap.accountId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.permissions.update

enum_AccountAccessPermission := [ "read", "edit", "publish", "delete", "manage", "editWorkspace" ]
enum_ContainerAccessPermission := [ "read", "edit", "publish", "delete", "manage", "editWorkspace" ]

valid {
    input.Body.accountAccess.permission[_] == enum_AccountAccessPermission[_]
    input.Body.accountId == STRING
    input.Body.containerAccess[_].containerId == STRING
    input.Body.containerAccess[_].permission[_] == enum_ContainerAccessPermission[_]
    input.Body.emailAddress == STRING
    input.Body.permissionId == STRING
    input.ReqMap.accountId == STRING
    input.ReqMap.permissionId == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.update

valid {
    input.Body.accountId == STRING
    input.Body.features.supportMultipleContainers == BOOLEAN
    input.Body.features.supportUserPermissions == BOOLEAN
    input.Body.fingerprint == STRING
    input.Body.name == STRING
    input.Body.path == STRING
    input.Body.shareData == BOOLEAN
    input.Body.tagManagerUrl == STRING
    input.ReqMap.path == STRING
    input.Qs.fingerprint == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.user_permissions.create

enum_AccountAccessPermission := [ "accountPermissionUnspecified", "noAccess", "user", "admin" ]
enum_ContainerAccessPermission := [ "containerPermissionUnspecified", "noAccess", "read", "edit", "approve", "publish" ]

valid {
    input.Body.accountAccess.permission == enum_AccountAccessPermission[_]
    input.Body.accountId == STRING
    input.Body.containerAccess[_].containerId == STRING
    input.Body.containerAccess[_].permission == enum_ContainerAccessPermission[_]
    input.Body.emailAddress == STRING
    input.Body.path == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.user_permissions.delete

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.user_permissions.get

valid {
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.user_permissions.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

tagmanager.accounts.user_permissions.update

enum_AccountAccessPermission := [ "accountPermissionUnspecified", "noAccess", "user", "admin" ]
enum_ContainerAccessPermission := [ "containerPermissionUnspecified", "noAccess", "read", "edit", "approve", "publish" ]

valid {
    input.Body.accountAccess.permission == enum_AccountAccessPermission[_]
    input.Body.accountId == STRING
    input.Body.containerAccess[_].containerId == STRING
    input.Body.containerAccess[_].permission == enum_ContainerAccessPermission[_]
    input.Body.emailAddress == STRING
    input.Body.path == STRING
    input.ReqMap.path == STRING
    input.ProviderMetadata.Region == STRING
}