pubsub.projects.schemas.commit

enum_SchemaType := [ "TYPE_UNSPECIFIED", "PROTOCOL_BUFFER", "AVRO" ]

valid {
    input.Body.schema.definition == STRING
    input.Body.schema.name == STRING
    input.Body.schema.type == enum_SchemaType[_]
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.schemas.create

enum_SchemaType := [ "TYPE_UNSPECIFIED", "PROTOCOL_BUFFER", "AVRO" ]

valid {
    input.Body.definition == STRING
    input.Body.name == STRING
    input.Body.type == enum_SchemaType[_]
    input.ReqMap.parent == STRING
    input.Qs.schemaId == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.schemas.delete

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

pubsub.projects.schemas.deleteRevision

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

pubsub.projects.schemas.get

enum_ViewParameter := [ "SCHEMA_VIEW_UNSPECIFIED", "BASIC", "FULL" ]

valid {
    input.ReqMap.name == STRING
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.schemas.getIamPolicy

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

pubsub.projects.schemas.list

enum_ViewParameter := [ "SCHEMA_VIEW_UNSPECIFIED", "BASIC", "FULL" ]

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.schemas.listRevisions

enum_ViewParameter := [ "SCHEMA_VIEW_UNSPECIFIED", "BASIC", "FULL" ]

valid {
    input.ReqMap.name == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.schemas.rollback

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

pubsub.projects.schemas.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
}

pubsub.projects.schemas.testIamPermissions

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

pubsub.projects.schemas.validate

enum_SchemaType := [ "TYPE_UNSPECIFIED", "PROTOCOL_BUFFER", "AVRO" ]

valid {
    input.Body.schema.definition == STRING
    input.Body.schema.name == STRING
    input.Body.schema.type == enum_SchemaType[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.schemas.validateMessage

enum_SchemaType := [ "TYPE_UNSPECIFIED", "PROTOCOL_BUFFER", "AVRO" ]
enum_ValidateMessageRequestEncoding := [ "ENCODING_UNSPECIFIED", "JSON", "BINARY" ]

valid {
    input.Body.encoding == enum_ValidateMessageRequestEncoding[_]
    input.Body.message == STRING
    input.Body.name == STRING
    input.Body.schema.definition == STRING
    input.Body.schema.name == STRING
    input.Body.schema.type == enum_SchemaType[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.snapshots.create

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

pubsub.projects.snapshots.delete

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

pubsub.projects.snapshots.get

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

pubsub.projects.snapshots.getIamPolicy

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

pubsub.projects.snapshots.list

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

pubsub.projects.snapshots.patch

valid {
    input.Body.snapshot.expireTime == STRING
    input.Body.snapshot.labels.STRING == STRING
    input.Body.snapshot.name == STRING
    input.Body.snapshot.topic == STRING
    input.Body.updateMask == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.snapshots.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
}

pubsub.projects.snapshots.testIamPermissions

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

pubsub.projects.subscriptions.acknowledge

valid {
    input.Body.ackIds[_] == STRING
    input.ReqMap.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.subscriptions.create

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

pubsub.projects.subscriptions.delete

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

pubsub.projects.subscriptions.detach

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

pubsub.projects.subscriptions.get

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

pubsub.projects.subscriptions.getIamPolicy

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

pubsub.projects.subscriptions.list

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

pubsub.projects.subscriptions.modifyAckDeadline

valid {
    input.Body.ackDeadlineSeconds == INTEGER
    input.Body.ackIds[_] == STRING
    input.ReqMap.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.subscriptions.modifyPushConfig

valid {
    input.Body.pushConfig.attributes.STRING == STRING
    input.Body.pushConfig.noWrapper.writeMetadata == BOOLEAN
    input.Body.pushConfig.oidcToken.audience == STRING
    input.Body.pushConfig.oidcToken.serviceAccountEmail == STRING
    input.Body.pushConfig.pubsubWrapper.STRING == STRING
    input.Body.pushConfig.pushEndpoint == STRING
    input.ReqMap.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.subscriptions.patch

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

pubsub.projects.subscriptions.pull

valid {
    input.Body.maxMessages == INTEGER
    input.Body.returnImmediately == BOOLEAN
    input.ReqMap.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.subscriptions.seek

valid {
    input.Body.snapshot == STRING
    input.Body.time == STRING
    input.ReqMap.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.subscriptions.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
}

pubsub.projects.subscriptions.testIamPermissions

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

pubsub.projects.topics.create

enum_SchemaSettingsEncoding := [ "ENCODING_UNSPECIFIED", "JSON", "BINARY" ]

valid {
    input.Body.ingestionDataSourceSettings.awsKinesis.awsRoleArn == STRING
    input.Body.ingestionDataSourceSettings.awsKinesis.consumerArn == STRING
    input.Body.ingestionDataSourceSettings.awsKinesis.gcpServiceAccount == STRING
    input.Body.ingestionDataSourceSettings.awsKinesis.streamArn == STRING
    input.Body.kmsKeyName == STRING
    input.Body.labels.STRING == STRING
    input.Body.messageRetentionDuration == STRING
    input.Body.messageStoragePolicy.allowedPersistenceRegions[_] == STRING
    input.Body.messageStoragePolicy.enforceInTransit == BOOLEAN
    input.Body.name == STRING
    input.Body.satisfiesPzs == BOOLEAN
    input.Body.schemaSettings.encoding == enum_SchemaSettingsEncoding[_]
    input.Body.schemaSettings.firstRevisionId == STRING
    input.Body.schemaSettings.lastRevisionId == STRING
    input.Body.schemaSettings.schema == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.topics.delete

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

pubsub.projects.topics.get

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

pubsub.projects.topics.getIamPolicy

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

pubsub.projects.topics.list

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

pubsub.projects.topics.patch

enum_SchemaSettingsEncoding := [ "ENCODING_UNSPECIFIED", "JSON", "BINARY" ]

valid {
    input.Body.topic.ingestionDataSourceSettings.awsKinesis.awsRoleArn == STRING
    input.Body.topic.ingestionDataSourceSettings.awsKinesis.consumerArn == STRING
    input.Body.topic.ingestionDataSourceSettings.awsKinesis.gcpServiceAccount == STRING
    input.Body.topic.ingestionDataSourceSettings.awsKinesis.streamArn == STRING
    input.Body.topic.kmsKeyName == STRING
    input.Body.topic.labels.STRING == STRING
    input.Body.topic.messageRetentionDuration == STRING
    input.Body.topic.messageStoragePolicy.allowedPersistenceRegions[_] == STRING
    input.Body.topic.messageStoragePolicy.enforceInTransit == BOOLEAN
    input.Body.topic.name == STRING
    input.Body.topic.satisfiesPzs == BOOLEAN
    input.Body.topic.schemaSettings.encoding == enum_SchemaSettingsEncoding[_]
    input.Body.topic.schemaSettings.firstRevisionId == STRING
    input.Body.topic.schemaSettings.lastRevisionId == STRING
    input.Body.topic.schemaSettings.schema == STRING
    input.Body.updateMask == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.topics.publish

valid {
    input.Body.messages[_].attributes.STRING == STRING
    input.Body.messages[_].data == STRING
    input.Body.messages[_].messageId == STRING
    input.Body.messages[_].orderingKey == STRING
    input.Body.messages[_].publishTime == STRING
    input.ReqMap.topic == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.projects.topics.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
}

pubsub.projects.topics.snapshots.list

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

pubsub.projects.topics.subscriptions.list

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

pubsub.projects.topics.testIamPermissions

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

pubsub.subscriptions.acknowledge

valid {
    input.Body.ackId[_] == STRING
    input.Body.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.subscriptions.create

valid {
    input.Body.ackDeadlineSeconds == INTEGER
    input.Body.name == STRING
    input.Body.pushConfig.pushEndpoint == STRING
    input.Body.topic == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.subscriptions.delete

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

pubsub.subscriptions.get

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

pubsub.subscriptions.list

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.query == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.subscriptions.modifyAckDeadline

valid {
    input.Body.ackDeadlineSeconds == INTEGER
    input.Body.ackId == STRING
    input.Body.ackIds[_] == STRING
    input.Body.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.subscriptions.modifyPushConfig

valid {
    input.Body.pushConfig.pushEndpoint == STRING
    input.Body.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.subscriptions.pull

valid {
    input.Body.returnImmediately == BOOLEAN
    input.Body.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.subscriptions.pullBatch

valid {
    input.Body.maxEvents == INTEGER
    input.Body.returnImmediately == BOOLEAN
    input.Body.subscription == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.topics.create

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

pubsub.topics.delete

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

pubsub.topics.get

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

pubsub.topics.list

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.query == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.topics.publish

valid {
    input.Body.message.data == STRING
    input.Body.message.label[_].key == STRING
    input.Body.message.label[_].numValue == STRING
    input.Body.message.label[_].strValue == STRING
    input.Body.message.messageId == STRING
    input.Body.message.publishTime == STRING
    input.Body.topic == STRING
    input.ProviderMetadata.Region == STRING
}

pubsub.topics.publishBatch

valid {
    input.Body.messages[_].data == STRING
    input.Body.messages[_].label[_].key == STRING
    input.Body.messages[_].label[_].numValue == STRING
    input.Body.messages[_].label[_].strValue == STRING
    input.Body.messages[_].messageId == STRING
    input.Body.messages[_].publishTime == STRING
    input.Body.topic == STRING
    input.ProviderMetadata.Region == STRING
}