redis.projects.locations.clusters.create

enum_AOFConfigAppendFsync := [ "APPEND_FSYNC_UNSPECIFIED", "NO", "EVERYSEC", "ALWAYS" ]
enum_ClusterAuthorizationMode := [ "AUTH_MODE_UNSPECIFIED", "AUTH_MODE_IAM_AUTH", "AUTH_MODE_DISABLED" ]
enum_ClusterNodeType := [ "NODE_TYPE_UNSPECIFIED", "REDIS_SHARED_CORE_NANO", "REDIS_HIGHMEM_MEDIUM", "REDIS_HIGHMEM_XLARGE", "REDIS_STANDARD_SMALL" ]
enum_ClusterPersistenceConfigMode := [ "PERSISTENCE_MODE_UNSPECIFIED", "DISABLED", "RDB", "AOF" ]
enum_ClusterTransitEncryptionMode := [ "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", "TRANSIT_ENCRYPTION_MODE_DISABLED", "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION" ]
enum_RDBConfigRdbSnapshotPeriod := [ "SNAPSHOT_PERIOD_UNSPECIFIED", "ONE_HOUR", "SIX_HOURS", "TWELVE_HOURS", "TWENTY_FOUR_HOURS" ]

valid {
    input.Body.authorizationMode == enum_ClusterAuthorizationMode[_]
    input.Body.deletionProtectionEnabled == BOOLEAN
    input.Body.name == STRING
    input.Body.nodeType == enum_ClusterNodeType[_]
    input.Body.persistenceConfig.aofConfig.appendFsync == enum_AOFConfigAppendFsync[_]
    input.Body.persistenceConfig.mode == enum_ClusterPersistenceConfigMode[_]
    input.Body.persistenceConfig.rdbConfig.rdbSnapshotPeriod == enum_RDBConfigRdbSnapshotPeriod[_]
    input.Body.persistenceConfig.rdbConfig.rdbSnapshotStartTime == STRING
    input.Body.pscConfigs[_].network == STRING
    input.Body.redisConfigs.STRING == STRING
    input.Body.replicaCount == INTEGER
    input.Body.shardCount == INTEGER
    input.Body.transitEncryptionMode == enum_ClusterTransitEncryptionMode[_]
    input.ReqMap.parent == STRING
    input.Qs.clusterId == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
}

redis.projects.locations.clusters.delete

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

redis.projects.locations.clusters.get

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

redis.projects.locations.clusters.getCertificateAuthority

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

redis.projects.locations.clusters.list

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

redis.projects.locations.clusters.patch

enum_AOFConfigAppendFsync := [ "APPEND_FSYNC_UNSPECIFIED", "NO", "EVERYSEC", "ALWAYS" ]
enum_ClusterAuthorizationMode := [ "AUTH_MODE_UNSPECIFIED", "AUTH_MODE_IAM_AUTH", "AUTH_MODE_DISABLED" ]
enum_ClusterNodeType := [ "NODE_TYPE_UNSPECIFIED", "REDIS_SHARED_CORE_NANO", "REDIS_HIGHMEM_MEDIUM", "REDIS_HIGHMEM_XLARGE", "REDIS_STANDARD_SMALL" ]
enum_ClusterPersistenceConfigMode := [ "PERSISTENCE_MODE_UNSPECIFIED", "DISABLED", "RDB", "AOF" ]
enum_ClusterTransitEncryptionMode := [ "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", "TRANSIT_ENCRYPTION_MODE_DISABLED", "TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION" ]
enum_RDBConfigRdbSnapshotPeriod := [ "SNAPSHOT_PERIOD_UNSPECIFIED", "ONE_HOUR", "SIX_HOURS", "TWELVE_HOURS", "TWENTY_FOUR_HOURS" ]

