import * as outputs from "../types/output"; export interface AclRoleRule { /** * a set of database association objects, documented below. */ databases: outputs.AclRoleRuleDatabase[]; /** * Name of the Rule. */ name: string; } export interface AclRoleRuleDatabase { /** * ID of the database to which the Rule should apply. */ database: number; /** * For databases in Active/Active subscriptions only, the regions to which the Rule should apply. */ regions?: string[]; /** * ID of the subscription containing the database. */ subscription: number; } export interface ActiveActiveSubscriptionCreationPlan { /** * Maximum memory usage that will be used for your largest planned database, including replication and other overhead */ memoryLimitInGb: number; /** * The planned number of databases in the subscription. */ quantity: number; regions: outputs.ActiveActiveSubscriptionCreationPlanRegion[]; } export interface ActiveActiveSubscriptionCreationPlanRegion { /** * Deployment CIDR mask. The total number of bits must be 24 (x.x.x.x/24) */ networkingDeploymentCidr: string; /** * Throughput measurement for an active-active subscription * * > **Note:** If changes are made to attributes in the subscription which require the subscription to be recreated (such as `cloudProvider` or `paymentMethod`), the creationPlan will need to be defined in order to change these attributes. This is because the creationPlan is always required when a subscription is created. */ readOperationsPerSecond: number; /** * Deployment region as defined by cloud provider */ region: string; /** * Throughput measurement for an active-active subscription */ writeOperationsPerSecond: number; } export interface ActiveActiveSubscriptionDatabaseGlobalAlert { /** * A meaningful name to identify the database. **Modifying this attribute will force creation of a new resource.** */ name: string; /** * Alert value */ value: number; } export interface ActiveActiveSubscriptionDatabaseOverrideRegion { /** * Region name. */ name: string; /** * A block defining Redis regional instance of an Active-Active database alert, documented below, can be specified multiple times */ overrideGlobalAlerts?: outputs.ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlert[]; /** * Regional instance of an Active-Active database data persistence rate (in persistent storage) */ overrideGlobalDataPersistence?: string; /** * If specified, this regional instance of an Active-Active database password will be used to access the database */ overrideGlobalPassword?: string; /** * List of regional instance of an Active-Active database source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] ) */ overrideGlobalSourceIps?: string[]; /** * Specifies the backup options for the database in this region, documented below */ remoteBackup?: outputs.ActiveActiveSubscriptionDatabaseOverrideRegionRemoteBackup; } export interface ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlert { /** * Alert name */ name: string; /** * Alert value */ value: number; } export interface ActiveActiveSubscriptionDatabaseOverrideRegionRemoteBackup { /** * Defines the interval between backups. Should be in the following format 'every-x-hours'. x is one of [24,12,6,4,2,1]. For example: 'every-4-hours' */ interval: string; /** * Defines a URI representing the backup storage location */ storagePath: string; /** * Defines the provider of the storage location */ storageType: string; /** * Defines the hour automatic backups are made - only applicable when the interval is `every-12-hours` or `every-24-hours`. For example: '14:00' */ timeUtc?: string; } export interface ActiveActiveSubscriptionRegionsRegion { /** * A block defining the write and read operations in the region, per database, documented below */ databases: outputs.ActiveActiveSubscriptionRegionsRegionDatabase[]; /** * Deployment CIDR mask. The total number of bits must be 24 (x.x.x.x/24) */ networkingDeploymentCidr: string; /** * Protection flag, needs to be set if a region has to be re-created. A region will need to be re-created in the case of a change on the `networkingDeploymentCidr` field. During re-create, the region will be deleted (so the `deleteRegions` flag also needs to be set) and then created again. Default: 'false' */ recreateRegion?: boolean; /** * Region name */ region: string; /** * The ID of the region, as created by the API */ regionId: number; /** * Identifier of the VPC to be peered, set by the API */ vpcId: string; } export interface ActiveActiveSubscriptionRegionsRegionDatabase { /** * Database ID belonging to the subscription */ databaseId: number; /** * Database name belonging to the subscription */ databaseName: string; /** * Local read operations per second for this active-active region */ localReadOperationsPerSecond: number; /** * Local write operations per second for this active-active region */ localWriteOperationsPerSecond: number; } export interface GetAclRoleRule { /** * ID of the database to which the Rule should apply. */ databases: outputs.GetAclRoleRuleDatabase[]; /** * The name of the Role to filter returned subscriptions */ name: string; } export interface GetAclRoleRuleDatabase { /** * ID of the database to which the Rule should apply. */ database: number; /** * The regions to which the Rule should apply, if appropriate to the database. */ regions: string[]; /** * ID of the subscription containing the database. */ subscription: number; } export interface GetDataPersistenceDataPersistence { /** * A meaningful description of the data persistence option. */ description: string; /** * The identifier of the data persistence option. */ name: string; } export interface GetDatabaseAlert { /** * The name of the database to filter returned databases */ name: string; /** * The alert value */ value: number; } export interface GetDatabaseModule { /** * The name of the database to filter returned databases */ name: string; } export interface GetDatabaseModulesModule { /** * A meaningful description of the database module */ description: string; /** * The identifier assigned by the database module */ name: string; } export interface GetRegionsRegion { /** * The identifier assigned by the cloud provider, (for example `eu-west-1` for `AWS`) */ name: string; /** * The name of the cloud provider to filter returned regions, (accepted values are `AWS` or `GCP`). */ providerName: string; } export interface GetSubscriptionCloudProvider { /** * Cloud account identifier, (A Cloud Account Id = 1 implies using Redis Labs internal cloud account) */ cloudAccountId: string; /** * The cloud provider to use with the subscription, (either `AWS` or `GCP`) */ provider: string; /** * Deployment region as defined by cloud provider */ regions: outputs.GetSubscriptionCloudProviderRegion[]; } export interface GetSubscriptionCloudProviderRegion { /** * Support deployment on multiple availability zones within the selected region */ multipleAvailabilityZones: boolean; /** * VPC id for the generated network */ networkingVpcId: string; /** * List of generated network configuration */ networks: outputs.GetSubscriptionCloudProviderRegionNetwork[]; /** * List of availability zones used */ preferredAvailabilityZones: string[]; /** * Deployment region as defined by cloud provider */ region: string; } export interface GetSubscriptionCloudProviderRegionNetwork { /** * Deployment CIDR mask for the generated */ networkingDeploymentCidr: string; /** * The subnet that the subscription deploys into */ networkingSubnetId: string; /** * VPC id for the generated network */ networkingVpcId: string; } export interface GetSubscriptionPeeringsPeering { /** * AWS account id that the VPC to be peered lives in */ awsAccountId: string; /** * Identifier of the AWS cloud peering */ awsPeeringId: string; /** * The name of the network to be peered */ gcpNetworkName: string; /** * Identifier of the cloud peering */ gcpPeeringId: string; /** * GCP project ID that the VPC to be peered lives in */ gcpProjectId: string; /** * The name of the Redis Enterprise Cloud network to be peered */ gcpRedisNetworkName: string; /** * Identifier of the Redis Enterprise Cloud GCP project to be peered */ gcpRedisProjectId: string; /** * ID of the subscription peering */ peeringId: number; /** * The name of the cloud provider. (either `AWS` or `GCP`) */ providerName: string; /** * AWS Region that the VPC to be peered lives in */ region: string; /** * Current status of the peering - `initiating-request`, `pending-acceptance`, `active`, `inactive` or `failed`. */ status: string; /** * CIDR range of the VPC to be peered */ vpcCidr: string; /** * Identifier of the VPC to be peered */ vpcId: string; } export interface SubscriptionAllowlist { /** * Set of CIDR ranges that are allowed to access the databases associated with this subscription * * > **Note:** `allowlist` is only available when you run on your own cloud account, and not one that Redis provided (i.e `cloudAccountId` != 1) */ cidrs?: string[]; /** * Set of security groups that are allowed to access the databases associated with this subscription */ securityGroupIds: string[]; } export interface SubscriptionCloudProvider { /** * Cloud account identifier. Default: Redis Labs internal cloud account. **Modifying this attribute will force creation of a new resource.** * (using Cloud Account ID = 1 implies using Redis Labs internal cloud account). Note that a GCP subscription can be created * only with Redis Labs internal cloud account */ cloudAccountId?: string; /** * The cloud provider to use with the subscription, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.** */ provider?: string; /** * A region object, documented below. **Modifying this attribute will force creation of a new resource.** */ regions: outputs.SubscriptionCloudProviderRegion[]; } export interface SubscriptionCloudProviderRegion { /** * Support deployment on multiple availability zones within the selected region. Default: ‘false’. **Modifying this attribute will force creation of a new resource.** */ multipleAvailabilityZones?: boolean; /** * Deployment CIDR mask. The total number of bits must be 24 (x.x.x.x/24). **Modifying this attribute will force creation of a new resource.** */ networkingDeploymentCidr: string; /** * Either an existing VPC Id (already exists in the specific region) or create a new VPC * (if no VPC is specified). VPC Identifier must be in a valid format (for example: ‘vpc-0125be68a4986384ad’) and existing * within the hosting account. **Modifying this attribute will force creation of a new resource.** */ networkingVpcId?: string; /** * List of generated network configuration */ networks: outputs.SubscriptionCloudProviderRegionNetwork[]; preferredAvailabilityZones: string[]; /** * Deployment region as defined by cloud provider. **Modifying this attribute will force creation of a new resource.** */ region: string; } export interface SubscriptionCloudProviderRegionNetwork { /** * Deployment CIDR mask. The total number of bits must be 24 (x.x.x.x/24). **Modifying this attribute will force creation of a new resource.** */ networkingDeploymentCidr: string; /** * The subnet that the subscription deploys into */ networkingSubnetId: string; /** * Either an existing VPC Id (already exists in the specific region) or create a new VPC * (if no VPC is specified). VPC Identifier must be in a valid format (for example: ‘vpc-0125be68a4986384ad’) and existing * within the hosting account. **Modifying this attribute will force creation of a new resource.** */ networkingVpcId: string; } export interface SubscriptionCreationPlan { /** * Relevant only to ram-and-flash clusters * Estimated average size (measured in bytes) of the items stored in the database. The value needs to * be the maximum average item size defined in one of your databases. Default: 1000 * * ~>**Note:** If the number of modules exceeds the `quantity` then additional creation-plan databases will be created with the modules defined in the `modules` block. * * > **Note:** If changes are made to attributes in the subscription which require the subscription to be recreated (such as `memoryStorage`, `cloudProvider` or `paymentMethod`), the creationPlan will need to be defined in order to change these attributes. This is because the creationPlan is always required when a subscription is created. */ averageItemSizeInBytes: number; /** * Maximum memory usage that will be used for your largest planned database. */ memoryLimitInGb: number; /** * a list of modules that will be used by the databases in this subscription. Not currently compatible with ‘ram-and-flash’ memory storage. * Example: `modules = ["RedisJSON", RedisBloom"]` */ modules: string[]; /** * The planned number of databases in the subscription */ quantity: number; /** * Databases replication. Default: ‘true’ */ replication: boolean; /** * Support Redis open-source (OSS) Cluster API. Default: ‘false’ */ supportOssClusterApi?: boolean; /** * Throughput measurement method that will be used by your databases, (either ‘number-of-shards’ or ‘operations-per-second’) */ throughputMeasurementBy: string; /** * Throughput value that will be used by your databases (as applies to selected measurement method). The value needs to be the maximum throughput measurement value defined in one of your databases */ throughputMeasurementValue: number; } export interface SubscriptionDatabaseAlert { /** * Alert name. (either: 'dataset-size', 'datasets-size', 'throughput-higher-than', 'throughput-lower-than', 'latency', 'syncsource-error', 'syncsource-lag' or 'connections-limit') */ name: string; /** * Alert value */ value: number; } export interface SubscriptionDatabaseModule { /** * Name of the Redis database module to enable. **Modifying this attribute will force creation of a new resource.** * * Example: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * * const modules = [ * { * name: "RedisJSON", * }, * { * name: "RedisBloom", * }, * ]; * ``` */ name: string; } export interface SubscriptionDatabaseRemoteBackup { /** * Defines the interval between backups. Should be in the following format 'every-x-hours'. x is one of [24,12,6,4,2,1]. For example: 'every-4-hours' */ interval: string; /** * Defines a URI representing the backup storage location */ storagePath: string; /** * Defines the provider of the storage location */ storageType: string; /** * Defines the hour automatic backups are made - only applicable when the interval is `every-12-hours` or `every-24-hours`. For example: '14:00' */ timeUtc?: string; }