STORAGETRANSFER

storagetransfer.googleServiceAccounts.get

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

storagetransfer.projects.agentPools.create

valid {
    input.Body.bandwidthLimit.limitMbps == STRING
    input.Body.displayName == STRING
    input.Body.name == STRING
    input.ReqMap.ProjectID == STRING
    input.Qs.agentPoolId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.ProjectID == STRING
}

storagetransfer.projects.agentPools.delete

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

storagetransfer.projects.agentPools.get

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

storagetransfer.projects.agentPools.list

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

storagetransfer.projects.agentPools.patch

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

storagetransfer.transferJobs.create

enum_LoggingConfigLogActionStates := [ "LOGGABLE_ACTION_STATE_UNSPECIFIED", "SUCCEEDED", "FAILED" ]
enum_LoggingConfigLogActions := [ "LOGGABLE_ACTION_UNSPECIFIED", "FIND", "DELETE", "COPY" ]
enum_MetadataOptionsAcl := [ "ACL_UNSPECIFIED", "ACL_DESTINATION_BUCKET_DEFAULT", "ACL_PRESERVE" ]
enum_MetadataOptionsGid := [ "GID_UNSPECIFIED", "GID_SKIP", "GID_NUMBER" ]
enum_MetadataOptionsKmsKey := [ "KMS_KEY_UNSPECIFIED", "KMS_KEY_DESTINATION_BUCKET_DEFAULT", "KMS_KEY_PRESERVE" ]
enum_MetadataOptionsMode := [ "MODE_UNSPECIFIED", "MODE_SKIP", "MODE_PRESERVE" ]
enum_MetadataOptionsStorageClass := [ "STORAGE_CLASS_UNSPECIFIED", "STORAGE_CLASS_DESTINATION_BUCKET_DEFAULT", "STORAGE_CLASS_PRESERVE", "STORAGE_CLASS_STANDARD", "STORAGE_CLASS_NEARLINE", "STORAGE_CLASS_COLDLINE", "STORAGE_CLASS_ARCHIVE" ]
enum_MetadataOptionsSymlink := [ "SYMLINK_UNSPECIFIED", "SYMLINK_SKIP", "SYMLINK_PRESERVE" ]
enum_MetadataOptionsTemporaryHold := [ "TEMPORARY_HOLD_UNSPECIFIED", "TEMPORARY_HOLD_SKIP", "TEMPORARY_HOLD_PRESERVE" ]
enum_MetadataOptionsTimeCreated := [ "TIME_CREATED_UNSPECIFIED", "TIME_CREATED_SKIP", "TIME_CREATED_PRESERVE_AS_CUSTOM_TIME" ]
enum_MetadataOptionsUid := [ "UID_UNSPECIFIED", "UID_SKIP", "UID_NUMBER" ]
enum_NotificationConfigEventTypes := [ "EVENT_TYPE_UNSPECIFIED", "TRANSFER_OPERATION_SUCCESS", "TRANSFER_OPERATION_FAILED", "TRANSFER_OPERATION_ABORTED" ]
enum_NotificationConfigPayloadFormat := [ "PAYLOAD_FORMAT_UNSPECIFIED", "NONE", "JSON" ]
enum_S3CompatibleMetadataAuthMethod := [ "AUTH_METHOD_UNSPECIFIED", "AUTH_METHOD_AWS_SIGNATURE_V4", "AUTH_METHOD_AWS_SIGNATURE_V2" ]
enum_S3CompatibleMetadataListApi := [ "LIST_API_UNSPECIFIED", "LIST_OBJECTS_V2", "LIST_OBJECTS" ]
enum_S3CompatibleMetadataProtocol := [ "NETWORK_PROTOCOL_UNSPECIFIED", "NETWORK_PROTOCOL_HTTPS", "NETWORK_PROTOCOL_HTTP" ]
enum_S3CompatibleMetadataRequestModel := [ "REQUEST_MODEL_UNSPECIFIED", "REQUEST_MODEL_VIRTUAL_HOSTED_STYLE", "REQUEST_MODEL_PATH_STYLE" ]
enum_TransferJobStatus := [ "STATUS_UNSPECIFIED", "ENABLED", "DISABLED", "DELETED" ]
enum_TransferOptionsOverwriteWhen := [ "OVERWRITE_WHEN_UNSPECIFIED", "DIFFERENT", "NEVER", "ALWAYS" ]

