ANALYTICSHUB

analyticshub.organizations.locations.dataExchanges.list

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

analyticshub.projects.locations.dataExchanges.create

enum_DataExchangeDiscoveryType := [ "DISCOVERY_TYPE_UNSPECIFIED", "DISCOVERY_TYPE_PRIVATE", "DISCOVERY_TYPE_PUBLIC" ]

valid {
    input.Body.description == STRING
    input.Body.discoveryType == enum_DataExchangeDiscoveryType[_]
    input.Body.displayName == STRING
    input.Body.documentation == STRING
    input.Body.icon == STRING
    input.Body.primaryContact == STRING
    input.Body.sharingEnvironmentConfig.dcrExchangeConfig == {}
    input.Body.sharingEnvironmentConfig.defaultExchangeConfig.STRING == STRING
    input.ReqMap.parent == STRING
    input.Qs.dataExchangeId == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.delete

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

analyticshub.projects.locations.dataExchanges.get

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

analyticshub.projects.locations.dataExchanges.getIamPolicy

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

analyticshub.projects.locations.dataExchanges.list

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

analyticshub.projects.locations.dataExchanges.listSubscriptions

valid {
    input.ReqMap.resource == STRING
    input.Qs.includeDeletedSubscriptions == BOOLEAN
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.listings.create

enum_ListingCategories := [ "CATEGORY_UNSPECIFIED", "CATEGORY_OTHERS", "CATEGORY_ADVERTISING_AND_MARKETING", "CATEGORY_COMMERCE", "CATEGORY_CLIMATE_AND_ENVIRONMENT", "CATEGORY_DEMOGRAPHICS", "CATEGORY_ECONOMICS", "CATEGORY_EDUCATION", "CATEGORY_ENERGY", "CATEGORY_FINANCIAL", "CATEGORY_GAMING", "CATEGORY_GEOSPATIAL", "CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE", "CATEGORY_MEDIA", "CATEGORY_PUBLIC_SECTOR", "CATEGORY_RETAIL", "CATEGORY_SPORTS", "CATEGORY_SCIENCE_AND_RESEARCH", "CATEGORY_TRANSPORTATION_AND_LOGISTICS", "CATEGORY_TRAVEL_AND_TOURISM" ]
enum_ListingDiscoveryType := [ "DISCOVERY_TYPE_UNSPECIFIED", "DISCOVERY_TYPE_PRIVATE", "DISCOVERY_TYPE_PUBLIC" ]

valid {
    input.Body.bigqueryDataset.dataset == STRING
    input.Body.bigqueryDataset.restrictedExportPolicy.enabled == BOOLEAN
    input.Body.bigqueryDataset.restrictedExportPolicy.restrictDirectTableAccess == BOOLEAN
    input.Body.bigqueryDataset.restrictedExportPolicy.restrictQueryResult == BOOLEAN
    input.Body.bigqueryDataset.selectedResources[_].table == STRING
    input.Body.categories[_] == enum_ListingCategories[_]
    input.Body.dataProvider.name == STRING
    input.Body.dataProvider.primaryContact == STRING
    input.Body.description == STRING
    input.Body.discoveryType == enum_ListingDiscoveryType[_]
    input.Body.displayName == STRING
    input.Body.documentation == STRING
    input.Body.icon == STRING
    input.Body.primaryContact == STRING
    input.Body.publisher.name == STRING
    input.Body.publisher.primaryContact == STRING
    input.Body.pubsubTopic.dataAffinityRegions[_] == STRING
    input.Body.pubsubTopic.topic == STRING
    input.Body.requestAccess == STRING
    input.Body.restrictedExportConfig.enabled == BOOLEAN
    input.Body.restrictedExportConfig.restrictQueryResult == BOOLEAN
    input.ReqMap.parent == STRING
    input.Qs.listingId == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.listings.delete

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

analyticshub.projects.locations.dataExchanges.listings.get

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

analyticshub.projects.locations.dataExchanges.listings.getIamPolicy

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

analyticshub.projects.locations.dataExchanges.listings.list

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

analyticshub.projects.locations.dataExchanges.listings.listSubscriptions

valid {
    input.ReqMap.resource == STRING
    input.Qs.includeDeletedSubscriptions == BOOLEAN
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.listings.patch

enum_ListingCategories := [ "CATEGORY_UNSPECIFIED", "CATEGORY_OTHERS", "CATEGORY_ADVERTISING_AND_MARKETING", "CATEGORY_COMMERCE", "CATEGORY_CLIMATE_AND_ENVIRONMENT", "CATEGORY_DEMOGRAPHICS", "CATEGORY_ECONOMICS", "CATEGORY_EDUCATION", "CATEGORY_ENERGY", "CATEGORY_FINANCIAL", "CATEGORY_GAMING", "CATEGORY_GEOSPATIAL", "CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE", "CATEGORY_MEDIA", "CATEGORY_PUBLIC_SECTOR", "CATEGORY_RETAIL", "CATEGORY_SPORTS", "CATEGORY_SCIENCE_AND_RESEARCH", "CATEGORY_TRANSPORTATION_AND_LOGISTICS", "CATEGORY_TRAVEL_AND_TOURISM" ]
enum_ListingDiscoveryType := [ "DISCOVERY_TYPE_UNSPECIFIED", "DISCOVERY_TYPE_PRIVATE", "DISCOVERY_TYPE_PUBLIC" ]

valid {
    input.Body.bigqueryDataset.dataset == STRING
    input.Body.bigqueryDataset.restrictedExportPolicy.enabled == BOOLEAN
    input.Body.bigqueryDataset.restrictedExportPolicy.restrictDirectTableAccess == BOOLEAN
    input.Body.bigqueryDataset.restrictedExportPolicy.restrictQueryResult == BOOLEAN
    input.Body.bigqueryDataset.selectedResources[_].table == STRING
    input.Body.categories[_] == enum_ListingCategories[_]
    input.Body.dataProvider.name == STRING
    input.Body.dataProvider.primaryContact == STRING
    input.Body.description == STRING
    input.Body.discoveryType == enum_ListingDiscoveryType[_]
    input.Body.displayName == STRING
    input.Body.documentation == STRING
    input.Body.icon == STRING
    input.Body.primaryContact == STRING
    input.Body.publisher.name == STRING
    input.Body.publisher.primaryContact == STRING
    input.Body.pubsubTopic.dataAffinityRegions[_] == STRING
    input.Body.pubsubTopic.topic == STRING
    input.Body.requestAccess == STRING
    input.Body.restrictedExportConfig.enabled == BOOLEAN
    input.Body.restrictedExportConfig.restrictQueryResult == BOOLEAN
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.listings.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    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.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.listings.subscribe

valid {
    input.Body.destinationDataset.datasetReference.datasetId == STRING
    input.Body.destinationDataset.datasetReference.projectId == STRING
    input.Body.destinationDataset.description == STRING
    input.Body.destinationDataset.friendlyName == STRING
    input.Body.destinationDataset.labels.STRING == STRING
    input.Body.destinationDataset.location == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.ackDeadlineSeconds == INTEGER
    input.Body.destinationPubsubSubscription.pubsubSubscription.bigqueryConfig.dropUnknownFields == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.bigqueryConfig.serviceAccountEmail == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.bigqueryConfig.table == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.bigqueryConfig.useTableSchema == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.bigqueryConfig.useTopicSchema == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.bigqueryConfig.writeMetadata == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.avroConfig.useTopicSchema == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.avroConfig.writeMetadata == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.bucket == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.filenameDatetimeFormat == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.filenamePrefix == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.filenameSuffix == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.maxBytes == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.maxDuration == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.maxMessages == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.serviceAccountEmail == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.cloudStorageConfig.textConfig.STRING == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.deadLetterPolicy.deadLetterTopic == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.deadLetterPolicy.maxDeliveryAttempts == INTEGER
    input.Body.destinationPubsubSubscription.pubsubSubscription.detached == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.enableExactlyOnceDelivery == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.enableMessageOrdering == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.expirationPolicy.ttl == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.filter == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.labels.STRING == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.messageRetentionDuration == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.name == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.pushConfig.attributes.STRING == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.pushConfig.noWrapper.writeMetadata == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.pushConfig.oidcToken.audience == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.pushConfig.oidcToken.serviceAccountEmail == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.pushConfig.pubsubWrapper.STRING == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.pushConfig.pushEndpoint == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.retainAckedMessages == BOOLEAN
    input.Body.destinationPubsubSubscription.pubsubSubscription.retryPolicy.maximumBackoff == STRING
    input.Body.destinationPubsubSubscription.pubsubSubscription.retryPolicy.minimumBackoff == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.listings.testIamPermissions

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

analyticshub.projects.locations.dataExchanges.patch

enum_DataExchangeDiscoveryType := [ "DISCOVERY_TYPE_UNSPECIFIED", "DISCOVERY_TYPE_PRIVATE", "DISCOVERY_TYPE_PUBLIC" ]

valid {
    input.Body.description == STRING
    input.Body.discoveryType == enum_DataExchangeDiscoveryType[_]
    input.Body.displayName == STRING
    input.Body.documentation == STRING
    input.Body.icon == STRING
    input.Body.primaryContact == STRING
    input.Body.sharingEnvironmentConfig.dcrExchangeConfig == {}
    input.Body.sharingEnvironmentConfig.defaultExchangeConfig.STRING == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    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.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.subscribe

valid {
    input.Body.destination == STRING
    input.Body.destinationDataset.datasetReference.datasetId == STRING
    input.Body.destinationDataset.datasetReference.projectId == STRING
    input.Body.destinationDataset.description == STRING
    input.Body.destinationDataset.friendlyName == STRING
    input.Body.destinationDataset.labels.STRING == STRING
    input.Body.destinationDataset.location == STRING
    input.Body.subscriberContact == STRING
    input.Body.subscription == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

analyticshub.projects.locations.dataExchanges.testIamPermissions

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

analyticshub.projects.locations.subscriptions.delete

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

analyticshub.projects.locations.subscriptions.get

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

analyticshub.projects.locations.subscriptions.getIamPolicy

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

analyticshub.projects.locations.subscriptions.list

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

analyticshub.projects.locations.subscriptions.refresh

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

analyticshub.projects.locations.subscriptions.revoke

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

analyticshub.projects.locations.subscriptions.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    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.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}