valid {
    input.Body.authorizationMode == enum_ClusterAuthorizationMode[_]
    input.Body.deletionProtectionEnabled == BOOLEAN
    input.Body.name == STRING
    input.Body.nodeType == enum_ClusterNodeType[_]
    input.Body.persistenceConfig.aofConfig.appendFsync == enum_AOFConfigAppendFsync[_]
    input.Body.persistenceConfig.mode == enum_ClusterPersistenceConfigMode[_]
    input.Body.persistenceConfig.rdbConfig.rdbSnapshotPeriod == enum_RDBConfigRdbSnapshotPeriod[_]
    input.Body.persistenceConfig.rdbConfig.rdbSnapshotStartTime == STRING
    input.Body.pscConfigs[_].network == STRING
    input.Body.redisConfigs.STRING == STRING
    input.Body.replicaCount == INTEGER
    input.Body.shardCount == INTEGER
    input.Body.transitEncryptionMode == enum_ClusterTransitEncryptionMode[_]
    input.ReqMap.name == STRING
    input.Qs.requestId == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

redis.projects.locations.get

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

redis.projects.locations.instances.create

enum_InstanceConnectMode := [ "CONNECT_MODE_UNSPECIFIED", "DIRECT_PEERING", "PRIVATE_SERVICE_ACCESS" ]
enum_InstanceReadReplicasMode := [ "READ_REPLICAS_MODE_UNSPECIFIED", "READ_REPLICAS_DISABLED", "READ_REPLICAS_ENABLED" ]
enum_InstanceSuspensionReasons := [ "SUSPENSION_REASON_UNSPECIFIED", "CUSTOMER_MANAGED_KEY_ISSUE" ]
enum_InstanceTier := [ "TIER_UNSPECIFIED", "BASIC", "STANDARD_HA" ]
enum_InstanceTransitEncryptionMode := [ "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", "SERVER_AUTHENTICATION", "DISABLED" ]
enum_PersistenceConfigPersistenceMode := [ "PERSISTENCE_MODE_UNSPECIFIED", "DISABLED", "RDB" ]
enum_PersistenceConfigRdbSnapshotPeriod := [ "SNAPSHOT_PERIOD_UNSPECIFIED", "ONE_HOUR", "SIX_HOURS", "TWELVE_HOURS", "TWENTY_FOUR_HOURS" ]
enum_WeeklyMaintenanceWindowDay := [ "DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" ]

valid {
    input.Body.alternativeLocationId == STRING
    input.Body.authEnabled == BOOLEAN
    input.Body.authorizedNetwork == STRING
    input.Body.availableMaintenanceVersions[_] == STRING
    input.Body.connectMode == enum_InstanceConnectMode[_]
    input.Body.customerManagedKey == STRING
    input.Body.displayName == STRING
    input.Body.labels.STRING == STRING
    input.Body.locationId == STRING
    input.Body.maintenancePolicy.description == STRING
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].day == enum_WeeklyMaintenanceWindowDay[_]
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].startTime.hours == INTEGER
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].startTime.minutes == INTEGER
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].startTime.nanos == INTEGER
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].startTime.seconds == INTEGER
    input.Body.maintenanceVersion == STRING
    input.Body.memorySizeGb == INTEGER
    input.Body.name == STRING
    input.Body.persistenceConfig.persistenceMode == enum_PersistenceConfigPersistenceMode[_]
    input.Body.persistenceConfig.rdbSnapshotPeriod == enum_PersistenceConfigRdbSnapshotPeriod[_]
    input.Body.persistenceConfig.rdbSnapshotStartTime == STRING
    input.Body.readReplicasMode == enum_InstanceReadReplicasMode[_]
    input.Body.redisConfigs.STRING == STRING
    input.Body.redisVersion == STRING
    input.Body.replicaCount == INTEGER
    input.Body.reservedIpRange == STRING
    input.Body.secondaryIpRange == STRING
    input.Body.suspensionReasons[_] == enum_InstanceSuspensionReasons[_]
    input.Body.tier == enum_InstanceTier[_]
    input.Body.transitEncryptionMode == enum_InstanceTransitEncryptionMode[_]
    input.ReqMap.parent == STRING
    input.Qs.instanceId == STRING
    input.ProviderMetadata.Region == STRING
}

redis.projects.locations.instances.delete

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

redis.projects.locations.instances.export

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

redis.projects.locations.instances.failover

enum_FailoverInstanceRequestDataProtectionMode := [ "DATA_PROTECTION_MODE_UNSPECIFIED", "LIMITED_DATA_LOSS", "FORCE_DATA_LOSS" ]