valid {
    input.Body.description == STRING
    input.Body.eventStream.eventStreamExpirationTime == STRING
    input.Body.eventStream.eventStreamStartTime == STRING
    input.Body.eventStream.name == STRING
    input.Body.latestOperationName == STRING
    input.Body.loggingConfig.enableOnpremGcsTransferLogs == BOOLEAN
    input.Body.loggingConfig.logActionStates[_] == enum_LoggingConfigLogActionStates[_]
    input.Body.loggingConfig.logActions[_] == enum_LoggingConfigLogActions[_]
    input.Body.name == STRING
    input.Body.notificationConfig.eventTypes[_] == enum_NotificationConfigEventTypes[_]
    input.Body.notificationConfig.payloadFormat == enum_NotificationConfigPayloadFormat[_]
    input.Body.notificationConfig.pubsubTopic == STRING
    input.Body.projectId == STRING
    input.Body.schedule.endTimeOfDay.hours == INTEGER
    input.Body.schedule.endTimeOfDay.minutes == INTEGER
    input.Body.schedule.endTimeOfDay.nanos == INTEGER
    input.Body.schedule.endTimeOfDay.seconds == INTEGER
    input.Body.schedule.repeatInterval == STRING
    input.Body.schedule.scheduleEndDate.day == INTEGER
    input.Body.schedule.scheduleEndDate.month == INTEGER
    input.Body.schedule.scheduleEndDate.year == INTEGER
    input.Body.schedule.scheduleStartDate.day == INTEGER
    input.Body.schedule.scheduleStartDate.month == INTEGER
    input.Body.schedule.scheduleStartDate.year == INTEGER
    input.Body.schedule.startTimeOfDay.hours == INTEGER
    input.Body.schedule.startTimeOfDay.minutes == INTEGER
    input.Body.schedule.startTimeOfDay.nanos == INTEGER
    input.Body.schedule.startTimeOfDay.seconds == INTEGER
    input.Body.status == enum_TransferJobStatus[_]
    input.Body.transferSpec.awsS3CompatibleDataSource.bucketName == STRING
    input.Body.transferSpec.awsS3CompatibleDataSource.endpoint == STRING
    input.Body.transferSpec.awsS3CompatibleDataSource.path == STRING
    input.Body.transferSpec.awsS3CompatibleDataSource.region == STRING
    input.Body.transferSpec.awsS3CompatibleDataSource.s3Metadata.authMethod == enum_S3CompatibleMetadataAuthMethod[_]
    input.Body.transferSpec.awsS3CompatibleDataSource.s3Metadata.listApi == enum_S3CompatibleMetadataListApi[_]
    input.Body.transferSpec.awsS3CompatibleDataSource.s3Metadata.protocol == enum_S3CompatibleMetadataProtocol[_]
    input.Body.transferSpec.awsS3CompatibleDataSource.s3Metadata.requestModel == enum_S3CompatibleMetadataRequestModel[_]
    input.Body.transferSpec.awsS3DataSource.awsAccessKey.accessKeyId == STRING
    input.Body.transferSpec.awsS3DataSource.awsAccessKey.secretAccessKey == STRING
    input.Body.transferSpec.awsS3DataSource.bucketName == STRING
    input.Body.transferSpec.awsS3DataSource.cloudfrontDomain == STRING
    input.Body.transferSpec.awsS3DataSource.credentialsSecret == STRING
    input.Body.transferSpec.awsS3DataSource.path == STRING
    input.Body.transferSpec.awsS3DataSource.roleArn == STRING
    input.Body.transferSpec.azureBlobStorageDataSource.azureCredentials.sasToken == STRING
    input.Body.transferSpec.azureBlobStorageDataSource.container == STRING
    input.Body.transferSpec.azureBlobStorageDataSource.credentialsSecret == STRING
    input.Body.transferSpec.azureBlobStorageDataSource.path == STRING
    input.Body.transferSpec.azureBlobStorageDataSource.storageAccount == STRING
    input.Body.transferSpec.gcsDataSink.bucketName == STRING
    input.Body.transferSpec.gcsDataSink.managedFolderTransferEnabled == BOOLEAN
    input.Body.transferSpec.gcsDataSink.path == STRING
    input.Body.transferSpec.gcsDataSource.bucketName == STRING
    input.Body.transferSpec.gcsDataSource.managedFolderTransferEnabled == BOOLEAN
    input.Body.transferSpec.gcsDataSource.path == STRING
    input.Body.transferSpec.gcsIntermediateDataLocation.bucketName == STRING
    input.Body.transferSpec.gcsIntermediateDataLocation.managedFolderTransferEnabled == BOOLEAN
    input.Body.transferSpec.gcsIntermediateDataLocation.path == STRING
    input.Body.transferSpec.hdfsDataSource.path == STRING
    input.Body.transferSpec.httpDataSource.listUrl == STRING
    input.Body.transferSpec.objectConditions.excludePrefixes[_] == STRING
    input.Body.transferSpec.objectConditions.includePrefixes[_] == STRING
    input.Body.transferSpec.objectConditions.lastModifiedBefore == STRING
    input.Body.transferSpec.objectConditions.lastModifiedSince == STRING
    input.Body.transferSpec.objectConditions.maxTimeElapsedSinceLastModification == STRING
    input.Body.transferSpec.objectConditions.minTimeElapsedSinceLastModification == STRING
    input.Body.transferSpec.posixDataSink.rootDirectory == STRING
    input.Body.transferSpec.posixDataSource.rootDirectory == STRING
    input.Body.transferSpec.sinkAgentPoolName == STRING
    input.Body.transferSpec.sourceAgentPoolName == STRING
    input.Body.transferSpec.transferManifest.location == STRING
    input.Body.transferSpec.transferOptions.deleteObjectsFromSourceAfterTransfer == BOOLEAN
    input.Body.transferSpec.transferOptions.deleteObjectsUniqueInSink == BOOLEAN
    input.Body.transferSpec.transferOptions.metadataOptions.acl == enum_MetadataOptionsAcl[_]
    input.Body.transferSpec.transferOptions.metadataOptions.gid == enum_MetadataOptionsGid[_]
    input.Body.transferSpec.transferOptions.metadataOptions.kmsKey == enum_MetadataOptionsKmsKey[_]
    input.Body.transferSpec.transferOptions.metadataOptions.mode == enum_MetadataOptionsMode[_]
    input.Body.transferSpec.transferOptions.metadataOptions.storageClass == enum_MetadataOptionsStorageClass[_]
    input.Body.transferSpec.transferOptions.metadataOptions.symlink == enum_MetadataOptionsSymlink[_]
    input.Body.transferSpec.transferOptions.metadataOptions.temporaryHold == enum_MetadataOptionsTemporaryHold[_]
    input.Body.transferSpec.transferOptions.metadataOptions.timeCreated == enum_MetadataOptionsTimeCreated[_]
    input.Body.transferSpec.transferOptions.metadataOptions.uid == enum_MetadataOptionsUid[_]
    input.Body.transferSpec.transferOptions.overwriteObjectsAlreadyExistingInSink == BOOLEAN
    input.Body.transferSpec.transferOptions.overwriteWhen == enum_TransferOptionsOverwriteWhen[_]
    input.ProviderMetadata.Region == STRING
}

