UNPKG

@pulumi/gcp

Version:

A Pulumi package for creating and managing Google Cloud Platform resources.

856 lines (855 loc) • 34.8 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * A Google Cloud Redis instance. * * To get more information about Instance, see: * * * [API documentation](https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances) * * How-to Guides * * [Official Documentation](https://cloud.google.com/memorystore/docs/redis/) * * ## Example Usage * * ### Redis Instance Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const cache = new gcp.redis.Instance("cache", { * name: "memory-cache", * memorySizeGb: 1, * }); * ``` * ### Redis Instance Full * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * // This example assumes this network already exists. * // The API creates a tenant network per network authorized for a * // Redis instance and that network is not deleted when the user-created * // network (authorized_network) is deleted, so this prevents issues * // with tenant network quota. * // If this network hasn't been created and you are using this example in your * // config, add an additional network resource or change * // this from "data"to "resource" * const redis_network = gcp.compute.getNetwork({ * name: "redis-test-network", * }); * const cache = new gcp.redis.Instance("cache", { * name: "ha-memory-cache", * tier: "STANDARD_HA", * memorySizeGb: 1, * locationId: "us-central1-a", * alternativeLocationId: "us-central1-f", * authorizedNetwork: redis_network.then(redis_network => redis_network.id), * redisVersion: "REDIS_7_2", * displayName: "Test Instance", * reservedIpRange: "192.168.0.0/29", * labels: { * my_key: "my_val", * other_key: "other_val", * }, * maintenancePolicy: { * weeklyMaintenanceWindows: [{ * day: "TUESDAY", * startTime: { * hours: 0, * minutes: 30, * seconds: 0, * nanos: 0, * }, * }], * }, * }); * ``` * ### Redis Instance Full With Persistence Config * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const cache_persis = new gcp.redis.Instance("cache-persis", { * name: "ha-memory-cache-persis", * tier: "STANDARD_HA", * memorySizeGb: 1, * locationId: "us-central1-a", * alternativeLocationId: "us-central1-f", * persistenceConfig: { * persistenceMode: "RDB", * rdbSnapshotPeriod: "TWELVE_HOURS", * }, * }); * ``` * ### Redis Instance Private Service * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * // This example assumes this network already exists. * // The API creates a tenant network per network authorized for a * // Redis instance and that network is not deleted when the user-created * // network (authorized_network) is deleted, so this prevents issues * // with tenant network quota. * // If this network hasn't been created and you are using this example in your * // config, add an additional network resource or change * // this from "data"to "resource" * const redis_network = new gcp.compute.Network("redis-network", {name: "redis-test-network"}); * const serviceRange = new gcp.compute.GlobalAddress("service_range", { * name: "address", * purpose: "VPC_PEERING", * addressType: "INTERNAL", * prefixLength: 16, * network: redis_network.id, * }); * const privateServiceConnection = new gcp.servicenetworking.Connection("private_service_connection", { * network: redis_network.id, * service: "servicenetworking.googleapis.com", * reservedPeeringRanges: [serviceRange.name], * }); * const cache = new gcp.redis.Instance("cache", { * name: "private-cache", * tier: "STANDARD_HA", * memorySizeGb: 1, * locationId: "us-central1-a", * alternativeLocationId: "us-central1-f", * authorizedNetwork: redis_network.id, * connectMode: "PRIVATE_SERVICE_ACCESS", * redisVersion: "REDIS_7_2", * displayName: "Test Instance", * }, { * dependsOn: [privateServiceConnection], * }); * ``` * ### Redis Instance Mrr * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * // This example assumes this network already exists. * // The API creates a tenant network per network authorized for a * // Redis instance and that network is not deleted when the user-created * // network (authorized_network) is deleted, so this prevents issues * // with tenant network quota. * // If this network hasn't been created and you are using this example in your * // config, add an additional network resource or change * // this from "data"to "resource" * const redis_network = gcp.compute.getNetwork({ * name: "redis-test-network", * }); * const cache = new gcp.redis.Instance("cache", { * name: "mrr-memory-cache", * tier: "STANDARD_HA", * memorySizeGb: 5, * locationId: "us-central1-a", * alternativeLocationId: "us-central1-f", * authorizedNetwork: redis_network.then(redis_network => redis_network.id), * redisVersion: "REDIS_7_2", * displayName: "Terraform Test Instance", * replicaCount: 5, * readReplicasMode: "READ_REPLICAS_ENABLED", * labels: { * my_key: "my_val", * other_key: "other_val", * }, * }); * ``` * ### Redis Instance Cmek * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const redisKeyring = new gcp.kms.KeyRing("redis_keyring", { * name: "redis-keyring", * location: "us-central1", * }); * const redisKey = new gcp.kms.CryptoKey("redis_key", { * name: "redis-key", * keyRing: redisKeyring.id, * }); * // This example assumes this network already exists. * // The API creates a tenant network per network authorized for a * // Redis instance and that network is not deleted when the user-created * // network (authorized_network) is deleted, so this prevents issues * // with tenant network quota. * // If this network hasn't been created and you are using this example in your * // config, add an additional network resource or change * // this from "data"to "resource" * const redis_network = gcp.compute.getNetwork({ * name: "redis-test-network", * }); * const cache = new gcp.redis.Instance("cache", { * name: "cmek-memory-cache", * tier: "STANDARD_HA", * memorySizeGb: 1, * locationId: "us-central1-a", * alternativeLocationId: "us-central1-f", * authorizedNetwork: redis_network.then(redis_network => redis_network.id), * redisVersion: "REDIS_7_2", * displayName: "Terraform Test Instance", * labels: { * my_key: "my_val", * other_key: "other_val", * }, * customerManagedKey: redisKey.id, * }); * ``` * * ## Import * * Instance can be imported using any of these accepted formats: * * * `projects/{{project}}/locations/{{region}}/instances/{{name}}` * * * `{{project}}/{{region}}/{{name}}` * * * `{{region}}/{{name}}` * * * `{{name}}` * * When using the `pulumi import` command, Instance can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:redis/instance:Instance default projects/{{project}}/locations/{{region}}/instances/{{name}} * ``` * * ```sh * $ pulumi import gcp:redis/instance:Instance default {{project}}/{{region}}/{{name}} * ``` * * ```sh * $ pulumi import gcp:redis/instance:Instance default {{region}}/{{name}} * ``` * * ```sh * $ pulumi import gcp:redis/instance:Instance default {{name}} * ``` */ export declare class Instance extends pulumi.CustomResource { /** * Get an existing Instance resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: InstanceState, opts?: pulumi.CustomResourceOptions): Instance; /** * Returns true if the given object is an instance of Instance. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Instance; /** * Only applicable to STANDARD_HA tier which protects the instance * against zonal failures by provisioning it across two zones. * If provided, it must be a different zone from the one provided in * [locationId]. */ readonly alternativeLocationId: pulumi.Output<string>; /** * Optional. Indicates whether OSS Redis AUTH is enabled for the * instance. If set to "true" AUTH is enabled on the instance. * Default value is "false" meaning AUTH is disabled. */ readonly authEnabled: pulumi.Output<boolean | undefined>; /** * AUTH String set on the instance. This field will only be populated if authEnabled is true. */ readonly authString: pulumi.Output<string>; /** * The full name of the Google Compute Engine network to which the * instance is connected. If left unspecified, the default network * will be used. */ readonly authorizedNetwork: pulumi.Output<string>; /** * The connection mode of the Redis instance. * Default value is `DIRECT_PEERING`. * Possible values are: `DIRECT_PEERING`, `PRIVATE_SERVICE_ACCESS`. */ readonly connectMode: pulumi.Output<string | undefined>; /** * (Output) * The time when the certificate was created. */ readonly createTime: pulumi.Output<string>; /** * The current zone where the Redis endpoint is placed. * For Basic Tier instances, this will always be the same as the * [locationId] provided by the user at creation time. For Standard Tier * instances, this can be either [locationId] or [alternativeLocationId] * and can change after a failover event. */ readonly currentLocationId: pulumi.Output<string>; /** * Optional. The KMS key reference that you want to use to encrypt the data at rest for this Redis * instance. If this is provided, CMEK is enabled. */ readonly customerManagedKey: pulumi.Output<string | undefined>; /** * An arbitrary and optional user-provided name for the instance. */ readonly displayName: pulumi.Output<string | undefined>; /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ readonly effectiveLabels: pulumi.Output<{ [key: string]: string; }>; /** * The CIDR range of internal addresses that are reserved for this * instance. If not provided, the service will choose an unused /29 * block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be * unique and non-overlapping with existing subnets in an authorized * network. */ readonly effectiveReservedIpRange: pulumi.Output<string>; /** * Hostname or IP address of the exposed Redis endpoint used by clients * to connect to the service. */ readonly host: pulumi.Output<string>; /** * Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ readonly labels: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The zone where the instance will be provisioned. If not provided, * the service will choose a zone for the instance. For STANDARD_HA tier, * instances will be created across two zones for protection against * zonal failures. If [alternativeLocationId] is also provided, it must * be different from [locationId]. */ readonly locationId: pulumi.Output<string>; /** * Maintenance policy for an instance. * Structure is documented below. */ readonly maintenancePolicy: pulumi.Output<outputs.redis.InstanceMaintenancePolicy | undefined>; /** * Upcoming maintenance schedule. * Structure is documented below. */ readonly maintenanceSchedules: pulumi.Output<outputs.redis.InstanceMaintenanceSchedule[]>; /** * The self service update maintenance version. */ readonly maintenanceVersion: pulumi.Output<string>; /** * Redis memory size in GiB. */ readonly memorySizeGb: pulumi.Output<number>; /** * The ID of the instance or a fully qualified identifier for the instance. */ readonly name: pulumi.Output<string>; /** * Output only. Info per node. * Structure is documented below. */ readonly nodes: pulumi.Output<outputs.redis.InstanceNode[]>; /** * Persistence configuration for an instance. * Structure is documented below. */ readonly persistenceConfig: pulumi.Output<outputs.redis.InstancePersistenceConfig>; /** * Output only. Cloud IAM identity used by import / export operations * to transfer data to/from Cloud Storage. Format is "serviceAccount:". * The value may change over time for a given instance so should be * checked before each import/export operation. */ readonly persistenceIamIdentity: pulumi.Output<string>; /** * The port number of the exposed Redis endpoint. */ readonly port: pulumi.Output<number>; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ readonly project: pulumi.Output<string>; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ readonly pulumiLabels: pulumi.Output<{ [key: string]: string; }>; /** * Output only. Hostname or IP address of the exposed readonly Redis endpoint. Standard tier only. * Targets all healthy replica nodes in instance. Replication is asynchronous and replica nodes * will exhibit some lag behind the primary. Write requests must target 'host'. */ readonly readEndpoint: pulumi.Output<string>; /** * Output only. The port number of the exposed readonly redis endpoint. Standard tier only. * Write requests should target 'port'. */ readonly readEndpointPort: pulumi.Output<number>; /** * Optional. Read replica mode. Can only be specified when trying to create the instance. * If not set, Memorystore Redis backend will default to READ_REPLICAS_DISABLED. * - READ_REPLICAS_DISABLED: If disabled, read endpoint will not be provided and the * instance cannot scale up or down the number of replicas. * - READ_REPLICAS_ENABLED: If enabled, read endpoint will be provided and the instance * can scale up and down the number of replicas. * Possible values are: `READ_REPLICAS_DISABLED`, `READ_REPLICAS_ENABLED`. */ readonly readReplicasMode: pulumi.Output<string>; /** * Redis configuration parameters, according to http://redis.io/topics/config. * Please check Memorystore documentation for the list of supported parameters: * https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs */ readonly redisConfigs: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The version of Redis software. If not provided, latest supported * version will be used. Please check the API documentation linked * at the top for the latest valid values. */ readonly redisVersion: pulumi.Output<string>; /** * The name of the Redis region of the instance. */ readonly region: pulumi.Output<string>; /** * Optional. The number of replica nodes. The valid range for the Standard Tier with * read replicas enabled is [1-5] and defaults to 2. If read replicas are not enabled * for a Standard Tier instance, the only valid value is 1 and the default is 1. * The valid value for basic tier is 0 and the default is also 0. */ readonly replicaCount: pulumi.Output<number>; /** * The CIDR range of internal addresses that are reserved for this * instance. If not provided, the service will choose an unused /29 * block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be * unique and non-overlapping with existing subnets in an authorized * network. */ readonly reservedIpRange: pulumi.Output<string>; /** * Optional. Additional IP range for node placement. Required when enabling read replicas on * an existing instance. For DIRECT_PEERING mode value must be a CIDR range of size /28, or * "auto". For PRIVATE_SERVICE_ACCESS mode value must be the name of an allocated address * range associated with the private service access connection, or "auto". */ readonly secondaryIpRange: pulumi.Output<string>; /** * List of server CA certificates for the instance. * Structure is documented below. */ readonly serverCaCerts: pulumi.Output<outputs.redis.InstanceServerCaCert[]>; /** * The service tier of the instance. Must be one of these values: * - BASIC: standalone instance * - STANDARD_HA: highly available primary/replica instances * Default value is `BASIC`. * Possible values are: `BASIC`, `STANDARD_HA`. */ readonly tier: pulumi.Output<string | undefined>; /** * The TLS mode of the Redis instance, If not provided, TLS is disabled for the instance. * - SERVER_AUTHENTICATION: Client to Server traffic encryption enabled with server authentication * Default value is `DISABLED`. * Possible values are: `SERVER_AUTHENTICATION`, `DISABLED`. */ readonly transitEncryptionMode: pulumi.Output<string | undefined>; /** * Create a Instance resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: InstanceArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Instance resources. */ export interface InstanceState { /** * Only applicable to STANDARD_HA tier which protects the instance * against zonal failures by provisioning it across two zones. * If provided, it must be a different zone from the one provided in * [locationId]. */ alternativeLocationId?: pulumi.Input<string>; /** * Optional. Indicates whether OSS Redis AUTH is enabled for the * instance. If set to "true" AUTH is enabled on the instance. * Default value is "false" meaning AUTH is disabled. */ authEnabled?: pulumi.Input<boolean>; /** * AUTH String set on the instance. This field will only be populated if authEnabled is true. */ authString?: pulumi.Input<string>; /** * The full name of the Google Compute Engine network to which the * instance is connected. If left unspecified, the default network * will be used. */ authorizedNetwork?: pulumi.Input<string>; /** * The connection mode of the Redis instance. * Default value is `DIRECT_PEERING`. * Possible values are: `DIRECT_PEERING`, `PRIVATE_SERVICE_ACCESS`. */ connectMode?: pulumi.Input<string>; /** * (Output) * The time when the certificate was created. */ createTime?: pulumi.Input<string>; /** * The current zone where the Redis endpoint is placed. * For Basic Tier instances, this will always be the same as the * [locationId] provided by the user at creation time. For Standard Tier * instances, this can be either [locationId] or [alternativeLocationId] * and can change after a failover event. */ currentLocationId?: pulumi.Input<string>; /** * Optional. The KMS key reference that you want to use to encrypt the data at rest for this Redis * instance. If this is provided, CMEK is enabled. */ customerManagedKey?: pulumi.Input<string>; /** * An arbitrary and optional user-provided name for the instance. */ displayName?: pulumi.Input<string>; /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ effectiveLabels?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The CIDR range of internal addresses that are reserved for this * instance. If not provided, the service will choose an unused /29 * block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be * unique and non-overlapping with existing subnets in an authorized * network. */ effectiveReservedIpRange?: pulumi.Input<string>; /** * Hostname or IP address of the exposed Redis endpoint used by clients * to connect to the service. */ host?: pulumi.Input<string>; /** * Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The zone where the instance will be provisioned. If not provided, * the service will choose a zone for the instance. For STANDARD_HA tier, * instances will be created across two zones for protection against * zonal failures. If [alternativeLocationId] is also provided, it must * be different from [locationId]. */ locationId?: pulumi.Input<string>; /** * Maintenance policy for an instance. * Structure is documented below. */ maintenancePolicy?: pulumi.Input<inputs.redis.InstanceMaintenancePolicy>; /** * Upcoming maintenance schedule. * Structure is documented below. */ maintenanceSchedules?: pulumi.Input<pulumi.Input<inputs.redis.InstanceMaintenanceSchedule>[]>; /** * The self service update maintenance version. */ maintenanceVersion?: pulumi.Input<string>; /** * Redis memory size in GiB. */ memorySizeGb?: pulumi.Input<number>; /** * The ID of the instance or a fully qualified identifier for the instance. */ name?: pulumi.Input<string>; /** * Output only. Info per node. * Structure is documented below. */ nodes?: pulumi.Input<pulumi.Input<inputs.redis.InstanceNode>[]>; /** * Persistence configuration for an instance. * Structure is documented below. */ persistenceConfig?: pulumi.Input<inputs.redis.InstancePersistenceConfig>; /** * Output only. Cloud IAM identity used by import / export operations * to transfer data to/from Cloud Storage. Format is "serviceAccount:". * The value may change over time for a given instance so should be * checked before each import/export operation. */ persistenceIamIdentity?: pulumi.Input<string>; /** * The port number of the exposed Redis endpoint. */ port?: pulumi.Input<number>; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input<string>; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ pulumiLabels?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Output only. Hostname or IP address of the exposed readonly Redis endpoint. Standard tier only. * Targets all healthy replica nodes in instance. Replication is asynchronous and replica nodes * will exhibit some lag behind the primary. Write requests must target 'host'. */ readEndpoint?: pulumi.Input<string>; /** * Output only. The port number of the exposed readonly redis endpoint. Standard tier only. * Write requests should target 'port'. */ readEndpointPort?: pulumi.Input<number>; /** * Optional. Read replica mode. Can only be specified when trying to create the instance. * If not set, Memorystore Redis backend will default to READ_REPLICAS_DISABLED. * - READ_REPLICAS_DISABLED: If disabled, read endpoint will not be provided and the * instance cannot scale up or down the number of replicas. * - READ_REPLICAS_ENABLED: If enabled, read endpoint will be provided and the instance * can scale up and down the number of replicas. * Possible values are: `READ_REPLICAS_DISABLED`, `READ_REPLICAS_ENABLED`. */ readReplicasMode?: pulumi.Input<string>; /** * Redis configuration parameters, according to http://redis.io/topics/config. * Please check Memorystore documentation for the list of supported parameters: * https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs */ redisConfigs?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The version of Redis software. If not provided, latest supported * version will be used. Please check the API documentation linked * at the top for the latest valid values. */ redisVersion?: pulumi.Input<string>; /** * The name of the Redis region of the instance. */ region?: pulumi.Input<string>; /** * Optional. The number of replica nodes. The valid range for the Standard Tier with * read replicas enabled is [1-5] and defaults to 2. If read replicas are not enabled * for a Standard Tier instance, the only valid value is 1 and the default is 1. * The valid value for basic tier is 0 and the default is also 0. */ replicaCount?: pulumi.Input<number>; /** * The CIDR range of internal addresses that are reserved for this * instance. If not provided, the service will choose an unused /29 * block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be * unique and non-overlapping with existing subnets in an authorized * network. */ reservedIpRange?: pulumi.Input<string>; /** * Optional. Additional IP range for node placement. Required when enabling read replicas on * an existing instance. For DIRECT_PEERING mode value must be a CIDR range of size /28, or * "auto". For PRIVATE_SERVICE_ACCESS mode value must be the name of an allocated address * range associated with the private service access connection, or "auto". */ secondaryIpRange?: pulumi.Input<string>; /** * List of server CA certificates for the instance. * Structure is documented below. */ serverCaCerts?: pulumi.Input<pulumi.Input<inputs.redis.InstanceServerCaCert>[]>; /** * The service tier of the instance. Must be one of these values: * - BASIC: standalone instance * - STANDARD_HA: highly available primary/replica instances * Default value is `BASIC`. * Possible values are: `BASIC`, `STANDARD_HA`. */ tier?: pulumi.Input<string>; /** * The TLS mode of the Redis instance, If not provided, TLS is disabled for the instance. * - SERVER_AUTHENTICATION: Client to Server traffic encryption enabled with server authentication * Default value is `DISABLED`. * Possible values are: `SERVER_AUTHENTICATION`, `DISABLED`. */ transitEncryptionMode?: pulumi.Input<string>; } /** * The set of arguments for constructing a Instance resource. */ export interface InstanceArgs { /** * Only applicable to STANDARD_HA tier which protects the instance * against zonal failures by provisioning it across two zones. * If provided, it must be a different zone from the one provided in * [locationId]. */ alternativeLocationId?: pulumi.Input<string>; /** * Optional. Indicates whether OSS Redis AUTH is enabled for the * instance. If set to "true" AUTH is enabled on the instance. * Default value is "false" meaning AUTH is disabled. */ authEnabled?: pulumi.Input<boolean>; /** * The full name of the Google Compute Engine network to which the * instance is connected. If left unspecified, the default network * will be used. */ authorizedNetwork?: pulumi.Input<string>; /** * The connection mode of the Redis instance. * Default value is `DIRECT_PEERING`. * Possible values are: `DIRECT_PEERING`, `PRIVATE_SERVICE_ACCESS`. */ connectMode?: pulumi.Input<string>; /** * Optional. The KMS key reference that you want to use to encrypt the data at rest for this Redis * instance. If this is provided, CMEK is enabled. */ customerManagedKey?: pulumi.Input<string>; /** * An arbitrary and optional user-provided name for the instance. */ displayName?: pulumi.Input<string>; /** * Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The zone where the instance will be provisioned. If not provided, * the service will choose a zone for the instance. For STANDARD_HA tier, * instances will be created across two zones for protection against * zonal failures. If [alternativeLocationId] is also provided, it must * be different from [locationId]. */ locationId?: pulumi.Input<string>; /** * Maintenance policy for an instance. * Structure is documented below. */ maintenancePolicy?: pulumi.Input<inputs.redis.InstanceMaintenancePolicy>; /** * The self service update maintenance version. */ maintenanceVersion?: pulumi.Input<string>; /** * Redis memory size in GiB. */ memorySizeGb: pulumi.Input<number>; /** * The ID of the instance or a fully qualified identifier for the instance. */ name?: pulumi.Input<string>; /** * Persistence configuration for an instance. * Structure is documented below. */ persistenceConfig?: pulumi.Input<inputs.redis.InstancePersistenceConfig>; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input<string>; /** * Optional. Read replica mode. Can only be specified when trying to create the instance. * If not set, Memorystore Redis backend will default to READ_REPLICAS_DISABLED. * - READ_REPLICAS_DISABLED: If disabled, read endpoint will not be provided and the * instance cannot scale up or down the number of replicas. * - READ_REPLICAS_ENABLED: If enabled, read endpoint will be provided and the instance * can scale up and down the number of replicas. * Possible values are: `READ_REPLICAS_DISABLED`, `READ_REPLICAS_ENABLED`. */ readReplicasMode?: pulumi.Input<string>; /** * Redis configuration parameters, according to http://redis.io/topics/config. * Please check Memorystore documentation for the list of supported parameters: * https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs */ redisConfigs?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The version of Redis software. If not provided, latest supported * version will be used. Please check the API documentation linked * at the top for the latest valid values. */ redisVersion?: pulumi.Input<string>; /** * The name of the Redis region of the instance. */ region?: pulumi.Input<string>; /** * Optional. The number of replica nodes. The valid range for the Standard Tier with * read replicas enabled is [1-5] and defaults to 2. If read replicas are not enabled * for a Standard Tier instance, the only valid value is 1 and the default is 1. * The valid value for basic tier is 0 and the default is also 0. */ replicaCount?: pulumi.Input<number>; /** * The CIDR range of internal addresses that are reserved for this * instance. If not provided, the service will choose an unused /29 * block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be * unique and non-overlapping with existing subnets in an authorized * network. */ reservedIpRange?: pulumi.Input<string>; /** * Optional. Additional IP range for node placement. Required when enabling read replicas on * an existing instance. For DIRECT_PEERING mode value must be a CIDR range of size /28, or * "auto". For PRIVATE_SERVICE_ACCESS mode value must be the name of an allocated address * range associated with the private service access connection, or "auto". */ secondaryIpRange?: pulumi.Input<string>; /** * The service tier of the instance. Must be one of these values: * - BASIC: standalone instance * - STANDARD_HA: highly available primary/replica instances * Default value is `BASIC`. * Possible values are: `BASIC`, `STANDARD_HA`. */ tier?: pulumi.Input<string>; /** * The TLS mode of the Redis instance, If not provided, TLS is disabled for the instance. * - SERVER_AUTHENTICATION: Client to Server traffic encryption enabled with server authentication * Default value is `DISABLED`. * Possible values are: `SERVER_AUTHENTICATION`, `DISABLED`. */ transitEncryptionMode?: pulumi.Input<string>; }