elasticache

package
v4.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cluster

type Cluster struct {
	pulumi.CustomResourceState

	// Whether any database modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon ElastiCache Documentation for more information.](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html).
	ApplyImmediately pulumi.BoolOutput `pulumi:"applyImmediately"`
	// The ARN of the created ElastiCache Cluster.
	Arn pulumi.StringOutput `pulumi:"arn"`
	// Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource.
	AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"`
	// Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `numCacheNodes` must be greater than `1`.
	AzMode pulumi.StringOutput `pulumi:"azMode"`
	// List of node objects including `id`, `address`, `port` and `availabilityZone`.
	CacheNodes ClusterCacheNodeArrayOutput `pulumi:"cacheNodes"`
	// (Memcached only) DNS name of the cache cluster without the port appended.
	ClusterAddress pulumi.StringOutput `pulumi:"clusterAddress"`
	// Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource.
	ClusterId pulumi.StringOutput `pulumi:"clusterId"`
	// (Memcached only) Configuration endpoint to allow host discovery.
	ConfigurationEndpoint pulumi.StringOutput `pulumi:"configurationEndpoint"`
	// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.
	Engine pulumi.StringOutput `pulumi:"engine"`
	// Version number of the cache engine to be used.
	// See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html)
	// in the AWS Documentation for supported versions. When `engine` is `redis` and the version is 6 or higher, only the major version can be set, e.g. `6.x`, otherwise, specify the full version desired, e.g. `5.0.6`. The actual engine version used is returned in the attribute `engineVersionActual`, defined below.
	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
	// The running version of the cache engine.
	EngineVersionActual pulumi.StringOutput `pulumi:"engineVersionActual"`
	// Name of your final cluster snapshot. If omitted, no final snapshot will be made.
	FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"`
	// Specifies the weekly time range for when maintenance
	// on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC).
	// The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`.
	MaintenanceWindow pulumi.StringOutput `pulumi:"maintenanceWindow"`
	// The instance class used. See AWS documentation for information on [supported node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). See AWS documentation for information on [supported node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/nodes-select-size.html). For Memcached, changing this value will re-create the resource.
	NodeType pulumi.StringOutput `pulumi:"nodeType"`
	// ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`.
	NotificationTopicArn pulumi.StringPtrOutput `pulumi:"notificationTopicArn"`
	// The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 20. If this number is reduced on subsequent runs, the highest numbered nodes will be removed.
	NumCacheNodes pulumi.IntOutput `pulumi:"numCacheNodes"`
	// The name of the parameter group to associate with this cache cluster.
	ParameterGroupName pulumi.StringOutput `pulumi:"parameterGroupName"`
	// The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource.
	Port pulumi.IntOutput `pulumi:"port"`
	// List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of `numCacheNodes`. If you want all the nodes in the same Availability Zone, use `availabilityZone` instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference.
	PreferredAvailabilityZones pulumi.StringArrayOutput `pulumi:"preferredAvailabilityZones"`
	// ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group.
	ReplicationGroupId pulumi.StringOutput `pulumi:"replicationGroupId"`
	// One or more VPC security groups associated with the cache cluster
	SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"`
	// List of security group names to associate with this cache cluster. Changing this value will re-create the resource.
	SecurityGroupNames pulumi.StringArrayOutput `pulumi:"securityGroupNames"`
	// Single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing `snapshotArns` forces a new resource.
	SnapshotArns pulumi.StringPtrOutput `pulumi:"snapshotArns"`
	// Name of a snapshot from which to restore data into the new node group. Changing `snapshotName` forces a new resource.
	SnapshotName pulumi.StringPtrOutput `pulumi:"snapshotName"`
	// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes
	SnapshotRetentionLimit pulumi.IntPtrOutput `pulumi:"snapshotRetentionLimit"`
	// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00
	SnapshotWindow pulumi.StringOutput `pulumi:"snapshotWindow"`
	// Name of the subnet group to be used for the cache cluster. Changing this value will re-create the resource.
	SubnetGroupName pulumi.StringOutput    `pulumi:"subnetGroupName"`
	Tags            pulumi.StringMapOutput `pulumi:"tags"`
	TagsAll         pulumi.StringMapOutput `pulumi:"tagsAll"`
}

Provides an ElastiCache Cluster resource, which manages either a [Memcached cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html), a [single-node Redis instance](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html), or a [read replica in a Redis (Cluster Mode Enabled) replication group].

For working with Redis (Cluster Mode Enabled) replication groups, see the `elasticache.ReplicationGroup` resource.

> **Note:** When you change an attribute, such as `numCacheNodes`, by default it is applied in the next maintenance window. Because of this, this provider may report a difference in its planning phase because the actual modification has not yet taken place. You can use the `applyImmediately` flag to instruct the service to apply the change immediately. Using `applyImmediately` can result in a brief downtime as the server reboots. See the AWS Documentation on Modifying an ElastiCache Cache Cluster for [ElastiCache for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/Clusters.Modify.html) or [ElastiCache for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Modify.html) for more information.

> **Note:** Any attribute changes that re-create the resource will be applied immediately, regardless of the value of `applyImmediately`.