storagetransfer.transferJobs.delete

valid {
    input.ReqMap.jobName == STRING
    input.Qs.projectId == STRING
    input.ProviderMetadata.Region == STRING
}

storagetransfer.transferJobs.get

valid {
    input.ReqMap.jobName == STRING
    input.Qs.projectId == STRING
    input.ProviderMetadata.Region == STRING
}

storagetransfer.transferJobs.list

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

storagetransfer.transferJobs.patch

enum_LoggingConfigLogActionStates := [ "LOGGABLE_ACTION_STATE_UNSPECIFIED", "SUCCEEDED", "FAILED" ]
enum_LoggingConfigLogActions := [ "LOGGABLE_ACTION_UNSPECIFIED", "FIND", "DELETE", "COPY" ]
enum_MetadataOptionsAcl := [ "ACL_UNSPECIFIED", "ACL_DESTINATION_BUCKET_DEFAULT", "ACL_PRESERVE" ]
enum_MetadataOptionsGid := [ "GID_UNSPECIFIED", "GID_SKIP", "GID_NUMBER" ]
enum_MetadataOptionsKmsKey := [ "KMS_KEY_UNSPECIFIED", "KMS_KEY_DESTINATION_BUCKET_DEFAULT", "KMS_KEY_PRESERVE" ]
enum_MetadataOptionsMode := [ "MODE_UNSPECIFIED", "MODE_SKIP", "MODE_PRESERVE" ]
enum_MetadataOptionsStorageClass := [ "STORAGE_CLASS_UNSPECIFIED", "STORAGE_CLASS_DESTINATION_BUCKET_DEFAULT", "STORAGE_CLASS_PRESERVE", "STORAGE_CLASS_STANDARD", "STORAGE_CLASS_NEARLINE", "STORAGE_CLASS_COLDLINE", "STORAGE_CLASS_ARCHIVE" ]
enum_MetadataOptionsSymlink := [ "SYMLINK_UNSPECIFIED", "SYMLINK_SKIP", "SYMLINK_PRESERVE" ]
enum_MetadataOptionsTemporaryHold := [ "TEMPORARY_HOLD_UNSPECIFIED", "TEMPORARY_HOLD_SKIP", "TEMPORARY_HOLD_PRESERVE" ]
enum_MetadataOptionsTimeCreated := [ "TIME_CREATED_UNSPECIFIED", "TIME_CREATED_SKIP", "TIME_CREATED_PRESERVE_AS_CUSTOM_TIME" ]
enum_MetadataOptionsUid := [ "UID_UNSPECIFIED", "UID_SKIP", "UID_NUMBER" ]
enum_NotificationConfigEventTypes := [ "EVENT_TYPE_UNSPECIFIED", "TRANSFER_OPERATION_SUCCESS", "TRANSFER_OPERATION_FAILED", "TRANSFER_OPERATION_ABORTED" ]
enum_NotificationConfigPayloadFormat := [ "PAYLOAD_FORMAT_UNSPECIFIED", "NONE", "JSON" ]
enum_S3CompatibleMetadataAuthMethod := [ "AUTH_METHOD_UNSPECIFIED", "AUTH_METHOD_AWS_SIGNATURE_V4", "AUTH_METHOD_AWS_SIGNATURE_V2" ]
enum_S3CompatibleMetadataListApi := [ "LIST_API_UNSPECIFIED", "LIST_OBJECTS_V2", "LIST_OBJECTS" ]
enum_S3CompatibleMetadataProtocol := [ "NETWORK_PROTOCOL_UNSPECIFIED", "NETWORK_PROTOCOL_HTTPS", "NETWORK_PROTOCOL_HTTP" ]
enum_S3CompatibleMetadataRequestModel := [ "REQUEST_MODEL_UNSPECIFIED", "REQUEST_MODEL_VIRTUAL_HOSTED_STYLE", "REQUEST_MODEL_PATH_STYLE" ]
enum_TransferJobStatus := [ "STATUS_UNSPECIFIED", "ENABLED", "DISABLED", "DELETED" ]
enum_TransferOptionsOverwriteWhen := [ "OVERWRITE_WHEN_UNSPECIFIED", "DIFFERENT", "NEVER", "ALWAYS" ]

