/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.elasticache.model; import java.io.Serializable; import javax.annotation.Generated; /** *

* Represents a copy of an entire Redis cluster as of the time when the snapshot was taken. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class Snapshot implements Serializable, Cloneable { /** *

* The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is * the user-provided name. *

*/ private String snapshotName; /** *

* The unique identifier of the source replication group. *

*/ private String replicationGroupId; /** *

* A description of the source replication group. *

*/ private String replicationGroupDescription; /** *

* The user-supplied identifier of the source cluster. *

*/ private String cacheClusterId; /** *

* The status of the snapshot. Valid values: creating | available | restoring * | copying | deleting. *

*/ private String snapshotStatus; /** *

* Indicates whether the snapshot is from an automatic backup (automated) or was created manually ( * manual). *

*/ private String snapshotSource; /** *

* The name of the compute and memory capacity node type for the source cluster. *

*

* The following node types are supported by ElastiCache. Generally speaking, the current generation types provide * more memory and computational power at lower cost when compared to their equivalent previous generation * counterparts. *

* *

* Additional node type info *

* */ private String cacheNodeType; /** *

* The name of the cache engine (memcached or redis) used by the source cluster. *

*/ private String engine; /** *

* The version of the cache engine version that is used by the source cluster. *

*/ private String engineVersion; /** *

* The number of cache nodes in the source cluster. *

*

* For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 * and 40. *

*/ private Integer numCacheNodes; /** *

* The name of the Availability Zone in which the source cluster is located. *

*/ private String preferredAvailabilityZone; /** *

* The ARN (Amazon Resource Name) of the preferred outpost. *

*/ private String preferredOutpostArn; /** *

* The date and time when the source cluster was created. *

*/ private java.util.Date cacheClusterCreateTime; /** *

* 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: *

* *

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

*/ private String preferredMaintenanceWindow; /** *

* The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing notifications. *

*/ private String topicArn; /** *

* The port number used by each cache nodes in the source cluster. *

*/ private Integer port; /** *

* The cache parameter group that is associated with the source cluster. *

*/ private String cacheParameterGroupName; /** *

* The name of the cache subnet group associated with the source cluster. *

*/ private String cacheSubnetGroupName; /** *

* The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cluster. *

*/ private String vpcId; /** *

*  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.  *

*/ private Boolean autoMinorVersionUpgrade; /** *

* For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. *

*

* For manual snapshots, this field reflects the SnapshotRetentionLimit for the source cluster when the * snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted * using the DeleteSnapshot operation. *

*

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

*/ private Integer snapshotRetentionLimit; /** *

* The daily time range during which ElastiCache takes daily snapshots of the source cluster. *

*/ private String snapshotWindow; /** *

* The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups * (shards) in the snapshot and in the restored replication group must be the same. *

*/ private Integer numNodeGroups; /** *

* Indicates the status of automatic failover for the source Redis replication group. *

*/ private String automaticFailover; /** *

* A list of the cache nodes in the source cluster. *

*/ private com.amazonaws.internal.SdkInternalList nodeSnapshots; /** *

* The ID of the KMS key used to encrypt the snapshot. *

*/ private String kmsKeyId; /** *

* The ARN (Amazon Resource Name) of the snapshot. *

*/ private String aRN; /** *

* Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This * parameter must be set to true when using r6gd nodes. For more information, see Data tiering. *

*/ private String dataTiering; /** *

* The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is * the user-provided name. *

* * @param snapshotName * The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, * this is the user-provided name. */ public void setSnapshotName(String snapshotName) { this.snapshotName = snapshotName; } /** *

* The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is * the user-provided name. *

* * @return The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, * this is the user-provided name. */ public String getSnapshotName() { return this.snapshotName; } /** *

* The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is * the user-provided name. *

* * @param snapshotName * The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, * this is the user-provided name. * @return Returns a reference to this object so that method calls can be chained together. */ public Snapshot withSnapshotName(String snapshotName) { setSnapshotName(snapshotName); return this; } /** *

* The unique identifier of the source replication group. *

* * @param replicationGroupId * The unique identifier of the source replication group. */ public void setReplicationGroupId(String replicationGroupId) { this.replicationGroupId = replicationGroupId; } /** *

* The unique identifier of the source replication group. *

* * @return The unique identifier of the source replication group. */ public String getReplicationGroupId() { return this.replicationGroupId; } /** *

* The unique identifier of the source replication group. *

* * @param replicationGroupId * The unique identifier of the source replication group. * @return Returns a reference to this object so that method calls can be chained together. */ public Snapshot withReplicationGroupId(String replicationGroupId) { setReplicationGroupId(replicationGroupId); return this; } /** *

* A description of the source replication group. *

* * @param replicationGroupDescription * A description of the source replication group. */ public void setReplicationGroupDescription(String replicationGroupDescription) { this.replicationGroupDescription = replicationGroupDescription; } /** *

* A description of the source replication group. *

* * @return A description of the source replication group. */ public String getReplicationGroupDescription() { return this.replicationGroupDescription; } /** *

* A description of the source replication group. *

* * @param replicationGroupDescription * A description of the source replication group. * @return Returns a reference to this object so that method calls can be chained together. */ public Snapshot withReplicationGroupDescription(String replicationGroupDescription) { setReplicationGroupDescription(replicationGroupDescription); return this; } /** *

* The user-supplied identifier of the source cluster. *

* * @param cacheClusterId * The user-supplied identifier of the source cluster. */ public void setCacheClusterId(String cacheClusterId) { this.cacheClusterId = cacheClusterId; } /** *

* The user-supplied identifier of the source cluster. *

* * @return The user-supplied identifier of the source cluster. */ public String getCacheClusterId() { return this.cacheClusterId; } /** *

* The user-supplied identifier of the source cluster. *

* * @param cacheClusterId * The user-supplied identifier of the source cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public Snapshot withCacheClusterId(String cacheClusterId) { setCacheClusterId(cacheClusterId); return this; } /** *

* The status of the snapshot. Valid values: creating | available | restoring * | copying | deleting. *

* * @param snapshotStatus * The status of the snapshot. Valid values: creating | available | * restoring | copying | deleting. */ public void setSnapshotStatus(String snapshotStatus) { this.snapshotStatus = snapshotStatus; } /** *

* The status of the snapshot. Valid values: creating | available | restoring * | copying | deleting. *

* * @return The status of the snapshot. Valid values: creating | available | * restoring | copying | deleting. */ public String getSnapshotStatus() { return this.snapshotStatus; } /** *

* The status of the snapshot. Valid values: creating | available | restoring * | copying | deleting. *

* * @param snapshotStatus * The status of the snapshot. Valid values: creating | available | * restoring | copying | deleting. * @return Returns a reference to this object so that method calls can be chained together. */ public Snapshot withSnapshotStatus(String snapshotStatus) { setSnapshotStatus(snapshotStatus); return this; } /** *

* Indicates whether the snapshot is from an automatic backup (automated) or was created manually ( * manual). *

* * @param snapshotSource * Indicates whether the snapshot is from an automatic backup (automated) or was created * manually (manual). */ public void setSnapshotSource(String snapshotSource) { this.snapshotSource = snapshotSource; } /** *

* Indicates whether the snapshot is from an automatic backup (automated) or was created manually ( * manual). *

* * @return Indicates whether the snapshot is from an automatic backup (automated) or was created * manually (manual). */ public String getSnapshotSource() { return this.snapshotSource; } /** *

* Indicates whether the snapshot is from an automatic backup (automated) or was created manually ( * manual). *

* * @param snapshotSource * Indicates whether the snapshot is from an automatic backup (automated) or was created * manually (manual). * @return Returns a reference to this object so that method calls can be chained together. */ public Snapshot withSnapshotSource(String snapshotSource) { setSnapshotSource(snapshotSource); return this; } /** *

* The name of the compute and memory capacity node type for the source cluster. *

*

* The following node types are supported by ElastiCache. Generally speaking, the current generation types provide * more memory and computational power at lower cost when compared to their equivalent previous generation * counterparts. *

* *

* Additional node type info *

* * * @param cacheNodeType * The name of the compute and memory capacity node type for the source cluster.

*

* The following node types are supported by ElastiCache. Generally speaking, the current generation types * provide more memory and computational power at lower cost when compared to their equivalent previous * generation counterparts. *

* *

* Additional node type info *

*