/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace ElastiCache { namespace Model { /** *

Represents the input of a ModifyReplicationGroups * operation.

See Also:

AWS * API Reference

*/ class ModifyReplicationGroupRequest : public ElastiCacheRequest { public: AWS_ELASTICACHE_API ModifyReplicationGroupRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "ModifyReplicationGroup"; } AWS_ELASTICACHE_API Aws::String SerializePayload() const override; protected: AWS_ELASTICACHE_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The identifier of the replication group to modify.

*/ inline const Aws::String& GetReplicationGroupId() const{ return m_replicationGroupId; } /** *

The identifier of the replication group to modify.

*/ inline bool ReplicationGroupIdHasBeenSet() const { return m_replicationGroupIdHasBeenSet; } /** *

The identifier of the replication group to modify.

*/ inline void SetReplicationGroupId(const Aws::String& value) { m_replicationGroupIdHasBeenSet = true; m_replicationGroupId = value; } /** *

The identifier of the replication group to modify.

*/ inline void SetReplicationGroupId(Aws::String&& value) { m_replicationGroupIdHasBeenSet = true; m_replicationGroupId = std::move(value); } /** *

The identifier of the replication group to modify.

*/ inline void SetReplicationGroupId(const char* value) { m_replicationGroupIdHasBeenSet = true; m_replicationGroupId.assign(value); } /** *

The identifier of the replication group to modify.

*/ inline ModifyReplicationGroupRequest& WithReplicationGroupId(const Aws::String& value) { SetReplicationGroupId(value); return *this;} /** *

The identifier of the replication group to modify.

*/ inline ModifyReplicationGroupRequest& WithReplicationGroupId(Aws::String&& value) { SetReplicationGroupId(std::move(value)); return *this;} /** *

The identifier of the replication group to modify.

*/ inline ModifyReplicationGroupRequest& WithReplicationGroupId(const char* value) { SetReplicationGroupId(value); return *this;} /** *

A description for the replication group. Maximum length is 255 * characters.

*/ inline const Aws::String& GetReplicationGroupDescription() const{ return m_replicationGroupDescription; } /** *

A description for the replication group. Maximum length is 255 * characters.

*/ inline bool ReplicationGroupDescriptionHasBeenSet() const { return m_replicationGroupDescriptionHasBeenSet; } /** *

A description for the replication group. Maximum length is 255 * characters.

*/ inline void SetReplicationGroupDescription(const Aws::String& value) { m_replicationGroupDescriptionHasBeenSet = true; m_replicationGroupDescription = value; } /** *

A description for the replication group. Maximum length is 255 * characters.

*/ inline void SetReplicationGroupDescription(Aws::String&& value) { m_replicationGroupDescriptionHasBeenSet = true; m_replicationGroupDescription = std::move(value); } /** *

A description for the replication group. Maximum length is 255 * characters.

*/ inline void SetReplicationGroupDescription(const char* value) { m_replicationGroupDescriptionHasBeenSet = true; m_replicationGroupDescription.assign(value); } /** *

A description for the replication group. Maximum length is 255 * characters.

*/ inline ModifyReplicationGroupRequest& WithReplicationGroupDescription(const Aws::String& value) { SetReplicationGroupDescription(value); return *this;} /** *

A description for the replication group. Maximum length is 255 * characters.

*/ inline ModifyReplicationGroupRequest& WithReplicationGroupDescription(Aws::String&& value) { SetReplicationGroupDescription(std::move(value)); return *this;} /** *

A description for the replication group. Maximum length is 255 * characters.

*/ inline ModifyReplicationGroupRequest& WithReplicationGroupDescription(const char* value) { SetReplicationGroupDescription(value); return *this;} /** *

For replication groups with a single primary, if this parameter is specified, * ElastiCache promotes the specified cluster in the specified replication group to * the primary role. The nodes of all other clusters in the replication group are * read replicas.

*/ inline const Aws::String& GetPrimaryClusterId() const{ return m_primaryClusterId; } /** *

For replication groups with a single primary, if this parameter is specified, * ElastiCache promotes the specified cluster in the specified replication group to * the primary role. The nodes of all other clusters in the replication group are * read replicas.

*/ inline bool PrimaryClusterIdHasBeenSet() const { return m_primaryClusterIdHasBeenSet; } /** *

For replication groups with a single primary, if this parameter is specified, * ElastiCache promotes the specified cluster in the specified replication group to * the primary role. The nodes of all other clusters in the replication group are * read replicas.

*/ inline void SetPrimaryClusterId(const Aws::String& value) { m_primaryClusterIdHasBeenSet = true; m_primaryClusterId = value; } /** *

For replication groups with a single primary, if this parameter is specified, * ElastiCache promotes the specified cluster in the specified replication group to * the primary role. The nodes of all other clusters in the replication group are * read replicas.

*/ inline void SetPrimaryClusterId(Aws::String&& value) { m_primaryClusterIdHasBeenSet = true; m_primaryClusterId = std::move(value); } /** *

For replication groups with a single primary, if this parameter is specified, * ElastiCache promotes the specified cluster in the specified replication group to * the primary role. The nodes of all other clusters in the replication group are * read replicas.

*/ inline void SetPrimaryClusterId(const char* value) { m_primaryClusterIdHasBeenSet = true; m_primaryClusterId.assign(value); } /** *

For replication groups with a single primary, if this parameter is specified, * ElastiCache promotes the specified cluster in the specified replication group to * the primary role. The nodes of all other clusters in the replication group are * read replicas.

*/ inline ModifyReplicationGroupRequest& WithPrimaryClusterId(const Aws::String& value) { SetPrimaryClusterId(value); return *this;} /** *

For replication groups with a single primary, if this parameter is specified, * ElastiCache promotes the specified cluster in the specified replication group to * the primary role. The nodes of all other clusters in the replication group are * read replicas.

*/ inline ModifyReplicationGroupRequest& WithPrimaryClusterId(Aws::String&& value) { SetPrimaryClusterId(std::move(value)); return *this;} /** *

For replication groups with a single primary, if this parameter is specified, * ElastiCache promotes the specified cluster in the specified replication group to * the primary role. The nodes of all other clusters in the replication group are * read replicas.

*/ inline ModifyReplicationGroupRequest& WithPrimaryClusterId(const char* value) { SetPrimaryClusterId(value); return *this;} /** *

The cluster ID that is used as the daily snapshot source for the replication * group. This parameter cannot be set for Redis (cluster mode enabled) replication * groups.

*/ inline const Aws::String& GetSnapshottingClusterId() const{ return m_snapshottingClusterId; } /** *

The cluster ID that is used as the daily snapshot source for the replication * group. This parameter cannot be set for Redis (cluster mode enabled) replication * groups.

*/ inline bool SnapshottingClusterIdHasBeenSet() const { return m_snapshottingClusterIdHasBeenSet; } /** *

The cluster ID that is used as the daily snapshot source for the replication * group. This parameter cannot be set for Redis (cluster mode enabled) replication * groups.

*/ inline void SetSnapshottingClusterId(const Aws::String& value) { m_snapshottingClusterIdHasBeenSet = true; m_snapshottingClusterId = value; } /** *

The cluster ID that is used as the daily snapshot source for the replication * group. This parameter cannot be set for Redis (cluster mode enabled) replication * groups.

*/ inline void SetSnapshottingClusterId(Aws::String&& value) { m_snapshottingClusterIdHasBeenSet = true; m_snapshottingClusterId = std::move(value); } /** *

The cluster ID that is used as the daily snapshot source for the replication * group. This parameter cannot be set for Redis (cluster mode enabled) replication * groups.

*/ inline void SetSnapshottingClusterId(const char* value) { m_snapshottingClusterIdHasBeenSet = true; m_snapshottingClusterId.assign(value); } /** *

The cluster ID that is used as the daily snapshot source for the replication * group. This parameter cannot be set for Redis (cluster mode enabled) replication * groups.

*/ inline ModifyReplicationGroupRequest& WithSnapshottingClusterId(const Aws::String& value) { SetSnapshottingClusterId(value); return *this;} /** *

The cluster ID that is used as the daily snapshot source for the replication * group. This parameter cannot be set for Redis (cluster mode enabled) replication * groups.

*/ inline ModifyReplicationGroupRequest& WithSnapshottingClusterId(Aws::String&& value) { SetSnapshottingClusterId(std::move(value)); return *this;} /** *

The cluster ID that is used as the daily snapshot source for the replication * group. This parameter cannot be set for Redis (cluster mode enabled) replication * groups.

*/ inline ModifyReplicationGroupRequest& WithSnapshottingClusterId(const char* value) { SetSnapshottingClusterId(value); return *this;} /** *

Determines whether a read replica is automatically promoted to read/write * primary if the existing primary encounters a failure.

Valid values: * true | false

*/ inline bool GetAutomaticFailoverEnabled() const{ return m_automaticFailoverEnabled; } /** *

Determines whether a read replica is automatically promoted to read/write * primary if the existing primary encounters a failure.

Valid values: * true | false

*/ inline bool AutomaticFailoverEnabledHasBeenSet() const { return m_automaticFailoverEnabledHasBeenSet; } /** *

Determines whether a read replica is automatically promoted to read/write * primary if the existing primary encounters a failure.

Valid values: * true | false

*/ inline void SetAutomaticFailoverEnabled(bool value) { m_automaticFailoverEnabledHasBeenSet = true; m_automaticFailoverEnabled = value; } /** *

Determines whether a read replica is automatically promoted to read/write * primary if the existing primary encounters a failure.

Valid values: * true | false

*/ inline ModifyReplicationGroupRequest& WithAutomaticFailoverEnabled(bool value) { SetAutomaticFailoverEnabled(value); return *this;} /** *

A flag to indicate MultiAZ is enabled.

*/ inline bool GetMultiAZEnabled() const{ return m_multiAZEnabled; } /** *

A flag to indicate MultiAZ is enabled.

*/ inline bool MultiAZEnabledHasBeenSet() const { return m_multiAZEnabledHasBeenSet; } /** *

A flag to indicate MultiAZ is enabled.

*/ inline void SetMultiAZEnabled(bool value) { m_multiAZEnabledHasBeenSet = true; m_multiAZEnabled = value; } /** *

A flag to indicate MultiAZ is enabled.

*/ inline ModifyReplicationGroupRequest& WithMultiAZEnabled(bool value) { SetMultiAZEnabled(value); return *this;} /** *

A list of cache security group names to authorize for the clusters in this * replication group. This change is asynchronously applied as soon as * possible.

This parameter can be used only with replication group * containing clusters running outside of an Amazon Virtual Private Cloud (Amazon * VPC).

Constraints: Must contain no more than 255 alphanumeric characters. * Must not be Default.

*/ inline const Aws::Vector& GetCacheSecurityGroupNames() const{ return m_cacheSecurityGroupNames; } /** *

A list of cache security group names to authorize for the clusters in this * replication group. This change is asynchronously applied as soon as * possible.

This parameter can be used only with replication group * containing clusters running outside of an Amazon Virtual Private Cloud (Amazon * VPC).

Constraints: Must contain no more than 255 alphanumeric characters. * Must not be Default.

*/ inline bool CacheSecurityGroupNamesHasBeenSet() const { return m_cacheSecurityGroupNamesHasBeenSet; } /** *

A list of cache security group names to authorize for the clusters in this * replication group. This change is asynchronously applied as soon as * possible.

This parameter can be used only with replication group * containing clusters running outside of an Amazon Virtual Private Cloud (Amazon * VPC).

Constraints: Must contain no more than 255 alphanumeric characters. * Must not be Default.

*/ inline void SetCacheSecurityGroupNames(const Aws::Vector& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames = value; } /** *

A list of cache security group names to authorize for the clusters in this * replication group. This change is asynchronously applied as soon as * possible.

This parameter can be used only with replication group * containing clusters running outside of an Amazon Virtual Private Cloud (Amazon * VPC).

Constraints: Must contain no more than 255 alphanumeric characters. * Must not be Default.

*/ inline void SetCacheSecurityGroupNames(Aws::Vector&& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames = std::move(value); } /** *

A list of cache security group names to authorize for the clusters in this * replication group. This change is asynchronously applied as soon as * possible.

This parameter can be used only with replication group * containing clusters running outside of an Amazon Virtual Private Cloud (Amazon * VPC).

Constraints: Must contain no more than 255 alphanumeric characters. * Must not be Default.

*/ inline ModifyReplicationGroupRequest& WithCacheSecurityGroupNames(const Aws::Vector& value) { SetCacheSecurityGroupNames(value); return *this;} /** *

A list of cache security group names to authorize for the clusters in this * replication group. This change is asynchronously applied as soon as * possible.

This parameter can be used only with replication group * containing clusters running outside of an Amazon Virtual Private Cloud (Amazon * VPC).

Constraints: Must contain no more than 255 alphanumeric characters. * Must not be Default.

*/ inline ModifyReplicationGroupRequest& WithCacheSecurityGroupNames(Aws::Vector&& value) { SetCacheSecurityGroupNames(std::move(value)); return *this;} /** *

A list of cache security group names to authorize for the clusters in this * replication group. This change is asynchronously applied as soon as * possible.

This parameter can be used only with replication group * containing clusters running outside of an Amazon Virtual Private Cloud (Amazon * VPC).

Constraints: Must contain no more than 255 alphanumeric characters. * Must not be Default.

*/ inline ModifyReplicationGroupRequest& AddCacheSecurityGroupNames(const Aws::String& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames.push_back(value); return *this; } /** *

A list of cache security group names to authorize for the clusters in this * replication group. This change is asynchronously applied as soon as * possible.

This parameter can be used only with replication group * containing clusters running outside of an Amazon Virtual Private Cloud (Amazon * VPC).

Constraints: Must contain no more than 255 alphanumeric characters. * Must not be Default.

*/ inline ModifyReplicationGroupRequest& AddCacheSecurityGroupNames(Aws::String&& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames.push_back(std::move(value)); return *this; } /** *

A list of cache security group names to authorize for the clusters in this * replication group. This change is asynchronously applied as soon as * possible.

This parameter can be used only with replication group * containing clusters running outside of an Amazon Virtual Private Cloud (Amazon * VPC).

Constraints: Must contain no more than 255 alphanumeric characters. * Must not be Default.

*/ inline ModifyReplicationGroupRequest& AddCacheSecurityGroupNames(const char* value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames.push_back(value); return *this; } /** *

Specifies the VPC Security Groups associated with the clusters in the * replication group.

This parameter can be used only with replication group * containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline const Aws::Vector& GetSecurityGroupIds() const{ return m_securityGroupIds; } /** *

Specifies the VPC Security Groups associated with the clusters in the * replication group.

This parameter can be used only with replication group * containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } /** *

Specifies the VPC Security Groups associated with the clusters in the * replication group.

This parameter can be used only with replication group * containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline void SetSecurityGroupIds(const Aws::Vector& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } /** *

Specifies the VPC Security Groups associated with the clusters in the * replication group.

This parameter can be used only with replication group * containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline void SetSecurityGroupIds(Aws::Vector&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } /** *

Specifies the VPC Security Groups associated with the clusters in the * replication group.

This parameter can be used only with replication group * containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline ModifyReplicationGroupRequest& WithSecurityGroupIds(const Aws::Vector& value) { SetSecurityGroupIds(value); return *this;} /** *

Specifies the VPC Security Groups associated with the clusters in the * replication group.

This parameter can be used only with replication group * containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline ModifyReplicationGroupRequest& WithSecurityGroupIds(Aws::Vector&& value) { SetSecurityGroupIds(std::move(value)); return *this;} /** *

Specifies the VPC Security Groups associated with the clusters in the * replication group.

This parameter can be used only with replication group * containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline ModifyReplicationGroupRequest& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

Specifies the VPC Security Groups associated with the clusters in the * replication group.

This parameter can be used only with replication group * containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline ModifyReplicationGroupRequest& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } /** *

Specifies the VPC Security Groups associated with the clusters in the * replication group.

This parameter can be used only with replication group * containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline ModifyReplicationGroupRequest& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline const Aws::String& GetPreferredMaintenanceWindow() const{ return m_preferredMaintenanceWindow; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline bool PreferredMaintenanceWindowHasBeenSet() const { return m_preferredMaintenanceWindowHasBeenSet; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline void SetPreferredMaintenanceWindow(const Aws::String& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = value; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline void SetPreferredMaintenanceWindow(Aws::String&& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = std::move(value); } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline void SetPreferredMaintenanceWindow(const char* value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow.assign(value); } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline ModifyReplicationGroupRequest& WithPreferredMaintenanceWindow(const Aws::String& value) { SetPreferredMaintenanceWindow(value); return *this;} /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline ModifyReplicationGroupRequest& WithPreferredMaintenanceWindow(Aws::String&& value) { SetPreferredMaintenanceWindow(std::move(value)); return *this;} /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline ModifyReplicationGroupRequest& WithPreferredMaintenanceWindow(const char* value) { SetPreferredMaintenanceWindow(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * are sent.

The Amazon SNS topic owner must be same as the * replication group owner.

*/ inline const Aws::String& GetNotificationTopicArn() const{ return m_notificationTopicArn; } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * are sent.

The Amazon SNS topic owner must be same as the * replication group owner.

*/ inline bool NotificationTopicArnHasBeenSet() const { return m_notificationTopicArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * are sent.

The Amazon SNS topic owner must be same as the * replication group owner.

*/ inline void SetNotificationTopicArn(const Aws::String& value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn = value; } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * are sent.

The Amazon SNS topic owner must be same as the * replication group owner.

*/ inline void SetNotificationTopicArn(Aws::String&& value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * are sent.

The Amazon SNS topic owner must be same as the * replication group owner.

*/ inline void SetNotificationTopicArn(const char* value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * are sent.

The Amazon SNS topic owner must be same as the * replication group owner.

*/ inline ModifyReplicationGroupRequest& WithNotificationTopicArn(const Aws::String& value) { SetNotificationTopicArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * are sent.

The Amazon SNS topic owner must be same as the * replication group owner.

*/ inline ModifyReplicationGroupRequest& WithNotificationTopicArn(Aws::String&& value) { SetNotificationTopicArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * are sent.

The Amazon SNS topic owner must be same as the * replication group owner.

*/ inline ModifyReplicationGroupRequest& WithNotificationTopicArn(const char* value) { SetNotificationTopicArn(value); return *this;} /** *

The name of the cache parameter group to apply to all of the clusters in this * replication group. This change is asynchronously applied as soon as possible for * parameters when the ApplyImmediately parameter is specified as * true for this request.

*/ inline const Aws::String& GetCacheParameterGroupName() const{ return m_cacheParameterGroupName; } /** *

The name of the cache parameter group to apply to all of the clusters in this * replication group. This change is asynchronously applied as soon as possible for * parameters when the ApplyImmediately parameter is specified as * true for this request.

*/ inline bool CacheParameterGroupNameHasBeenSet() const { return m_cacheParameterGroupNameHasBeenSet; } /** *

The name of the cache parameter group to apply to all of the clusters in this * replication group. This change is asynchronously applied as soon as possible for * parameters when the ApplyImmediately parameter is specified as * true for this request.

*/ inline void SetCacheParameterGroupName(const Aws::String& value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName = value; } /** *

The name of the cache parameter group to apply to all of the clusters in this * replication group. This change is asynchronously applied as soon as possible for * parameters when the ApplyImmediately parameter is specified as * true for this request.

*/ inline void SetCacheParameterGroupName(Aws::String&& value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName = std::move(value); } /** *

The name of the cache parameter group to apply to all of the clusters in this * replication group. This change is asynchronously applied as soon as possible for * parameters when the ApplyImmediately parameter is specified as * true for this request.

*/ inline void SetCacheParameterGroupName(const char* value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName.assign(value); } /** *

The name of the cache parameter group to apply to all of the clusters in this * replication group. This change is asynchronously applied as soon as possible for * parameters when the ApplyImmediately parameter is specified as * true for this request.

*/ inline ModifyReplicationGroupRequest& WithCacheParameterGroupName(const Aws::String& value) { SetCacheParameterGroupName(value); return *this;} /** *

The name of the cache parameter group to apply to all of the clusters in this * replication group. This change is asynchronously applied as soon as possible for * parameters when the ApplyImmediately parameter is specified as * true for this request.

*/ inline ModifyReplicationGroupRequest& WithCacheParameterGroupName(Aws::String&& value) { SetCacheParameterGroupName(std::move(value)); return *this;} /** *

The name of the cache parameter group to apply to all of the clusters in this * replication group. This change is asynchronously applied as soon as possible for * parameters when the ApplyImmediately parameter is specified as * true for this request.

*/ inline ModifyReplicationGroupRequest& WithCacheParameterGroupName(const char* value) { SetCacheParameterGroupName(value); return *this;} /** *

The status of the Amazon SNS notification topic for the replication group. * Notifications are sent only if the status is active.

Valid * values: active | inactive

*/ inline const Aws::String& GetNotificationTopicStatus() const{ return m_notificationTopicStatus; } /** *

The status of the Amazon SNS notification topic for the replication group. * Notifications are sent only if the status is active.

Valid * values: active | inactive

*/ inline bool NotificationTopicStatusHasBeenSet() const { return m_notificationTopicStatusHasBeenSet; } /** *

The status of the Amazon SNS notification topic for the replication group. * Notifications are sent only if the status is active.

Valid * values: active | inactive

*/ inline void SetNotificationTopicStatus(const Aws::String& value) { m_notificationTopicStatusHasBeenSet = true; m_notificationTopicStatus = value; } /** *

The status of the Amazon SNS notification topic for the replication group. * Notifications are sent only if the status is active.

Valid * values: active | inactive

*/ inline void SetNotificationTopicStatus(Aws::String&& value) { m_notificationTopicStatusHasBeenSet = true; m_notificationTopicStatus = std::move(value); } /** *

The status of the Amazon SNS notification topic for the replication group. * Notifications are sent only if the status is active.

Valid * values: active | inactive

*/ inline void SetNotificationTopicStatus(const char* value) { m_notificationTopicStatusHasBeenSet = true; m_notificationTopicStatus.assign(value); } /** *

The status of the Amazon SNS notification topic for the replication group. * Notifications are sent only if the status is active.

Valid * values: active | inactive

*/ inline ModifyReplicationGroupRequest& WithNotificationTopicStatus(const Aws::String& value) { SetNotificationTopicStatus(value); return *this;} /** *

The status of the Amazon SNS notification topic for the replication group. * Notifications are sent only if the status is active.

Valid * values: active | inactive

*/ inline ModifyReplicationGroupRequest& WithNotificationTopicStatus(Aws::String&& value) { SetNotificationTopicStatus(std::move(value)); return *this;} /** *

The status of the Amazon SNS notification topic for the replication group. * Notifications are sent only if the status is active.

Valid * values: active | inactive

*/ inline ModifyReplicationGroupRequest& WithNotificationTopicStatus(const char* value) { SetNotificationTopicStatus(value); return *this;} /** *

If true, this parameter causes the modifications in this request * and any pending modifications to be applied, asynchronously and as soon as * possible, regardless of the PreferredMaintenanceWindow setting for * the replication group.

If false, changes to the nodes in the * replication group are applied on the next maintenance reboot, or the next * failure reboot, whichever occurs first.

Valid values: true | * false

Default: false

*/ inline bool GetApplyImmediately() const{ return m_applyImmediately; } /** *

If true, this parameter causes the modifications in this request * and any pending modifications to be applied, asynchronously and as soon as * possible, regardless of the PreferredMaintenanceWindow setting for * the replication group.

If false, changes to the nodes in the * replication group are applied on the next maintenance reboot, or the next * failure reboot, whichever occurs first.

Valid values: true | * false

Default: false

*/ inline bool ApplyImmediatelyHasBeenSet() const { return m_applyImmediatelyHasBeenSet; } /** *

If true, this parameter causes the modifications in this request * and any pending modifications to be applied, asynchronously and as soon as * possible, regardless of the PreferredMaintenanceWindow setting for * the replication group.

If false, changes to the nodes in the * replication group are applied on the next maintenance reboot, or the next * failure reboot, whichever occurs first.

Valid values: true | * false

Default: false

*/ inline void SetApplyImmediately(bool value) { m_applyImmediatelyHasBeenSet = true; m_applyImmediately = value; } /** *

If true, this parameter causes the modifications in this request * and any pending modifications to be applied, asynchronously and as soon as * possible, regardless of the PreferredMaintenanceWindow setting for * the replication group.

If false, changes to the nodes in the * replication group are applied on the next maintenance reboot, or the next * failure reboot, whichever occurs first.

Valid values: true | * false

Default: false

*/ inline ModifyReplicationGroupRequest& WithApplyImmediately(bool value) { SetApplyImmediately(value); return *this;} /** *

The upgraded version of the cache engine to be run on the clusters in the * replication group.

Important: You can upgrade to a newer engine * version (see Selecting * a Cache Engine and Version), but you cannot downgrade to an earlier engine * version. If you want to use an earlier engine version, you must delete the * existing replication group and create it anew with the earlier engine version. *

*/ inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; } /** *

The upgraded version of the cache engine to be run on the clusters in the * replication group.

Important: You can upgrade to a newer engine * version (see Selecting * a Cache Engine and Version), but you cannot downgrade to an earlier engine * version. If you want to use an earlier engine version, you must delete the * existing replication group and create it anew with the earlier engine version. *

*/ inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; } /** *

The upgraded version of the cache engine to be run on the clusters in the * replication group.

Important: You can upgrade to a newer engine * version (see Selecting * a Cache Engine and Version), but you cannot downgrade to an earlier engine * version. If you want to use an earlier engine version, you must delete the * existing replication group and create it anew with the earlier engine version. *

*/ inline void SetEngineVersion(const Aws::String& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; } /** *

The upgraded version of the cache engine to be run on the clusters in the * replication group.

Important: You can upgrade to a newer engine * version (see Selecting * a Cache Engine and Version), but you cannot downgrade to an earlier engine * version. If you want to use an earlier engine version, you must delete the * existing replication group and create it anew with the earlier engine version. *

*/ inline void SetEngineVersion(Aws::String&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); } /** *

The upgraded version of the cache engine to be run on the clusters in the * replication group.

Important: You can upgrade to a newer engine * version (see Selecting * a Cache Engine and Version), but you cannot downgrade to an earlier engine * version. If you want to use an earlier engine version, you must delete the * existing replication group and create it anew with the earlier engine version. *

*/ inline void SetEngineVersion(const char* value) { m_engineVersionHasBeenSet = true; m_engineVersion.assign(value); } /** *

The upgraded version of the cache engine to be run on the clusters in the * replication group.

Important: You can upgrade to a newer engine * version (see Selecting * a Cache Engine and Version), but you cannot downgrade to an earlier engine * version. If you want to use an earlier engine version, you must delete the * existing replication group and create it anew with the earlier engine version. *

*/ inline ModifyReplicationGroupRequest& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;} /** *

The upgraded version of the cache engine to be run on the clusters in the * replication group.

Important: You can upgrade to a newer engine * version (see Selecting * a Cache Engine and Version), but you cannot downgrade to an earlier engine * version. If you want to use an earlier engine version, you must delete the * existing replication group and create it anew with the earlier engine version. *

*/ inline ModifyReplicationGroupRequest& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;} /** *

The upgraded version of the cache engine to be run on the clusters in the * replication group.

Important: You can upgrade to a newer engine * version (see Selecting * a Cache Engine and Version), but you cannot downgrade to an earlier engine * version. If you want to use an earlier engine version, you must delete the * existing replication group and create it anew with the earlier engine version. *

*/ inline ModifyReplicationGroupRequest& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;} /** *

 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 auto minor version upgrade campaign. This * parameter is disabled for previous versions. 

*/ inline bool GetAutoMinorVersionUpgrade() const{ return m_autoMinorVersionUpgrade; } /** *

 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 auto minor version upgrade campaign. This * parameter is disabled for previous versions. 

*/ inline bool AutoMinorVersionUpgradeHasBeenSet() const { return m_autoMinorVersionUpgradeHasBeenSet; } /** *

 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 auto minor version upgrade campaign. This * parameter is disabled for previous versions. 

*/ inline void SetAutoMinorVersionUpgrade(bool value) { m_autoMinorVersionUpgradeHasBeenSet = true; m_autoMinorVersionUpgrade = 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 auto minor version upgrade campaign. This * parameter is disabled for previous versions. 

*/ inline ModifyReplicationGroupRequest& WithAutoMinorVersionUpgrade(bool value) { SetAutoMinorVersionUpgrade(value); return *this;} /** *

The number of days for which ElastiCache retains automatic node group (shard) * snapshots before deleting them. For example, if you set * SnapshotRetentionLimit to 5, a snapshot that was taken today is * retained for 5 days before being deleted.

Important If the value * of SnapshotRetentionLimit is set to zero (0), backups are turned off.

*/ inline int GetSnapshotRetentionLimit() const{ return m_snapshotRetentionLimit; } /** *

The number of days for which ElastiCache retains automatic node group (shard) * snapshots before deleting them. For example, if you set * SnapshotRetentionLimit to 5, a snapshot that was taken today is * retained for 5 days before being deleted.

Important If the value * of SnapshotRetentionLimit is set to zero (0), backups are turned off.

*/ inline bool SnapshotRetentionLimitHasBeenSet() const { return m_snapshotRetentionLimitHasBeenSet; } /** *

The number of days for which ElastiCache retains automatic node group (shard) * snapshots before deleting them. For example, if you set * SnapshotRetentionLimit to 5, a snapshot that was taken today is * retained for 5 days before being deleted.

Important If the value * of SnapshotRetentionLimit is set to zero (0), backups are turned off.

*/ inline void SetSnapshotRetentionLimit(int value) { m_snapshotRetentionLimitHasBeenSet = true; m_snapshotRetentionLimit = value; } /** *

The number of days for which ElastiCache retains automatic node group (shard) * snapshots before deleting them. For example, if you set * SnapshotRetentionLimit to 5, a snapshot that was taken today is * retained for 5 days before being deleted.

Important If the value * of SnapshotRetentionLimit is set to zero (0), backups are turned off.

*/ inline ModifyReplicationGroupRequest& WithSnapshotRetentionLimit(int value) { SetSnapshotRetentionLimit(value); return *this;} /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of the node group (shard) specified by * SnapshottingClusterId.

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

*/ inline const Aws::String& GetSnapshotWindow() const{ return m_snapshotWindow; } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of the node group (shard) specified by * SnapshottingClusterId.

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

*/ inline bool SnapshotWindowHasBeenSet() const { return m_snapshotWindowHasBeenSet; } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of the node group (shard) specified by * SnapshottingClusterId.

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

*/ inline void SetSnapshotWindow(const Aws::String& value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow = value; } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of the node group (shard) specified by * SnapshottingClusterId.

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

*/ inline void SetSnapshotWindow(Aws::String&& value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow = std::move(value); } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of the node group (shard) specified by * SnapshottingClusterId.

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

*/ inline void SetSnapshotWindow(const char* value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow.assign(value); } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of the node group (shard) specified by * SnapshottingClusterId.

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

*/ inline ModifyReplicationGroupRequest& WithSnapshotWindow(const Aws::String& value) { SetSnapshotWindow(value); return *this;} /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of the node group (shard) specified by * SnapshottingClusterId.

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

*/ inline ModifyReplicationGroupRequest& WithSnapshotWindow(Aws::String&& value) { SetSnapshotWindow(std::move(value)); return *this;} /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of the node group (shard) specified by * SnapshottingClusterId.

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

*/ inline ModifyReplicationGroupRequest& WithSnapshotWindow(const char* value) { SetSnapshotWindow(value); return *this;} /** *

A valid cache node type that you want to scale this replication group to.

*/ inline const Aws::String& GetCacheNodeType() const{ return m_cacheNodeType; } /** *

A valid cache node type that you want to scale this replication group to.

*/ inline bool CacheNodeTypeHasBeenSet() const { return m_cacheNodeTypeHasBeenSet; } /** *

A valid cache node type that you want to scale this replication group to.

*/ inline void SetCacheNodeType(const Aws::String& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = value; } /** *

A valid cache node type that you want to scale this replication group to.

*/ inline void SetCacheNodeType(Aws::String&& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = std::move(value); } /** *

A valid cache node type that you want to scale this replication group to.

*/ inline void SetCacheNodeType(const char* value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType.assign(value); } /** *

A valid cache node type that you want to scale this replication group to.

*/ inline ModifyReplicationGroupRequest& WithCacheNodeType(const Aws::String& value) { SetCacheNodeType(value); return *this;} /** *

A valid cache node type that you want to scale this replication group to.

*/ inline ModifyReplicationGroupRequest& WithCacheNodeType(Aws::String&& value) { SetCacheNodeType(std::move(value)); return *this;} /** *

A valid cache node type that you want to scale this replication group to.

*/ inline ModifyReplicationGroupRequest& WithCacheNodeType(const char* value) { SetCacheNodeType(value); return *this;} /** *

Reserved parameter. The password used to access a password protected server. * This parameter must be specified with the auth-token-update-strategy * parameter. Password constraints:

  • Must be only printable * ASCII characters

  • Must be at least 16 characters and no more * than 128 characters in length

  • Cannot contain any of the * following characters: '/', '"', or '@', '%'

For more * information, see AUTH password at AUTH.

*/ inline const Aws::String& GetAuthToken() const{ return m_authToken; } /** *

Reserved parameter. The password used to access a password protected server. * This parameter must be specified with the auth-token-update-strategy * parameter. Password constraints:

  • Must be only printable * ASCII characters

  • Must be at least 16 characters and no more * than 128 characters in length

  • Cannot contain any of the * following characters: '/', '"', or '@', '%'

For more * information, see AUTH password at AUTH.

*/ inline bool AuthTokenHasBeenSet() const { return m_authTokenHasBeenSet; } /** *

Reserved parameter. The password used to access a password protected server. * This parameter must be specified with the auth-token-update-strategy * parameter. Password constraints:

  • Must be only printable * ASCII characters

  • Must be at least 16 characters and no more * than 128 characters in length

  • Cannot contain any of the * following characters: '/', '"', or '@', '%'

For more * information, see AUTH password at AUTH.

*/ inline void SetAuthToken(const Aws::String& value) { m_authTokenHasBeenSet = true; m_authToken = value; } /** *

Reserved parameter. The password used to access a password protected server. * This parameter must be specified with the auth-token-update-strategy * parameter. Password constraints:

  • Must be only printable * ASCII characters

  • Must be at least 16 characters and no more * than 128 characters in length

  • Cannot contain any of the * following characters: '/', '"', or '@', '%'

For more * information, see AUTH password at AUTH.

*/ inline void SetAuthToken(Aws::String&& value) { m_authTokenHasBeenSet = true; m_authToken = std::move(value); } /** *

Reserved parameter. The password used to access a password protected server. * This parameter must be specified with the auth-token-update-strategy * parameter. Password constraints:

  • Must be only printable * ASCII characters

  • Must be at least 16 characters and no more * than 128 characters in length

  • Cannot contain any of the * following characters: '/', '"', or '@', '%'

For more * information, see AUTH password at AUTH.

*/ inline void SetAuthToken(const char* value) { m_authTokenHasBeenSet = true; m_authToken.assign(value); } /** *

Reserved parameter. The password used to access a password protected server. * This parameter must be specified with the auth-token-update-strategy * parameter. Password constraints:

  • Must be only printable * ASCII characters

  • Must be at least 16 characters and no more * than 128 characters in length

  • Cannot contain any of the * following characters: '/', '"', or '@', '%'

For more * information, see AUTH password at AUTH.

*/ inline ModifyReplicationGroupRequest& WithAuthToken(const Aws::String& value) { SetAuthToken(value); return *this;} /** *

Reserved parameter. The password used to access a password protected server. * This parameter must be specified with the auth-token-update-strategy * parameter. Password constraints:

  • Must be only printable * ASCII characters

  • Must be at least 16 characters and no more * than 128 characters in length

  • Cannot contain any of the * following characters: '/', '"', or '@', '%'

For more * information, see AUTH password at AUTH.

*/ inline ModifyReplicationGroupRequest& WithAuthToken(Aws::String&& value) { SetAuthToken(std::move(value)); return *this;} /** *

Reserved parameter. The password used to access a password protected server. * This parameter must be specified with the auth-token-update-strategy * parameter. Password constraints:

  • Must be only printable * ASCII characters

  • Must be at least 16 characters and no more * than 128 characters in length

  • Cannot contain any of the * following characters: '/', '"', or '@', '%'

For more * information, see AUTH password at AUTH.

*/ inline ModifyReplicationGroupRequest& WithAuthToken(const char* value) { SetAuthToken(value); return *this;} /** *

Specifies the strategy to use to update the AUTH token. This parameter must * be specified with the auth-token parameter. Possible values:

*
  • Rotate

  • Set

For more * information, see Authenticating * Users with Redis AUTH

*/ inline const AuthTokenUpdateStrategyType& GetAuthTokenUpdateStrategy() const{ return m_authTokenUpdateStrategy; } /** *

Specifies the strategy to use to update the AUTH token. This parameter must * be specified with the auth-token parameter. Possible values:

*
  • Rotate

  • Set

For more * information, see Authenticating * Users with Redis AUTH

*/ inline bool AuthTokenUpdateStrategyHasBeenSet() const { return m_authTokenUpdateStrategyHasBeenSet; } /** *

Specifies the strategy to use to update the AUTH token. This parameter must * be specified with the auth-token parameter. Possible values:

*
  • Rotate

  • Set

For more * information, see Authenticating * Users with Redis AUTH

*/ inline void SetAuthTokenUpdateStrategy(const AuthTokenUpdateStrategyType& value) { m_authTokenUpdateStrategyHasBeenSet = true; m_authTokenUpdateStrategy = value; } /** *

Specifies the strategy to use to update the AUTH token. This parameter must * be specified with the auth-token parameter. Possible values:

*
  • Rotate

  • Set

For more * information, see Authenticating * Users with Redis AUTH

*/ inline void SetAuthTokenUpdateStrategy(AuthTokenUpdateStrategyType&& value) { m_authTokenUpdateStrategyHasBeenSet = true; m_authTokenUpdateStrategy = std::move(value); } /** *

Specifies the strategy to use to update the AUTH token. This parameter must * be specified with the auth-token parameter. Possible values:

*
  • Rotate

  • Set

For more * information, see Authenticating * Users with Redis AUTH

*/ inline ModifyReplicationGroupRequest& WithAuthTokenUpdateStrategy(const AuthTokenUpdateStrategyType& value) { SetAuthTokenUpdateStrategy(value); return *this;} /** *

Specifies the strategy to use to update the AUTH token. This parameter must * be specified with the auth-token parameter. Possible values:

*
  • Rotate

  • Set

For more * information, see Authenticating * Users with Redis AUTH

*/ inline ModifyReplicationGroupRequest& WithAuthTokenUpdateStrategy(AuthTokenUpdateStrategyType&& value) { SetAuthTokenUpdateStrategy(std::move(value)); return *this;} /** *

The ID of the user group you are associating with the replication group.

*/ inline const Aws::Vector& GetUserGroupIdsToAdd() const{ return m_userGroupIdsToAdd; } /** *

The ID of the user group you are associating with the replication group.

*/ inline bool UserGroupIdsToAddHasBeenSet() const { return m_userGroupIdsToAddHasBeenSet; } /** *

The ID of the user group you are associating with the replication group.

*/ inline void SetUserGroupIdsToAdd(const Aws::Vector& value) { m_userGroupIdsToAddHasBeenSet = true; m_userGroupIdsToAdd = value; } /** *

The ID of the user group you are associating with the replication group.

*/ inline void SetUserGroupIdsToAdd(Aws::Vector&& value) { m_userGroupIdsToAddHasBeenSet = true; m_userGroupIdsToAdd = std::move(value); } /** *

The ID of the user group you are associating with the replication group.

*/ inline ModifyReplicationGroupRequest& WithUserGroupIdsToAdd(const Aws::Vector& value) { SetUserGroupIdsToAdd(value); return *this;} /** *

The ID of the user group you are associating with the replication group.

*/ inline ModifyReplicationGroupRequest& WithUserGroupIdsToAdd(Aws::Vector&& value) { SetUserGroupIdsToAdd(std::move(value)); return *this;} /** *

The ID of the user group you are associating with the replication group.

*/ inline ModifyReplicationGroupRequest& AddUserGroupIdsToAdd(const Aws::String& value) { m_userGroupIdsToAddHasBeenSet = true; m_userGroupIdsToAdd.push_back(value); return *this; } /** *

The ID of the user group you are associating with the replication group.

*/ inline ModifyReplicationGroupRequest& AddUserGroupIdsToAdd(Aws::String&& value) { m_userGroupIdsToAddHasBeenSet = true; m_userGroupIdsToAdd.push_back(std::move(value)); return *this; } /** *

The ID of the user group you are associating with the replication group.

*/ inline ModifyReplicationGroupRequest& AddUserGroupIdsToAdd(const char* value) { m_userGroupIdsToAddHasBeenSet = true; m_userGroupIdsToAdd.push_back(value); return *this; } /** *

The ID of the user group to disassociate from the replication group, meaning * the users in the group no longer can access the replication group.

*/ inline const Aws::Vector& GetUserGroupIdsToRemove() const{ return m_userGroupIdsToRemove; } /** *

The ID of the user group to disassociate from the replication group, meaning * the users in the group no longer can access the replication group.

*/ inline bool UserGroupIdsToRemoveHasBeenSet() const { return m_userGroupIdsToRemoveHasBeenSet; } /** *

The ID of the user group to disassociate from the replication group, meaning * the users in the group no longer can access the replication group.

*/ inline void SetUserGroupIdsToRemove(const Aws::Vector& value) { m_userGroupIdsToRemoveHasBeenSet = true; m_userGroupIdsToRemove = value; } /** *

The ID of the user group to disassociate from the replication group, meaning * the users in the group no longer can access the replication group.

*/ inline void SetUserGroupIdsToRemove(Aws::Vector&& value) { m_userGroupIdsToRemoveHasBeenSet = true; m_userGroupIdsToRemove = std::move(value); } /** *

The ID of the user group to disassociate from the replication group, meaning * the users in the group no longer can access the replication group.

*/ inline ModifyReplicationGroupRequest& WithUserGroupIdsToRemove(const Aws::Vector& value) { SetUserGroupIdsToRemove(value); return *this;} /** *

The ID of the user group to disassociate from the replication group, meaning * the users in the group no longer can access the replication group.

*/ inline ModifyReplicationGroupRequest& WithUserGroupIdsToRemove(Aws::Vector&& value) { SetUserGroupIdsToRemove(std::move(value)); return *this;} /** *

The ID of the user group to disassociate from the replication group, meaning * the users in the group no longer can access the replication group.

*/ inline ModifyReplicationGroupRequest& AddUserGroupIdsToRemove(const Aws::String& value) { m_userGroupIdsToRemoveHasBeenSet = true; m_userGroupIdsToRemove.push_back(value); return *this; } /** *

The ID of the user group to disassociate from the replication group, meaning * the users in the group no longer can access the replication group.

*/ inline ModifyReplicationGroupRequest& AddUserGroupIdsToRemove(Aws::String&& value) { m_userGroupIdsToRemoveHasBeenSet = true; m_userGroupIdsToRemove.push_back(std::move(value)); return *this; } /** *

The ID of the user group to disassociate from the replication group, meaning * the users in the group no longer can access the replication group.

*/ inline ModifyReplicationGroupRequest& AddUserGroupIdsToRemove(const char* value) { m_userGroupIdsToRemoveHasBeenSet = true; m_userGroupIdsToRemove.push_back(value); return *this; } /** *

Removes the user group associated with this replication group.

*/ inline bool GetRemoveUserGroups() const{ return m_removeUserGroups; } /** *

Removes the user group associated with this replication group.

*/ inline bool RemoveUserGroupsHasBeenSet() const { return m_removeUserGroupsHasBeenSet; } /** *

Removes the user group associated with this replication group.

*/ inline void SetRemoveUserGroups(bool value) { m_removeUserGroupsHasBeenSet = true; m_removeUserGroups = value; } /** *

Removes the user group associated with this replication group.

*/ inline ModifyReplicationGroupRequest& WithRemoveUserGroups(bool value) { SetRemoveUserGroups(value); return *this;} /** *

Specifies the destination, format and type of the logs.

*/ inline const Aws::Vector& GetLogDeliveryConfigurations() const{ return m_logDeliveryConfigurations; } /** *

Specifies the destination, format and type of the logs.

*/ inline bool LogDeliveryConfigurationsHasBeenSet() const { return m_logDeliveryConfigurationsHasBeenSet; } /** *

Specifies the destination, format and type of the logs.

*/ inline void SetLogDeliveryConfigurations(const Aws::Vector& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations = value; } /** *

Specifies the destination, format and type of the logs.

*/ inline void SetLogDeliveryConfigurations(Aws::Vector&& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations = std::move(value); } /** *

Specifies the destination, format and type of the logs.

*/ inline ModifyReplicationGroupRequest& WithLogDeliveryConfigurations(const Aws::Vector& value) { SetLogDeliveryConfigurations(value); return *this;} /** *

Specifies the destination, format and type of the logs.

*/ inline ModifyReplicationGroupRequest& WithLogDeliveryConfigurations(Aws::Vector&& value) { SetLogDeliveryConfigurations(std::move(value)); return *this;} /** *

Specifies the destination, format and type of the logs.

*/ inline ModifyReplicationGroupRequest& AddLogDeliveryConfigurations(const LogDeliveryConfigurationRequest& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations.push_back(value); return *this; } /** *

Specifies the destination, format and type of the logs.

*/ inline ModifyReplicationGroupRequest& AddLogDeliveryConfigurations(LogDeliveryConfigurationRequest&& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations.push_back(std::move(value)); return *this; } /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline const IpDiscovery& GetIpDiscovery() const{ return m_ipDiscovery; } /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline bool IpDiscoveryHasBeenSet() const { return m_ipDiscoveryHasBeenSet; } /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline void SetIpDiscovery(const IpDiscovery& value) { m_ipDiscoveryHasBeenSet = true; m_ipDiscovery = value; } /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline void SetIpDiscovery(IpDiscovery&& value) { m_ipDiscoveryHasBeenSet = true; m_ipDiscovery = std::move(value); } /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline ModifyReplicationGroupRequest& WithIpDiscovery(const IpDiscovery& value) { SetIpDiscovery(value); return *this;} /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline ModifyReplicationGroupRequest& WithIpDiscovery(IpDiscovery&& value) { SetIpDiscovery(std::move(value)); return *this;} /** *

A flag that enables in-transit encryption when set to true. If you are * enabling in-transit encryption for an existing cluster, you must also set * TransitEncryptionMode to preferred.

*/ inline bool GetTransitEncryptionEnabled() const{ return m_transitEncryptionEnabled; } /** *

A flag that enables in-transit encryption when set to true. If you are * enabling in-transit encryption for an existing cluster, you must also set * TransitEncryptionMode to preferred.

*/ inline bool TransitEncryptionEnabledHasBeenSet() const { return m_transitEncryptionEnabledHasBeenSet; } /** *

A flag that enables in-transit encryption when set to true. If you are * enabling in-transit encryption for an existing cluster, you must also set * TransitEncryptionMode to preferred.

*/ inline void SetTransitEncryptionEnabled(bool value) { m_transitEncryptionEnabledHasBeenSet = true; m_transitEncryptionEnabled = value; } /** *

A flag that enables in-transit encryption when set to true. If you are * enabling in-transit encryption for an existing cluster, you must also set * TransitEncryptionMode to preferred.

*/ inline ModifyReplicationGroupRequest& WithTransitEncryptionEnabled(bool value) { SetTransitEncryptionEnabled(value); return *this;} /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

You must set * TransitEncryptionEnabled to true, for your existing * cluster, and set TransitEncryptionMode to preferred in * the same request to allow both encrypted and unencrypted connections at the same * time. Once you migrate all your Redis clients to use encrypted connections you * can set the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

*/ inline const TransitEncryptionMode& GetTransitEncryptionMode() const{ return m_transitEncryptionMode; } /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

You must set * TransitEncryptionEnabled to true, for your existing * cluster, and set TransitEncryptionMode to preferred in * the same request to allow both encrypted and unencrypted connections at the same * time. Once you migrate all your Redis clients to use encrypted connections you * can set the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

*/ inline bool TransitEncryptionModeHasBeenSet() const { return m_transitEncryptionModeHasBeenSet; } /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

You must set * TransitEncryptionEnabled to true, for your existing * cluster, and set TransitEncryptionMode to preferred in * the same request to allow both encrypted and unencrypted connections at the same * time. Once you migrate all your Redis clients to use encrypted connections you * can set the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

*/ inline void SetTransitEncryptionMode(const TransitEncryptionMode& value) { m_transitEncryptionModeHasBeenSet = true; m_transitEncryptionMode = value; } /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

You must set * TransitEncryptionEnabled to true, for your existing * cluster, and set TransitEncryptionMode to preferred in * the same request to allow both encrypted and unencrypted connections at the same * time. Once you migrate all your Redis clients to use encrypted connections you * can set the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

*/ inline void SetTransitEncryptionMode(TransitEncryptionMode&& value) { m_transitEncryptionModeHasBeenSet = true; m_transitEncryptionMode = std::move(value); } /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

You must set * TransitEncryptionEnabled to true, for your existing * cluster, and set TransitEncryptionMode to preferred in * the same request to allow both encrypted and unencrypted connections at the same * time. Once you migrate all your Redis clients to use encrypted connections you * can set the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

*/ inline ModifyReplicationGroupRequest& WithTransitEncryptionMode(const TransitEncryptionMode& value) { SetTransitEncryptionMode(value); return *this;} /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

You must set * TransitEncryptionEnabled to true, for your existing * cluster, and set TransitEncryptionMode to preferred in * the same request to allow both encrypted and unencrypted connections at the same * time. Once you migrate all your Redis clients to use encrypted connections you * can set the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

*/ inline ModifyReplicationGroupRequest& WithTransitEncryptionMode(TransitEncryptionMode&& value) { SetTransitEncryptionMode(std::move(value)); return *this;} /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline const ClusterMode& GetClusterMode() const{ return m_clusterMode; } /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline bool ClusterModeHasBeenSet() const { return m_clusterModeHasBeenSet; } /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline void SetClusterMode(const ClusterMode& value) { m_clusterModeHasBeenSet = true; m_clusterMode = value; } /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline void SetClusterMode(ClusterMode&& value) { m_clusterModeHasBeenSet = true; m_clusterMode = std::move(value); } /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline ModifyReplicationGroupRequest& WithClusterMode(const ClusterMode& value) { SetClusterMode(value); return *this;} /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline ModifyReplicationGroupRequest& WithClusterMode(ClusterMode&& value) { SetClusterMode(std::move(value)); return *this;} private: Aws::String m_replicationGroupId; bool m_replicationGroupIdHasBeenSet = false; Aws::String m_replicationGroupDescription; bool m_replicationGroupDescriptionHasBeenSet = false; Aws::String m_primaryClusterId; bool m_primaryClusterIdHasBeenSet = false; Aws::String m_snapshottingClusterId; bool m_snapshottingClusterIdHasBeenSet = false; bool m_automaticFailoverEnabled; bool m_automaticFailoverEnabledHasBeenSet = false; bool m_multiAZEnabled; bool m_multiAZEnabledHasBeenSet = false; Aws::Vector m_cacheSecurityGroupNames; bool m_cacheSecurityGroupNamesHasBeenSet = false; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet = false; Aws::String m_preferredMaintenanceWindow; bool m_preferredMaintenanceWindowHasBeenSet = false; Aws::String m_notificationTopicArn; bool m_notificationTopicArnHasBeenSet = false; Aws::String m_cacheParameterGroupName; bool m_cacheParameterGroupNameHasBeenSet = false; Aws::String m_notificationTopicStatus; bool m_notificationTopicStatusHasBeenSet = false; bool m_applyImmediately; bool m_applyImmediatelyHasBeenSet = false; Aws::String m_engineVersion; bool m_engineVersionHasBeenSet = false; bool m_autoMinorVersionUpgrade; bool m_autoMinorVersionUpgradeHasBeenSet = false; int m_snapshotRetentionLimit; bool m_snapshotRetentionLimitHasBeenSet = false; Aws::String m_snapshotWindow; bool m_snapshotWindowHasBeenSet = false; Aws::String m_cacheNodeType; bool m_cacheNodeTypeHasBeenSet = false; Aws::String m_authToken; bool m_authTokenHasBeenSet = false; AuthTokenUpdateStrategyType m_authTokenUpdateStrategy; bool m_authTokenUpdateStrategyHasBeenSet = false; Aws::Vector m_userGroupIdsToAdd; bool m_userGroupIdsToAddHasBeenSet = false; Aws::Vector m_userGroupIdsToRemove; bool m_userGroupIdsToRemoveHasBeenSet = false; bool m_removeUserGroups; bool m_removeUserGroupsHasBeenSet = false; Aws::Vector m_logDeliveryConfigurations; bool m_logDeliveryConfigurationsHasBeenSet = false; IpDiscovery m_ipDiscovery; bool m_ipDiscoveryHasBeenSet = false; bool m_transitEncryptionEnabled; bool m_transitEncryptionEnabledHasBeenSet = false; TransitEncryptionMode m_transitEncryptionMode; bool m_transitEncryptionModeHasBeenSet = false; ClusterMode m_clusterMode; bool m_clusterModeHasBeenSet = false; }; } // namespace Model } // namespace ElastiCache } // namespace Aws