valid {
    input.Body.projectId == STRING
    input.Body.transferJob.description == STRING
    input.Body.transferJob.eventStream.eventStreamExpirationTime == STRING
    input.Body.transferJob.eventStream.eventStreamStartTime == STRING
    input.Body.transferJob.eventStream.name == STRING
    input.Body.transferJob.latestOperationName == STRING
    input.Body.transferJob.loggingConfig.enableOnpremGcsTransferLogs == BOOLEAN
    input.Body.transferJob.loggingConfig.logActionStates[_] == enum_LoggingConfigLogActionStates[_]
    input.Body.transferJob.loggingConfig.logActions[_] == enum_LoggingConfigLogActions[_]
    input.Body.transferJob.name == STRING
    input.Body.transferJob.notificationConfig.eventTypes[_] == enum_NotificationConfigEventTypes[_]
    input.Body.transferJob.notificationConfig.payloadFormat == enum_NotificationConfigPayloadFormat[_]
    input.Body.transferJob.notificationConfig.pubsubTopic == STRING
    input.Body.transferJob.projectId == STRING
    input.Body.transferJob.schedule.endTimeOfDay.hours == INTEGER
    input.Body.transferJob.schedule.endTimeOfDay.minutes == INTEGER
    input.Body.transferJob.schedule.endTimeOfDay.nanos == INTEGER
    input.Body.transferJob.schedule.endTimeOfDay.seconds == INTEGER
    input.Body.transferJob.schedule.repeatInterval == STRING
    input.Body.transferJob.schedule.scheduleEndDate.day == INTEGER
    input.Body.transferJob.schedule.scheduleEndDate.month == INTEGER
    input.Body.transferJob.schedule.scheduleEndDate.year == INTEGER
    input.Body.transferJob.schedule.scheduleStartDate.day == INTEGER
    input.Body.transferJob.schedule.scheduleStartDate.month == INTEGER
    input.Body.transferJob.schedule.scheduleStartDate.year == INTEGER
    input.Body.transferJob.schedule.startTimeOfDay.hours == INTEGER
    input.Body.transferJob.schedule.startTimeOfDay.minutes == INTEGER
    input.Body.transferJob.schedule.startTimeOfDay.nanos == INTEGER
    input.Body.transferJob.schedule.startTimeOfDay.seconds == INTEGER
    input.Body.transferJob.status == enum_TransferJobStatus[_]
    input.Body.transferJob.transferSpec.awsS3CompatibleDataSource.bucketName == STRING
    input.Body.transferJob.transferSpec.awsS3CompatibleDataSource.endpoint == STRING
    input.Body.transferJob.transferSpec.awsS3CompatibleDataSource.path == STRING
    input.Body.transferJob.transferSpec.awsS3CompatibleDataSource.region == STRING
    input.Body.transferJob.transferSpec.awsS3CompatibleDataSource.s3Metadata.authMethod == enum_S3CompatibleMetadataAuthMethod[_]
    input.Body.transferJob.transferSpec.awsS3CompatibleDataSource.s3Metadata.listApi == enum_S3CompatibleMetadataListApi[_]
    input.Body.transferJob.transferSpec.awsS3CompatibleDataSource.s3Metadata.protocol == enum_S3CompatibleMetadataProtocol[_]
    input.Body.transferJob.transferSpec.awsS3CompatibleDataSource.s3Metadata.requestModel == enum_S3CompatibleMetadataRequestModel[_]
    input.Body.transferJob.transferSpec.awsS3DataSource.awsAccessKey.accessKeyId == STRING
    input.Body.transferJob.transferSpec.awsS3DataSource.awsAccessKey.secretAccessKey == STRING
    input.Body.transferJob.transferSpec.awsS3DataSource.bucketName == STRING
    input.Body.transferJob.transferSpec.awsS3DataSource.cloudfrontDomain == STRING
    input.Body.transferJob.transferSpec.awsS3DataSource.credentialsSecret == STRING
    input.Body.transferJob.transferSpec.awsS3DataSource.path == STRING
    input.Body.transferJob.transferSpec.awsS3DataSource.roleArn == STRING
    input.Body.transferJob.transferSpec.azureBlobStorageDataSource.azureCredentials.sasToken == STRING
    input.Body.transferJob.transferSpec.azureBlobStorageDataSource.container == STRING
    input.Body.transferJob.transferSpec.azureBlobStorageDataSource.credentialsSecret == STRING
    input.Body.transferJob.transferSpec.azureBlobStorageDataSource.path == STRING
    input.Body.transferJob.transferSpec.azureBlobStorageDataSource.storageAccount == STRING
    input.Body.transferJob.transferSpec.gcsDataSink.bucketName == STRING
    input.Body.transferJob.transferSpec.gcsDataSink.managedFolderTransferEnabled == BOOLEAN
    input.Body.transferJob.transferSpec.gcsDataSink.path == STRING
    input.Body.transferJob.transferSpec.gcsDataSource.bucketName == STRING
    input.Body.transferJob.transferSpec.gcsDataSource.managedFolderTransferEnabled == BOOLEAN
    input.Body.transferJob.transferSpec.gcsDataSource.path == STRING
    input.Body.transferJob.transferSpec.gcsIntermediateDataLocation.bucketName == STRING
    input.Body.transferJob.transferSpec.gcsIntermediateDataLocation.managedFolderTransferEnabled == BOOLEAN
    input.Body.transferJob.transferSpec.gcsIntermediateDataLocation.path == STRING
    input.Body.transferJob.transferSpec.hdfsDataSource.path == STRING
    input.Body.transferJob.transferSpec.httpDataSource.listUrl == STRING
    input.Body.transferJob.transferSpec.objectConditions.excludePrefixes[_] == STRING
    input.Body.transferJob.transferSpec.objectConditions.includePrefixes[_] == STRING
    input.Body.transferJob.transferSpec.objectConditions.lastModifiedBefore == STRING
    input.Body.transferJob.transferSpec.objectConditions.lastModifiedSince == STRING
    input.Body.transferJob.transferSpec.objectConditions.maxTimeElapsedSinceLastModification == STRING
    input.Body.transferJob.transferSpec.objectConditions.minTimeElapsedSinceLastModification == STRING
    input.Body.transferJob.transferSpec.posixDataSink.rootDirectory == STRING
    input.Body.transferJob.transferSpec.posixDataSource.rootDirectory == STRING
    input.Body.transferJob.transferSpec.sinkAgentPoolName == STRING
    input.Body.transferJob.transferSpec.sourceAgentPoolName == STRING
    input.Body.transferJob.transferSpec.transferManifest.location == STRING
    input.Body.transferJob.transferSpec.transferOptions.deleteObjectsFromSourceAfterTransfer == BOOLEAN
    input.Body.transferJob.transferSpec.transferOptions.deleteObjectsUniqueInSink == BOOLEAN
    input.Body.transferJob.transferSpec.transferOptions.metadataOptions.acl == enum_MetadataOptionsAcl[_]
    input.Body.transferJob.transferSpec.transferOptions.metadataOptions.gid == enum_MetadataOptionsGid[_]
    input.Body.transferJob.transferSpec.transferOptions.metadataOptions.kmsKey == enum_MetadataOptionsKmsKey[_]
    input.Body.transferJob.transferSpec.transferOptions.metadataOptions.mode == enum_MetadataOptionsMode[_]
    input.Body.transferJob.transferSpec.transferOptions.metadataOptions.storageClass == enum_MetadataOptionsStorageClass[_]
    input.Body.transferJob.transferSpec.transferOptions.metadataOptions.symlink == enum_MetadataOptionsSymlink[_]
    input.Body.transferJob.transferSpec.transferOptions.metadataOptions.temporaryHold == enum_MetadataOptionsTemporaryHold[_]
    input.Body.transferJob.transferSpec.transferOptions.metadataOptions.timeCreated == enum_MetadataOptionsTimeCreated[_]
    input.Body.transferJob.transferSpec.transferOptions.metadataOptions.uid == enum_MetadataOptionsUid[_]
    input.Body.transferJob.transferSpec.transferOptions.overwriteObjectsAlreadyExistingInSink == BOOLEAN
    input.Body.transferJob.transferSpec.transferOptions.overwriteWhen == enum_TransferOptionsOverwriteWhen[_]
    input.Body.updateTransferJobFieldMask == STRING
    input.ReqMap.jobName == STRING
    input.ProviderMetadata.Region == STRING
}

storagetransfer.transferJobs.run

valid {
    input.Body.projectId == STRING
    input.ReqMap.jobName == STRING
    input.ProviderMetadata.Region == STRING
}

storagetransfer.transferOperations.cancel

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

storagetransfer.transferOperations.get

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

storagetransfer.transferOperations.list

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

storagetransfer.transferOperations.pause

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

storagetransfer.transferOperations.resume

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