DATACATALOG

datacatalog.catalog.search

valid {
    input.Body.adminSearch == BOOLEAN
    input.Body.orderBy == STRING
    input.Body.pageSize == INTEGER
    input.Body.pageToken == STRING
    input.Body.query == STRING
    input.Body.scope.includeGcpPublicDatasets == BOOLEAN
    input.Body.scope.includeOrgIds[_] == STRING
    input.Body.scope.includeProjectIds[_] == STRING
    input.Body.scope.includePublicTagTemplates == BOOLEAN
    input.Body.scope.restrictedLocations[_] == STRING
    input.Body.scope.starredOnly == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

datacatalog.entries.lookup

valid {
    input.Qs.fullyQualifiedName == STRING
    input.Qs.linkedResource == STRING
    input.Qs.location == STRING
    input.Qs.project == STRING
    input.Qs.sqlResource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.create

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.Qs.entryGroupId == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.delete

valid {
    input.ReqMap.name == STRING
    input.Qs.force == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.create

enum_GoogleCloudDatacatalogV1BigQueryConnectionSpecConnectionType := [ "CONNECTION_TYPE_UNSPECIFIED", "CLOUD_SQL" ]
enum_GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpecType := [ "DATABASE_TYPE_UNSPECIFIED", "POSTGRES", "MYSQL" ]
enum_GoogleCloudDatacatalogV1ColumnSchemaHighestIndexingType := [ "INDEXING_TYPE_UNSPECIFIED", "INDEXING_TYPE_NONE", "INDEXING_TYPE_NON_UNIQUE", "INDEXING_TYPE_UNIQUE", "INDEXING_TYPE_PRIMARY_KEY" ]
enum_GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpecType := [ "LOOKER_COLUMN_TYPE_UNSPECIFIED", "DIMENSION", "DIMENSION_GROUP", "FILTER", "MEASURE", "PARAMETER" ]
enum_GoogleCloudDatacatalogV1DatabaseTableSpecDatabaseViewSpecViewType := [ "VIEW_TYPE_UNSPECIFIED", "STANDARD_VIEW", "MATERIALIZED_VIEW" ]
enum_GoogleCloudDatacatalogV1DatabaseTableSpecType := [ "TABLE_TYPE_UNSPECIFIED", "NATIVE", "EXTERNAL" ]
enum_GoogleCloudDatacatalogV1EntryType := [ "ENTRY_TYPE_UNSPECIFIED", "TABLE", "MODEL", "DATA_STREAM", "FILESET", "CLUSTER", "DATABASE", "DATA_SOURCE_CONNECTION", "ROUTINE", "LAKE", "ZONE", "SERVICE", "DATABASE_SCHEMA", "DASHBOARD", "EXPLORE", "LOOK", "FEATURE_ONLINE_STORE", "FEATURE_VIEW", "FEATURE_GROUP" ]
enum_GoogleCloudDatacatalogV1RoutineSpecArgumentMode := [ "MODE_UNSPECIFIED", "IN", "OUT", "INOUT" ]
enum_GoogleCloudDatacatalogV1RoutineSpecRoutineType := [ "ROUTINE_TYPE_UNSPECIFIED", "SCALAR_FUNCTION", "PROCEDURE" ]
enum_GoogleCloudDatacatalogV1VertexDatasetSpecDataType := [ "DATA_TYPE_UNSPECIFIED", "TABLE", "IMAGE", "TEXT", "VIDEO", "CONVERSATION", "TIME_SERIES", "DOCUMENT", "TEXT_TO_SPEECH", "TRANSLATION", "STORE_VISION", "ENTERPRISE_KNOWLEDGE_GRAPH", "TEXT_PROMPT" ]
enum_GoogleCloudDatacatalogV1VertexModelSourceInfoSourceType := [ "MODEL_SOURCE_TYPE_UNSPECIFIED", "AUTOML", "CUSTOM", "BQML", "MODEL_GARDEN" ]

valid {
    input.Body.businessContext.contacts.people[_].designation == STRING
    input.Body.businessContext.contacts.people[_].email == STRING
    input.Body.businessContext.entryOverview.overview == STRING
    input.Body.cloudBigtableSystemSpec.instanceDisplayName == STRING
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.cloudSql.database == STRING
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.cloudSql.instanceId == STRING
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.cloudSql.type == enum_GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpecType[_]
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.connectionType == enum_GoogleCloudDatacatalogV1BigQueryConnectionSpecConnectionType[_]
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.hasCredential == BOOLEAN
    input.Body.databaseTableSpec.databaseViewSpec.baseTable == STRING
    input.Body.databaseTableSpec.databaseViewSpec.sqlQuery == STRING
    input.Body.databaseTableSpec.databaseViewSpec.viewType == enum_GoogleCloudDatacatalogV1DatabaseTableSpecDatabaseViewSpecViewType[_]
    input.Body.databaseTableSpec.type == enum_GoogleCloudDatacatalogV1DatabaseTableSpecType[_]
    input.Body.datasetSpec.vertexDatasetSpec.dataItemCount == STRING
    input.Body.datasetSpec.vertexDatasetSpec.dataType == enum_GoogleCloudDatacatalogV1VertexDatasetSpecDataType[_]
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.featureOnlineStoreSpec == {}
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.asset == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.compressionFormat == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.avro.text == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.csv.STRING == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.orc.STRING == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.parquet.STRING == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.protobuf.text == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.thrift.text == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.projectId == STRING
    input.Body.fullyQualifiedName == STRING
    input.Body.gcsFilesetSpec.filePatterns[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.linkedResource == STRING
    input.Body.lookerSystemSpec.parentInstanceDisplayName == STRING
    input.Body.lookerSystemSpec.parentInstanceId == STRING
    input.Body.lookerSystemSpec.parentModelDisplayName == STRING
    input.Body.lookerSystemSpec.parentModelId == STRING
    input.Body.lookerSystemSpec.parentViewDisplayName == STRING
    input.Body.lookerSystemSpec.parentViewId == STRING
    input.Body.modelSpec.vertexModelSpec.containerImageUri == STRING
    input.Body.modelSpec.vertexModelSpec.versionAliases[_] == STRING
    input.Body.modelSpec.vertexModelSpec.versionDescription == STRING
    input.Body.modelSpec.vertexModelSpec.versionId == STRING
    input.Body.modelSpec.vertexModelSpec.vertexModelSourceInfo.copy == BOOLEAN
    input.Body.modelSpec.vertexModelSpec.vertexModelSourceInfo.sourceType == enum_GoogleCloudDatacatalogV1VertexModelSourceInfoSourceType[_]
    input.Body.routineSpec.bigqueryRoutineSpec.importedLibraries[_] == STRING
    input.Body.routineSpec.definitionBody == STRING
    input.Body.routineSpec.language == STRING
    input.Body.routineSpec.returnType == STRING
    input.Body.routineSpec.routineArguments[_].mode == enum_GoogleCloudDatacatalogV1RoutineSpecArgumentMode[_]
    input.Body.routineSpec.routineArguments[_].name == STRING
    input.Body.routineSpec.routineArguments[_].type == STRING
    input.Body.routineSpec.routineType == enum_GoogleCloudDatacatalogV1RoutineSpecRoutineType[_]
    input.Body.schema.columns[_].column == STRING
    input.Body.schema.columns[_].defaultValue == STRING
    input.Body.schema.columns[_].description == STRING
    input.Body.schema.columns[_].gcRule == STRING
    input.Body.schema.columns[_].highestIndexingType == enum_GoogleCloudDatacatalogV1ColumnSchemaHighestIndexingType[_]
    input.Body.schema.columns[_].lookerColumnSpec.type == enum_GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpecType[_]
    input.Body.schema.columns[_].mode == STRING
    input.Body.schema.columns[_].ordinalPosition == INTEGER
    input.Body.schema.columns[_].rangeElementType.type == STRING
    input.Body.schema.columns[_].subcolumns[_] == NESTED
    input.Body.schema.columns[_].type == STRING
    input.Body.serviceSpec.cloudBigtableInstanceSpec.cloudBigtableClusterSpecs[_].displayName == STRING
    input.Body.serviceSpec.cloudBigtableInstanceSpec.cloudBigtableClusterSpecs[_].linkedResource == STRING
    input.Body.serviceSpec.cloudBigtableInstanceSpec.cloudBigtableClusterSpecs[_].location == STRING
    input.Body.serviceSpec.cloudBigtableInstanceSpec.cloudBigtableClusterSpecs[_].type == STRING
    input.Body.sourceSystemTimestamps.createTime == STRING
    input.Body.sourceSystemTimestamps.updateTime == STRING
    input.Body.sqlDatabaseSystemSpec.databaseVersion == STRING
    input.Body.sqlDatabaseSystemSpec.instanceHost == STRING
    input.Body.sqlDatabaseSystemSpec.sqlEngine == STRING
    input.Body.type == enum_GoogleCloudDatacatalogV1EntryType[_]
    input.Body.usageSignal.commonUsageWithinTimeRange.STRING.viewCount == STRING
    input.Body.usageSignal.favoriteCount == STRING
    input.Body.usageSignal.updateTime == STRING
    input.Body.userSpecifiedSystem == STRING
    input.Body.userSpecifiedType == STRING
    input.ReqMap.parent == STRING
    input.Qs.entryId == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.delete

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

datacatalog.projects.locations.entryGroups.entries.get

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

datacatalog.projects.locations.entryGroups.entries.getIamPolicy

valid {
    input.Body.options.requestedPolicyVersion == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.import

valid {
    input.Body.gcsBucketPath == STRING
    input.Body.jobId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.list

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

datacatalog.projects.locations.entryGroups.entries.modifyEntryContacts

valid {
    input.Body.contacts.people[_].designation == STRING
    input.Body.contacts.people[_].email == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.modifyEntryOverview

valid {
    input.Body.entryOverview.overview == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.patch

enum_GoogleCloudDatacatalogV1BigQueryConnectionSpecConnectionType := [ "CONNECTION_TYPE_UNSPECIFIED", "CLOUD_SQL" ]
enum_GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpecType := [ "DATABASE_TYPE_UNSPECIFIED", "POSTGRES", "MYSQL" ]
enum_GoogleCloudDatacatalogV1ColumnSchemaHighestIndexingType := [ "INDEXING_TYPE_UNSPECIFIED", "INDEXING_TYPE_NONE", "INDEXING_TYPE_NON_UNIQUE", "INDEXING_TYPE_UNIQUE", "INDEXING_TYPE_PRIMARY_KEY" ]
enum_GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpecType := [ "LOOKER_COLUMN_TYPE_UNSPECIFIED", "DIMENSION", "DIMENSION_GROUP", "FILTER", "MEASURE", "PARAMETER" ]
enum_GoogleCloudDatacatalogV1DatabaseTableSpecDatabaseViewSpecViewType := [ "VIEW_TYPE_UNSPECIFIED", "STANDARD_VIEW", "MATERIALIZED_VIEW" ]
enum_GoogleCloudDatacatalogV1DatabaseTableSpecType := [ "TABLE_TYPE_UNSPECIFIED", "NATIVE", "EXTERNAL" ]
enum_GoogleCloudDatacatalogV1EntryType := [ "ENTRY_TYPE_UNSPECIFIED", "TABLE", "MODEL", "DATA_STREAM", "FILESET", "CLUSTER", "DATABASE", "DATA_SOURCE_CONNECTION", "ROUTINE", "LAKE", "ZONE", "SERVICE", "DATABASE_SCHEMA", "DASHBOARD", "EXPLORE", "LOOK", "FEATURE_ONLINE_STORE", "FEATURE_VIEW", "FEATURE_GROUP" ]
enum_GoogleCloudDatacatalogV1RoutineSpecArgumentMode := [ "MODE_UNSPECIFIED", "IN", "OUT", "INOUT" ]
enum_GoogleCloudDatacatalogV1RoutineSpecRoutineType := [ "ROUTINE_TYPE_UNSPECIFIED", "SCALAR_FUNCTION", "PROCEDURE" ]
enum_GoogleCloudDatacatalogV1VertexDatasetSpecDataType := [ "DATA_TYPE_UNSPECIFIED", "TABLE", "IMAGE", "TEXT", "VIDEO", "CONVERSATION", "TIME_SERIES", "DOCUMENT", "TEXT_TO_SPEECH", "TRANSLATION", "STORE_VISION", "ENTERPRISE_KNOWLEDGE_GRAPH", "TEXT_PROMPT" ]
enum_GoogleCloudDatacatalogV1VertexModelSourceInfoSourceType := [ "MODEL_SOURCE_TYPE_UNSPECIFIED", "AUTOML", "CUSTOM", "BQML", "MODEL_GARDEN" ]

valid {
    input.Body.businessContext.contacts.people[_].designation == STRING
    input.Body.businessContext.contacts.people[_].email == STRING
    input.Body.businessContext.entryOverview.overview == STRING
    input.Body.cloudBigtableSystemSpec.instanceDisplayName == STRING
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.cloudSql.database == STRING
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.cloudSql.instanceId == STRING
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.cloudSql.type == enum_GoogleCloudDatacatalogV1CloudSqlBigQueryConnectionSpecType[_]
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.connectionType == enum_GoogleCloudDatacatalogV1BigQueryConnectionSpecConnectionType[_]
    input.Body.dataSourceConnectionSpec.bigqueryConnectionSpec.hasCredential == BOOLEAN
    input.Body.databaseTableSpec.databaseViewSpec.baseTable == STRING
    input.Body.databaseTableSpec.databaseViewSpec.sqlQuery == STRING
    input.Body.databaseTableSpec.databaseViewSpec.viewType == enum_GoogleCloudDatacatalogV1DatabaseTableSpecDatabaseViewSpecViewType[_]
    input.Body.databaseTableSpec.type == enum_GoogleCloudDatacatalogV1DatabaseTableSpecType[_]
    input.Body.datasetSpec.vertexDatasetSpec.dataItemCount == STRING
    input.Body.datasetSpec.vertexDatasetSpec.dataType == enum_GoogleCloudDatacatalogV1VertexDatasetSpecDataType[_]
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.featureOnlineStoreSpec == {}
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.asset == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.compressionFormat == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.avro.text == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.csv.STRING == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.orc.STRING == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.parquet.STRING == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.protobuf.text == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.dataFormat.thrift.text == STRING
    input.Body.filesetSpec.dataplexFileset.dataplexSpec.projectId == STRING
    input.Body.fullyQualifiedName == STRING
    input.Body.gcsFilesetSpec.filePatterns[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.linkedResource == STRING
    input.Body.lookerSystemSpec.parentInstanceDisplayName == STRING
    input.Body.lookerSystemSpec.parentInstanceId == STRING
    input.Body.lookerSystemSpec.parentModelDisplayName == STRING
    input.Body.lookerSystemSpec.parentModelId == STRING
    input.Body.lookerSystemSpec.parentViewDisplayName == STRING
    input.Body.lookerSystemSpec.parentViewId == STRING
    input.Body.modelSpec.vertexModelSpec.containerImageUri == STRING
    input.Body.modelSpec.vertexModelSpec.versionAliases[_] == STRING
    input.Body.modelSpec.vertexModelSpec.versionDescription == STRING
    input.Body.modelSpec.vertexModelSpec.versionId == STRING
    input.Body.modelSpec.vertexModelSpec.vertexModelSourceInfo.copy == BOOLEAN
    input.Body.modelSpec.vertexModelSpec.vertexModelSourceInfo.sourceType == enum_GoogleCloudDatacatalogV1VertexModelSourceInfoSourceType[_]
    input.Body.routineSpec.bigqueryRoutineSpec.importedLibraries[_] == STRING
    input.Body.routineSpec.definitionBody == STRING
    input.Body.routineSpec.language == STRING
    input.Body.routineSpec.returnType == STRING
    input.Body.routineSpec.routineArguments[_].mode == enum_GoogleCloudDatacatalogV1RoutineSpecArgumentMode[_]
    input.Body.routineSpec.routineArguments[_].name == STRING
    input.Body.routineSpec.routineArguments[_].type == STRING
    input.Body.routineSpec.routineType == enum_GoogleCloudDatacatalogV1RoutineSpecRoutineType[_]
    input.Body.schema.columns[_].column == STRING
    input.Body.schema.columns[_].defaultValue == STRING
    input.Body.schema.columns[_].description == STRING
    input.Body.schema.columns[_].gcRule == STRING
    input.Body.schema.columns[_].highestIndexingType == enum_GoogleCloudDatacatalogV1ColumnSchemaHighestIndexingType[_]
    input.Body.schema.columns[_].lookerColumnSpec.type == enum_GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpecType[_]
    input.Body.schema.columns[_].mode == STRING
    input.Body.schema.columns[_].ordinalPosition == INTEGER
    input.Body.schema.columns[_].rangeElementType.type == STRING
    input.Body.schema.columns[_].subcolumns[_] == NESTED
    input.Body.schema.columns[_].type == STRING
    input.Body.serviceSpec.cloudBigtableInstanceSpec.cloudBigtableClusterSpecs[_].displayName == STRING
    input.Body.serviceSpec.cloudBigtableInstanceSpec.cloudBigtableClusterSpecs[_].linkedResource == STRING
    input.Body.serviceSpec.cloudBigtableInstanceSpec.cloudBigtableClusterSpecs[_].location == STRING
    input.Body.serviceSpec.cloudBigtableInstanceSpec.cloudBigtableClusterSpecs[_].type == STRING
    input.Body.sourceSystemTimestamps.createTime == STRING
    input.Body.sourceSystemTimestamps.updateTime == STRING
    input.Body.sqlDatabaseSystemSpec.databaseVersion == STRING
    input.Body.sqlDatabaseSystemSpec.instanceHost == STRING
    input.Body.sqlDatabaseSystemSpec.sqlEngine == STRING
    input.Body.type == enum_GoogleCloudDatacatalogV1EntryType[_]
    input.Body.usageSignal.commonUsageWithinTimeRange.STRING.viewCount == STRING
    input.Body.usageSignal.favoriteCount == STRING
    input.Body.usageSignal.updateTime == STRING
    input.Body.userSpecifiedSystem == STRING
    input.Body.userSpecifiedType == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.star

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

datacatalog.projects.locations.entryGroups.entries.tags.create

valid {
    input.Body.column == STRING
    input.Body.fields.STRING.boolValue == BOOLEAN
    input.Body.fields.STRING.doubleValue == NUMBER
    input.Body.fields.STRING.enumValue.displayName == STRING
    input.Body.fields.STRING.richtextValue == STRING
    input.Body.fields.STRING.stringValue == STRING
    input.Body.fields.STRING.timestampValue == STRING
    input.Body.name == STRING
    input.Body.template == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.tags.delete

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

datacatalog.projects.locations.entryGroups.entries.tags.list

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

datacatalog.projects.locations.entryGroups.entries.tags.patch

valid {
    input.Body.column == STRING
    input.Body.fields.STRING.boolValue == BOOLEAN
    input.Body.fields.STRING.doubleValue == NUMBER
    input.Body.fields.STRING.enumValue.displayName == STRING
    input.Body.fields.STRING.richtextValue == STRING
    input.Body.fields.STRING.stringValue == STRING
    input.Body.fields.STRING.timestampValue == STRING
    input.Body.name == STRING
    input.Body.template == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.tags.reconcile

valid {
    input.Body.forceDeleteMissing == BOOLEAN
    input.Body.tagTemplate == STRING
    input.Body.tags[_].column == STRING
    input.Body.tags[_].fields.STRING.boolValue == BOOLEAN
    input.Body.tags[_].fields.STRING.doubleValue == NUMBER
    input.Body.tags[_].fields.STRING.enumValue.displayName == STRING
    input.Body.tags[_].fields.STRING.richtextValue == STRING
    input.Body.tags[_].fields.STRING.stringValue == STRING
    input.Body.tags[_].fields.STRING.timestampValue == STRING
    input.Body.tags[_].name == STRING
    input.Body.tags[_].template == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.entries.unstar

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

datacatalog.projects.locations.entryGroups.get

valid {
    input.ReqMap.name == STRING
    input.Qs.readMask == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.getIamPolicy

valid {
    input.Body.options.requestedPolicyVersion == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.list

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

datacatalog.projects.locations.entryGroups.patch

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.setIamPolicy

valid {
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.tags.create

valid {
    input.Body.column == STRING
    input.Body.fields.STRING.boolValue == BOOLEAN
    input.Body.fields.STRING.doubleValue == NUMBER
    input.Body.fields.STRING.enumValue.displayName == STRING
    input.Body.fields.STRING.richtextValue == STRING
    input.Body.fields.STRING.stringValue == STRING
    input.Body.fields.STRING.timestampValue == STRING
    input.Body.name == STRING
    input.Body.template == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.tags.delete

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

datacatalog.projects.locations.entryGroups.tags.list

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

datacatalog.projects.locations.entryGroups.tags.patch

valid {
    input.Body.column == STRING
    input.Body.fields.STRING.boolValue == BOOLEAN
    input.Body.fields.STRING.doubleValue == NUMBER
    input.Body.fields.STRING.enumValue.displayName == STRING
    input.Body.fields.STRING.richtextValue == STRING
    input.Body.fields.STRING.stringValue == STRING
    input.Body.fields.STRING.timestampValue == STRING
    input.Body.name == STRING
    input.Body.template == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.entryGroups.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.operations.cancel

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

datacatalog.projects.locations.operations.delete

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

datacatalog.projects.locations.operations.get

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

datacatalog.projects.locations.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.tagTemplates.create

enum_GoogleCloudDatacatalogV1FieldTypePrimitiveType := [ "PRIMITIVE_TYPE_UNSPECIFIED", "DOUBLE", "STRING", "BOOL", "TIMESTAMP", "RICHTEXT" ]
enum_GoogleCloudDatacatalogV1TagTemplateDataplexTransferStatus := [ "DATAPLEX_TRANSFER_STATUS_UNSPECIFIED", "MIGRATED" ]

valid {
    input.Body.dataplexTransferStatus == enum_GoogleCloudDatacatalogV1TagTemplateDataplexTransferStatus[_]
    input.Body.displayName == STRING
    input.Body.fields.STRING.description == STRING
    input.Body.fields.STRING.displayName == STRING
    input.Body.fields.STRING.isRequired == BOOLEAN
    input.Body.fields.STRING.name == STRING
    input.Body.fields.STRING.order == INTEGER
    input.Body.fields.STRING.type.enumType.allowedValues[_].displayName == STRING
    input.Body.fields.STRING.type.primitiveType == enum_GoogleCloudDatacatalogV1FieldTypePrimitiveType[_]
    input.Body.isPubliclyReadable == BOOLEAN
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.Qs.tagTemplateId == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.tagTemplates.delete

valid {
    input.ReqMap.name == STRING
    input.Qs.force == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.tagTemplates.fields.create

enum_GoogleCloudDatacatalogV1FieldTypePrimitiveType := [ "PRIMITIVE_TYPE_UNSPECIFIED", "DOUBLE", "STRING", "BOOL", "TIMESTAMP", "RICHTEXT" ]

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.isRequired == BOOLEAN
    input.Body.name == STRING
    input.Body.order == INTEGER
    input.Body.type.enumType.allowedValues[_].displayName == STRING
    input.Body.type.primitiveType == enum_GoogleCloudDatacatalogV1FieldTypePrimitiveType[_]
    input.ReqMap.parent == STRING
    input.Qs.tagTemplateFieldId == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.tagTemplates.fields.delete

valid {
    input.ReqMap.name == STRING
    input.Qs.force == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.tagTemplates.fields.enumValues.rename

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

datacatalog.projects.locations.tagTemplates.fields.patch

enum_GoogleCloudDatacatalogV1FieldTypePrimitiveType := [ "PRIMITIVE_TYPE_UNSPECIFIED", "DOUBLE", "STRING", "BOOL", "TIMESTAMP", "RICHTEXT" ]

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.isRequired == BOOLEAN
    input.Body.name == STRING
    input.Body.order == INTEGER
    input.Body.type.enumType.allowedValues[_].displayName == STRING
    input.Body.type.primitiveType == enum_GoogleCloudDatacatalogV1FieldTypePrimitiveType[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.tagTemplates.fields.rename

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

datacatalog.projects.locations.tagTemplates.get

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

datacatalog.projects.locations.tagTemplates.getIamPolicy

valid {
    input.Body.options.requestedPolicyVersion == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.tagTemplates.patch

enum_GoogleCloudDatacatalogV1FieldTypePrimitiveType := [ "PRIMITIVE_TYPE_UNSPECIFIED", "DOUBLE", "STRING", "BOOL", "TIMESTAMP", "RICHTEXT" ]
enum_GoogleCloudDatacatalogV1TagTemplateDataplexTransferStatus := [ "DATAPLEX_TRANSFER_STATUS_UNSPECIFIED", "MIGRATED" ]

valid {
    input.Body.dataplexTransferStatus == enum_GoogleCloudDatacatalogV1TagTemplateDataplexTransferStatus[_]
    input.Body.displayName == STRING
    input.Body.fields.STRING.description == STRING
    input.Body.fields.STRING.displayName == STRING
    input.Body.fields.STRING.isRequired == BOOLEAN
    input.Body.fields.STRING.name == STRING
    input.Body.fields.STRING.order == INTEGER
    input.Body.fields.STRING.type.enumType.allowedValues[_].displayName == STRING
    input.Body.fields.STRING.type.primitiveType == enum_GoogleCloudDatacatalogV1FieldTypePrimitiveType[_]
    input.Body.isPubliclyReadable == BOOLEAN
    input.Body.name == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.tagTemplates.setIamPolicy

valid {
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.tagTemplates.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.create

enum_GoogleCloudDatacatalogV1TaxonomyActivatedPolicyTypes := [ "POLICY_TYPE_UNSPECIFIED", "FINE_GRAINED_ACCESS_CONTROL" ]

valid {
    input.Body.activatedPolicyTypes[_] == enum_GoogleCloudDatacatalogV1TaxonomyActivatedPolicyTypes[_]
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.delete

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

datacatalog.projects.locations.taxonomies.export

valid {
    input.ReqMap.parent == STRING
    input.Qs.serializedTaxonomies == BOOLEAN
    input.Qs.taxonomies == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.get

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

datacatalog.projects.locations.taxonomies.getIamPolicy

valid {
    input.Body.options.requestedPolicyVersion == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.import

enum_GoogleCloudDatacatalogV1SerializedTaxonomyActivatedPolicyTypes := [ "POLICY_TYPE_UNSPECIFIED", "FINE_GRAINED_ACCESS_CONTROL" ]

valid {
    input.Body.crossRegionalSource.taxonomy == STRING
    input.Body.inlineSource.taxonomies[_].activatedPolicyTypes[_] == enum_GoogleCloudDatacatalogV1SerializedTaxonomyActivatedPolicyTypes[_]
    input.Body.inlineSource.taxonomies[_].description == STRING
    input.Body.inlineSource.taxonomies[_].displayName == STRING
    input.Body.inlineSource.taxonomies[_].policyTags[_].childPolicyTags[_] == NESTED
    input.Body.inlineSource.taxonomies[_].policyTags[_].description == STRING
    input.Body.inlineSource.taxonomies[_].policyTags[_].displayName == STRING
    input.Body.inlineSource.taxonomies[_].policyTags[_].policyTag == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.list

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

datacatalog.projects.locations.taxonomies.patch

enum_GoogleCloudDatacatalogV1TaxonomyActivatedPolicyTypes := [ "POLICY_TYPE_UNSPECIFIED", "FINE_GRAINED_ACCESS_CONTROL" ]

valid {
    input.Body.activatedPolicyTypes[_] == enum_GoogleCloudDatacatalogV1TaxonomyActivatedPolicyTypes[_]
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.policyTags.create

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.Body.parentPolicyTag == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.policyTags.delete

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

datacatalog.projects.locations.taxonomies.policyTags.get

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

datacatalog.projects.locations.taxonomies.policyTags.getIamPolicy

valid {
    input.Body.options.requestedPolicyVersion == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.policyTags.list

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

datacatalog.projects.locations.taxonomies.policyTags.patch

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.Body.parentPolicyTag == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.policyTags.setIamPolicy

valid {
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.policyTags.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.replace

enum_GoogleCloudDatacatalogV1SerializedTaxonomyActivatedPolicyTypes := [ "POLICY_TYPE_UNSPECIFIED", "FINE_GRAINED_ACCESS_CONTROL" ]

valid {
    input.Body.serializedTaxonomy.activatedPolicyTypes[_] == enum_GoogleCloudDatacatalogV1SerializedTaxonomyActivatedPolicyTypes[_]
    input.Body.serializedTaxonomy.description == STRING
    input.Body.serializedTaxonomy.displayName == STRING
    input.Body.serializedTaxonomy.policyTags[_].childPolicyTags[_] == NESTED
    input.Body.serializedTaxonomy.policyTags[_].description == STRING
    input.Body.serializedTaxonomy.policyTags[_].displayName == STRING
    input.Body.serializedTaxonomy.policyTags[_].policyTag == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.setIamPolicy

valid {
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

datacatalog.projects.locations.taxonomies.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}