Class CfnReplicationGroup

java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
All Implemented Interfaces:
IInspectable, ITaggable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct, software.constructs.IDependable

@Generated(value="jsii-pacmak/1.101.0 (build b95fe5d)", date="2024-07-22T22:42:51.536Z") @Stability(Stable) public class CfnReplicationGroup extends CfnResource implements IInspectable, ITaggable
The AWS::ElastiCache::ReplicationGroup resource creates an Amazon ElastiCache Redis replication group.

A Redis (cluster mode disabled) replication group is a collection of cache clusters, where one of the clusters is a primary read-write cluster and the others are read-only replicas.

A Redis (cluster mode enabled) cluster is comprised of from 1 to 90 shards (API/CLI: node groups). Each shard has a primary node and up to 5 read-only replica nodes. The configuration can range from 90 shards and 0 replicas to 15 shards and 5 replicas, which is the maximum number or replicas allowed.

The node or shard limit can be increased to a maximum of 500 per cluster if the Redis engine version is 5.0.6 or higher. For example, you can choose to configure a 500 node cluster that ranges between 83 shards (one primary and 5 replicas per shard) and 500 shards (single primary and no replicas). Make sure there are enough available IP addresses to accommodate the increase. Common pitfalls include the subnets in the subnet group have too small a CIDR range or the subnets are shared and heavily used by other clusters. For more information, see Creating a Subnet Group . For versions below 5.0.6, the limit is 250 per cluster.

To request a limit increase, see Amazon Service Limits and choose the limit type Nodes per cluster per instance type .

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.elasticache.*;
 CfnReplicationGroup cfnReplicationGroup = CfnReplicationGroup.Builder.create(this, "MyCfnReplicationGroup")
         .replicationGroupDescription("replicationGroupDescription")
         // the properties below are optional
         .atRestEncryptionEnabled(false)
         .authToken("authToken")
         .automaticFailoverEnabled(false)
         .autoMinorVersionUpgrade(false)
         .cacheNodeType("cacheNodeType")
         .cacheParameterGroupName("cacheParameterGroupName")
         .cacheSecurityGroupNames(List.of("cacheSecurityGroupNames"))
         .cacheSubnetGroupName("cacheSubnetGroupName")
         .clusterMode("clusterMode")
         .dataTieringEnabled(false)
         .engine("engine")
         .engineVersion("engineVersion")
         .globalReplicationGroupId("globalReplicationGroupId")
         .ipDiscovery("ipDiscovery")
         .kmsKeyId("kmsKeyId")
         .logDeliveryConfigurations(List.of(LogDeliveryConfigurationRequestProperty.builder()
                 .destinationDetails(DestinationDetailsProperty.builder()
                         .cloudWatchLogsDetails(CloudWatchLogsDestinationDetailsProperty.builder()
                                 .logGroup("logGroup")
                                 .build())
                         .kinesisFirehoseDetails(KinesisFirehoseDestinationDetailsProperty.builder()
                                 .deliveryStream("deliveryStream")
                                 .build())
                         .build())
                 .destinationType("destinationType")
                 .logFormat("logFormat")
                 .logType("logType")
                 .build()))
         .multiAzEnabled(false)
         .networkType("networkType")
         .nodeGroupConfiguration(List.of(NodeGroupConfigurationProperty.builder()
                 .nodeGroupId("nodeGroupId")
                 .primaryAvailabilityZone("primaryAvailabilityZone")
                 .replicaAvailabilityZones(List.of("replicaAvailabilityZones"))
                 .replicaCount(123)
                 .slots("slots")
                 .build()))
         .notificationTopicArn("notificationTopicArn")
         .numCacheClusters(123)
         .numNodeGroups(123)
         .port(123)
         .preferredCacheClusterAZs(List.of("preferredCacheClusterAZs"))
         .preferredMaintenanceWindow("preferredMaintenanceWindow")
         .primaryClusterId("primaryClusterId")
         .replicasPerNodeGroup(123)
         .replicationGroupId("replicationGroupId")
         .securityGroupIds(List.of("securityGroupIds"))
         .snapshotArns(List.of("snapshotArns"))
         .snapshotName("snapshotName")
         .snapshotRetentionLimit(123)
         .snapshottingClusterId("snapshottingClusterId")
         .snapshotWindow("snapshotWindow")
         .tags(List.of(CfnTag.builder()
                 .key("key")
                 .value("value")
                 .build()))
         .transitEncryptionEnabled(false)
         .transitEncryptionMode("transitEncryptionMode")
         .userGroupIds(List.of("userGroupIds"))
         .build();
 

