@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
936 lines (935 loc) • 35 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* A Google Cloud Memorystore instance.
*
* To get more information about Instance, see:
*
* * [API documentation](https://cloud.google.com/memorystore/docs/valkey/reference/rest/v1/projects.locations.instances)
* * How-to Guides
* * [Official Documentation](https://cloud.google.com/memorystore/docs/valkey/create-instances)
*
* ## Example Usage
*
* ### Memorystore Instance Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const producerNet = new gcp.compute.Network("producer_net", {
* name: "my-network",
* autoCreateSubnetworks: false,
* });
* const producerSubnet = new gcp.compute.Subnetwork("producer_subnet", {
* name: "my-subnet",
* ipCidrRange: "10.0.0.248/29",
* region: "us-central1",
* network: producerNet.id,
* });
* const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
* name: "my-policy",
* location: "us-central1",
* serviceClass: "gcp-memorystore",
* description: "my basic service connection policy",
* network: producerNet.id,
* pscConfig: {
* subnetworks: [producerSubnet.id],
* },
* });
* const project = gcp.organizations.getProject({});
* const instance_basic = new gcp.memorystore.Instance("instance-basic", {
* instanceId: "basic-instance",
* shardCount: 1,
* desiredAutoCreatedEndpoints: [{
* network: producerNet.id,
* projectId: project.then(project => project.projectId),
* }],
* location: "us-central1",
* deletionProtectionEnabled: false,
* maintenancePolicy: {
* weeklyMaintenanceWindows: [{
* day: "MONDAY",
* startTime: {
* hours: 1,
* minutes: 0,
* seconds: 0,
* nanos: 0,
* },
* }],
* },
* }, {
* dependsOn: [_default],
* });
* ```
* ### Memorystore Instance Full
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const producerNet = new gcp.compute.Network("producer_net", {
* name: "my-network",
* autoCreateSubnetworks: false,
* });
* const producerSubnet = new gcp.compute.Subnetwork("producer_subnet", {
* name: "my-subnet",
* ipCidrRange: "10.0.0.248/29",
* region: "us-central1",
* network: producerNet.id,
* });
* const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
* name: "my-policy",
* location: "us-central1",
* serviceClass: "gcp-memorystore",
* description: "my basic service connection policy",
* network: producerNet.id,
* pscConfig: {
* subnetworks: [producerSubnet.id],
* },
* });
* const project = gcp.organizations.getProject({});
* const instance_full = new gcp.memorystore.Instance("instance-full", {
* instanceId: "full-instance",
* shardCount: 1,
* desiredAutoCreatedEndpoints: [{
* network: producerNet.id,
* projectId: project.then(project => project.projectId),
* }],
* location: "us-central1",
* replicaCount: 1,
* nodeType: "SHARED_CORE_NANO",
* transitEncryptionMode: "TRANSIT_ENCRYPTION_DISABLED",
* authorizationMode: "AUTH_DISABLED",
* kmsKey: "my-key",
* engineConfigs: {
* "maxmemory-policy": "volatile-ttl",
* },
* zoneDistributionConfig: {
* mode: "SINGLE_ZONE",
* zone: "us-central1-b",
* },
* maintenancePolicy: {
* weeklyMaintenanceWindows: [{
* day: "MONDAY",
* startTime: {
* hours: 1,
* minutes: 0,
* seconds: 0,
* nanos: 0,
* },
* }],
* },
* engineVersion: "VALKEY_7_2",
* deletionProtectionEnabled: false,
* mode: "CLUSTER",
* persistenceConfig: {
* mode: "RDB",
* rdbConfig: {
* rdbSnapshotPeriod: "ONE_HOUR",
* rdbSnapshotStartTime: "2024-10-02T15:01:23Z",
* },
* },
* labels: {
* abc: "xyz",
* },
* }, {
* dependsOn: [_default],
* });
* ```
* ### Memorystore Instance Persistence Aof
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const producerNet = new gcp.compute.Network("producer_net", {
* name: "my-network",
* autoCreateSubnetworks: false,
* });
* const producerSubnet = new gcp.compute.Subnetwork("producer_subnet", {
* name: "my-subnet",
* ipCidrRange: "10.0.0.248/29",
* region: "us-central1",
* network: producerNet.id,
* });
* const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
* name: "my-policy",
* location: "us-central1",
* serviceClass: "gcp-memorystore",
* description: "my basic service connection policy",
* network: producerNet.id,
* pscConfig: {
* subnetworks: [producerSubnet.id],
* },
* });
* const project = gcp.organizations.getProject({});
* const instance_persistence_aof = new gcp.memorystore.Instance("instance-persistence-aof", {
* instanceId: "aof-instance",
* shardCount: 1,
* desiredAutoCreatedEndpoints: [{
* network: producerNet.id,
* projectId: project.then(project => project.projectId),
* }],
* location: "us-central1",
* persistenceConfig: {
* mode: "AOF",
* aofConfig: {
* appendFsync: "EVERY_SEC",
* },
* },
* deletionProtectionEnabled: false,
* }, {
* dependsOn: [_default],
* });
* ```
* ### Memorystore Instance Secondary Instance
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const primaryProducerNet = new gcp.compute.Network("primary_producer_net", {
* name: "my-network-primary-instance",
* autoCreateSubnetworks: false,
* });
* const primaryProducerSubnet = new gcp.compute.Subnetwork("primary_producer_subnet", {
* name: "my-subnet-primary-instance",
* ipCidrRange: "10.0.1.0/29",
* region: "asia-east1",
* network: primaryProducerNet.id,
* });
* const primaryPolicy = new gcp.networkconnectivity.ServiceConnectionPolicy("primary_policy", {
* name: "my-policy-primary-instance",
* location: "asia-east1",
* serviceClass: "gcp-memorystore",
* description: "my basic service connection policy",
* network: primaryProducerNet.id,
* pscConfig: {
* subnetworks: [primaryProducerSubnet.id],
* },
* });
* const project = gcp.organizations.getProject({});
* // Primary instance
* const primaryInstance = new gcp.memorystore.Instance("primary_instance", {
* instanceId: "primary-instance",
* shardCount: 1,
* desiredAutoCreatedEndpoints: [{
* network: primaryProducerNet.id,
* projectId: project.then(project => project.projectId),
* }],
* location: "asia-east1",
* replicaCount: 1,
* nodeType: "SHARED_CORE_NANO",
* transitEncryptionMode: "TRANSIT_ENCRYPTION_DISABLED",
* authorizationMode: "AUTH_DISABLED",
* engineConfigs: {
* "maxmemory-policy": "volatile-ttl",
* },
* zoneDistributionConfig: {
* mode: "SINGLE_ZONE",
* zone: "asia-east1-c",
* },
* deletionProtectionEnabled: true,
* persistenceConfig: {
* mode: "RDB",
* rdbConfig: {
* rdbSnapshotPeriod: "ONE_HOUR",
* rdbSnapshotStartTime: "2024-10-02T15:01:23Z",
* },
* },
* labels: {
* abc: "xyz",
* },
* }, {
* dependsOn: [primaryPolicy],
* });
* const secondaryProducerNet = new gcp.compute.Network("secondary_producer_net", {
* name: "my-network-secondary-instance",
* autoCreateSubnetworks: false,
* });
* const secondaryProducerSubnet = new gcp.compute.Subnetwork("secondary_producer_subnet", {
* name: "my-subnet-secondary-instance",
* ipCidrRange: "10.0.2.0/29",
* region: "europe-north1",
* network: secondaryProducerNet.id,
* });
* const secondaryPolicy = new gcp.networkconnectivity.ServiceConnectionPolicy("secondary_policy", {
* name: "my-policy-secondary-instance",
* location: "europe-north1",
* serviceClass: "gcp-memorystore",
* description: "my basic service connection policy",
* network: secondaryProducerNet.id,
* pscConfig: {
* subnetworks: [secondaryProducerSubnet.id],
* },
* });
* // Secondary instance
* const secondaryInstance = new gcp.memorystore.Instance("secondary_instance", {
* instanceId: "secondary-instance",
* shardCount: 1,
* desiredAutoCreatedEndpoints: [{
* network: secondaryProducerNet.id,
* projectId: project.then(project => project.projectId),
* }],
* location: "europe-north1",
* replicaCount: 1,
* nodeType: "SHARED_CORE_NANO",
* transitEncryptionMode: "TRANSIT_ENCRYPTION_DISABLED",
* authorizationMode: "AUTH_DISABLED",
* engineConfigs: {
* "maxmemory-policy": "volatile-ttl",
* },
* zoneDistributionConfig: {
* mode: "SINGLE_ZONE",
* zone: "europe-north1-c",
* },
* deletionProtectionEnabled: true,
* crossInstanceReplicationConfig: {
* instanceRole: "SECONDARY",
* primaryInstance: {
* instance: primaryInstance.id,
* },
* },
* persistenceConfig: {
* mode: "RDB",
* rdbConfig: {
* rdbSnapshotPeriod: "ONE_HOUR",
* rdbSnapshotStartTime: "2024-10-02T15:01:23Z",
* },
* },
* labels: {
* abc: "xyz",
* },
* }, {
* dependsOn: [secondaryPolicy],
* });
* ```
*
* ## Import
*
* Instance can be imported using any of these accepted formats:
*
* * `projects/{{project}}/locations/{{location}}/instances/{{instance_id}}`
*
* * `{{project}}/{{location}}/{{instance_id}}`
*
* * `{{location}}/{{instance_id}}`
*
* When using the `pulumi import` command, Instance can be imported using one of the formats above. For example:
*
* ```sh
* $ pulumi import gcp:memorystore/instance:Instance default projects/{{project}}/locations/{{location}}/instances/{{instance_id}}
* ```
*
* ```sh
* $ pulumi import gcp:memorystore/instance:Instance default {{project}}/{{location}}/{{instance_id}}
* ```
*
* ```sh
* $ pulumi import gcp:memorystore/instance:Instance default {{location}}/{{instance_id}}
* ```
*/
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;
/**
* Optional. Immutable. Authorization mode of the instance. Possible values:
* AUTH_DISABLED
* IAM_AUTH
*/
readonly authorizationMode: pulumi.Output<string>;
/**
* The automated backup config for a instance.
* Structure is documented below.
*/
readonly automatedBackupConfig: pulumi.Output<outputs.memorystore.InstanceAutomatedBackupConfig | undefined>;
/**
* The backup collection full resource name.
* Example: projects/{project}/locations/{location}/backupCollections/{collection}
*/
readonly backupCollection: pulumi.Output<string>;
/**
* Output only. Creation timestamp of the instance.
*/
readonly createTime: pulumi.Output<string>;
/**
* Cross instance replication config
* Structure is documented below.
*/
readonly crossInstanceReplicationConfig: pulumi.Output<outputs.memorystore.InstanceCrossInstanceReplicationConfig>;
/**
* Optional. If set to true deletion of the instance will fail.
*/
readonly deletionProtectionEnabled: pulumi.Output<boolean | undefined>;
/**
* Immutable. User inputs for the auto-created endpoints connections.
*/
readonly desiredAutoCreatedEndpoints: pulumi.Output<outputs.memorystore.InstanceDesiredAutoCreatedEndpoint[] | undefined>;
/**
* `desiredPscAutoConnections` is deprecated Use `desiredAutoCreatedEndpoints` instead `pulumi import` will only work with desiredAutoCreatedEndpoints`.
*
* @deprecated `desiredPscAutoConnections` is deprecated. Use `desiredAutoCreatedEndpoints` instead. `terraform import` will only work with desiredAutoCreatedEndpoints`.
*/
readonly desiredPscAutoConnections: pulumi.Output<outputs.memorystore.InstanceDesiredPscAutoConnection[] | undefined>;
/**
* (Deprecated)
* Deprecated. Output only. Endpoints clients can connect to the instance through.
* Structure is documented below.
*
* @deprecated This field is deprecated. As a result it will not be populated if the connections are created using `desiredAutoCreatedEndpoints` parameter or `gcp.memorystore.InstanceDesiredUserCreatedEndpoints` resource. Instead of this parameter, for discovery, use `endpoints.connections.pscConnection` and `endpoints.connections.pscAutoConnection` with `connectionType` CONNECTION_TYPE_DISCOVERY.
*/
readonly discoveryEndpoints: pulumi.Output<outputs.memorystore.InstanceDiscoveryEndpoint[]>;
/**
* 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;
}>;
/**
* Endpoints for the instance.
* Structure is documented below.
*/
readonly endpoints: pulumi.Output<outputs.memorystore.InstanceEndpoint[]>;
/**
* Optional. User-provided engine configurations for the instance.
*/
readonly engineConfigs: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Optional. Engine version of the instance.
*/
readonly engineVersion: pulumi.Output<string>;
/**
* GCS source for the instance.
* Structure is documented below.
*/
readonly gcsSource: pulumi.Output<outputs.memorystore.InstanceGcsSource | undefined>;
/**
* Required. The ID to use for the instance, which will become the final component of
* the instance's resource name.
* This value is subject to the following restrictions:
* * Must be 4-63 characters in length
* * Must begin with a letter or digit
* * Must contain only lowercase letters, digits, and hyphens
* * Must not end with a hyphen
* * Must be unique within a location
*/
readonly instanceId: pulumi.Output<string>;
/**
* The KMS key used to encrypt the at-rest data of the cluster
*/
readonly kmsKey: pulumi.Output<string | undefined>;
/**
* Optional. 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>;
/**
* Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
*/
readonly location: pulumi.Output<string>;
/**
* Maintenance policy for a cluster
* Structure is documented below.
*/
readonly maintenancePolicy: pulumi.Output<outputs.memorystore.InstanceMaintenancePolicy | undefined>;
/**
* Upcoming maintenance schedule.
* Structure is documented below.
*/
readonly maintenanceSchedules: pulumi.Output<outputs.memorystore.InstanceMaintenanceSchedule[]>;
/**
* Managed backup source for the instance.
* Structure is documented below.
*/
readonly managedBackupSource: pulumi.Output<outputs.memorystore.InstanceManagedBackupSource | undefined>;
/**
* Instance's Certificate Authority. This field will only be populated if instance's transitEncryptionMode is SERVER_AUTHENTICATION
* Structure is documented below.
*/
readonly managedServerCas: pulumi.Output<outputs.memorystore.InstanceManagedServerCa[]>;
/**
* Optional. cluster or cluster-disabled.
* Possible values:
* CLUSTER
* CLUSTER_DISABLED
* Possible values are: `CLUSTER`, `CLUSTER_DISABLED`.
*/
readonly mode: pulumi.Output<string>;
/**
* Identifier. Unique name of the instance.
* Format: projects/{project}/locations/{location}/instances/{instance}
*/
readonly name: pulumi.Output<string>;
/**
* Represents configuration for nodes of the instance.
* Structure is documented below.
*/
readonly nodeConfigs: pulumi.Output<outputs.memorystore.InstanceNodeConfig[]>;
/**
* Optional. Machine type for individual nodes of the instance.
* Possible values:
* SHARED_CORE_NANO
* HIGHMEM_MEDIUM
* HIGHMEM_XLARGE
* STANDARD_SMALL
*/
readonly nodeType: pulumi.Output<string>;
/**
* Represents persistence configuration for a instance.
* Structure is documented below.
*/
readonly persistenceConfig: pulumi.Output<outputs.memorystore.InstancePersistenceConfig>;
/**
* 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>;
/**
* Configuration of a service attachment of the cluster, for creating PSC connections.
* Structure is documented below.
*/
readonly pscAttachmentDetails: pulumi.Output<outputs.memorystore.InstancePscAttachmentDetail[]>;
/**
* (Deprecated)
* Output only. User inputs and resource details of the auto-created PSC connections.
* Structure is documented below.
*
* @deprecated `pscAutoConnections` is deprecated Use `endpoints.connections.pscAutoConnections` instead.
*/
readonly pscAutoConnections: pulumi.Output<outputs.memorystore.InstancePscAutoConnection[]>;
/**
* The combination of labels configured directly on the resource
* and default labels configured on the provider.
*/
readonly pulumiLabels: pulumi.Output<{
[key: string]: string;
}>;
/**
* Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
*/
readonly replicaCount: pulumi.Output<number>;
/**
* Required. Number of shards for the instance.
*/
readonly shardCount: pulumi.Output<number>;
/**
* Output only. Current state of the instance.
* Possible values:
* CREATING
* ACTIVE
* UPDATING
* DELETING
*/
readonly state: pulumi.Output<string>;
/**
* Additional information about the state of the instance.
* Structure is documented below.
*/
readonly stateInfos: pulumi.Output<outputs.memorystore.InstanceStateInfo[]>;
/**
* Optional. Immutable. In-transit encryption mode of the instance.
* Possible values:
* TRANSIT_ENCRYPTION_DISABLED
* SERVER_AUTHENTICATION
*/
readonly transitEncryptionMode: pulumi.Output<string>;
/**
* Output only. System assigned, unique identifier for the instance.
*/
readonly uid: pulumi.Output<string>;
/**
* Output only. Latest update timestamp of the instance.
*/
readonly updateTime: pulumi.Output<string>;
/**
* Zone distribution configuration for allocation of instance resources.
* Structure is documented below.
*/
readonly zoneDistributionConfig: pulumi.Output<outputs.memorystore.InstanceZoneDistributionConfig>;
/**
* 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 {
/**
* Optional. Immutable. Authorization mode of the instance. Possible values:
* AUTH_DISABLED
* IAM_AUTH
*/
authorizationMode?: pulumi.Input<string>;
/**
* The automated backup config for a instance.
* Structure is documented below.
*/
automatedBackupConfig?: pulumi.Input<inputs.memorystore.InstanceAutomatedBackupConfig>;
/**
* The backup collection full resource name.
* Example: projects/{project}/locations/{location}/backupCollections/{collection}
*/
backupCollection?: pulumi.Input<string>;
/**
* Output only. Creation timestamp of the instance.
*/
createTime?: pulumi.Input<string>;
/**
* Cross instance replication config
* Structure is documented below.
*/
crossInstanceReplicationConfig?: pulumi.Input<inputs.memorystore.InstanceCrossInstanceReplicationConfig>;
/**
* Optional. If set to true deletion of the instance will fail.
*/
deletionProtectionEnabled?: pulumi.Input<boolean>;
/**
* Immutable. User inputs for the auto-created endpoints connections.
*/
desiredAutoCreatedEndpoints?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceDesiredAutoCreatedEndpoint>[]>;
/**
* `desiredPscAutoConnections` is deprecated Use `desiredAutoCreatedEndpoints` instead `pulumi import` will only work with desiredAutoCreatedEndpoints`.
*
* @deprecated `desiredPscAutoConnections` is deprecated. Use `desiredAutoCreatedEndpoints` instead. `terraform import` will only work with desiredAutoCreatedEndpoints`.
*/
desiredPscAutoConnections?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceDesiredPscAutoConnection>[]>;
/**
* (Deprecated)
* Deprecated. Output only. Endpoints clients can connect to the instance through.
* Structure is documented below.
*
* @deprecated This field is deprecated. As a result it will not be populated if the connections are created using `desiredAutoCreatedEndpoints` parameter or `gcp.memorystore.InstanceDesiredUserCreatedEndpoints` resource. Instead of this parameter, for discovery, use `endpoints.connections.pscConnection` and `endpoints.connections.pscAutoConnection` with `connectionType` CONNECTION_TYPE_DISCOVERY.
*/
discoveryEndpoints?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceDiscoveryEndpoint>[]>;
/**
* 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>;
}>;
/**
* Endpoints for the instance.
* Structure is documented below.
*/
endpoints?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceEndpoint>[]>;
/**
* Optional. User-provided engine configurations for the instance.
*/
engineConfigs?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Optional. Engine version of the instance.
*/
engineVersion?: pulumi.Input<string>;
/**
* GCS source for the instance.
* Structure is documented below.
*/
gcsSource?: pulumi.Input<inputs.memorystore.InstanceGcsSource>;
/**
* Required. The ID to use for the instance, which will become the final component of
* the instance's resource name.
* This value is subject to the following restrictions:
* * Must be 4-63 characters in length
* * Must begin with a letter or digit
* * Must contain only lowercase letters, digits, and hyphens
* * Must not end with a hyphen
* * Must be unique within a location
*/
instanceId?: pulumi.Input<string>;
/**
* The KMS key used to encrypt the at-rest data of the cluster
*/
kmsKey?: pulumi.Input<string>;
/**
* Optional. 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>;
}>;
/**
* Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
*/
location?: pulumi.Input<string>;
/**
* Maintenance policy for a cluster
* Structure is documented below.
*/
maintenancePolicy?: pulumi.Input<inputs.memorystore.InstanceMaintenancePolicy>;
/**
* Upcoming maintenance schedule.
* Structure is documented below.
*/
maintenanceSchedules?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceMaintenanceSchedule>[]>;
/**
* Managed backup source for the instance.
* Structure is documented below.
*/
managedBackupSource?: pulumi.Input<inputs.memorystore.InstanceManagedBackupSource>;
/**
* Instance's Certificate Authority. This field will only be populated if instance's transitEncryptionMode is SERVER_AUTHENTICATION
* Structure is documented below.
*/
managedServerCas?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceManagedServerCa>[]>;
/**
* Optional. cluster or cluster-disabled.
* Possible values:
* CLUSTER
* CLUSTER_DISABLED
* Possible values are: `CLUSTER`, `CLUSTER_DISABLED`.
*/
mode?: pulumi.Input<string>;
/**
* Identifier. Unique name of the instance.
* Format: projects/{project}/locations/{location}/instances/{instance}
*/
name?: pulumi.Input<string>;
/**
* Represents configuration for nodes of the instance.
* Structure is documented below.
*/
nodeConfigs?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceNodeConfig>[]>;
/**
* Optional. Machine type for individual nodes of the instance.
* Possible values:
* SHARED_CORE_NANO
* HIGHMEM_MEDIUM
* HIGHMEM_XLARGE
* STANDARD_SMALL
*/
nodeType?: pulumi.Input<string>;
/**
* Represents persistence configuration for a instance.
* Structure is documented below.
*/
persistenceConfig?: pulumi.Input<inputs.memorystore.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>;
/**
* Configuration of a service attachment of the cluster, for creating PSC connections.
* Structure is documented below.
*/
pscAttachmentDetails?: pulumi.Input<pulumi.Input<inputs.memorystore.InstancePscAttachmentDetail>[]>;
/**
* (Deprecated)
* Output only. User inputs and resource details of the auto-created PSC connections.
* Structure is documented below.
*
* @deprecated `pscAutoConnections` is deprecated Use `endpoints.connections.pscAutoConnections` instead.
*/
pscAutoConnections?: pulumi.Input<pulumi.Input<inputs.memorystore.InstancePscAutoConnection>[]>;
/**
* The combination of labels configured directly on the resource
* and default labels configured on the provider.
*/
pulumiLabels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Optional. Number of replica nodes per shard. If omitted the default is 0 replicas.
*/
replicaCount?: pulumi.Input<number>;
/**
* Required. Number of shards for the instance.
*/
shardCount?: pulumi.Input<number>;
/**
* Output only. Current state of the instance.
* Possible values:
* CREATING
* ACTIVE
* UPDATING
* DELETING
*/
state?: pulumi.Input<string>;
/**
* Additional information about the state of the instance.
* Structure is documented below.
*/
stateInfos?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceStateInfo>[]>;
/**
* Optional. Immutable. In-transit encryption mode of the instance.
* Possible values:
* TRANSIT_ENCRYPTION_DISABLED
* SERVER_AUTHENTICATION
*/
transitEncryptionMode?: pulumi.Input<string>;
/**
* Output only. System assigned, unique identifier for the instance.
*/
uid?: pulumi.Input<string>;
/**
* Output only. Latest update timestamp of the instance.
*/
updateTime?: pulumi.Input<string>;
/**
* Zone distribution configuration for allocation of instance resources.
* Structure is documented below.
*/
zoneDistributionConfig?: pulumi.Input<inputs.memorystore.InstanceZoneDistributionConfig>;
}
/**
* The set of arguments for constructing a Instance resource.
*/
export interface InstanceArgs {
/**
* Optional. Immutable. Authorization mode of the instance. Possible values:
* AUTH_DISABLED
* IAM_AUTH
*/
authorizationMode?: pulumi.Input<string>;
/**
* The automated backup config for a instance.
* Structure is documented below.
*/
automatedBackupConfig?: pulumi.Input<inputs.memorystore.InstanceAutomatedBackupConfig>;
/**
* Cross instance replication config
* Structure is documented below.
*/
crossInstanceReplicationConfig?: pulumi.Input<inputs.memorystore.InstanceCrossInstanceReplicationConfig>;
/**
* Optional. If set to true deletion of the instance will fail.
*/
deletionProtectionEnabled?: pulumi.Input<boolean>;
/**
* Immutable. User inputs for the auto-created endpoints connections.
*/
desiredAutoCreatedEndpoints?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceDesiredAutoCreatedEndpoint>[]>;
/**
* `desiredPscAutoConnections` is deprecated Use `desiredAutoCreatedEndpoints` instead `pulumi import` will only work with desiredAutoCreatedEndpoints`.
*
* @deprecated `desiredPscAutoConnections` is deprecated. Use `desiredAutoCreatedEndpoints` instead. `terraform import` will only work with desiredAutoCreatedEndpoints`.
*/
desiredPscAutoConnections?: pulumi.Input<pulumi.Input<inputs.memorystore.InstanceDesiredPscAutoConnection>[]>;
/**
* Optional. User-provided engine configurations for the instance.
*/
engineConfigs?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Optional. Engine version of the instance.
*/
engineVersion?: pulumi.Input<string>;
/**
* GCS source for the instance.
* Structure is documented below.
*/
gcsSource?: pulumi.Input<inputs.memorystore.InstanceGcsSource>;
/**
* Required. The ID to use for the instance, which will become the final component of
* the instance's resource name.
* This value is subject to the following restrictions:
* * Must be 4-63 characters in length
* * Must begin with a letter or digit
* * Must contain only lowercase letters, digits, and hyphens
* * Must not end with a hyphen
* * Must be unique within a location
*/
instanceId: pulumi.Input<string>;
/**
* The KMS key used to encrypt the at-rest data of the cluster
*/
kmsKey?: pulumi.Input<string>;
/**
* Optional. 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>;
}>;
/**
* Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
*/
location: pulumi.Input<string>;
/**
* Maintenance policy for a cluster
* Structure is documented below.
*/
maintenancePolicy?: pulumi.Input<inputs.memorystore.InstanceMaintenancePolicy>;
/**
* Managed backup source for the instance.
* Structure is documented below.
*/
managedBackupSource?: pulumi.Input<inputs.memorystore.InstanceManagedBackupSource>;
/**
* Optional. cluster or cluster-disabled.
* Possible values:
* CLUSTER
* CLUSTER_DISABLED
* Possible values are: `CLUSTER`, `CLUSTER_DISABLED`.
*/
mode?: pulumi.Input<string>;
/**
* Optional. Machine type for individual nodes of the instance.
* Possible values:
* SHARED_CORE_NANO
* HIGHMEM_MEDIUM
* HIGHMEM_XLARGE
* STANDARD_SMALL
*/
nodeType?: pulumi.Input<string>;
/**
* Represents persistence configuration for a instance.
* Structure is documented below.
*/
persistenceConfig?: pulumi.Input<inputs.memorystore.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. Number of replica nodes per shard. If omitted the default is 0 replicas.
*/
replicaCount?: pulumi.Input<number>;
/**
* Required. Number of shards for the instance.
*/
shardCount: pulumi.Input<number>;
/**
* Optional. Immutable. In-transit encryption mode of the instance.
* Possible values:
* TRANSIT_ENCRYPTION_DISABLED
* SERVER_AUTHENTICATION
*/
transitEncryptionMode?: pulumi.Input<string>;
/**
* Zone distribution configuration for allocation of instance resources.
* Structure is documented below.
*/
zoneDistributionConfig?: pulumi.Input<inputs.memorystore.InstanceZoneDistributionConfig>;
}