valid {
    input.Body.dataProtectionMode == enum_FailoverInstanceRequestDataProtectionMode[_]
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

redis.projects.locations.instances.get

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

redis.projects.locations.instances.getAuthString

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

redis.projects.locations.instances.import

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

redis.projects.locations.instances.list

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

redis.projects.locations.instances.patch

enum_InstanceConnectMode := [ "CONNECT_MODE_UNSPECIFIED", "DIRECT_PEERING", "PRIVATE_SERVICE_ACCESS" ]
enum_InstanceReadReplicasMode := [ "READ_REPLICAS_MODE_UNSPECIFIED", "READ_REPLICAS_DISABLED", "READ_REPLICAS_ENABLED" ]
enum_InstanceSuspensionReasons := [ "SUSPENSION_REASON_UNSPECIFIED", "CUSTOMER_MANAGED_KEY_ISSUE" ]
enum_InstanceTier := [ "TIER_UNSPECIFIED", "BASIC", "STANDARD_HA" ]
enum_InstanceTransitEncryptionMode := [ "TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", "SERVER_AUTHENTICATION", "DISABLED" ]
enum_PersistenceConfigPersistenceMode := [ "PERSISTENCE_MODE_UNSPECIFIED", "DISABLED", "RDB" ]
enum_PersistenceConfigRdbSnapshotPeriod := [ "SNAPSHOT_PERIOD_UNSPECIFIED", "ONE_HOUR", "SIX_HOURS", "TWELVE_HOURS", "TWENTY_FOUR_HOURS" ]
enum_WeeklyMaintenanceWindowDay := [ "DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" ]

valid {
    input.Body.alternativeLocationId == STRING
    input.Body.authEnabled == BOOLEAN
    input.Body.authorizedNetwork == STRING
    input.Body.availableMaintenanceVersions[_] == STRING
    input.Body.connectMode == enum_InstanceConnectMode[_]
    input.Body.customerManagedKey == STRING
    input.Body.displayName == STRING
    input.Body.labels.STRING == STRING
    input.Body.locationId == STRING
    input.Body.maintenancePolicy.description == STRING
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].day == enum_WeeklyMaintenanceWindowDay[_]
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].startTime.hours == INTEGER
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].startTime.minutes == INTEGER
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].startTime.nanos == INTEGER
    input.Body.maintenancePolicy.weeklyMaintenanceWindow[_].startTime.seconds == INTEGER
    input.Body.maintenanceVersion == STRING
    input.Body.memorySizeGb == INTEGER
    input.Body.name == STRING
    input.Body.persistenceConfig.persistenceMode == enum_PersistenceConfigPersistenceMode[_]
    input.Body.persistenceConfig.rdbSnapshotPeriod == enum_PersistenceConfigRdbSnapshotPeriod[_]
    input.Body.persistenceConfig.rdbSnapshotStartTime == STRING
    input.Body.readReplicasMode == enum_InstanceReadReplicasMode[_]
    input.Body.redisConfigs.STRING == STRING
    input.Body.redisVersion == STRING
    input.Body.replicaCount == INTEGER
    input.Body.reservedIpRange == STRING
    input.Body.secondaryIpRange == STRING
    input.Body.suspensionReasons[_] == enum_InstanceSuspensionReasons[_]
    input.Body.tier == enum_InstanceTier[_]
    input.Body.transitEncryptionMode == enum_InstanceTransitEncryptionMode[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

redis.projects.locations.instances.rescheduleMaintenance

enum_RescheduleMaintenanceRequestRescheduleType := [ "RESCHEDULE_TYPE_UNSPECIFIED", "IMMEDIATE", "NEXT_AVAILABLE_WINDOW", "SPECIFIC_TIME" ]

valid {
    input.Body.rescheduleType == enum_RescheduleMaintenanceRequestRescheduleType[_]
    input.Body.scheduleTime == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

redis.projects.locations.instances.upgrade

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

redis.projects.locations.list

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

redis.projects.locations.operations.cancel

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

redis.projects.locations.operations.delete

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

redis.projects.locations.operations.get

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

redis.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
}