See Also:
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnReplicationGroup

      protected CfnReplicationGroup(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnReplicationGroup

      protected CfnReplicationGroup(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnReplicationGroup

      @Stability(Stable) public CfnReplicationGroup(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull CfnReplicationGroupProps props)
      Parameters:
      scope - Scope in which this resource is defined. This parameter is required.
      id - Construct identifier for this resource (unique in its scope). This parameter is required.
      props - Resource properties. This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector - tree inspector to collect and process attributes. This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getAttrConfigurationEndPointAddress

      @Stability(Stable) @NotNull public String getAttrConfigurationEndPointAddress()
      The DNS hostname of the cache node.

      Redis (cluster mode disabled) replication groups don't have this attribute. Therefore, Fn::GetAtt returns a value for this attribute only if the replication group is clustered. Otherwise, Fn::GetAtt fails. For Redis (cluster mode disabled) replication groups, use the PrimaryEndpoint or ReadEndpoint attributes.

    • getAttrConfigurationEndPointPort

      @Stability(Stable) @NotNull public String getAttrConfigurationEndPointPort()
      The port number that the cache engine is listening on.
    • getAttrPrimaryEndPointAddress

      @Stability(Stable) @NotNull public String getAttrPrimaryEndPointAddress()
      The DNS address of the primary read-write cache node.
    • getAttrPrimaryEndPointPort

      @Stability(Stable) @NotNull public String getAttrPrimaryEndPointPort()
      The number of the port that the primary read-write cache engine is listening on.
    • getAttrReadEndPointAddresses

      @Stability(Stable) @NotNull public String getAttrReadEndPointAddresses()
      A string with a list of endpoints for the primary and read-only replicas.

      The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.

    • getAttrReadEndPointAddressesList

      @Stability(Stable) @NotNull public List<String> getAttrReadEndPointAddressesList()
      A string with a list of endpoints for the read-only replicas.

      The order of the addresses maps to the order of the ports from the ReadEndPoint.Ports attribute.

    • getAttrReadEndPointPorts

      @Stability(Stable) @NotNull public String getAttrReadEndPointPorts()
      A string with a list of ports for the read-only replicas.

      The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.

    • getAttrReadEndPointPortsList

      @Stability(Stable) @NotNull public List<String> getAttrReadEndPointPortsList()
      A string with a list of ports for the read-only replicas.

      The order of the ports maps to the order of the addresses from the ReadEndPoint.Addresses attribute.

    • getAttrReaderEndPointAddress

      @Stability(Stable) @NotNull public String getAttrReaderEndPointAddress()
      The address of the reader endpoint.
    • getAttrReaderEndPointPort

      @Stability(Stable) @NotNull public String getAttrReaderEndPointPort()
      The port used by the reader endpoint.
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      Tag Manager which manages the tags for this resource.
      Specified by:
      getTags in interface ITaggable
    • getReplicationGroupDescription

      @Stability(Stable) @NotNull public String getReplicationGroupDescription()
      A user-created description for the replication group.
    • setReplicationGroupDescription

      @Stability(Stable) public void setReplicationGroupDescription(@NotNull String value)
      A user-created description for the replication group.
    • getAtRestEncryptionEnabled

      @Stability(Stable) @Nullable public Object getAtRestEncryptionEnabled()
      A flag that enables encryption at rest when set to true .
    • setAtRestEncryptionEnabled

      @Stability(Stable) public void setAtRestEncryptionEnabled(@Nullable Boolean value)
      A flag that enables encryption at rest when set to true .
    • setAtRestEncryptionEnabled

      @Stability(Stable) public void setAtRestEncryptionEnabled(@Nullable IResolvable value)
      A flag that enables encryption at rest when set to true .
    • getAuthToken

      @Stability(Stable) @Nullable public String getAuthToken()
      Reserved parameter. The password used to access a password protected server.
    • setAuthToken

      @Stability(Stable) public void setAuthToken(@Nullable String value)
      Reserved parameter. The password used to access a password protected server.
    • getAutomaticFailoverEnabled

      @Stability(Stable) @Nullable public Object getAutomaticFailoverEnabled()
      Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails.
    • setAutomaticFailoverEnabled

      @Stability(Stable) public void setAutomaticFailoverEnabled(@Nullable Boolean value)
      Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails.
    • setAutomaticFailoverEnabled

      @Stability(Stable) public void setAutomaticFailoverEnabled(@Nullable IResolvable value)
      Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails.
    • getAutoMinorVersionUpgrade

      @Stability(Stable) @Nullable public Object getAutoMinorVersionUpgrade()
      If you are running Redis engine version 6.0 or later, set this parameter to yes if you want to opt-in to the next minor version upgrade campaign. This parameter is disabled for previous versions.
    • setAutoMinorVersionUpgrade

      @Stability(Stable) public void setAutoMinorVersionUpgrade(@Nullable Boolean value)
      If you are running Redis engine version 6.0 or later, set this parameter to yes if you want to opt-in to the next minor version upgrade campaign. This parameter is disabled for previous versions.
    • setAutoMinorVersionUpgrade

      @Stability(Stable) public void setAutoMinorVersionUpgrade(@Nullable IResolvable value)
      If you are running Redis engine version 6.0 or later, set this parameter to yes if you want to opt-in to the next minor version upgrade campaign. This parameter is disabled for previous versions.
    • getCacheNodeType

      @Stability(Stable) @Nullable public String getCacheNodeType()
      The compute and memory capacity of the nodes in the node group (shard).
    • setCacheNodeType

      @Stability(Stable) public void setCacheNodeType(@Nullable String value)
      The compute and memory capacity of the nodes in the node group (shard).
    • getCacheParameterGroupName

      @Stability(Stable) @Nullable public String getCacheParameterGroupName()
      The name of the parameter group to associate with this replication group.
    • setCacheParameterGroupName

      @Stability(Stable) public void setCacheParameterGroupName(@Nullable String value)
      The name of the parameter group to associate with this replication group.
    • getCacheSecurityGroupNames

      @Stability(Stable) @Nullable public List<String> getCacheSecurityGroupNames()
      A list of cache security group names to associate with this replication group.
    • setCacheSecurityGroupNames

      @Stability(Stable) public void setCacheSecurityGroupNames(@Nullable List<String> value)
      A list of cache security group names to associate with this replication group.
    • getCacheSubnetGroupName

      @Stability(Stable) @Nullable public String getCacheSubnetGroupName()
      The name of the cache subnet group to be used for the replication group.
    • setCacheSubnetGroupName

      @Stability(Stable) public void setCacheSubnetGroupName(@Nullable String value)
      The name of the cache subnet group to be used for the replication group.
    • getClusterMode

      @Stability(Stable) @Nullable public String getClusterMode()
      Enabled or Disabled.
    • setClusterMode

      @Stability(Stable) public void setClusterMode(@Nullable String value)
      Enabled or Disabled.
    • getDataTieringEnabled

      @Stability(Stable) @Nullable public Object getDataTieringEnabled()
      Enables data tiering.
    • setDataTieringEnabled

      @Stability(Stable) public void setDataTieringEnabled(@Nullable Boolean value)
      Enables data tiering.
    • setDataTieringEnabled

      @Stability(Stable) public void setDataTieringEnabled(@Nullable IResolvable value)
      Enables data tiering.
    • getEngine

      @Stability(Stable) @Nullable public String getEngine()
      The name of the cache engine to be used for the clusters in this replication group.
    • setEngine

      @Stability(Stable) public void setEngine(@Nullable String value)
      The name of the cache engine to be used for the clusters in this replication group.
    • getEngineVersion

      @Stability(Stable) @Nullable public String getEngineVersion()
      The version number of the cache engine to be used for the clusters in this replication group.
    • setEngineVersion

      @Stability(Stable) public void setEngineVersion(@Nullable String value)
      The version number of the cache engine to be used for the clusters in this replication group.
    • getGlobalReplicationGroupId

      @Stability(Stable) @Nullable public String getGlobalReplicationGroupId()
      The name of the Global datastore.
    • setGlobalReplicationGroupId

      @Stability(Stable) public void setGlobalReplicationGroupId(@Nullable String value)
      The name of the Global datastore.
    • getIpDiscovery

      @Stability(Stable) @Nullable public String getIpDiscovery()
      The network type you choose when creating a replication group, either ipv4 | ipv6 .
    • setIpDiscovery

      @Stability(Stable) public void setIpDiscovery(@Nullable String value)
      The network type you choose when creating a replication group, either ipv4 | ipv6 .
    • getKmsKeyId

      @Stability(Stable) @Nullable public String getKmsKeyId()
      The ID of the KMS key used to encrypt the disk on the cluster.
    • setKmsKeyId

      @Stability(Stable) public void setKmsKeyId(@Nullable String value)
      The ID of the KMS key used to encrypt the disk on the cluster.
    • getLogDeliveryConfigurations

      @Stability(Stable) @Nullable public Object getLogDeliveryConfigurations()
      Specifies the destination, format and type of the logs.
    • setLogDeliveryConfigurations

      @Stability(Stable) public void setLogDeliveryConfigurations(@Nullable IResolvable value)
      Specifies the destination, format and type of the logs.
    • setLogDeliveryConfigurations

      @Stability(Stable) public void setLogDeliveryConfigurations(@Nullable List<Object> value)
      Specifies the destination, format and type of the logs.
    • getMultiAzEnabled

      @Stability(Stable) @Nullable public Object getMultiAzEnabled()
      A flag indicating if you have Multi-AZ enabled to enhance fault tolerance.
    • setMultiAzEnabled

      @Stability(Stable) public void setMultiAzEnabled(@Nullable Boolean value)
      A flag indicating if you have Multi-AZ enabled to enhance fault tolerance.
    • setMultiAzEnabled

      @Stability(Stable) public void setMultiAzEnabled(@Nullable IResolvable value)
      A flag indicating if you have Multi-AZ enabled to enhance fault tolerance.
    • getNetworkType

      @Stability(Stable) @Nullable public String getNetworkType()
      Must be either ipv4 | ipv6 | dual_stack .
    • setNetworkType

      @Stability(Stable) public void setNetworkType(@Nullable String value)
      Must be either ipv4 | ipv6 | dual_stack .
    • getNodeGroupConfiguration

      @Stability(Stable) @Nullable public Object getNodeGroupConfiguration()
      NodeGroupConfiguration is a property of the AWS::ElastiCache::ReplicationGroup resource that configures an Amazon ElastiCache (ElastiCache) Redis cluster node group.
    • setNodeGroupConfiguration

      @Stability(Stable) public void setNodeGroupConfiguration(@Nullable IResolvable value)
      NodeGroupConfiguration is a property of the AWS::ElastiCache::ReplicationGroup resource that configures an Amazon ElastiCache (ElastiCache) Redis cluster node group.
    • setNodeGroupConfiguration

      @Stability(Stable) public void setNodeGroupConfiguration(@Nullable List<Object> value)
      NodeGroupConfiguration is a property of the AWS::ElastiCache::ReplicationGroup resource that configures an Amazon ElastiCache (ElastiCache) Redis cluster node group.
    • getNotificationTopicArn

      @Stability(Stable) @Nullable public String getNotificationTopicArn()
      The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.
    • setNotificationTopicArn

      @Stability(Stable) public void setNotificationTopicArn(@Nullable String value)
      The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.
    • getNumCacheClusters

      @Stability(Stable) @Nullable public Number getNumCacheClusters()
      The number of clusters this replication group initially has.
    • setNumCacheClusters

      @Stability(Stable) public void setNumCacheClusters(@Nullable Number value)
      The number of clusters this replication group initially has.
    • getNumNodeGroups

      @Stability(Stable) @Nullable public Number getNumNodeGroups()
      An optional parameter that specifies the number of node groups (shards) for this Redis (cluster mode enabled) replication group.
    • setNumNodeGroups

      @Stability(Stable) public void setNumNodeGroups(@Nullable Number value)
      An optional parameter that specifies the number of node groups (shards) for this Redis (cluster mode enabled) replication group.
    • getPort

      @Stability(Stable) @Nullable public Number getPort()
      The port number on which each member of the replication group accepts connections.
    • setPort

      @Stability(Stable) public void setPort(@Nullable Number value)
      The port number on which each member of the replication group accepts connections.
    • getPreferredCacheClusterAZs

      @Stability(Stable) @Nullable public List<String> getPreferredCacheClusterAZs()
      A list of EC2 Availability Zones in which the replication group's clusters are created.
    • setPreferredCacheClusterAZs

      @Stability(Stable) public void setPreferredCacheClusterAZs(@Nullable List<String> value)
      A list of EC2 Availability Zones in which the replication group's clusters are created.
    • getPreferredMaintenanceWindow

      @Stability(Stable) @Nullable public String getPreferredMaintenanceWindow()
      Specifies the weekly time range during which maintenance on the cluster is performed.
    • setPreferredMaintenanceWindow

      @Stability(Stable) public void setPreferredMaintenanceWindow(@Nullable String value)
      Specifies the weekly time range during which maintenance on the cluster is performed.
    • getPrimaryClusterId

      @Stability(Stable) @Nullable public String getPrimaryClusterId()
      The identifier of the cluster that serves as the primary for this replication group.
    • setPrimaryClusterId

      @Stability(Stable) public void setPrimaryClusterId(@Nullable String value)
      The identifier of the cluster that serves as the primary for this replication group.
    • getReplicasPerNodeGroup

      @Stability(Stable) @Nullable public Number getReplicasPerNodeGroup()
      An optional parameter that specifies the number of replica nodes in each node group (shard).
    • setReplicasPerNodeGroup

      @Stability(Stable) public void setReplicasPerNodeGroup(@Nullable Number value)
      An optional parameter that specifies the number of replica nodes in each node group (shard).
    • getReplicationGroupId

      @Stability(Stable) @Nullable public String getReplicationGroupId()
      The replication group identifier.

      This parameter is stored as a lowercase string.

    • setReplicationGroupId

      @Stability(Stable) public void setReplicationGroupId(@Nullable String value)
      The replication group identifier.

      This parameter is stored as a lowercase string.

    • getSecurityGroupIds

      @Stability(Stable) @Nullable public List<String> getSecurityGroupIds()
      One or more Amazon VPC security groups associated with this replication group.
    • setSecurityGroupIds

      @Stability(Stable) public void setSecurityGroupIds(@Nullable List<String> value)
      One or more Amazon VPC security groups associated with this replication group.
    • getSnapshotArns

      @Stability(Stable) @Nullable public List<String> getSnapshotArns()
      A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3.
    • setSnapshotArns

      @Stability(Stable) public void setSnapshotArns(@Nullable List<String> value)
      A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3.
    • getSnapshotName

      @Stability(Stable) @Nullable public String getSnapshotName()
      The name of a snapshot from which to restore data into the new replication group.
    • setSnapshotName

      @Stability(Stable) public void setSnapshotName(@Nullable String value)
      The name of a snapshot from which to restore data into the new replication group.
    • getSnapshotRetentionLimit

      @Stability(Stable) @Nullable public Number getSnapshotRetentionLimit()
      The number of days for which ElastiCache retains automatic snapshots before deleting them.
    • setSnapshotRetentionLimit

      @Stability(Stable) public void setSnapshotRetentionLimit(@Nullable Number value)
      The number of days for which ElastiCache retains automatic snapshots before deleting them.
    • getSnapshottingClusterId

      @Stability(Stable) @Nullable public String getSnapshottingClusterId()
      The cluster ID that is used as the daily snapshot source for the replication group.
    • setSnapshottingClusterId

      @Stability(Stable) public void setSnapshottingClusterId(@Nullable String value)
      The cluster ID that is used as the daily snapshot source for the replication group.
    • getSnapshotWindow

      @Stability(Stable) @Nullable public String getSnapshotWindow()
      The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).
    • setSnapshotWindow

      @Stability(Stable) public void setSnapshotWindow(@Nullable String value)
      The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).
    • getTagsRaw

      @Stability(Stable) @Nullable public List<CfnTag> getTagsRaw()
      A list of tags to be added to this resource.
    • setTagsRaw

      @Stability(Stable) public void setTagsRaw(@Nullable List<CfnTag> value)
      A list of tags to be added to this resource.
    • getTransitEncryptionEnabled

      @Stability(Stable) @Nullable public Object getTransitEncryptionEnabled()
      A flag that enables in-transit encryption when set to true .
    • setTransitEncryptionEnabled

      @Stability(Stable) public void setTransitEncryptionEnabled(@Nullable Boolean value)
      A flag that enables in-transit encryption when set to true .
    • setTransitEncryptionEnabled

      @Stability(Stable) public void setTransitEncryptionEnabled(@Nullable IResolvable value)
      A flag that enables in-transit encryption when set to true .
    • getTransitEncryptionMode

      @Stability(Stable) @Nullable public String getTransitEncryptionMode()
      A setting that allows you to migrate your clients to use in-transit encryption, with no downtime.
    • setTransitEncryptionMode

      @Stability(Stable) public void setTransitEncryptionMode(@Nullable String value)
      A setting that allows you to migrate your clients to use in-transit encryption, with no downtime.
    • getUserGroupIds

      @Stability(Stable) @Nullable public List<String> getUserGroupIds()
      The ID of user group to associate with the replication group.
    • setUserGroupIds

      @Stability(Stable) public void setUserGroupIds(@Nullable List<String> value)
      The ID of user group to associate with the replication group.