## Example Usage ### Memcached Cluster

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.NewCluster(ctx, "example", &elasticache.ClusterArgs{
			Engine:             pulumi.String("memcached"),
			NodeType:           pulumi.String("cache.m4.large"),
			NumCacheNodes:      pulumi.Int(2),
			ParameterGroupName: pulumi.String("default.memcached1.4"),
			Port:               pulumi.Int(11211),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Redis Instance

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.NewCluster(ctx, "example", &elasticache.ClusterArgs{
			Engine:             pulumi.String("redis"),
			EngineVersion:      pulumi.String("3.2.10"),
			NodeType:           pulumi.String("cache.m4.large"),
			NumCacheNodes:      pulumi.Int(1),
			ParameterGroupName: pulumi.String("default.redis3.2"),
			Port:               pulumi.Int(6379),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Redis Cluster Mode Disabled Read Replica Instance

These inherit their settings from the replication group.

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.NewCluster(ctx, "replica", &elasticache.ClusterArgs{
			ReplicationGroupId: pulumi.Any(aws_elasticache_replication_group.Example.Id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ElastiCache Clusters can be imported using the `cluster_id`, e.g.

```sh

$ pulumi import aws:elasticache/cluster:Cluster my_cluster my_cluster

```

func GetCluster

func GetCluster(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ClusterState, opts ...pulumi.ResourceOption) (*Cluster, error)

GetCluster gets an existing Cluster resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewCluster

func NewCluster(ctx *pulumi.Context,
	name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error)

NewCluster registers a new resource with the given unique name, arguments, and options.

func (*Cluster) ElementType

func (*Cluster) ElementType() reflect.Type

func (*Cluster) ToClusterOutput

func (i *Cluster) ToClusterOutput() ClusterOutput

func (*Cluster) ToClusterOutputWithContext

func (i *Cluster) ToClusterOutputWithContext(ctx context.Context) ClusterOutput

func (*Cluster) ToClusterPtrOutput

func (i *Cluster) ToClusterPtrOutput() ClusterPtrOutput

func (*Cluster) ToClusterPtrOutputWithContext

func (i *Cluster) ToClusterPtrOutputWithContext(ctx context.Context) ClusterPtrOutput

type ClusterArgs

type ClusterArgs struct {
	// Whether any database modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon ElastiCache Documentation for more information.](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html).
	ApplyImmediately pulumi.BoolPtrInput
	// Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource.
	AvailabilityZone pulumi.StringPtrInput
	// Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `numCacheNodes` must be greater than `1`.
	AzMode pulumi.StringPtrInput
	// Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource.
	ClusterId pulumi.StringPtrInput
	// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.
	Engine pulumi.StringPtrInput
	// Version number of the cache engine to be used.
	// See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html)
	// in the AWS Documentation for supported versions. When `engine` is `redis` and the version is 6 or higher, only the major version can be set, e.g. `6.x`, otherwise, specify the full version desired, e.g. `5.0.6`. The actual engine version used is returned in the attribute `engineVersionActual`, defined below.
	EngineVersion pulumi.StringPtrInput
	// Name of your final cluster snapshot. If omitted, no final snapshot will be made.
	FinalSnapshotIdentifier pulumi.StringPtrInput
	// Specifies the weekly time range for when maintenance
	// on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC).
	// The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`.
	MaintenanceWindow pulumi.StringPtrInput
	// The instance class used. See AWS documentation for information on [supported node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). See AWS documentation for information on [supported node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/nodes-select-size.html). For Memcached, changing this value will re-create the resource.
	NodeType pulumi.StringPtrInput
	// ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`.
	NotificationTopicArn pulumi.StringPtrInput
	// The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 20. If this number is reduced on subsequent runs, the highest numbered nodes will be removed.
	NumCacheNodes pulumi.IntPtrInput
	// The name of the parameter group to associate with this cache cluster.
	ParameterGroupName pulumi.StringPtrInput
	// The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource.
	Port pulumi.IntPtrInput
	// List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of `numCacheNodes`. If you want all the nodes in the same Availability Zone, use `availabilityZone` instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference.
	PreferredAvailabilityZones pulumi.StringArrayInput
	// ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group.
	ReplicationGroupId pulumi.StringPtrInput
	// One or more VPC security groups associated with the cache cluster
	SecurityGroupIds pulumi.StringArrayInput
	// List of security group names to associate with this cache cluster. Changing this value will re-create the resource.
	SecurityGroupNames pulumi.StringArrayInput
	// Single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing `snapshotArns` forces a new resource.
	SnapshotArns pulumi.StringPtrInput
	// Name of a snapshot from which to restore data into the new node group. Changing `snapshotName` forces a new resource.
	SnapshotName pulumi.StringPtrInput
	// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes
	SnapshotRetentionLimit pulumi.IntPtrInput
	// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00
	SnapshotWindow pulumi.StringPtrInput
	// Name of the subnet group to be used for the cache cluster. Changing this value will re-create the resource.
	SubnetGroupName pulumi.StringPtrInput
	Tags            pulumi.StringMapInput
	TagsAll         pulumi.StringMapInput
}

The set of arguments for constructing a Cluster resource.

func (ClusterArgs) ElementType

func (ClusterArgs) ElementType() reflect.Type

type ClusterArray

type ClusterArray []ClusterInput

func (ClusterArray) ElementType

func (ClusterArray) ElementType() reflect.Type

func (ClusterArray) ToClusterArrayOutput

func (i ClusterArray) ToClusterArrayOutput() ClusterArrayOutput

func (ClusterArray) ToClusterArrayOutputWithContext

func (i ClusterArray) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput

type ClusterArrayInput

type ClusterArrayInput interface {
	pulumi.Input

	ToClusterArrayOutput() ClusterArrayOutput
	ToClusterArrayOutputWithContext(context.Context) ClusterArrayOutput
}

ClusterArrayInput is an input type that accepts ClusterArray and ClusterArrayOutput values. You can construct a concrete instance of `ClusterArrayInput` via:

ClusterArray{ ClusterArgs{...} }

type ClusterArrayOutput

type ClusterArrayOutput struct{ *pulumi.OutputState }

func (ClusterArrayOutput) ElementType

func (ClusterArrayOutput) ElementType() reflect.Type

func (ClusterArrayOutput) Index

func (ClusterArrayOutput) ToClusterArrayOutput

func (o ClusterArrayOutput) ToClusterArrayOutput() ClusterArrayOutput

func (ClusterArrayOutput) ToClusterArrayOutputWithContext

func (o ClusterArrayOutput) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput

type ClusterCacheNode

type ClusterCacheNode struct {
	Address *string `pulumi:"address"`
	// Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource.
	AvailabilityZone *string `pulumi:"availabilityZone"`
	Id               *string `pulumi:"id"`
	// The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource.
	Port *int `pulumi:"port"`
}

type ClusterCacheNodeArgs

type ClusterCacheNodeArgs struct {
	Address pulumi.StringPtrInput `pulumi:"address"`
	// Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource.
	AvailabilityZone pulumi.StringPtrInput `pulumi:"availabilityZone"`
	Id               pulumi.StringPtrInput `pulumi:"id"`
	// The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource.
	Port pulumi.IntPtrInput `pulumi:"port"`
}

func (ClusterCacheNodeArgs) ElementType

func (ClusterCacheNodeArgs) ElementType() reflect.Type

func (ClusterCacheNodeArgs) ToClusterCacheNodeOutput

func (i ClusterCacheNodeArgs) ToClusterCacheNodeOutput() ClusterCacheNodeOutput

func (ClusterCacheNodeArgs) ToClusterCacheNodeOutputWithContext

func (i ClusterCacheNodeArgs) ToClusterCacheNodeOutputWithContext(ctx context.Context) ClusterCacheNodeOutput

type ClusterCacheNodeArray

type ClusterCacheNodeArray []ClusterCacheNodeInput

func (ClusterCacheNodeArray) ElementType

func (ClusterCacheNodeArray) ElementType() reflect.Type

func (ClusterCacheNodeArray) ToClusterCacheNodeArrayOutput

func (i ClusterCacheNodeArray) ToClusterCacheNodeArrayOutput() ClusterCacheNodeArrayOutput

func (ClusterCacheNodeArray) ToClusterCacheNodeArrayOutputWithContext

func (i ClusterCacheNodeArray) ToClusterCacheNodeArrayOutputWithContext(ctx context.Context) ClusterCacheNodeArrayOutput

type ClusterCacheNodeArrayInput

type ClusterCacheNodeArrayInput interface {
	pulumi.Input

	ToClusterCacheNodeArrayOutput() ClusterCacheNodeArrayOutput
	ToClusterCacheNodeArrayOutputWithContext(context.Context) ClusterCacheNodeArrayOutput
}

ClusterCacheNodeArrayInput is an input type that accepts ClusterCacheNodeArray and ClusterCacheNodeArrayOutput values. You can construct a concrete instance of `ClusterCacheNodeArrayInput` via:

ClusterCacheNodeArray{ ClusterCacheNodeArgs{...} }

type ClusterCacheNodeArrayOutput

type ClusterCacheNodeArrayOutput struct{ *pulumi.OutputState }

func (ClusterCacheNodeArrayOutput) ElementType

func (ClusterCacheNodeArrayOutput) Index

func (ClusterCacheNodeArrayOutput) ToClusterCacheNodeArrayOutput

func (o ClusterCacheNodeArrayOutput) ToClusterCacheNodeArrayOutput() ClusterCacheNodeArrayOutput

func (ClusterCacheNodeArrayOutput) ToClusterCacheNodeArrayOutputWithContext

func (o ClusterCacheNodeArrayOutput) ToClusterCacheNodeArrayOutputWithContext(ctx context.Context) ClusterCacheNodeArrayOutput

type ClusterCacheNodeInput

type ClusterCacheNodeInput interface {
	pulumi.Input

	ToClusterCacheNodeOutput() ClusterCacheNodeOutput
	ToClusterCacheNodeOutputWithContext(context.Context) ClusterCacheNodeOutput
}

ClusterCacheNodeInput is an input type that accepts ClusterCacheNodeArgs and ClusterCacheNodeOutput values. You can construct a concrete instance of `ClusterCacheNodeInput` via:

ClusterCacheNodeArgs{...}

type ClusterCacheNodeOutput

type ClusterCacheNodeOutput struct{ *pulumi.OutputState }

func (ClusterCacheNodeOutput) Address

func (ClusterCacheNodeOutput) AvailabilityZone

func (o ClusterCacheNodeOutput) AvailabilityZone() pulumi.StringPtrOutput

Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource.

func (ClusterCacheNodeOutput) ElementType

func (ClusterCacheNodeOutput) ElementType() reflect.Type

func (ClusterCacheNodeOutput) Id

func (ClusterCacheNodeOutput) Port

The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource.

func (ClusterCacheNodeOutput) ToClusterCacheNodeOutput

func (o ClusterCacheNodeOutput) ToClusterCacheNodeOutput() ClusterCacheNodeOutput

func (ClusterCacheNodeOutput) ToClusterCacheNodeOutputWithContext

func (o ClusterCacheNodeOutput) ToClusterCacheNodeOutputWithContext(ctx context.Context) ClusterCacheNodeOutput

type ClusterInput

type ClusterInput interface {
	pulumi.Input

	ToClusterOutput() ClusterOutput
	ToClusterOutputWithContext(ctx context.Context) ClusterOutput
}

type ClusterMap

type ClusterMap map[string]ClusterInput

func (ClusterMap) ElementType

func (ClusterMap) ElementType() reflect.Type

func (ClusterMap) ToClusterMapOutput

func (i ClusterMap) ToClusterMapOutput() ClusterMapOutput

func (ClusterMap) ToClusterMapOutputWithContext

func (i ClusterMap) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput

type ClusterMapInput

type ClusterMapInput interface {
	pulumi.Input

	ToClusterMapOutput() ClusterMapOutput
	ToClusterMapOutputWithContext(context.Context) ClusterMapOutput
}

ClusterMapInput is an input type that accepts ClusterMap and ClusterMapOutput values. You can construct a concrete instance of `ClusterMapInput` via:

ClusterMap{ "key": ClusterArgs{...} }

type ClusterMapOutput

type ClusterMapOutput struct{ *pulumi.OutputState }

func (ClusterMapOutput) ElementType

func (ClusterMapOutput) ElementType() reflect.Type

func (ClusterMapOutput) MapIndex

func (ClusterMapOutput) ToClusterMapOutput

func (o ClusterMapOutput) ToClusterMapOutput() ClusterMapOutput

func (ClusterMapOutput) ToClusterMapOutputWithContext

func (o ClusterMapOutput) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput

type ClusterOutput

type ClusterOutput struct{ *pulumi.OutputState }

func (ClusterOutput) ElementType

func (ClusterOutput) ElementType() reflect.Type

func (ClusterOutput) ToClusterOutput

func (o ClusterOutput) ToClusterOutput() ClusterOutput

func (ClusterOutput) ToClusterOutputWithContext

func (o ClusterOutput) ToClusterOutputWithContext(ctx context.Context) ClusterOutput

func (ClusterOutput) ToClusterPtrOutput

func (o ClusterOutput) ToClusterPtrOutput() ClusterPtrOutput

func (ClusterOutput) ToClusterPtrOutputWithContext

func (o ClusterOutput) ToClusterPtrOutputWithContext(ctx context.Context) ClusterPtrOutput

type ClusterPtrInput

type ClusterPtrInput interface {
	pulumi.Input

	ToClusterPtrOutput() ClusterPtrOutput
	ToClusterPtrOutputWithContext(ctx context.Context) ClusterPtrOutput
}

type ClusterPtrOutput

type ClusterPtrOutput struct{ *pulumi.OutputState }

func (ClusterPtrOutput) Elem added in v4.15.0

func (ClusterPtrOutput) ElementType

func (ClusterPtrOutput) ElementType() reflect.Type

func (ClusterPtrOutput) ToClusterPtrOutput

func (o ClusterPtrOutput) ToClusterPtrOutput() ClusterPtrOutput

func (ClusterPtrOutput) ToClusterPtrOutputWithContext

func (o ClusterPtrOutput) ToClusterPtrOutputWithContext(ctx context.Context) ClusterPtrOutput

type ClusterState

type ClusterState struct {
	// Whether any database modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon ElastiCache Documentation for more information.](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html).
	ApplyImmediately pulumi.BoolPtrInput
	// The ARN of the created ElastiCache Cluster.
	Arn pulumi.StringPtrInput
	// Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource.
	AvailabilityZone pulumi.StringPtrInput
	// Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `numCacheNodes` must be greater than `1`.
	AzMode pulumi.StringPtrInput
	// List of node objects including `id`, `address`, `port` and `availabilityZone`.
	CacheNodes ClusterCacheNodeArrayInput
	// (Memcached only) DNS name of the cache cluster without the port appended.
	ClusterAddress pulumi.StringPtrInput
	// Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource.
	ClusterId pulumi.StringPtrInput
	// (Memcached only) Configuration endpoint to allow host discovery.
	ConfigurationEndpoint pulumi.StringPtrInput
	// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.
	Engine pulumi.StringPtrInput
	// Version number of the cache engine to be used.
	// See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html)
	// in the AWS Documentation for supported versions. When `engine` is `redis` and the version is 6 or higher, only the major version can be set, e.g. `6.x`, otherwise, specify the full version desired, e.g. `5.0.6`. The actual engine version used is returned in the attribute `engineVersionActual`, defined below.
	EngineVersion pulumi.StringPtrInput
	// The running version of the cache engine.
	EngineVersionActual pulumi.StringPtrInput
	// Name of your final cluster snapshot. If omitted, no final snapshot will be made.
	FinalSnapshotIdentifier pulumi.StringPtrInput
	// Specifies the weekly time range for when maintenance
	// on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC).
	// The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`.
	MaintenanceWindow pulumi.StringPtrInput
	// The instance class used. See AWS documentation for information on [supported node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). See AWS documentation for information on [supported node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/nodes-select-size.html). For Memcached, changing this value will re-create the resource.
	NodeType pulumi.StringPtrInput
	// ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`.
	NotificationTopicArn pulumi.StringPtrInput
	// The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 20. If this number is reduced on subsequent runs, the highest numbered nodes will be removed.
	NumCacheNodes pulumi.IntPtrInput
	// The name of the parameter group to associate with this cache cluster.
	ParameterGroupName pulumi.StringPtrInput
	// The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource.
	Port pulumi.IntPtrInput
	// List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of `numCacheNodes`. If you want all the nodes in the same Availability Zone, use `availabilityZone` instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference.
	PreferredAvailabilityZones pulumi.StringArrayInput
	// ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group.
	ReplicationGroupId pulumi.StringPtrInput
	// One or more VPC security groups associated with the cache cluster
	SecurityGroupIds pulumi.StringArrayInput
	// List of security group names to associate with this cache cluster. Changing this value will re-create the resource.
	SecurityGroupNames pulumi.StringArrayInput
	// Single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing `snapshotArns` forces a new resource.
	SnapshotArns pulumi.StringPtrInput
	// Name of a snapshot from which to restore data into the new node group. Changing `snapshotName` forces a new resource.
	SnapshotName pulumi.StringPtrInput
	// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes
	SnapshotRetentionLimit pulumi.IntPtrInput
	// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00
	SnapshotWindow pulumi.StringPtrInput
	// Name of the subnet group to be used for the cache cluster. Changing this value will re-create the resource.
	SubnetGroupName pulumi.StringPtrInput
	Tags            pulumi.StringMapInput
	TagsAll         pulumi.StringMapInput
}

func (ClusterState) ElementType

func (ClusterState) ElementType() reflect.Type

type GetClusterCacheNode

type GetClusterCacheNode struct {
	Address string `pulumi:"address"`
	// The Availability Zone for the cache cluster.
	AvailabilityZone string `pulumi:"availabilityZone"`
	Id               string `pulumi:"id"`
	// The port number on which each of the cache nodes will
	// accept connections.
	Port int `pulumi:"port"`
}

type GetClusterCacheNodeArgs

type GetClusterCacheNodeArgs struct {
	Address pulumi.StringInput `pulumi:"address"`
	// The Availability Zone for the cache cluster.
	AvailabilityZone pulumi.StringInput `pulumi:"availabilityZone"`
	Id               pulumi.StringInput `pulumi:"id"`
	// The port number on which each of the cache nodes will
	// accept connections.
	Port pulumi.IntInput `pulumi:"port"`
}

func (GetClusterCacheNodeArgs) ElementType

func (GetClusterCacheNodeArgs) ElementType() reflect.Type

func (GetClusterCacheNodeArgs) ToGetClusterCacheNodeOutput

func (i GetClusterCacheNodeArgs) ToGetClusterCacheNodeOutput() GetClusterCacheNodeOutput

func (GetClusterCacheNodeArgs) ToGetClusterCacheNodeOutputWithContext

func (i GetClusterCacheNodeArgs) ToGetClusterCacheNodeOutputWithContext(ctx context.Context) GetClusterCacheNodeOutput

type GetClusterCacheNodeArray

type GetClusterCacheNodeArray []GetClusterCacheNodeInput

func (GetClusterCacheNodeArray) ElementType

func (GetClusterCacheNodeArray) ElementType() reflect.Type

func (GetClusterCacheNodeArray) ToGetClusterCacheNodeArrayOutput

func (i GetClusterCacheNodeArray) ToGetClusterCacheNodeArrayOutput() GetClusterCacheNodeArrayOutput

func (GetClusterCacheNodeArray) ToGetClusterCacheNodeArrayOutputWithContext

func (i GetClusterCacheNodeArray) ToGetClusterCacheNodeArrayOutputWithContext(ctx context.Context) GetClusterCacheNodeArrayOutput

type GetClusterCacheNodeArrayInput

type GetClusterCacheNodeArrayInput interface {
	pulumi.Input

	ToGetClusterCacheNodeArrayOutput() GetClusterCacheNodeArrayOutput
	ToGetClusterCacheNodeArrayOutputWithContext(context.Context) GetClusterCacheNodeArrayOutput
}

GetClusterCacheNodeArrayInput is an input type that accepts GetClusterCacheNodeArray and GetClusterCacheNodeArrayOutput values. You can construct a concrete instance of `GetClusterCacheNodeArrayInput` via:

GetClusterCacheNodeArray{ GetClusterCacheNodeArgs{...} }

type GetClusterCacheNodeArrayOutput

type GetClusterCacheNodeArrayOutput struct{ *pulumi.OutputState }

func (GetClusterCacheNodeArrayOutput) ElementType

func (GetClusterCacheNodeArrayOutput) Index

func (GetClusterCacheNodeArrayOutput) ToGetClusterCacheNodeArrayOutput

func (o GetClusterCacheNodeArrayOutput) ToGetClusterCacheNodeArrayOutput() GetClusterCacheNodeArrayOutput

func (GetClusterCacheNodeArrayOutput) ToGetClusterCacheNodeArrayOutputWithContext

func (o GetClusterCacheNodeArrayOutput) ToGetClusterCacheNodeArrayOutputWithContext(ctx context.Context) GetClusterCacheNodeArrayOutput

type GetClusterCacheNodeInput

type GetClusterCacheNodeInput interface {
	pulumi.Input

	ToGetClusterCacheNodeOutput() GetClusterCacheNodeOutput
	ToGetClusterCacheNodeOutputWithContext(context.Context) GetClusterCacheNodeOutput
}

GetClusterCacheNodeInput is an input type that accepts GetClusterCacheNodeArgs and GetClusterCacheNodeOutput values. You can construct a concrete instance of `GetClusterCacheNodeInput` via:

GetClusterCacheNodeArgs{...}

type GetClusterCacheNodeOutput

type GetClusterCacheNodeOutput struct{ *pulumi.OutputState }

func (GetClusterCacheNodeOutput) Address

func (GetClusterCacheNodeOutput) AvailabilityZone

func (o GetClusterCacheNodeOutput) AvailabilityZone() pulumi.StringOutput

The Availability Zone for the cache cluster.

func (GetClusterCacheNodeOutput) ElementType

func (GetClusterCacheNodeOutput) ElementType() reflect.Type

func (GetClusterCacheNodeOutput) Id

func (GetClusterCacheNodeOutput) Port

The port number on which each of the cache nodes will accept connections.

func (GetClusterCacheNodeOutput) ToGetClusterCacheNodeOutput

func (o GetClusterCacheNodeOutput) ToGetClusterCacheNodeOutput() GetClusterCacheNodeOutput

func (GetClusterCacheNodeOutput) ToGetClusterCacheNodeOutputWithContext

func (o GetClusterCacheNodeOutput) ToGetClusterCacheNodeOutputWithContext(ctx context.Context) GetClusterCacheNodeOutput

type GlobalReplicationGroup

type GlobalReplicationGroup struct {
	pulumi.CustomResourceState

	// (**DEPRECATED** use `engineVersionActual` instead) The full version number of the cache engine running on the members of this global replication group.
	//
	// Deprecated: Use engine_version_actual instead
	ActualEngineVersion pulumi.StringOutput `pulumi:"actualEngineVersion"`
	// The ARN of the ElastiCache Global Replication Group.
	Arn pulumi.StringOutput `pulumi:"arn"`
	// A flag that indicate whether the encryption at rest is enabled.
	AtRestEncryptionEnabled pulumi.BoolOutput `pulumi:"atRestEncryptionEnabled"`
	// A flag that indicate whether AuthToken (password) is enabled.
	AuthTokenEnabled pulumi.BoolOutput `pulumi:"authTokenEnabled"`
	// The instance class used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).
	CacheNodeType pulumi.StringOutput `pulumi:"cacheNodeType"`
	// Indicates whether the Global Datastore is cluster enabled.
	ClusterEnabled pulumi.BoolOutput `pulumi:"clusterEnabled"`
	// The name of the cache engine to be used for the clusters in this global replication group.
	Engine pulumi.StringOutput `pulumi:"engine"`
	// The full version number of the cache engine running on the members of this global replication group.
	EngineVersionActual pulumi.StringOutput `pulumi:"engineVersionActual"`
	// A user-created description for the global replication group.
	GlobalReplicationGroupDescription pulumi.StringPtrOutput `pulumi:"globalReplicationGroupDescription"`
	// The full ID of the global replication group.
	GlobalReplicationGroupId pulumi.StringOutput `pulumi:"globalReplicationGroupId"`
	// The suffix name of a Global Datastore. If `globalReplicationGroupIdSuffix` is changed, creates a new resource.
	GlobalReplicationGroupIdSuffix pulumi.StringOutput `pulumi:"globalReplicationGroupIdSuffix"`
	// The ID of the primary cluster that accepts writes and will replicate updates to the secondary cluster. If `primaryReplicationGroupId` is changed, creates a new resource.
	PrimaryReplicationGroupId pulumi.StringOutput `pulumi:"primaryReplicationGroupId"`
	// A flag that indicates whether the encryption in transit is enabled.
	TransitEncryptionEnabled pulumi.BoolOutput `pulumi:"transitEncryptionEnabled"`
}

Provides an ElastiCache Global Replication Group resource, which manages replication between two or more Replication Groups in different regions. For more information, see the [ElastiCache User Guide](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html).

## Example Usage ### Global replication group with one secondary replication group

The global replication group depends on the primary group existing. Secondary replication groups depend on the global replication group. the provider dependency management will handle this transparently using resource value references.

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		primary, err := elasticache.NewReplicationGroup(ctx, "primary", &elasticache.ReplicationGroupArgs{
			ReplicationGroupDescription: pulumi.String("primary replication group"),
			Engine:                      pulumi.String("redis"),
			EngineVersion:               pulumi.String("5.0.6"),
			NodeType:                    pulumi.String("cache.m5.large"),
			NumberCacheClusters:         pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		example, err := elasticache.NewGlobalReplicationGroup(ctx, "example", &elasticache.GlobalReplicationGroupArgs{
			GlobalReplicationGroupIdSuffix: pulumi.String("example"),
			PrimaryReplicationGroupId:      primary.ID(),
		})
		if err != nil {
			return err
		}
		_, err = elasticache.NewReplicationGroup(ctx, "secondary", &elasticache.ReplicationGroupArgs{
			ReplicationGroupDescription: pulumi.String("secondary replication group"),
			GlobalReplicationGroupId:    example.GlobalReplicationGroupId,
			NumberCacheClusters:         pulumi.Int(1),
		}, pulumi.Provider(aws.Other_region))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ElastiCache Global Replication Groups can be imported using the `global_replication_group_id`, e.g.

```sh

$ pulumi import aws:elasticache/globalReplicationGroup:GlobalReplicationGroup my_global_replication_group okuqm-global-replication-group-1

```

func GetGlobalReplicationGroup

func GetGlobalReplicationGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *GlobalReplicationGroupState, opts ...pulumi.ResourceOption) (*GlobalReplicationGroup, error)

GetGlobalReplicationGroup gets an existing GlobalReplicationGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewGlobalReplicationGroup

func NewGlobalReplicationGroup(ctx *pulumi.Context,
	name string, args *GlobalReplicationGroupArgs, opts ...pulumi.ResourceOption) (*GlobalReplicationGroup, error)

NewGlobalReplicationGroup registers a new resource with the given unique name, arguments, and options.

func (*GlobalReplicationGroup) ElementType

func (*GlobalReplicationGroup) ElementType() reflect.Type

func (*GlobalReplicationGroup) ToGlobalReplicationGroupOutput

func (i *GlobalReplicationGroup) ToGlobalReplicationGroupOutput() GlobalReplicationGroupOutput

func (*GlobalReplicationGroup) ToGlobalReplicationGroupOutputWithContext

func (i *GlobalReplicationGroup) ToGlobalReplicationGroupOutputWithContext(ctx context.Context) GlobalReplicationGroupOutput

func (*GlobalReplicationGroup) ToGlobalReplicationGroupPtrOutput

func (i *GlobalReplicationGroup) ToGlobalReplicationGroupPtrOutput() GlobalReplicationGroupPtrOutput

func (*GlobalReplicationGroup) ToGlobalReplicationGroupPtrOutputWithContext

func (i *GlobalReplicationGroup) ToGlobalReplicationGroupPtrOutputWithContext(ctx context.Context) GlobalReplicationGroupPtrOutput

type GlobalReplicationGroupArgs

type GlobalReplicationGroupArgs struct {
	// A user-created description for the global replication group.
	GlobalReplicationGroupDescription pulumi.StringPtrInput
	// The suffix name of a Global Datastore. If `globalReplicationGroupIdSuffix` is changed, creates a new resource.
	GlobalReplicationGroupIdSuffix pulumi.StringInput
	// The ID of the primary cluster that accepts writes and will replicate updates to the secondary cluster. If `primaryReplicationGroupId` is changed, creates a new resource.
	PrimaryReplicationGroupId pulumi.StringInput
}

The set of arguments for constructing a GlobalReplicationGroup resource.

func (GlobalReplicationGroupArgs) ElementType

func (GlobalReplicationGroupArgs) ElementType() reflect.Type

type GlobalReplicationGroupArray

type GlobalReplicationGroupArray []GlobalReplicationGroupInput

func (GlobalReplicationGroupArray) ElementType

func (GlobalReplicationGroupArray) ToGlobalReplicationGroupArrayOutput

func (i GlobalReplicationGroupArray) ToGlobalReplicationGroupArrayOutput() GlobalReplicationGroupArrayOutput

func (GlobalReplicationGroupArray) ToGlobalReplicationGroupArrayOutputWithContext

func (i GlobalReplicationGroupArray) ToGlobalReplicationGroupArrayOutputWithContext(ctx context.Context) GlobalReplicationGroupArrayOutput

type GlobalReplicationGroupArrayInput

type GlobalReplicationGroupArrayInput interface {
	pulumi.Input

	ToGlobalReplicationGroupArrayOutput() GlobalReplicationGroupArrayOutput
	ToGlobalReplicationGroupArrayOutputWithContext(context.Context) GlobalReplicationGroupArrayOutput
}

GlobalReplicationGroupArrayInput is an input type that accepts GlobalReplicationGroupArray and GlobalReplicationGroupArrayOutput values. You can construct a concrete instance of `GlobalReplicationGroupArrayInput` via:

GlobalReplicationGroupArray{ GlobalReplicationGroupArgs{...} }

type GlobalReplicationGroupArrayOutput

type GlobalReplicationGroupArrayOutput struct{ *pulumi.OutputState }

func (GlobalReplicationGroupArrayOutput) ElementType

func (GlobalReplicationGroupArrayOutput) Index

func (GlobalReplicationGroupArrayOutput) ToGlobalReplicationGroupArrayOutput

func (o GlobalReplicationGroupArrayOutput) ToGlobalReplicationGroupArrayOutput() GlobalReplicationGroupArrayOutput

func (GlobalReplicationGroupArrayOutput) ToGlobalReplicationGroupArrayOutputWithContext

func (o GlobalReplicationGroupArrayOutput) ToGlobalReplicationGroupArrayOutputWithContext(ctx context.Context) GlobalReplicationGroupArrayOutput

type GlobalReplicationGroupInput

type GlobalReplicationGroupInput interface {
	pulumi.Input

	ToGlobalReplicationGroupOutput() GlobalReplicationGroupOutput
	ToGlobalReplicationGroupOutputWithContext(ctx context.Context) GlobalReplicationGroupOutput
}

type GlobalReplicationGroupMap

type GlobalReplicationGroupMap map[string]GlobalReplicationGroupInput

func (GlobalReplicationGroupMap) ElementType

func (GlobalReplicationGroupMap) ElementType() reflect.Type

func (GlobalReplicationGroupMap) ToGlobalReplicationGroupMapOutput

func (i GlobalReplicationGroupMap) ToGlobalReplicationGroupMapOutput() GlobalReplicationGroupMapOutput

func (GlobalReplicationGroupMap) ToGlobalReplicationGroupMapOutputWithContext

func (i GlobalReplicationGroupMap) ToGlobalReplicationGroupMapOutputWithContext(ctx context.Context) GlobalReplicationGroupMapOutput

type GlobalReplicationGroupMapInput

type GlobalReplicationGroupMapInput interface {
	pulumi.Input

	ToGlobalReplicationGroupMapOutput() GlobalReplicationGroupMapOutput
	ToGlobalReplicationGroupMapOutputWithContext(context.Context) GlobalReplicationGroupMapOutput
}

GlobalReplicationGroupMapInput is an input type that accepts GlobalReplicationGroupMap and GlobalReplicationGroupMapOutput values. You can construct a concrete instance of `GlobalReplicationGroupMapInput` via:

GlobalReplicationGroupMap{ "key": GlobalReplicationGroupArgs{...} }

type GlobalReplicationGroupMapOutput

type GlobalReplicationGroupMapOutput struct{ *pulumi.OutputState }

func (GlobalReplicationGroupMapOutput) ElementType

func (GlobalReplicationGroupMapOutput) MapIndex

func (GlobalReplicationGroupMapOutput) ToGlobalReplicationGroupMapOutput

func (o GlobalReplicationGroupMapOutput) ToGlobalReplicationGroupMapOutput() GlobalReplicationGroupMapOutput

func (GlobalReplicationGroupMapOutput) ToGlobalReplicationGroupMapOutputWithContext

func (o GlobalReplicationGroupMapOutput) ToGlobalReplicationGroupMapOutputWithContext(ctx context.Context) GlobalReplicationGroupMapOutput

type GlobalReplicationGroupOutput

type GlobalReplicationGroupOutput struct{ *pulumi.OutputState }

func (GlobalReplicationGroupOutput) ElementType

func (GlobalReplicationGroupOutput) ToGlobalReplicationGroupOutput

func (o GlobalReplicationGroupOutput) ToGlobalReplicationGroupOutput() GlobalReplicationGroupOutput

func (GlobalReplicationGroupOutput) ToGlobalReplicationGroupOutputWithContext

func (o GlobalReplicationGroupOutput) ToGlobalReplicationGroupOutputWithContext(ctx context.Context) GlobalReplicationGroupOutput

func (GlobalReplicationGroupOutput) ToGlobalReplicationGroupPtrOutput

func (o GlobalReplicationGroupOutput) ToGlobalReplicationGroupPtrOutput() GlobalReplicationGroupPtrOutput

func (GlobalReplicationGroupOutput) ToGlobalReplicationGroupPtrOutputWithContext

func (o GlobalReplicationGroupOutput) ToGlobalReplicationGroupPtrOutputWithContext(ctx context.Context) GlobalReplicationGroupPtrOutput

type GlobalReplicationGroupPtrInput

type GlobalReplicationGroupPtrInput interface {
	pulumi.Input

	ToGlobalReplicationGroupPtrOutput() GlobalReplicationGroupPtrOutput
	ToGlobalReplicationGroupPtrOutputWithContext(ctx context.Context) GlobalReplicationGroupPtrOutput
}

type GlobalReplicationGroupPtrOutput

type GlobalReplicationGroupPtrOutput struct{ *pulumi.OutputState }

func (GlobalReplicationGroupPtrOutput) Elem added in v4.15.0

func (GlobalReplicationGroupPtrOutput) ElementType

func (GlobalReplicationGroupPtrOutput) ToGlobalReplicationGroupPtrOutput

func (o GlobalReplicationGroupPtrOutput) ToGlobalReplicationGroupPtrOutput() GlobalReplicationGroupPtrOutput

func (GlobalReplicationGroupPtrOutput) ToGlobalReplicationGroupPtrOutputWithContext

func (o GlobalReplicationGroupPtrOutput) ToGlobalReplicationGroupPtrOutputWithContext(ctx context.Context) GlobalReplicationGroupPtrOutput

type GlobalReplicationGroupState

type GlobalReplicationGroupState struct {
	// (**DEPRECATED** use `engineVersionActual` instead) The full version number of the cache engine running on the members of this global replication group.
	//
	// Deprecated: Use engine_version_actual instead
	ActualEngineVersion pulumi.StringPtrInput
	// The ARN of the ElastiCache Global Replication Group.
	Arn pulumi.StringPtrInput
	// A flag that indicate whether the encryption at rest is enabled.
	AtRestEncryptionEnabled pulumi.BoolPtrInput
	// A flag that indicate whether AuthToken (password) is enabled.
	AuthTokenEnabled pulumi.BoolPtrInput
	// The instance class used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).
	CacheNodeType pulumi.StringPtrInput
	// Indicates whether the Global Datastore is cluster enabled.
	ClusterEnabled pulumi.BoolPtrInput
	// The name of the cache engine to be used for the clusters in this global replication group.
	Engine pulumi.StringPtrInput
	// The full version number of the cache engine running on the members of this global replication group.
	EngineVersionActual pulumi.StringPtrInput
	// A user-created description for the global replication group.
	GlobalReplicationGroupDescription pulumi.StringPtrInput
	// The full ID of the global replication group.
	GlobalReplicationGroupId pulumi.StringPtrInput
	// The suffix name of a Global Datastore. If `globalReplicationGroupIdSuffix` is changed, creates a new resource.
	GlobalReplicationGroupIdSuffix pulumi.StringPtrInput
	// The ID of the primary cluster that accepts writes and will replicate updates to the secondary cluster. If `primaryReplicationGroupId` is changed, creates a new resource.
	PrimaryReplicationGroupId pulumi.StringPtrInput
	// A flag that indicates whether the encryption in transit is enabled.
	TransitEncryptionEnabled pulumi.BoolPtrInput
}

func (GlobalReplicationGroupState) ElementType

type LookupClusterArgs

type LookupClusterArgs struct {
	// Group identifier.
	ClusterId string `pulumi:"clusterId"`
	// The tags assigned to the resource
	Tags map[string]string `pulumi:"tags"`
}

A collection of arguments for invoking getCluster.

type LookupClusterResult

type LookupClusterResult struct {
	Arn string `pulumi:"arn"`
	// The Availability Zone for the cache cluster.
	AvailabilityZone string `pulumi:"availabilityZone"`
	// List of node objects including `id`, `address`, `port` and `availabilityZone`.
	// Referenceable e.g. as `${data.aws_elasticache_cluster.bar.cache_nodes.0.address}`
	CacheNodes []GetClusterCacheNode `pulumi:"cacheNodes"`
	// (Memcached only) The DNS name of the cache cluster without the port appended.
	ClusterAddress string `pulumi:"clusterAddress"`
	ClusterId      string `pulumi:"clusterId"`
	// (Memcached only) The configuration endpoint to allow host discovery.
	ConfigurationEndpoint string `pulumi:"configurationEndpoint"`
	// Name of the cache engine.
	Engine string `pulumi:"engine"`
	// Version number of the cache engine.
	EngineVersion string `pulumi:"engineVersion"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Specifies the weekly time range for when maintenance
	// on the cache cluster is performed.
	MaintenanceWindow string `pulumi:"maintenanceWindow"`
	// The cluster node type.
	NodeType string `pulumi:"nodeType"`
	// An Amazon Resource Name (ARN) of an
	// SNS topic that ElastiCache notifications get sent to.
	NotificationTopicArn string `pulumi:"notificationTopicArn"`
	// The number of cache nodes that the cache cluster has.
	NumCacheNodes int `pulumi:"numCacheNodes"`
	// Name of the parameter group associated with this cache cluster.
	ParameterGroupName string `pulumi:"parameterGroupName"`
	// The port number on which each of the cache nodes will
	// accept connections.
	Port int `pulumi:"port"`
	// The replication group to which this cache cluster belongs.
	ReplicationGroupId string `pulumi:"replicationGroupId"`
	// List VPC security groups associated with the cache cluster.
	SecurityGroupIds []string `pulumi:"securityGroupIds"`
	// List of security group names associated with this cache cluster.
	SecurityGroupNames []string `pulumi:"securityGroupNames"`
	// The number of days for which ElastiCache will
	// retain automatic cache cluster snapshots before deleting them.
	SnapshotRetentionLimit int `pulumi:"snapshotRetentionLimit"`
	// The daily time range (in UTC) during which ElastiCache will
	// begin taking a daily snapshot of the cache cluster.
	SnapshotWindow string `pulumi:"snapshotWindow"`
	// Name of the subnet group associated to the cache cluster.
	SubnetGroupName string `pulumi:"subnetGroupName"`
	// The tags assigned to the resource
	Tags map[string]string `pulumi:"tags"`
}

A collection of values returned by getCluster.

func LookupCluster

func LookupCluster(ctx *pulumi.Context, args *LookupClusterArgs, opts ...pulumi.InvokeOption) (*LookupClusterResult, error)

Use this data source to get information about an Elasticache Cluster

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.LookupCluster(ctx, &elasticache.LookupClusterArgs{
			ClusterId: "my-cluster-id",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupReplicationGroupArgs

type LookupReplicationGroupArgs struct {
	// The identifier for the replication group.
	ReplicationGroupId string `pulumi:"replicationGroupId"`
}

A collection of arguments for invoking getReplicationGroup.

type LookupReplicationGroupResult

type LookupReplicationGroupResult struct {
	// The Amazon Resource Name (ARN) of the created ElastiCache Replication Group.
	Arn string `pulumi:"arn"`
	// Specifies whether an AuthToken (password) is enabled.
	AuthTokenEnabled bool `pulumi:"authTokenEnabled"`
	// A flag whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails.
	AutomaticFailoverEnabled bool `pulumi:"automaticFailoverEnabled"`
	// The configuration endpoint address to allow host discovery.
	ConfigurationEndpointAddress string `pulumi:"configurationEndpointAddress"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The identifiers of all the nodes that are part of this replication group.
	MemberClusters []string `pulumi:"memberClusters"`
	// Specifies whether Multi-AZ Support is enabled for the replication group.
	MultiAzEnabled bool `pulumi:"multiAzEnabled"`
	// The cluster node type.
	NodeType string `pulumi:"nodeType"`
	// The number of cache clusters that the replication group has.
	NumberCacheClusters int `pulumi:"numberCacheClusters"`
	// The port number on which the configuration endpoint will accept connections.
	Port int `pulumi:"port"`
	// The endpoint of the primary node in this node group (shard).
	PrimaryEndpointAddress string `pulumi:"primaryEndpointAddress"`
	// The endpoint of the reader node in this node group (shard).
	ReaderEndpointAddress string `pulumi:"readerEndpointAddress"`
	// The description of the replication group.
	ReplicationGroupDescription string `pulumi:"replicationGroupDescription"`
	ReplicationGroupId          string `pulumi:"replicationGroupId"`
	// The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them.
	SnapshotRetentionLimit int `pulumi:"snapshotRetentionLimit"`
	// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).
	SnapshotWindow string `pulumi:"snapshotWindow"`
}

A collection of values returned by getReplicationGroup.

func LookupReplicationGroup

func LookupReplicationGroup(ctx *pulumi.Context, args *LookupReplicationGroupArgs, opts ...pulumi.InvokeOption) (*LookupReplicationGroupResult, error)

Use this data source to get information about an Elasticache Replication Group.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.LookupReplicationGroup(ctx, &elasticache.LookupReplicationGroupArgs{
			ReplicationGroupId: "example",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupUserArgs added in v4.14.0

type LookupUserArgs struct {
	// A string for what access a user possesses within the associated ElastiCache replication groups or clusters.
	AccessString       *string  `pulumi:"accessString"`
	Engine             *string  `pulumi:"engine"`
	NoPasswordRequired *bool    `pulumi:"noPasswordRequired"`
	Passwords          []string `pulumi:"passwords"`
	// The identifier for the user.
	UserId string `pulumi:"userId"`
	// The user name of the user.
	UserName *string `pulumi:"userName"`
}

A collection of arguments for invoking getUser.

type LookupUserResult added in v4.14.0

type LookupUserResult struct {
	// A string for what access a user possesses within the associated ElastiCache replication groups or clusters.
	AccessString *string `pulumi:"accessString"`
	Engine       *string `pulumi:"engine"`
	// The provider-assigned unique ID for this managed resource.
	Id                 string   `pulumi:"id"`
	NoPasswordRequired *bool    `pulumi:"noPasswordRequired"`
	Passwords          []string `pulumi:"passwords"`
	// The identifier for the user.
	UserId string `pulumi:"userId"`
	// The user name of the user.
	UserName *string `pulumi:"userName"`
}

A collection of values returned by getUser.

func LookupUser added in v4.14.0

func LookupUser(ctx *pulumi.Context, args *LookupUserArgs, opts ...pulumi.InvokeOption) (*LookupUserResult, error)

Use this data source to get information about an Elasticache User.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.LookupUser(ctx, &elasticache.LookupUserArgs{
			UserId: "example",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type ParameterGroup

type ParameterGroup struct {
	pulumi.CustomResourceState

	// The AWS ARN associated with the parameter group.
	Arn pulumi.StringOutput `pulumi:"arn"`
	// The description of the ElastiCache parameter group. Defaults to "Managed by Pulumi".
	Description pulumi.StringOutput `pulumi:"description"`
	// The family of the ElastiCache parameter group.
	Family pulumi.StringOutput `pulumi:"family"`
	// The name of the ElastiCache parameter.
	Name pulumi.StringOutput `pulumi:"name"`
	// A list of ElastiCache parameters to apply.
	Parameters ParameterGroupParameterArrayOutput `pulumi:"parameters"`
	// Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}

Provides an ElastiCache parameter group resource.

> **NOTE:** Attempting to remove the `reserved-memory` parameter when `family` is set to `redis2.6` or `redis2.8` may show a perpetual difference in this provider due to an Elasticache API limitation. Leave that parameter configured with any value to workaround the issue.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.NewParameterGroup(ctx, "_default", &elasticache.ParameterGroupArgs{
			Family: pulumi.String("redis2.8"),
			Parameters: elasticache.ParameterGroupParameterArray{
				&elasticache.ParameterGroupParameterArgs{
					Name:  pulumi.String("activerehashing"),
					Value: pulumi.String("yes"),
				},
				&elasticache.ParameterGroupParameterArgs{
					Name:  pulumi.String("min-slaves-to-write"),
					Value: pulumi.String("2"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ElastiCache Parameter Groups can be imported using the `name`, e.g.

```sh

$ pulumi import aws:elasticache/parameterGroup:ParameterGroup default redis-params

```

func GetParameterGroup

func GetParameterGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ParameterGroupState, opts ...pulumi.ResourceOption) (*ParameterGroup, error)

GetParameterGroup gets an existing ParameterGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewParameterGroup

func NewParameterGroup(ctx *pulumi.Context,
	name string, args *ParameterGroupArgs, opts ...pulumi.ResourceOption) (*ParameterGroup, error)

NewParameterGroup registers a new resource with the given unique name, arguments, and options.

func (*ParameterGroup) ElementType

func (*ParameterGroup) ElementType() reflect.Type

func (*ParameterGroup) ToParameterGroupOutput

func (i *ParameterGroup) ToParameterGroupOutput() ParameterGroupOutput

func (*ParameterGroup) ToParameterGroupOutputWithContext

func (i *ParameterGroup) ToParameterGroupOutputWithContext(ctx context.Context) ParameterGroupOutput

func (*ParameterGroup) ToParameterGroupPtrOutput

func (i *ParameterGroup) ToParameterGroupPtrOutput() ParameterGroupPtrOutput

func (*ParameterGroup) ToParameterGroupPtrOutputWithContext

func (i *ParameterGroup) ToParameterGroupPtrOutputWithContext(ctx context.Context) ParameterGroupPtrOutput

type ParameterGroupArgs

type ParameterGroupArgs struct {
	// The description of the ElastiCache parameter group. Defaults to "Managed by Pulumi".
	Description pulumi.StringPtrInput
	// The family of the ElastiCache parameter group.
	Family pulumi.StringInput
	// The name of the ElastiCache parameter.
	Name pulumi.StringPtrInput
	// A list of ElastiCache parameters to apply.
	Parameters ParameterGroupParameterArrayInput
	// Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	TagsAll pulumi.StringMapInput
}

The set of arguments for constructing a ParameterGroup resource.

func (ParameterGroupArgs) ElementType

func (ParameterGroupArgs) ElementType() reflect.Type

type ParameterGroupArray

type ParameterGroupArray []ParameterGroupInput

func (ParameterGroupArray) ElementType

func (ParameterGroupArray) ElementType() reflect.Type

func (ParameterGroupArray) ToParameterGroupArrayOutput

func (i ParameterGroupArray) ToParameterGroupArrayOutput() ParameterGroupArrayOutput

func (ParameterGroupArray) ToParameterGroupArrayOutputWithContext

func (i ParameterGroupArray) ToParameterGroupArrayOutputWithContext(ctx context.Context) ParameterGroupArrayOutput

type ParameterGroupArrayInput

type ParameterGroupArrayInput interface {
	pulumi.Input

	ToParameterGroupArrayOutput() ParameterGroupArrayOutput
	ToParameterGroupArrayOutputWithContext(context.Context) ParameterGroupArrayOutput
}

ParameterGroupArrayInput is an input type that accepts ParameterGroupArray and ParameterGroupArrayOutput values. You can construct a concrete instance of `ParameterGroupArrayInput` via:

ParameterGroupArray{ ParameterGroupArgs{...} }

type ParameterGroupArrayOutput

type ParameterGroupArrayOutput struct{ *pulumi.OutputState }

func (ParameterGroupArrayOutput) ElementType

func (ParameterGroupArrayOutput) ElementType() reflect.Type

func (ParameterGroupArrayOutput) Index

func (ParameterGroupArrayOutput) ToParameterGroupArrayOutput

func (o ParameterGroupArrayOutput) ToParameterGroupArrayOutput() ParameterGroupArrayOutput

func (ParameterGroupArrayOutput) ToParameterGroupArrayOutputWithContext

func (o ParameterGroupArrayOutput) ToParameterGroupArrayOutputWithContext(ctx context.Context) ParameterGroupArrayOutput

type ParameterGroupInput

type ParameterGroupInput interface {
	pulumi.Input

	ToParameterGroupOutput() ParameterGroupOutput
	ToParameterGroupOutputWithContext(ctx context.Context) ParameterGroupOutput
}

type ParameterGroupMap

type ParameterGroupMap map[string]ParameterGroupInput

func (ParameterGroupMap) ElementType

func (ParameterGroupMap) ElementType() reflect.Type

func (ParameterGroupMap) ToParameterGroupMapOutput

func (i ParameterGroupMap) ToParameterGroupMapOutput() ParameterGroupMapOutput

func (ParameterGroupMap) ToParameterGroupMapOutputWithContext

func (i ParameterGroupMap) ToParameterGroupMapOutputWithContext(ctx context.Context) ParameterGroupMapOutput

type ParameterGroupMapInput

type ParameterGroupMapInput interface {
	pulumi.Input

	ToParameterGroupMapOutput() ParameterGroupMapOutput
	ToParameterGroupMapOutputWithContext(context.Context) ParameterGroupMapOutput
}

ParameterGroupMapInput is an input type that accepts ParameterGroupMap and ParameterGroupMapOutput values. You can construct a concrete instance of `ParameterGroupMapInput` via:

ParameterGroupMap{ "key": ParameterGroupArgs{...} }

type ParameterGroupMapOutput

type ParameterGroupMapOutput struct{ *pulumi.OutputState }

func (ParameterGroupMapOutput) ElementType

func (ParameterGroupMapOutput) ElementType() reflect.Type

func (ParameterGroupMapOutput) MapIndex

func (ParameterGroupMapOutput) ToParameterGroupMapOutput

func (o ParameterGroupMapOutput) ToParameterGroupMapOutput() ParameterGroupMapOutput

func (ParameterGroupMapOutput) ToParameterGroupMapOutputWithContext

func (o ParameterGroupMapOutput) ToParameterGroupMapOutputWithContext(ctx context.Context) ParameterGroupMapOutput

type ParameterGroupOutput

type ParameterGroupOutput struct{ *pulumi.OutputState }

func (ParameterGroupOutput) ElementType

func (ParameterGroupOutput) ElementType() reflect.Type

func (ParameterGroupOutput) ToParameterGroupOutput

func (o ParameterGroupOutput) ToParameterGroupOutput() ParameterGroupOutput

func (ParameterGroupOutput) ToParameterGroupOutputWithContext

func (o ParameterGroupOutput) ToParameterGroupOutputWithContext(ctx context.Context) ParameterGroupOutput

func (ParameterGroupOutput) ToParameterGroupPtrOutput

func (o ParameterGroupOutput) ToParameterGroupPtrOutput() ParameterGroupPtrOutput

func (ParameterGroupOutput) ToParameterGroupPtrOutputWithContext

func (o ParameterGroupOutput) ToParameterGroupPtrOutputWithContext(ctx context.Context) ParameterGroupPtrOutput

type ParameterGroupParameter

type ParameterGroupParameter struct {
	// The name of the ElastiCache parameter.
	Name string `pulumi:"name"`
	// The value of the ElastiCache parameter.
	Value string `pulumi:"value"`
}

type ParameterGroupParameterArgs

type ParameterGroupParameterArgs struct {
	// The name of the ElastiCache parameter.
	Name pulumi.StringInput `pulumi:"name"`
	// The value of the ElastiCache parameter.
	Value pulumi.StringInput `pulumi:"value"`
}

func (ParameterGroupParameterArgs) ElementType

func (ParameterGroupParameterArgs) ToParameterGroupParameterOutput

func (i ParameterGroupParameterArgs) ToParameterGroupParameterOutput() ParameterGroupParameterOutput

func (ParameterGroupParameterArgs) ToParameterGroupParameterOutputWithContext

func (i ParameterGroupParameterArgs) ToParameterGroupParameterOutputWithContext(ctx context.Context) ParameterGroupParameterOutput

type ParameterGroupParameterArray

type ParameterGroupParameterArray []ParameterGroupParameterInput

func (ParameterGroupParameterArray) ElementType

func (ParameterGroupParameterArray) ToParameterGroupParameterArrayOutput

func (i ParameterGroupParameterArray) ToParameterGroupParameterArrayOutput() ParameterGroupParameterArrayOutput

func (ParameterGroupParameterArray) ToParameterGroupParameterArrayOutputWithContext

func (i ParameterGroupParameterArray) ToParameterGroupParameterArrayOutputWithContext(ctx context.Context) ParameterGroupParameterArrayOutput

type ParameterGroupParameterArrayInput

type ParameterGroupParameterArrayInput interface {
	pulumi.Input

	ToParameterGroupParameterArrayOutput() ParameterGroupParameterArrayOutput
	ToParameterGroupParameterArrayOutputWithContext(context.Context) ParameterGroupParameterArrayOutput
}

ParameterGroupParameterArrayInput is an input type that accepts ParameterGroupParameterArray and ParameterGroupParameterArrayOutput values. You can construct a concrete instance of `ParameterGroupParameterArrayInput` via:

ParameterGroupParameterArray{ ParameterGroupParameterArgs{...} }

type ParameterGroupParameterArrayOutput

type ParameterGroupParameterArrayOutput struct{ *pulumi.OutputState }

func (ParameterGroupParameterArrayOutput) ElementType

func (ParameterGroupParameterArrayOutput) Index

func (ParameterGroupParameterArrayOutput) ToParameterGroupParameterArrayOutput

func (o ParameterGroupParameterArrayOutput) ToParameterGroupParameterArrayOutput() ParameterGroupParameterArrayOutput

func (ParameterGroupParameterArrayOutput) ToParameterGroupParameterArrayOutputWithContext

func (o ParameterGroupParameterArrayOutput) ToParameterGroupParameterArrayOutputWithContext(ctx context.Context) ParameterGroupParameterArrayOutput

type ParameterGroupParameterInput

type ParameterGroupParameterInput interface {
	pulumi.Input

	ToParameterGroupParameterOutput() ParameterGroupParameterOutput
	ToParameterGroupParameterOutputWithContext(context.Context) ParameterGroupParameterOutput
}

ParameterGroupParameterInput is an input type that accepts ParameterGroupParameterArgs and ParameterGroupParameterOutput values. You can construct a concrete instance of `ParameterGroupParameterInput` via:

ParameterGroupParameterArgs{...}

type ParameterGroupParameterOutput

type ParameterGroupParameterOutput struct{ *pulumi.OutputState }

func (ParameterGroupParameterOutput) ElementType

func (ParameterGroupParameterOutput) Name

The name of the ElastiCache parameter.

func (ParameterGroupParameterOutput) ToParameterGroupParameterOutput

func (o ParameterGroupParameterOutput) ToParameterGroupParameterOutput() ParameterGroupParameterOutput

func (ParameterGroupParameterOutput) ToParameterGroupParameterOutputWithContext

func (o ParameterGroupParameterOutput) ToParameterGroupParameterOutputWithContext(ctx context.Context) ParameterGroupParameterOutput

func (ParameterGroupParameterOutput) Value

The value of the ElastiCache parameter.

type ParameterGroupPtrInput

type ParameterGroupPtrInput interface {
	pulumi.Input

	ToParameterGroupPtrOutput() ParameterGroupPtrOutput
	ToParameterGroupPtrOutputWithContext(ctx context.Context) ParameterGroupPtrOutput
}

type ParameterGroupPtrOutput

type ParameterGroupPtrOutput struct{ *pulumi.OutputState }

func (ParameterGroupPtrOutput) Elem added in v4.15.0

func (ParameterGroupPtrOutput) ElementType

func (ParameterGroupPtrOutput) ElementType() reflect.Type

func (ParameterGroupPtrOutput) ToParameterGroupPtrOutput

func (o ParameterGroupPtrOutput) ToParameterGroupPtrOutput() ParameterGroupPtrOutput

func (ParameterGroupPtrOutput) ToParameterGroupPtrOutputWithContext

func (o ParameterGroupPtrOutput) ToParameterGroupPtrOutputWithContext(ctx context.Context) ParameterGroupPtrOutput

type ParameterGroupState

type ParameterGroupState struct {
	// The AWS ARN associated with the parameter group.
	Arn pulumi.StringPtrInput
	// The description of the ElastiCache parameter group. Defaults to "Managed by Pulumi".
	Description pulumi.StringPtrInput
	// The family of the ElastiCache parameter group.
	Family pulumi.StringPtrInput
	// The name of the ElastiCache parameter.
	Name pulumi.StringPtrInput
	// A list of ElastiCache parameters to apply.
	Parameters ParameterGroupParameterArrayInput
	// Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	TagsAll pulumi.StringMapInput
}

func (ParameterGroupState) ElementType

func (ParameterGroupState) ElementType() reflect.Type

type ReplicationGroup

type ReplicationGroup struct {
	pulumi.CustomResourceState

	// Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`.
	ApplyImmediately pulumi.BoolOutput `pulumi:"applyImmediately"`
	// The Amazon Resource Name (ARN) of the created ElastiCache Replication Group.
	Arn pulumi.StringOutput `pulumi:"arn"`
	// Whether to enable encryption at rest.
	AtRestEncryptionEnabled pulumi.BoolOutput `pulumi:"atRestEncryptionEnabled"`
	// The password used to access a password protected server. Can be specified only if `transitEncryptionEnabled = true`.
	AuthToken pulumi.StringPtrOutput `pulumi:"authToken"`
	// Specifies whether a minor engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. This parameter is currently not supported by the AWS API. Defaults to `true`.
	AutoMinorVersionUpgrade pulumi.BoolPtrOutput `pulumi:"autoMinorVersionUpgrade"`
	// Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numberCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`.
	AutomaticFailoverEnabled pulumi.BoolPtrOutput `pulumi:"automaticFailoverEnabled"`
	// A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important.
	AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"`
	// Indicates if cluster mode is enabled.
	ClusterEnabled pulumi.BoolOutput `pulumi:"clusterEnabled"`
	// Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true.
	ClusterMode ReplicationGroupClusterModeOutput `pulumi:"clusterMode"`
	// The address of the replication group configuration endpoint when cluster mode is enabled.
	ConfigurationEndpointAddress pulumi.StringOutput `pulumi:"configurationEndpointAddress"`
	// The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.
	Engine pulumi.StringPtrOutput `pulumi:"engine"`
	// The version number of the cache engine to be used for the cache clusters in this replication group. If the version is 6 or higher, only the major version can be set, e.g. `6.x`, otherwise, specify the full version desired, e.g. `5.0.6`. The actual engine version used is returned in the attribute `engineVersionActual`, defined below.
	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
	// The running version of the cache engine.
	EngineVersionActual pulumi.StringOutput `pulumi:"engineVersionActual"`
	// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made.
	FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"`
	// The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If `globalReplicationGroupId` is set, the `numNodeGroups` parameter of the `clusterMode` block cannot be set.
	GlobalReplicationGroupId pulumi.StringOutput `pulumi:"globalReplicationGroupId"`
	// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`.
	KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"`
	// Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`
	MaintenanceWindow pulumi.StringOutput `pulumi:"maintenanceWindow"`
	// The identifiers of all the nodes that are part of this replication group.
	MemberClusters pulumi.StringArrayOutput `pulumi:"memberClusters"`
	// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`.
	MultiAzEnabled pulumi.BoolPtrOutput `pulumi:"multiAzEnabled"`
	// The instance class to be used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). Required unless `globalReplicationGroupId` is set. Cannot be set if `globalReplicationGroupId` is set.
	NodeType pulumi.StringOutput `pulumi:"nodeType"`
	// An Amazon Resource Name (ARN) of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`
	NotificationTopicArn pulumi.StringPtrOutput `pulumi:"notificationTopicArn"`
	// The number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. One of `numberCacheClusters` or `clusterMode` is required.
	NumberCacheClusters pulumi.IntOutput `pulumi:"numberCacheClusters"`
	// The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e. data sharding, use a parameter group that has the parameter `cluster-enabled` set to true.
	ParameterGroupName pulumi.StringOutput `pulumi:"parameterGroupName"`
	// The port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379.
	Port pulumi.IntPtrOutput `pulumi:"port"`
	// (Redis only) The address of the endpoint for the primary node in the replication group, if the cluster mode is disabled.
	PrimaryEndpointAddress pulumi.StringOutput `pulumi:"primaryEndpointAddress"`
	// (Redis only) The address of the endpoint for the reader node in the replication group, if the cluster mode is disabled.
	ReaderEndpointAddress pulumi.StringOutput `pulumi:"readerEndpointAddress"`
	// A user-created description for the replication group.
	ReplicationGroupDescription pulumi.StringOutput `pulumi:"replicationGroupDescription"`
	// The replication group identifier. This parameter is stored as a lowercase string.
	ReplicationGroupId pulumi.StringOutput `pulumi:"replicationGroupId"`
	// One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud
	SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"`
	// A list of cache security group names to associate with this replication group.
	SecurityGroupNames pulumi.StringArrayOutput `pulumi:"securityGroupNames"`
	// A list of Amazon Resource Names (ARNs) that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas.
	SnapshotArns pulumi.StringArrayOutput `pulumi:"snapshotArns"`
	// The name of a snapshot from which to restore data into the new node group. Changing the `snapshotName` forces a new resource.
	SnapshotName pulumi.StringPtrOutput `pulumi:"snapshotName"`
	// The number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes
	SnapshotRetentionLimit pulumi.IntPtrOutput `pulumi:"snapshotRetentionLimit"`
	// The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: `05:00-09:00`
	SnapshotWindow pulumi.StringOutput `pulumi:"snapshotWindow"`
	// The name of the cache subnet group to be used for the replication group.
	SubnetGroupName pulumi.StringOutput    `pulumi:"subnetGroupName"`
	Tags            pulumi.StringMapOutput `pulumi:"tags"`
	TagsAll         pulumi.StringMapOutput `pulumi:"tagsAll"`
	// Whether to enable encryption in transit.
	TransitEncryptionEnabled pulumi.BoolOutput `pulumi:"transitEncryptionEnabled"`
}

Provides an ElastiCache Replication Group resource.

For working with a [Memcached cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html) or a [single-node Redis instance (Cluster Mode Disabled)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html), see the `elasticache.Cluster` resource.

> **Note:** When you change an attribute, such as `engineVersion`, by default the ElastiCache API applies it in the next maintenance window. Because of this, this provider may report a difference in its planning phase because the actual modification has not yet taken place. You can use the `applyImmediately` flag to instruct the service to apply the change immediately. Using `applyImmediately` can result in a brief downtime as servers reboots. See the AWS Documentation on [Modifying an ElastiCache Cache Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Modify.html) for more information.

> **Note:** Any attribute changes that re-create the resource will be applied immediately, regardless of the value of `applyImmediately`.

> **Note:** Be aware of the terminology collision around "cluster" for `elasticache.ReplicationGroup`. For example, it is possible to create a ["Cluster Mode Disabled [Redis] Cluster"](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Create.CON.Redis.html). With "Cluster Mode Enabled", the data will be stored in shards (called "node groups"). See [Redis Cluster Configuration](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/cluster-create-determine-requirements.html#redis-cluster-configuration) for a diagram of the differences. To enable cluster mode, use a parameter group that has cluster mode enabled. The default parameter groups provided by AWS end with ".cluster.on", for example `default.redis6.x.cluster.on`.

## Example Usage ### Redis Cluster Mode Disabled

To create a single shard primary with single read replica:

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.NewReplicationGroup(ctx, "example", &elasticache.ReplicationGroupArgs{
			AutomaticFailoverEnabled: pulumi.Bool(true),
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-west-2a"),
				pulumi.String("us-west-2b"),
			},
			NodeType:                    pulumi.String("cache.m4.large"),
			NumberCacheClusters:         pulumi.Int(2),
			ParameterGroupName:          pulumi.String("default.redis3.2"),
			Port:                        pulumi.Int(6379),
			ReplicationGroupDescription: pulumi.String("test description"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

You have two options for adjusting the number of replicas:

* Adjusting `numberCacheClusters` directly. This will attempt to automatically add or remove replicas, but provides no granular control (e.g. preferred availability zone, cache cluster ID) for the added or removed replicas. This also currently expects cache cluster IDs in the form of `replication_group_id-00#`. * Otherwise for fine grained control of the underlying cache clusters, they can be added or removed with the `elasticache.Cluster` resource and its `replicationGroupId` attribute. In this situation, you will need to utilize [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to prevent perpetual differences with the `numberCacheCluster` attribute.

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := elasticache.NewReplicationGroup(ctx, "example", &elasticache.ReplicationGroupArgs{
			AutomaticFailoverEnabled: pulumi.Bool(true),
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-west-2a"),
				pulumi.String("us-west-2b"),
			},
			ReplicationGroupDescription: pulumi.String("test description"),
			NodeType:                    pulumi.String("cache.m4.large"),
			NumberCacheClusters:         pulumi.Int(2),
			ParameterGroupName:          pulumi.String("default.redis3.2"),
			Port:                        pulumi.Int(6379),
		})
		if err != nil {
			return err
		}
		var replica []*elasticache.Cluster
		for key0, _ := range 1 == true {
			__res, err := elasticache.NewCluster(ctx, fmt.Sprintf("replica-%v", key0), &elasticache.ClusterArgs{
				ReplicationGroupId: example.ID(),
			})
			if err != nil {
				return err
			}
			replica = append(replica, __res)
		}
		return nil
	})
}

``` ### Redis Cluster Mode Enabled

To create two shards with a primary and a single read replica each:

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.NewReplicationGroup(ctx, "baz", &elasticache.ReplicationGroupArgs{
			AutomaticFailoverEnabled: pulumi.Bool(true),
			ClusterMode: &elasticache.ReplicationGroupClusterModeArgs{
				NumNodeGroups:        pulumi.Int(2),
				ReplicasPerNodeGroup: pulumi.Int(1),
			},
			NodeType:                    pulumi.String("cache.t2.small"),
			ParameterGroupName:          pulumi.String("default.redis3.2.cluster.on"),
			Port:                        pulumi.Int(6379),
			ReplicationGroupDescription: pulumi.String("test description"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

> **Note:** We currently do not support passing a `primaryClusterId` in order to create the Replication Group.

> **Note:** Automatic Failover is unavailable for Redis versions earlier than 2.8.6, and unavailable on T1 node types. For T2 node types, it is only available on Redis version 3.2.4 or later with cluster mode enabled. See the [High Availability Using Replication Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.html) guide for full details on using Replication Groups. ### Creating a secondary replication group for a global replication group

A Global Replication Group can have one one two secondary Replication Groups in different regions. These are added to an existing Global Replication Group.

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		primary, err := elasticache.NewReplicationGroup(ctx, "primary", &elasticache.ReplicationGroupArgs{
			ReplicationGroupDescription: pulumi.String("primary replication group"),
			Engine:                      pulumi.String("redis"),
			EngineVersion:               pulumi.String("5.0.6"),
			NodeType:                    pulumi.String("cache.m5.large"),
			NumberCacheClusters:         pulumi.Int(1),
		}, pulumi.Provider(aws.Other_region))
		if err != nil {
			return err
		}
		example, err := elasticache.NewGlobalReplicationGroup(ctx, "example", &elasticache.GlobalReplicationGroupArgs{
			GlobalReplicationGroupIdSuffix: pulumi.String("example"),
			PrimaryReplicationGroupId:      primary.ID(),
		}, pulumi.Provider(aws.Other_region))
		if err != nil {
			return err
		}
		_, err = elasticache.NewReplicationGroup(ctx, "secondary", &elasticache.ReplicationGroupArgs{
			ReplicationGroupDescription: pulumi.String("secondary replication group"),
			GlobalReplicationGroupId:    example.GlobalReplicationGroupId,
			NumberCacheClusters:         pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ElastiCache Replication Groups can be imported using the `replication_group_id`, e.g.

```sh

$ pulumi import aws:elasticache/replicationGroup:ReplicationGroup my_replication_group replication-group-1

```

func GetReplicationGroup

func GetReplicationGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ReplicationGroupState, opts ...pulumi.ResourceOption) (*ReplicationGroup, error)

GetReplicationGroup gets an existing ReplicationGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewReplicationGroup

func NewReplicationGroup(ctx *pulumi.Context,
	name string, args *ReplicationGroupArgs, opts ...pulumi.ResourceOption) (*ReplicationGroup, error)

NewReplicationGroup registers a new resource with the given unique name, arguments, and options.

func (*ReplicationGroup) ElementType

func (*ReplicationGroup) ElementType() reflect.Type

func (*ReplicationGroup) ToReplicationGroupOutput

func (i *ReplicationGroup) ToReplicationGroupOutput() ReplicationGroupOutput

func (*ReplicationGroup) ToReplicationGroupOutputWithContext

func (i *ReplicationGroup) ToReplicationGroupOutputWithContext(ctx context.Context) ReplicationGroupOutput

func (*ReplicationGroup) ToReplicationGroupPtrOutput

func (i *ReplicationGroup) ToReplicationGroupPtrOutput() ReplicationGroupPtrOutput

func (*ReplicationGroup) ToReplicationGroupPtrOutputWithContext

func (i *ReplicationGroup) ToReplicationGroupPtrOutputWithContext(ctx context.Context) ReplicationGroupPtrOutput

type ReplicationGroupArgs

type ReplicationGroupArgs struct {
	// Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`.
	ApplyImmediately pulumi.BoolPtrInput
	// Whether to enable encryption at rest.
	AtRestEncryptionEnabled pulumi.BoolPtrInput
	// The password used to access a password protected server. Can be specified only if `transitEncryptionEnabled = true`.
	AuthToken pulumi.StringPtrInput
	// Specifies whether a minor engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. This parameter is currently not supported by the AWS API. Defaults to `true`.
	AutoMinorVersionUpgrade pulumi.BoolPtrInput
	// Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numberCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`.
	AutomaticFailoverEnabled pulumi.BoolPtrInput
	// A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important.
	AvailabilityZones pulumi.StringArrayInput
	// Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true.
	ClusterMode ReplicationGroupClusterModePtrInput
	// The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.
	Engine pulumi.StringPtrInput
	// The version number of the cache engine to be used for the cache clusters in this replication group. If the version is 6 or higher, only the major version can be set, e.g. `6.x`, otherwise, specify the full version desired, e.g. `5.0.6`. The actual engine version used is returned in the attribute `engineVersionActual`, defined below.
	EngineVersion pulumi.StringPtrInput
	// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made.
	FinalSnapshotIdentifier pulumi.StringPtrInput
	// The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If `globalReplicationGroupId` is set, the `numNodeGroups` parameter of the `clusterMode` block cannot be set.
	GlobalReplicationGroupId pulumi.StringPtrInput
	// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`.
	KmsKeyId pulumi.StringPtrInput
	// Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`
	MaintenanceWindow pulumi.StringPtrInput
	// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`.
	MultiAzEnabled pulumi.BoolPtrInput
	// The instance class to be used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). Required unless `globalReplicationGroupId` is set. Cannot be set if `globalReplicationGroupId` is set.
	NodeType pulumi.StringPtrInput
	// An Amazon Resource Name (ARN) of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`
	NotificationTopicArn pulumi.StringPtrInput
	// The number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. One of `numberCacheClusters` or `clusterMode` is required.
	NumberCacheClusters pulumi.IntPtrInput
	// The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e. data sharding, use a parameter group that has the parameter `cluster-enabled` set to true.
	ParameterGroupName pulumi.StringPtrInput
	// The port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379.
	Port pulumi.IntPtrInput
	// A user-created description for the replication group.
	ReplicationGroupDescription pulumi.StringInput
	// The replication group identifier. This parameter is stored as a lowercase string.
	ReplicationGroupId pulumi.StringPtrInput
	// One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud
	SecurityGroupIds pulumi.StringArrayInput
	// A list of cache security group names to associate with this replication group.
	SecurityGroupNames pulumi.StringArrayInput
	// A list of Amazon Resource Names (ARNs) that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas.
	SnapshotArns pulumi.StringArrayInput
	// The name of a snapshot from which to restore data into the new node group. Changing the `snapshotName` forces a new resource.
	SnapshotName pulumi.StringPtrInput
	// The number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes
	SnapshotRetentionLimit pulumi.IntPtrInput
	// The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: `05:00-09:00`
	SnapshotWindow pulumi.StringPtrInput
	// The name of the cache subnet group to be used for the replication group.
	SubnetGroupName pulumi.StringPtrInput
	Tags            pulumi.StringMapInput
	TagsAll         pulumi.StringMapInput
	// Whether to enable encryption in transit.
	TransitEncryptionEnabled pulumi.BoolPtrInput
}

The set of arguments for constructing a ReplicationGroup resource.

func (ReplicationGroupArgs) ElementType

func (ReplicationGroupArgs) ElementType() reflect.Type

type ReplicationGroupArray

type ReplicationGroupArray []ReplicationGroupInput

func (ReplicationGroupArray) ElementType

func (ReplicationGroupArray) ElementType() reflect.Type

func (ReplicationGroupArray) ToReplicationGroupArrayOutput

func (i ReplicationGroupArray) ToReplicationGroupArrayOutput() ReplicationGroupArrayOutput

func (ReplicationGroupArray) ToReplicationGroupArrayOutputWithContext

func (i ReplicationGroupArray) ToReplicationGroupArrayOutputWithContext(ctx context.Context) ReplicationGroupArrayOutput

type ReplicationGroupArrayInput

type ReplicationGroupArrayInput interface {
	pulumi.Input

	ToReplicationGroupArrayOutput() ReplicationGroupArrayOutput
	ToReplicationGroupArrayOutputWithContext(context.Context) ReplicationGroupArrayOutput
}

ReplicationGroupArrayInput is an input type that accepts ReplicationGroupArray and ReplicationGroupArrayOutput values. You can construct a concrete instance of `ReplicationGroupArrayInput` via:

ReplicationGroupArray{ ReplicationGroupArgs{...} }

type ReplicationGroupArrayOutput

type ReplicationGroupArrayOutput struct{ *pulumi.OutputState }

func (ReplicationGroupArrayOutput) ElementType

func (ReplicationGroupArrayOutput) Index

func (ReplicationGroupArrayOutput) ToReplicationGroupArrayOutput

func (o ReplicationGroupArrayOutput) ToReplicationGroupArrayOutput() ReplicationGroupArrayOutput

func (ReplicationGroupArrayOutput) ToReplicationGroupArrayOutputWithContext

func (o ReplicationGroupArrayOutput) ToReplicationGroupArrayOutputWithContext(ctx context.Context) ReplicationGroupArrayOutput

type ReplicationGroupClusterMode

type ReplicationGroupClusterMode struct {
	// Number of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modifications. Required unless `globalReplicationGroupId` is set.
	NumNodeGroups *int `pulumi:"numNodeGroups"`
	// Number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications.
	ReplicasPerNodeGroup int `pulumi:"replicasPerNodeGroup"`
}

type ReplicationGroupClusterModeArgs

type ReplicationGroupClusterModeArgs struct {
	// Number of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modifications. Required unless `globalReplicationGroupId` is set.
	NumNodeGroups pulumi.IntPtrInput `pulumi:"numNodeGroups"`
	// Number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications.
	ReplicasPerNodeGroup pulumi.IntInput `pulumi:"replicasPerNodeGroup"`
}

func (ReplicationGroupClusterModeArgs) ElementType

func (ReplicationGroupClusterModeArgs) ToReplicationGroupClusterModeOutput

func (i ReplicationGroupClusterModeArgs) ToReplicationGroupClusterModeOutput() ReplicationGroupClusterModeOutput

func (ReplicationGroupClusterModeArgs) ToReplicationGroupClusterModeOutputWithContext

func (i ReplicationGroupClusterModeArgs) ToReplicationGroupClusterModeOutputWithContext(ctx context.Context) ReplicationGroupClusterModeOutput

func (ReplicationGroupClusterModeArgs) ToReplicationGroupClusterModePtrOutput

func (i ReplicationGroupClusterModeArgs) ToReplicationGroupClusterModePtrOutput() ReplicationGroupClusterModePtrOutput

func (ReplicationGroupClusterModeArgs) ToReplicationGroupClusterModePtrOutputWithContext

func (i ReplicationGroupClusterModeArgs) ToReplicationGroupClusterModePtrOutputWithContext(ctx context.Context) ReplicationGroupClusterModePtrOutput

type ReplicationGroupClusterModeInput

type ReplicationGroupClusterModeInput interface {
	pulumi.Input

	ToReplicationGroupClusterModeOutput() ReplicationGroupClusterModeOutput
	ToReplicationGroupClusterModeOutputWithContext(context.Context) ReplicationGroupClusterModeOutput
}

ReplicationGroupClusterModeInput is an input type that accepts ReplicationGroupClusterModeArgs and ReplicationGroupClusterModeOutput values. You can construct a concrete instance of `ReplicationGroupClusterModeInput` via:

ReplicationGroupClusterModeArgs{...}

type ReplicationGroupClusterModeOutput

type ReplicationGroupClusterModeOutput struct{ *pulumi.OutputState }

func (ReplicationGroupClusterModeOutput) ElementType

func (ReplicationGroupClusterModeOutput) NumNodeGroups

Number of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modifications. Required unless `globalReplicationGroupId` is set.

func (ReplicationGroupClusterModeOutput) ReplicasPerNodeGroup

func (o ReplicationGroupClusterModeOutput) ReplicasPerNodeGroup() pulumi.IntOutput

Number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications.

func (ReplicationGroupClusterModeOutput) ToReplicationGroupClusterModeOutput

func (o ReplicationGroupClusterModeOutput) ToReplicationGroupClusterModeOutput() ReplicationGroupClusterModeOutput

func (ReplicationGroupClusterModeOutput) ToReplicationGroupClusterModeOutputWithContext

func (o ReplicationGroupClusterModeOutput) ToReplicationGroupClusterModeOutputWithContext(ctx context.Context) ReplicationGroupClusterModeOutput

func (ReplicationGroupClusterModeOutput) ToReplicationGroupClusterModePtrOutput

func (o ReplicationGroupClusterModeOutput) ToReplicationGroupClusterModePtrOutput() ReplicationGroupClusterModePtrOutput

func (ReplicationGroupClusterModeOutput) ToReplicationGroupClusterModePtrOutputWithContext

func (o ReplicationGroupClusterModeOutput) ToReplicationGroupClusterModePtrOutputWithContext(ctx context.Context) ReplicationGroupClusterModePtrOutput

type ReplicationGroupClusterModePtrInput

type ReplicationGroupClusterModePtrInput interface {
	pulumi.Input

	ToReplicationGroupClusterModePtrOutput() ReplicationGroupClusterModePtrOutput
	ToReplicationGroupClusterModePtrOutputWithContext(context.Context) ReplicationGroupClusterModePtrOutput
}

ReplicationGroupClusterModePtrInput is an input type that accepts ReplicationGroupClusterModeArgs, ReplicationGroupClusterModePtr and ReplicationGroupClusterModePtrOutput values. You can construct a concrete instance of `ReplicationGroupClusterModePtrInput` via:

        ReplicationGroupClusterModeArgs{...}

or:

        nil

type ReplicationGroupClusterModePtrOutput

type ReplicationGroupClusterModePtrOutput struct{ *pulumi.OutputState }

func (ReplicationGroupClusterModePtrOutput) Elem

func (ReplicationGroupClusterModePtrOutput) ElementType

func (ReplicationGroupClusterModePtrOutput) NumNodeGroups

Number of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modifications. Required unless `globalReplicationGroupId` is set.

func (ReplicationGroupClusterModePtrOutput) ReplicasPerNodeGroup

func (o ReplicationGroupClusterModePtrOutput) ReplicasPerNodeGroup() pulumi.IntPtrOutput

Number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications.

func (ReplicationGroupClusterModePtrOutput) ToReplicationGroupClusterModePtrOutput

func (o ReplicationGroupClusterModePtrOutput) ToReplicationGroupClusterModePtrOutput() ReplicationGroupClusterModePtrOutput

func (ReplicationGroupClusterModePtrOutput) ToReplicationGroupClusterModePtrOutputWithContext

func (o ReplicationGroupClusterModePtrOutput) ToReplicationGroupClusterModePtrOutputWithContext(ctx context.Context) ReplicationGroupClusterModePtrOutput

type ReplicationGroupInput

type ReplicationGroupInput interface {
	pulumi.Input

	ToReplicationGroupOutput() ReplicationGroupOutput
	ToReplicationGroupOutputWithContext(ctx context.Context) ReplicationGroupOutput
}

type ReplicationGroupMap

type ReplicationGroupMap map[string]ReplicationGroupInput

func (ReplicationGroupMap) ElementType

func (ReplicationGroupMap) ElementType() reflect.Type

func (ReplicationGroupMap) ToReplicationGroupMapOutput

func (i ReplicationGroupMap) ToReplicationGroupMapOutput() ReplicationGroupMapOutput

func (ReplicationGroupMap) ToReplicationGroupMapOutputWithContext

func (i ReplicationGroupMap) ToReplicationGroupMapOutputWithContext(ctx context.Context) ReplicationGroupMapOutput

type ReplicationGroupMapInput

type ReplicationGroupMapInput interface {
	pulumi.Input

	ToReplicationGroupMapOutput() ReplicationGroupMapOutput
	ToReplicationGroupMapOutputWithContext(context.Context) ReplicationGroupMapOutput
}

ReplicationGroupMapInput is an input type that accepts ReplicationGroupMap and ReplicationGroupMapOutput values. You can construct a concrete instance of `ReplicationGroupMapInput` via:

ReplicationGroupMap{ "key": ReplicationGroupArgs{...} }

type ReplicationGroupMapOutput

type ReplicationGroupMapOutput struct{ *pulumi.OutputState }

func (ReplicationGroupMapOutput) ElementType

func (ReplicationGroupMapOutput) ElementType() reflect.Type

func (ReplicationGroupMapOutput) MapIndex

func (ReplicationGroupMapOutput) ToReplicationGroupMapOutput

func (o ReplicationGroupMapOutput) ToReplicationGroupMapOutput() ReplicationGroupMapOutput

func (ReplicationGroupMapOutput) ToReplicationGroupMapOutputWithContext

func (o ReplicationGroupMapOutput) ToReplicationGroupMapOutputWithContext(ctx context.Context) ReplicationGroupMapOutput

type ReplicationGroupOutput

type ReplicationGroupOutput struct{ *pulumi.OutputState }

func (ReplicationGroupOutput) ElementType

func (ReplicationGroupOutput) ElementType() reflect.Type

func (ReplicationGroupOutput) ToReplicationGroupOutput

func (o ReplicationGroupOutput) ToReplicationGroupOutput() ReplicationGroupOutput

func (ReplicationGroupOutput) ToReplicationGroupOutputWithContext

func (o ReplicationGroupOutput) ToReplicationGroupOutputWithContext(ctx context.Context) ReplicationGroupOutput

func (ReplicationGroupOutput) ToReplicationGroupPtrOutput

func (o ReplicationGroupOutput) ToReplicationGroupPtrOutput() ReplicationGroupPtrOutput

func (ReplicationGroupOutput) ToReplicationGroupPtrOutputWithContext

func (o ReplicationGroupOutput) ToReplicationGroupPtrOutputWithContext(ctx context.Context) ReplicationGroupPtrOutput

type ReplicationGroupPtrInput

type ReplicationGroupPtrInput interface {
	pulumi.Input

	ToReplicationGroupPtrOutput() ReplicationGroupPtrOutput
	ToReplicationGroupPtrOutputWithContext(ctx context.Context) ReplicationGroupPtrOutput
}

type ReplicationGroupPtrOutput

type ReplicationGroupPtrOutput struct{ *pulumi.OutputState }

func (ReplicationGroupPtrOutput) Elem added in v4.15.0

func (ReplicationGroupPtrOutput) ElementType

func (ReplicationGroupPtrOutput) ElementType() reflect.Type

func (ReplicationGroupPtrOutput) ToReplicationGroupPtrOutput

func (o ReplicationGroupPtrOutput) ToReplicationGroupPtrOutput() ReplicationGroupPtrOutput

func (ReplicationGroupPtrOutput) ToReplicationGroupPtrOutputWithContext

func (o ReplicationGroupPtrOutput) ToReplicationGroupPtrOutputWithContext(ctx context.Context) ReplicationGroupPtrOutput

type ReplicationGroupState

type ReplicationGroupState struct {
	// Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`.
	ApplyImmediately pulumi.BoolPtrInput
	// The Amazon Resource Name (ARN) of the created ElastiCache Replication Group.
	Arn pulumi.StringPtrInput
	// Whether to enable encryption at rest.
	AtRestEncryptionEnabled pulumi.BoolPtrInput
	// The password used to access a password protected server. Can be specified only if `transitEncryptionEnabled = true`.
	AuthToken pulumi.StringPtrInput
	// Specifies whether a minor engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. This parameter is currently not supported by the AWS API. Defaults to `true`.
	AutoMinorVersionUpgrade pulumi.BoolPtrInput
	// Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numberCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`.
	AutomaticFailoverEnabled pulumi.BoolPtrInput
	// A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important.
	AvailabilityZones pulumi.StringArrayInput
	// Indicates if cluster mode is enabled.
	ClusterEnabled pulumi.BoolPtrInput
	// Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true.
	ClusterMode ReplicationGroupClusterModePtrInput
	// The address of the replication group configuration endpoint when cluster mode is enabled.
	ConfigurationEndpointAddress pulumi.StringPtrInput
	// The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.
	Engine pulumi.StringPtrInput
	// The version number of the cache engine to be used for the cache clusters in this replication group. If the version is 6 or higher, only the major version can be set, e.g. `6.x`, otherwise, specify the full version desired, e.g. `5.0.6`. The actual engine version used is returned in the attribute `engineVersionActual`, defined below.
	EngineVersion pulumi.StringPtrInput
	// The running version of the cache engine.
	EngineVersionActual pulumi.StringPtrInput
	// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made.
	FinalSnapshotIdentifier pulumi.StringPtrInput
	// The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If `globalReplicationGroupId` is set, the `numNodeGroups` parameter of the `clusterMode` block cannot be set.
	GlobalReplicationGroupId pulumi.StringPtrInput
	// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`.
	KmsKeyId pulumi.StringPtrInput
	// Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`
	MaintenanceWindow pulumi.StringPtrInput
	// The identifiers of all the nodes that are part of this replication group.
	MemberClusters pulumi.StringArrayInput
	// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`.
	MultiAzEnabled pulumi.BoolPtrInput
	// The instance class to be used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). Required unless `globalReplicationGroupId` is set. Cannot be set if `globalReplicationGroupId` is set.
	NodeType pulumi.StringPtrInput
	// An Amazon Resource Name (ARN) of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`
	NotificationTopicArn pulumi.StringPtrInput
	// The number of cache clusters (primary and replicas) this replication group will have. If Multi-AZ is enabled, the value of this parameter must be at least 2. Updates will occur before other modifications. One of `numberCacheClusters` or `clusterMode` is required.
	NumberCacheClusters pulumi.IntPtrInput
	// The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e. data sharding, use a parameter group that has the parameter `cluster-enabled` set to true.
	ParameterGroupName pulumi.StringPtrInput
	// The port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379.
	Port pulumi.IntPtrInput
	// (Redis only) The address of the endpoint for the primary node in the replication group, if the cluster mode is disabled.
	PrimaryEndpointAddress pulumi.StringPtrInput
	// (Redis only) The address of the endpoint for the reader node in the replication group, if the cluster mode is disabled.
	ReaderEndpointAddress pulumi.StringPtrInput
	// A user-created description for the replication group.
	ReplicationGroupDescription pulumi.StringPtrInput
	// The replication group identifier. This parameter is stored as a lowercase string.
	ReplicationGroupId pulumi.StringPtrInput
	// One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud
	SecurityGroupIds pulumi.StringArrayInput
	// A list of cache security group names to associate with this replication group.
	SecurityGroupNames pulumi.StringArrayInput
	// A list of Amazon Resource Names (ARNs) that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas.
	SnapshotArns pulumi.StringArrayInput
	// The name of a snapshot from which to restore data into the new node group. Changing the `snapshotName` forces a new resource.
	SnapshotName pulumi.StringPtrInput
	// The number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes
	SnapshotRetentionLimit pulumi.IntPtrInput
	// The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: `05:00-09:00`
	SnapshotWindow pulumi.StringPtrInput
	// The name of the cache subnet group to be used for the replication group.
	SubnetGroupName pulumi.StringPtrInput
	Tags            pulumi.StringMapInput
	TagsAll         pulumi.StringMapInput
	// Whether to enable encryption in transit.
	TransitEncryptionEnabled pulumi.BoolPtrInput
}

func (ReplicationGroupState) ElementType

func (ReplicationGroupState) ElementType() reflect.Type

type SecurityGroup

type SecurityGroup struct {
	pulumi.CustomResourceState

	// description for the cache security group. Defaults to "Managed by Pulumi".
	Description pulumi.StringOutput `pulumi:"description"`
	// Name for the cache security group. This value is stored as a lowercase string.
	Name pulumi.StringOutput `pulumi:"name"`
	// List of EC2 security group names to be
	// authorized for ingress to the cache security group
	SecurityGroupNames pulumi.StringArrayOutput `pulumi:"securityGroupNames"`
}

Provides an ElastiCache Security Group to control access to one or more cache clusters.

> **NOTE:** ElastiCache Security Groups are for use only when working with an ElastiCache cluster **outside** of a VPC. If you are using a VPC, see the ElastiCache Subnet Group resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/ec2"
"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		barSecurityGroup, err := ec2.NewSecurityGroup(ctx, "barSecurityGroup", nil)
		if err != nil {
			return err
		}
		_, err = elasticache.NewSecurityGroup(ctx, "barElasticache_securityGroupSecurityGroup", &elasticache.SecurityGroupArgs{
			SecurityGroupNames: pulumi.StringArray{
				barSecurityGroup.Name,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ElastiCache Security Groups can be imported by name, e.g.

```sh

$ pulumi import aws:elasticache/securityGroup:SecurityGroup my_ec_security_group ec-security-group-1

```

func GetSecurityGroup

func GetSecurityGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SecurityGroupState, opts ...pulumi.ResourceOption) (*SecurityGroup, error)

GetSecurityGroup gets an existing SecurityGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSecurityGroup

func NewSecurityGroup(ctx *pulumi.Context,
	name string, args *SecurityGroupArgs, opts ...pulumi.ResourceOption) (*SecurityGroup, error)

NewSecurityGroup registers a new resource with the given unique name, arguments, and options.

func (*SecurityGroup) ElementType

func (*SecurityGroup) ElementType() reflect.Type

func (*SecurityGroup) ToSecurityGroupOutput

func (i *SecurityGroup) ToSecurityGroupOutput() SecurityGroupOutput

func (*SecurityGroup) ToSecurityGroupOutputWithContext

func (i *SecurityGroup) ToSecurityGroupOutputWithContext(ctx context.Context) SecurityGroupOutput

func (*SecurityGroup) ToSecurityGroupPtrOutput

func (i *SecurityGroup) ToSecurityGroupPtrOutput() SecurityGroupPtrOutput

func (*SecurityGroup) ToSecurityGroupPtrOutputWithContext

func (i *SecurityGroup) ToSecurityGroupPtrOutputWithContext(ctx context.Context) SecurityGroupPtrOutput

type SecurityGroupArgs

type SecurityGroupArgs struct {
	// description for the cache security group. Defaults to "Managed by Pulumi".
	Description pulumi.StringPtrInput
	// Name for the cache security group. This value is stored as a lowercase string.
	Name pulumi.StringPtrInput
	// List of EC2 security group names to be
	// authorized for ingress to the cache security group
	SecurityGroupNames pulumi.StringArrayInput
}

The set of arguments for constructing a SecurityGroup resource.

func (SecurityGroupArgs) ElementType

func (SecurityGroupArgs) ElementType() reflect.Type

type SecurityGroupArray

type SecurityGroupArray []SecurityGroupInput

func (SecurityGroupArray) ElementType

func (SecurityGroupArray) ElementType() reflect.Type

func (SecurityGroupArray) ToSecurityGroupArrayOutput

func (i SecurityGroupArray) ToSecurityGroupArrayOutput() SecurityGroupArrayOutput

func (SecurityGroupArray) ToSecurityGroupArrayOutputWithContext

func (i SecurityGroupArray) ToSecurityGroupArrayOutputWithContext(ctx context.Context) SecurityGroupArrayOutput

type SecurityGroupArrayInput

type SecurityGroupArrayInput interface {
	pulumi.Input

	ToSecurityGroupArrayOutput() SecurityGroupArrayOutput
	ToSecurityGroupArrayOutputWithContext(context.Context) SecurityGroupArrayOutput
}

SecurityGroupArrayInput is an input type that accepts SecurityGroupArray and SecurityGroupArrayOutput values. You can construct a concrete instance of `SecurityGroupArrayInput` via:

SecurityGroupArray{ SecurityGroupArgs{...} }

type SecurityGroupArrayOutput

type SecurityGroupArrayOutput struct{ *pulumi.OutputState }

func (SecurityGroupArrayOutput) ElementType

func (SecurityGroupArrayOutput) ElementType() reflect.Type

func (SecurityGroupArrayOutput) Index

func (SecurityGroupArrayOutput) ToSecurityGroupArrayOutput

func (o SecurityGroupArrayOutput) ToSecurityGroupArrayOutput() SecurityGroupArrayOutput

func (SecurityGroupArrayOutput) ToSecurityGroupArrayOutputWithContext

func (o SecurityGroupArrayOutput) ToSecurityGroupArrayOutputWithContext(ctx context.Context) SecurityGroupArrayOutput

type SecurityGroupInput

type SecurityGroupInput interface {
	pulumi.Input

	ToSecurityGroupOutput() SecurityGroupOutput
	ToSecurityGroupOutputWithContext(ctx context.Context) SecurityGroupOutput
}

type SecurityGroupMap

type SecurityGroupMap map[string]SecurityGroupInput

func (SecurityGroupMap) ElementType

func (SecurityGroupMap) ElementType() reflect.Type

func (SecurityGroupMap) ToSecurityGroupMapOutput

func (i SecurityGroupMap) ToSecurityGroupMapOutput() SecurityGroupMapOutput

func (SecurityGroupMap) ToSecurityGroupMapOutputWithContext

func (i SecurityGroupMap) ToSecurityGroupMapOutputWithContext(ctx context.Context) SecurityGroupMapOutput

type SecurityGroupMapInput

type SecurityGroupMapInput interface {
	pulumi.Input

	ToSecurityGroupMapOutput() SecurityGroupMapOutput
	ToSecurityGroupMapOutputWithContext(context.Context) SecurityGroupMapOutput
}

SecurityGroupMapInput is an input type that accepts SecurityGroupMap and SecurityGroupMapOutput values. You can construct a concrete instance of `SecurityGroupMapInput` via:

SecurityGroupMap{ "key": SecurityGroupArgs{...} }

type SecurityGroupMapOutput

type SecurityGroupMapOutput struct{ *pulumi.OutputState }

func (SecurityGroupMapOutput) ElementType

func (SecurityGroupMapOutput) ElementType() reflect.Type

func (SecurityGroupMapOutput) MapIndex

func (SecurityGroupMapOutput) ToSecurityGroupMapOutput

func (o SecurityGroupMapOutput) ToSecurityGroupMapOutput() SecurityGroupMapOutput

func (SecurityGroupMapOutput) ToSecurityGroupMapOutputWithContext

func (o SecurityGroupMapOutput) ToSecurityGroupMapOutputWithContext(ctx context.Context) SecurityGroupMapOutput

type SecurityGroupOutput

type SecurityGroupOutput struct{ *pulumi.OutputState }

func (SecurityGroupOutput) ElementType

func (SecurityGroupOutput) ElementType() reflect.Type

func (SecurityGroupOutput) ToSecurityGroupOutput

func (o SecurityGroupOutput) ToSecurityGroupOutput() SecurityGroupOutput

func (SecurityGroupOutput) ToSecurityGroupOutputWithContext

func (o SecurityGroupOutput) ToSecurityGroupOutputWithContext(ctx context.Context) SecurityGroupOutput

func (SecurityGroupOutput) ToSecurityGroupPtrOutput

func (o SecurityGroupOutput) ToSecurityGroupPtrOutput() SecurityGroupPtrOutput

func (SecurityGroupOutput) ToSecurityGroupPtrOutputWithContext

func (o SecurityGroupOutput) ToSecurityGroupPtrOutputWithContext(ctx context.Context) SecurityGroupPtrOutput

type SecurityGroupPtrInput

type SecurityGroupPtrInput interface {
	pulumi.Input

	ToSecurityGroupPtrOutput() SecurityGroupPtrOutput
	ToSecurityGroupPtrOutputWithContext(ctx context.Context) SecurityGroupPtrOutput
}

type SecurityGroupPtrOutput

type SecurityGroupPtrOutput struct{ *pulumi.OutputState }

func (SecurityGroupPtrOutput) Elem added in v4.15.0

func (SecurityGroupPtrOutput) ElementType

func (SecurityGroupPtrOutput) ElementType() reflect.Type

func (SecurityGroupPtrOutput) ToSecurityGroupPtrOutput

func (o SecurityGroupPtrOutput) ToSecurityGroupPtrOutput() SecurityGroupPtrOutput

func (SecurityGroupPtrOutput) ToSecurityGroupPtrOutputWithContext

func (o SecurityGroupPtrOutput) ToSecurityGroupPtrOutputWithContext(ctx context.Context) SecurityGroupPtrOutput

type SecurityGroupState

type SecurityGroupState struct {
	// description for the cache security group. Defaults to "Managed by Pulumi".
	Description pulumi.StringPtrInput
	// Name for the cache security group. This value is stored as a lowercase string.
	Name pulumi.StringPtrInput
	// List of EC2 security group names to be
	// authorized for ingress to the cache security group
	SecurityGroupNames pulumi.StringArrayInput
}

func (SecurityGroupState) ElementType

func (SecurityGroupState) ElementType() reflect.Type

type SubnetGroup

type SubnetGroup struct {
	pulumi.CustomResourceState

	Arn pulumi.StringOutput `pulumi:"arn"`
	// Description for the cache subnet group. Defaults to "Managed by Pulumi".
	Description pulumi.StringOutput `pulumi:"description"`
	// Name for the cache subnet group. Elasticache converts this name to lowercase.
	Name pulumi.StringOutput `pulumi:"name"`
	// List of VPC Subnet IDs for the cache subnet group
	SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"`
	// Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// A map of tags assigned to the resource, including those inherited from the provider .
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}

Provides an ElastiCache Subnet Group resource.

> **NOTE:** ElastiCache Subnet Groups are only for use when working with an ElastiCache cluster **inside** of a VPC. If you are on EC2 Classic, see the ElastiCache Security Group resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/ec2"
"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		fooVpc, err := ec2.NewVpc(ctx, "fooVpc", &ec2.VpcArgs{
			CidrBlock: pulumi.String("10.0.0.0/16"),
			Tags: pulumi.StringMap{
				"Name": pulumi.String("tf-test"),
			},
		})
		if err != nil {
			return err
		}
		fooSubnet, err := ec2.NewSubnet(ctx, "fooSubnet", &ec2.SubnetArgs{
			VpcId:            fooVpc.ID(),
			CidrBlock:        pulumi.String("10.0.0.0/24"),
			AvailabilityZone: pulumi.String("us-west-2a"),
			Tags: pulumi.StringMap{
				"Name": pulumi.String("tf-test"),
			},
		})
		if err != nil {
			return err
		}
		_, err = elasticache.NewSubnetGroup(ctx, "bar", &elasticache.SubnetGroupArgs{
			SubnetIds: pulumi.StringArray{
				fooSubnet.ID(),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ElastiCache Subnet Groups can be imported using the `name`, e.g.

```sh

$ pulumi import aws:elasticache/subnetGroup:SubnetGroup bar tf-test-cache-subnet

```

func GetSubnetGroup

func GetSubnetGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SubnetGroupState, opts ...pulumi.ResourceOption) (*SubnetGroup, error)

GetSubnetGroup gets an existing SubnetGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSubnetGroup

func NewSubnetGroup(ctx *pulumi.Context,
	name string, args *SubnetGroupArgs, opts ...pulumi.ResourceOption) (*SubnetGroup, error)

NewSubnetGroup registers a new resource with the given unique name, arguments, and options.

func (*SubnetGroup) ElementType

func (*SubnetGroup) ElementType() reflect.Type

func (*SubnetGroup) ToSubnetGroupOutput

func (i *SubnetGroup) ToSubnetGroupOutput() SubnetGroupOutput

func (*SubnetGroup) ToSubnetGroupOutputWithContext

func (i *SubnetGroup) ToSubnetGroupOutputWithContext(ctx context.Context) SubnetGroupOutput

func (*SubnetGroup) ToSubnetGroupPtrOutput

func (i *SubnetGroup) ToSubnetGroupPtrOutput() SubnetGroupPtrOutput

func (*SubnetGroup) ToSubnetGroupPtrOutputWithContext

func (i *SubnetGroup) ToSubnetGroupPtrOutputWithContext(ctx context.Context) SubnetGroupPtrOutput

type SubnetGroupArgs

type SubnetGroupArgs struct {
	// Description for the cache subnet group. Defaults to "Managed by Pulumi".
	Description pulumi.StringPtrInput
	// Name for the cache subnet group. Elasticache converts this name to lowercase.
	Name pulumi.StringPtrInput
	// List of VPC Subnet IDs for the cache subnet group
	SubnetIds pulumi.StringArrayInput
	// Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// A map of tags assigned to the resource, including those inherited from the provider .
	TagsAll pulumi.StringMapInput
}

The set of arguments for constructing a SubnetGroup resource.

func (SubnetGroupArgs) ElementType

func (SubnetGroupArgs) ElementType() reflect.Type

type SubnetGroupArray

type SubnetGroupArray []SubnetGroupInput

func (SubnetGroupArray) ElementType

func (SubnetGroupArray) ElementType() reflect.Type

func (SubnetGroupArray) ToSubnetGroupArrayOutput

func (i SubnetGroupArray) ToSubnetGroupArrayOutput() SubnetGroupArrayOutput

func (SubnetGroupArray) ToSubnetGroupArrayOutputWithContext

func (i SubnetGroupArray) ToSubnetGroupArrayOutputWithContext(ctx context.Context) SubnetGroupArrayOutput

type SubnetGroupArrayInput

type SubnetGroupArrayInput interface {
	pulumi.Input

	ToSubnetGroupArrayOutput() SubnetGroupArrayOutput
	ToSubnetGroupArrayOutputWithContext(context.Context) SubnetGroupArrayOutput
}

SubnetGroupArrayInput is an input type that accepts SubnetGroupArray and SubnetGroupArrayOutput values. You can construct a concrete instance of `SubnetGroupArrayInput` via:

SubnetGroupArray{ SubnetGroupArgs{...} }

type SubnetGroupArrayOutput

type SubnetGroupArrayOutput struct{ *pulumi.OutputState }

func (SubnetGroupArrayOutput) ElementType

func (SubnetGroupArrayOutput) ElementType() reflect.Type

func (SubnetGroupArrayOutput) Index

func (SubnetGroupArrayOutput) ToSubnetGroupArrayOutput

func (o SubnetGroupArrayOutput) ToSubnetGroupArrayOutput() SubnetGroupArrayOutput

func (SubnetGroupArrayOutput) ToSubnetGroupArrayOutputWithContext

func (o SubnetGroupArrayOutput) ToSubnetGroupArrayOutputWithContext(ctx context.Context) SubnetGroupArrayOutput

type SubnetGroupInput

type SubnetGroupInput interface {
	pulumi.Input

	ToSubnetGroupOutput() SubnetGroupOutput
	ToSubnetGroupOutputWithContext(ctx context.Context) SubnetGroupOutput
}

type SubnetGroupMap

type SubnetGroupMap map[string]SubnetGroupInput

func (SubnetGroupMap) ElementType

func (SubnetGroupMap) ElementType() reflect.Type

func (SubnetGroupMap) ToSubnetGroupMapOutput

func (i SubnetGroupMap) ToSubnetGroupMapOutput() SubnetGroupMapOutput

func (SubnetGroupMap) ToSubnetGroupMapOutputWithContext

func (i SubnetGroupMap) ToSubnetGroupMapOutputWithContext(ctx context.Context) SubnetGroupMapOutput

type SubnetGroupMapInput

type SubnetGroupMapInput interface {
	pulumi.Input

	ToSubnetGroupMapOutput() SubnetGroupMapOutput
	ToSubnetGroupMapOutputWithContext(context.Context) SubnetGroupMapOutput
}

SubnetGroupMapInput is an input type that accepts SubnetGroupMap and SubnetGroupMapOutput values. You can construct a concrete instance of `SubnetGroupMapInput` via:

SubnetGroupMap{ "key": SubnetGroupArgs{...} }

type SubnetGroupMapOutput

type SubnetGroupMapOutput struct{ *pulumi.OutputState }

func (SubnetGroupMapOutput) ElementType

func (SubnetGroupMapOutput) ElementType() reflect.Type

func (SubnetGroupMapOutput) MapIndex

func (SubnetGroupMapOutput) ToSubnetGroupMapOutput

func (o SubnetGroupMapOutput) ToSubnetGroupMapOutput() SubnetGroupMapOutput

func (SubnetGroupMapOutput) ToSubnetGroupMapOutputWithContext

func (o SubnetGroupMapOutput) ToSubnetGroupMapOutputWithContext(ctx context.Context) SubnetGroupMapOutput

type SubnetGroupOutput

type SubnetGroupOutput struct{ *pulumi.OutputState }

func (SubnetGroupOutput) ElementType

func (SubnetGroupOutput) ElementType() reflect.Type

func (SubnetGroupOutput) ToSubnetGroupOutput

func (o SubnetGroupOutput) ToSubnetGroupOutput() SubnetGroupOutput

func (SubnetGroupOutput) ToSubnetGroupOutputWithContext

func (o SubnetGroupOutput) ToSubnetGroupOutputWithContext(ctx context.Context) SubnetGroupOutput

func (SubnetGroupOutput) ToSubnetGroupPtrOutput

func (o SubnetGroupOutput) ToSubnetGroupPtrOutput() SubnetGroupPtrOutput

func (SubnetGroupOutput) ToSubnetGroupPtrOutputWithContext

func (o SubnetGroupOutput) ToSubnetGroupPtrOutputWithContext(ctx context.Context) SubnetGroupPtrOutput

type SubnetGroupPtrInput

type SubnetGroupPtrInput interface {
	pulumi.Input

	ToSubnetGroupPtrOutput() SubnetGroupPtrOutput
	ToSubnetGroupPtrOutputWithContext(ctx context.Context) SubnetGroupPtrOutput
}

type SubnetGroupPtrOutput

type SubnetGroupPtrOutput struct{ *pulumi.OutputState }

func (SubnetGroupPtrOutput) Elem added in v4.15.0

func (SubnetGroupPtrOutput) ElementType

func (SubnetGroupPtrOutput) ElementType() reflect.Type

func (SubnetGroupPtrOutput) ToSubnetGroupPtrOutput

func (o SubnetGroupPtrOutput) ToSubnetGroupPtrOutput() SubnetGroupPtrOutput

func (SubnetGroupPtrOutput) ToSubnetGroupPtrOutputWithContext

func (o SubnetGroupPtrOutput) ToSubnetGroupPtrOutputWithContext(ctx context.Context) SubnetGroupPtrOutput

type SubnetGroupState

type SubnetGroupState struct {
	Arn pulumi.StringPtrInput
	// Description for the cache subnet group. Defaults to "Managed by Pulumi".
	Description pulumi.StringPtrInput
	// Name for the cache subnet group. Elasticache converts this name to lowercase.
	Name pulumi.StringPtrInput
	// List of VPC Subnet IDs for the cache subnet group
	SubnetIds pulumi.StringArrayInput
	// Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// A map of tags assigned to the resource, including those inherited from the provider .
	TagsAll pulumi.StringMapInput
}

func (SubnetGroupState) ElementType

func (SubnetGroupState) ElementType() reflect.Type

type User added in v4.14.0

type User struct {
	pulumi.CustomResourceState

	// Access permissions string used for this user. See [Specifying Permissions Using an Access String](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html#Access-string) for more details.
	AccessString pulumi.StringOutput `pulumi:"accessString"`
	// The ARN of the created ElastiCache User.
	Arn pulumi.StringOutput `pulumi:"arn"`
	// The current supported value is `REDIS`.
	Engine pulumi.StringOutput `pulumi:"engine"`
	// Indicates a password is not required for this user.
	NoPasswordRequired pulumi.BoolPtrOutput `pulumi:"noPasswordRequired"`
	// Passwords used for this user. You can create up to two passwords for each user.
	Passwords pulumi.StringArrayOutput `pulumi:"passwords"`
	// A list of tags to be added to this resource. A tag is a key-value pair.
	Tags    pulumi.StringMapOutput `pulumi:"tags"`
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
	// The ID of the user.
	UserId pulumi.StringOutput `pulumi:"userId"`
	// The username of the user.
	UserName pulumi.StringOutput `pulumi:"userName"`
}

Provides an ElastiCache user resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elasticache.NewUser(ctx, "test", &elasticache.UserArgs{
			AccessString: pulumi.String("on ~app::* -@all +@read +@hash +@bitmap +@geo -setbit -bitfield -hset -hsetnx -hmset -hincrby -hincrbyfloat -hdel -bitop -geoadd -georadius -georadiusbymember"),
			Engine:       pulumi.String("REDIS"),
			Passwords: pulumi.StringArray{
				pulumi.String("password123456789"),
			},
			UserId:   pulumi.String("testUserId"),
			UserName: pulumi.String("testUserName"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ElastiCache users can be imported using the `user_id`, e.g.

```sh

$ pulumi import aws:elasticache/user:User my_user userId1

```

func GetUser added in v4.14.0

func GetUser(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *UserState, opts ...pulumi.ResourceOption) (*User, error)

GetUser gets an existing User resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewUser added in v4.14.0

func NewUser(ctx *pulumi.Context,
	name string, args *UserArgs, opts ...pulumi.ResourceOption) (*User, error)

NewUser registers a new resource with the given unique name, arguments, and options.

func (*User) ElementType added in v4.14.0

func (*User) ElementType() reflect.Type

func (*User) ToUserOutput added in v4.14.0

func (i *User) ToUserOutput() UserOutput

func (*User) ToUserOutputWithContext added in v4.14.0

func (i *User) ToUserOutputWithContext(ctx context.Context) UserOutput

func (*User) ToUserPtrOutput added in v4.14.0

func (i *User) ToUserPtrOutput() UserPtrOutput

func (*User) ToUserPtrOutputWithContext added in v4.14.0

func (i *User) ToUserPtrOutputWithContext(ctx context.Context) UserPtrOutput

type UserArgs added in v4.14.0

type UserArgs struct {
	// Access permissions string used for this user. See [Specifying Permissions Using an Access String](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html#Access-string) for more details.
	AccessString pulumi.StringInput
	// The ARN of the created ElastiCache User.
	Arn pulumi.StringPtrInput
	// The current supported value is `REDIS`.
	Engine pulumi.StringInput
	// Indicates a password is not required for this user.
	NoPasswordRequired pulumi.BoolPtrInput
	// Passwords used for this user. You can create up to two passwords for each user.
	Passwords pulumi.StringArrayInput
	// A list of tags to be added to this resource. A tag is a key-value pair.
	Tags    pulumi.StringMapInput
	TagsAll pulumi.StringMapInput
	// The ID of the user.
	UserId pulumi.StringInput
	// The username of the user.
	UserName pulumi.StringInput
}

The set of arguments for constructing a User resource.

func (UserArgs) ElementType added in v4.14.0

func (UserArgs) ElementType() reflect.Type

type UserArray added in v4.14.0

type UserArray []UserInput

func (UserArray) ElementType added in v4.14.0

func (UserArray) ElementType() reflect.Type

func (UserArray) ToUserArrayOutput added in v4.14.0

func (i UserArray) ToUserArrayOutput() UserArrayOutput

func (UserArray) ToUserArrayOutputWithContext added in v4.14.0

func (i UserArray) ToUserArrayOutputWithContext(ctx context.Context) UserArrayOutput

type UserArrayInput added in v4.14.0

type UserArrayInput interface {
	pulumi.Input

	ToUserArrayOutput() UserArrayOutput
	ToUserArrayOutputWithContext(context.Context) UserArrayOutput
}

UserArrayInput is an input type that accepts UserArray and UserArrayOutput values. You can construct a concrete instance of `UserArrayInput` via:

UserArray{ UserArgs{...} }

type UserArrayOutput added in v4.14.0

type UserArrayOutput struct{ *pulumi.OutputState }

func (UserArrayOutput) ElementType added in v4.14.0

func (UserArrayOutput) ElementType() reflect.Type

func (UserArrayOutput) Index added in v4.14.0

func (UserArrayOutput) ToUserArrayOutput added in v4.14.0

func (o UserArrayOutput) ToUserArrayOutput() UserArrayOutput

func (UserArrayOutput) ToUserArrayOutputWithContext added in v4.14.0

func (o UserArrayOutput) ToUserArrayOutputWithContext(ctx context.Context) UserArrayOutput

type UserGroup added in v4.14.0

type UserGroup struct {
	pulumi.CustomResourceState

	Arn pulumi.StringOutput `pulumi:"arn"`
	// The current supported value is `REDIS`.
	Engine  pulumi.StringOutput    `pulumi:"engine"`
	Tags    pulumi.StringMapOutput `pulumi:"tags"`
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
	// The ID of the user group.
	UserGroupId pulumi.StringOutput `pulumi:"userGroupId"`
	// The list of user IDs that belong to the user group.
	UserIds pulumi.StringArrayOutput `pulumi:"userIds"`
}

Provides an ElastiCache user group resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/elasticache"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		testUser, err := elasticache.NewUser(ctx, "testUser", &elasticache.UserArgs{
			UserId:       pulumi.String("testUserId"),
			UserName:     pulumi.String("default"),
			AccessString: pulumi.String("on ~app::* -@all +@read +@hash +@bitmap +@geo -setbit -bitfield -hset -hsetnx -hmset -hincrby -hincrbyfloat -hdel -bitop -geoadd -georadius -georadiusbymember"),
			Engine:       pulumi.String("REDIS"),
			Passwords: pulumi.StringArray{
				pulumi.String("password123456789"),
			},
		})
		if err != nil {
			return err
		}
		_, err = elasticache.NewUserGroup(ctx, "testUserGroup", &elasticache.UserGroupArgs{
			Engine:      pulumi.String("REDIS"),
			UserGroupId: pulumi.String("userGroupId"),
			UserIds: pulumi.StringArray{
				testUser.UserId,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ElastiCache user groups can be imported using the `user_group_id`, e.g.

```sh

$ pulumi import aws:elasticache/userGroup:UserGroup my_user_group userGoupId1

```

func GetUserGroup added in v4.14.0

func GetUserGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *UserGroupState, opts ...pulumi.ResourceOption) (*UserGroup, error)

GetUserGroup gets an existing UserGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewUserGroup added in v4.14.0

func NewUserGroup(ctx *pulumi.Context,
	name string, args *UserGroupArgs, opts ...pulumi.ResourceOption) (*UserGroup, error)

NewUserGroup registers a new resource with the given unique name, arguments, and options.

func (*UserGroup) ElementType added in v4.14.0

func (*UserGroup) ElementType() reflect.Type

func (*UserGroup) ToUserGroupOutput added in v4.14.0

func (i *UserGroup) ToUserGroupOutput() UserGroupOutput

func (*UserGroup) ToUserGroupOutputWithContext added in v4.14.0

func (i *UserGroup) ToUserGroupOutputWithContext(ctx context.Context) UserGroupOutput

func (*UserGroup) ToUserGroupPtrOutput added in v4.14.0

func (i *UserGroup) ToUserGroupPtrOutput() UserGroupPtrOutput

func (*UserGroup) ToUserGroupPtrOutputWithContext added in v4.14.0

func (i *UserGroup) ToUserGroupPtrOutputWithContext(ctx context.Context) UserGroupPtrOutput

type UserGroupArgs added in v4.14.0

type UserGroupArgs struct {
	Arn pulumi.StringPtrInput
	// The current supported value is `REDIS`.
	Engine  pulumi.StringInput
	Tags    pulumi.StringMapInput
	TagsAll pulumi.StringMapInput
	// The ID of the user group.
	UserGroupId pulumi.StringInput
	// The list of user IDs that belong to the user group.
	UserIds pulumi.StringArrayInput
}

The set of arguments for constructing a UserGroup resource.

func (UserGroupArgs) ElementType added in v4.14.0

func (UserGroupArgs) ElementType() reflect.Type

type UserGroupArray added in v4.14.0

type UserGroupArray []UserGroupInput

func (UserGroupArray) ElementType added in v4.14.0

func (UserGroupArray) ElementType() reflect.Type

func (UserGroupArray) ToUserGroupArrayOutput added in v4.14.0

func (i UserGroupArray) ToUserGroupArrayOutput() UserGroupArrayOutput

func (UserGroupArray) ToUserGroupArrayOutputWithContext added in v4.14.0

func (i UserGroupArray) ToUserGroupArrayOutputWithContext(ctx context.Context) UserGroupArrayOutput

type UserGroupArrayInput added in v4.14.0

type UserGroupArrayInput interface {
	pulumi.Input

	ToUserGroupArrayOutput() UserGroupArrayOutput
	ToUserGroupArrayOutputWithContext(context.Context) UserGroupArrayOutput
}

UserGroupArrayInput is an input type that accepts UserGroupArray and UserGroupArrayOutput values. You can construct a concrete instance of `UserGroupArrayInput` via:

UserGroupArray{ UserGroupArgs{...} }

type UserGroupArrayOutput added in v4.14.0

type UserGroupArrayOutput struct{ *pulumi.OutputState }

func (UserGroupArrayOutput) ElementType added in v4.14.0

func (UserGroupArrayOutput) ElementType() reflect.Type

func (UserGroupArrayOutput) Index added in v4.14.0

func (UserGroupArrayOutput) ToUserGroupArrayOutput added in v4.14.0

func (o UserGroupArrayOutput) ToUserGroupArrayOutput() UserGroupArrayOutput

func (UserGroupArrayOutput) ToUserGroupArrayOutputWithContext added in v4.14.0

func (o UserGroupArrayOutput) ToUserGroupArrayOutputWithContext(ctx context.Context) UserGroupArrayOutput

type UserGroupInput added in v4.14.0

type UserGroupInput interface {
	pulumi.Input

	ToUserGroupOutput() UserGroupOutput
	ToUserGroupOutputWithContext(ctx context.Context) UserGroupOutput
}

type UserGroupMap added in v4.14.0

type UserGroupMap map[string]UserGroupInput

func (UserGroupMap) ElementType added in v4.14.0

func (UserGroupMap) ElementType() reflect.Type

func (UserGroupMap) ToUserGroupMapOutput added in v4.14.0

func (i UserGroupMap) ToUserGroupMapOutput() UserGroupMapOutput

func (UserGroupMap) ToUserGroupMapOutputWithContext added in v4.14.0

func (i UserGroupMap) ToUserGroupMapOutputWithContext(ctx context.Context) UserGroupMapOutput

type UserGroupMapInput added in v4.14.0

type UserGroupMapInput interface {
	pulumi.Input

	ToUserGroupMapOutput() UserGroupMapOutput
	ToUserGroupMapOutputWithContext(context.Context) UserGroupMapOutput
}

UserGroupMapInput is an input type that accepts UserGroupMap and UserGroupMapOutput values. You can construct a concrete instance of `UserGroupMapInput` via:

UserGroupMap{ "key": UserGroupArgs{...} }

type UserGroupMapOutput added in v4.14.0

type UserGroupMapOutput struct{ *pulumi.OutputState }

func (UserGroupMapOutput) ElementType added in v4.14.0

func (UserGroupMapOutput) ElementType() reflect.Type

func (UserGroupMapOutput) MapIndex added in v4.14.0

func (UserGroupMapOutput) ToUserGroupMapOutput added in v4.14.0

func (o UserGroupMapOutput) ToUserGroupMapOutput() UserGroupMapOutput

func (UserGroupMapOutput) ToUserGroupMapOutputWithContext added in v4.14.0

func (o UserGroupMapOutput) ToUserGroupMapOutputWithContext(ctx context.Context) UserGroupMapOutput

type UserGroupOutput added in v4.14.0

type UserGroupOutput struct{ *pulumi.OutputState }

func (UserGroupOutput) ElementType added in v4.14.0

func (UserGroupOutput) ElementType() reflect.Type

func (UserGroupOutput) ToUserGroupOutput added in v4.14.0

func (o UserGroupOutput) ToUserGroupOutput() UserGroupOutput

func (UserGroupOutput) ToUserGroupOutputWithContext added in v4.14.0

func (o UserGroupOutput) ToUserGroupOutputWithContext(ctx context.Context) UserGroupOutput

func (UserGroupOutput) ToUserGroupPtrOutput added in v4.14.0

func (o UserGroupOutput) ToUserGroupPtrOutput() UserGroupPtrOutput

func (UserGroupOutput) ToUserGroupPtrOutputWithContext added in v4.14.0

func (o UserGroupOutput) ToUserGroupPtrOutputWithContext(ctx context.Context) UserGroupPtrOutput

type UserGroupPtrInput added in v4.14.0

type UserGroupPtrInput interface {
	pulumi.Input

	ToUserGroupPtrOutput() UserGroupPtrOutput
	ToUserGroupPtrOutputWithContext(ctx context.Context) UserGroupPtrOutput
}

type UserGroupPtrOutput added in v4.14.0

type UserGroupPtrOutput struct{ *pulumi.OutputState }

func (UserGroupPtrOutput) Elem added in v4.15.0

func (UserGroupPtrOutput) ElementType added in v4.14.0

func (UserGroupPtrOutput) ElementType() reflect.Type

func (UserGroupPtrOutput) ToUserGroupPtrOutput added in v4.14.0

func (o UserGroupPtrOutput) ToUserGroupPtrOutput() UserGroupPtrOutput

func (UserGroupPtrOutput) ToUserGroupPtrOutputWithContext added in v4.14.0

func (o UserGroupPtrOutput) ToUserGroupPtrOutputWithContext(ctx context.Context) UserGroupPtrOutput

type UserGroupState added in v4.14.0

type UserGroupState struct {
	Arn pulumi.StringPtrInput
	// The current supported value is `REDIS`.
	Engine  pulumi.StringPtrInput
	Tags    pulumi.StringMapInput
	TagsAll pulumi.StringMapInput
	// The ID of the user group.
	UserGroupId pulumi.StringPtrInput
	// The list of user IDs that belong to the user group.
	UserIds pulumi.StringArrayInput
}

func (UserGroupState) ElementType added in v4.14.0

func (UserGroupState) ElementType() reflect.Type

type UserInput added in v4.14.0

type UserInput interface {
	pulumi.Input

	ToUserOutput() UserOutput
	ToUserOutputWithContext(ctx context.Context) UserOutput
}

type UserMap added in v4.14.0

type UserMap map[string]UserInput

func (UserMap) ElementType added in v4.14.0

func (UserMap) ElementType() reflect.Type

func (UserMap) ToUserMapOutput added in v4.14.0

func (i UserMap) ToUserMapOutput() UserMapOutput

func (UserMap) ToUserMapOutputWithContext added in v4.14.0

func (i UserMap) ToUserMapOutputWithContext(ctx context.Context) UserMapOutput

type UserMapInput added in v4.14.0

type UserMapInput interface {
	pulumi.Input

	ToUserMapOutput() UserMapOutput
	ToUserMapOutputWithContext(context.Context) UserMapOutput
}

UserMapInput is an input type that accepts UserMap and UserMapOutput values. You can construct a concrete instance of `UserMapInput` via:

UserMap{ "key": UserArgs{...} }

type UserMapOutput added in v4.14.0

type UserMapOutput struct{ *pulumi.OutputState }

func (UserMapOutput) ElementType added in v4.14.0

func (UserMapOutput) ElementType() reflect.Type

func (UserMapOutput) MapIndex added in v4.14.0

func (UserMapOutput) ToUserMapOutput added in v4.14.0

func (o UserMapOutput) ToUserMapOutput() UserMapOutput

func (UserMapOutput) ToUserMapOutputWithContext added in v4.14.0

func (o UserMapOutput) ToUserMapOutputWithContext(ctx context.Context) UserMapOutput

type UserOutput added in v4.14.0

type UserOutput struct{ *pulumi.OutputState }

func (UserOutput) ElementType added in v4.14.0

func (UserOutput) ElementType() reflect.Type

func (UserOutput) ToUserOutput added in v4.14.0

func (o UserOutput) ToUserOutput() UserOutput

func (UserOutput) ToUserOutputWithContext added in v4.14.0

func (o UserOutput) ToUserOutputWithContext(ctx context.Context) UserOutput

func (UserOutput) ToUserPtrOutput added in v4.14.0

func (o UserOutput) ToUserPtrOutput() UserPtrOutput

func (UserOutput) ToUserPtrOutputWithContext added in v4.14.0

func (o UserOutput) ToUserPtrOutputWithContext(ctx context.Context) UserPtrOutput

type UserPtrInput added in v4.14.0

type UserPtrInput interface {
	pulumi.Input

	ToUserPtrOutput() UserPtrOutput
	ToUserPtrOutputWithContext(ctx context.Context) UserPtrOutput
}

type UserPtrOutput added in v4.14.0

type UserPtrOutput struct{ *pulumi.OutputState }

func (UserPtrOutput) Elem added in v4.15.0

func (o UserPtrOutput) Elem() UserOutput

func (UserPtrOutput) ElementType added in v4.14.0

func (UserPtrOutput) ElementType() reflect.Type

func (UserPtrOutput) ToUserPtrOutput added in v4.14.0

func (o UserPtrOutput) ToUserPtrOutput() UserPtrOutput

func (UserPtrOutput) ToUserPtrOutputWithContext added in v4.14.0

func (o UserPtrOutput) ToUserPtrOutputWithContext(ctx context.Context) UserPtrOutput

type UserState added in v4.14.0

type UserState struct {
	// Access permissions string used for this user. See [Specifying Permissions Using an Access String](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html#Access-string) for more details.
	AccessString pulumi.StringPtrInput
	// The ARN of the created ElastiCache User.
	Arn pulumi.StringPtrInput
	// The current supported value is `REDIS`.
	Engine pulumi.StringPtrInput
	// Indicates a password is not required for this user.
	NoPasswordRequired pulumi.BoolPtrInput
	// Passwords used for this user. You can create up to two passwords for each user.
	Passwords pulumi.StringArrayInput
	// A list of tags to be added to this resource. A tag is a key-value pair.
	Tags    pulumi.StringMapInput
	TagsAll pulumi.StringMapInput
	// The ID of the user.
	UserId pulumi.StringPtrInput
	// The username of the user.
	UserName pulumi.StringPtrInput
}

func (UserState) ElementType added in v4.14.0

func (UserState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL