
software.amazon.awssdk.services.elasticache.model.NodeSnapshot Maven / Gradle / Ivy
/*
* Copyright 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 software.amazon.awssdk.services.elasticache.model;
import java.io.Serializable;
import java.time.Instant;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* Represents an individual cache node in a snapshot of a cluster.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class NodeSnapshot implements SdkPojo, Serializable, ToCopyableBuilder {
private static final SdkField CACHE_CLUSTER_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(NodeSnapshot::cacheClusterId)).setter(setter(Builder::cacheClusterId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CacheClusterId").build()).build();
private static final SdkField NODE_GROUP_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(NodeSnapshot::nodeGroupId)).setter(setter(Builder::nodeGroupId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("NodeGroupId").build()).build();
private static final SdkField CACHE_NODE_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(NodeSnapshot::cacheNodeId)).setter(setter(Builder::cacheNodeId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CacheNodeId").build()).build();
private static final SdkField NODE_GROUP_CONFIGURATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).getter(getter(NodeSnapshot::nodeGroupConfiguration))
.setter(setter(Builder::nodeGroupConfiguration)).constructor(NodeGroupConfiguration::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("NodeGroupConfiguration").build())
.build();
private static final SdkField CACHE_SIZE_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(NodeSnapshot::cacheSize)).setter(setter(Builder::cacheSize))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CacheSize").build()).build();
private static final SdkField CACHE_NODE_CREATE_TIME_FIELD = SdkField. builder(MarshallingType.INSTANT)
.getter(getter(NodeSnapshot::cacheNodeCreateTime)).setter(setter(Builder::cacheNodeCreateTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CacheNodeCreateTime").build())
.build();
private static final SdkField SNAPSHOT_CREATE_TIME_FIELD = SdkField. builder(MarshallingType.INSTANT)
.getter(getter(NodeSnapshot::snapshotCreateTime)).setter(setter(Builder::snapshotCreateTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SnapshotCreateTime").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(CACHE_CLUSTER_ID_FIELD,
NODE_GROUP_ID_FIELD, CACHE_NODE_ID_FIELD, NODE_GROUP_CONFIGURATION_FIELD, CACHE_SIZE_FIELD,
CACHE_NODE_CREATE_TIME_FIELD, SNAPSHOT_CREATE_TIME_FIELD));
private static final long serialVersionUID = 1L;
private final String cacheClusterId;
private final String nodeGroupId;
private final String cacheNodeId;
private final NodeGroupConfiguration nodeGroupConfiguration;
private final String cacheSize;
private final Instant cacheNodeCreateTime;
private final Instant snapshotCreateTime;
private NodeSnapshot(BuilderImpl builder) {
this.cacheClusterId = builder.cacheClusterId;
this.nodeGroupId = builder.nodeGroupId;
this.cacheNodeId = builder.cacheNodeId;
this.nodeGroupConfiguration = builder.nodeGroupConfiguration;
this.cacheSize = builder.cacheSize;
this.cacheNodeCreateTime = builder.cacheNodeCreateTime;
this.snapshotCreateTime = builder.snapshotCreateTime;
}
/**
*
* A unique identifier for the source cluster.
*
*
* @return A unique identifier for the source cluster.
*/
public String cacheClusterId() {
return cacheClusterId;
}
/**
*
* A unique identifier for the source node group (shard).
*
*
* @return A unique identifier for the source node group (shard).
*/
public String nodeGroupId() {
return nodeGroupId;
}
/**
*
* The cache node identifier for the node in the source cluster.
*
*
* @return The cache node identifier for the node in the source cluster.
*/
public String cacheNodeId() {
return cacheNodeId;
}
/**
*
* The configuration for the source node group (shard).
*
*
* @return The configuration for the source node group (shard).
*/
public NodeGroupConfiguration nodeGroupConfiguration() {
return nodeGroupConfiguration;
}
/**
*
* The size of the cache on the source cache node.
*
*
* @return The size of the cache on the source cache node.
*/
public String cacheSize() {
return cacheSize;
}
/**
*
* The date and time when the cache node was created in the source cluster.
*
*
* @return The date and time when the cache node was created in the source cluster.
*/
public Instant cacheNodeCreateTime() {
return cacheNodeCreateTime;
}
/**
*
* The date and time when the source node's metadata and cache data set was obtained for the snapshot.
*
*
* @return The date and time when the source node's metadata and cache data set was obtained for the snapshot.
*/
public Instant snapshotCreateTime() {
return snapshotCreateTime;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(cacheClusterId());
hashCode = 31 * hashCode + Objects.hashCode(nodeGroupId());
hashCode = 31 * hashCode + Objects.hashCode(cacheNodeId());
hashCode = 31 * hashCode + Objects.hashCode(nodeGroupConfiguration());
hashCode = 31 * hashCode + Objects.hashCode(cacheSize());
hashCode = 31 * hashCode + Objects.hashCode(cacheNodeCreateTime());
hashCode = 31 * hashCode + Objects.hashCode(snapshotCreateTime());
return hashCode;
}
@Override
public boolean equals(Object obj) {
return equalsBySdkFields(obj);
}
@Override
public boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof NodeSnapshot)) {
return false;
}
NodeSnapshot other = (NodeSnapshot) obj;
return Objects.equals(cacheClusterId(), other.cacheClusterId()) && Objects.equals(nodeGroupId(), other.nodeGroupId())
&& Objects.equals(cacheNodeId(), other.cacheNodeId())
&& Objects.equals(nodeGroupConfiguration(), other.nodeGroupConfiguration())
&& Objects.equals(cacheSize(), other.cacheSize())
&& Objects.equals(cacheNodeCreateTime(), other.cacheNodeCreateTime())
&& Objects.equals(snapshotCreateTime(), other.snapshotCreateTime());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public String toString() {
return ToString.builder("NodeSnapshot").add("CacheClusterId", cacheClusterId()).add("NodeGroupId", nodeGroupId())
.add("CacheNodeId", cacheNodeId()).add("NodeGroupConfiguration", nodeGroupConfiguration())
.add("CacheSize", cacheSize()).add("CacheNodeCreateTime", cacheNodeCreateTime())
.add("SnapshotCreateTime", snapshotCreateTime()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "CacheClusterId":
return Optional.ofNullable(clazz.cast(cacheClusterId()));
case "NodeGroupId":
return Optional.ofNullable(clazz.cast(nodeGroupId()));
case "CacheNodeId":
return Optional.ofNullable(clazz.cast(cacheNodeId()));
case "NodeGroupConfiguration":
return Optional.ofNullable(clazz.cast(nodeGroupConfiguration()));
case "CacheSize":
return Optional.ofNullable(clazz.cast(cacheSize()));
case "CacheNodeCreateTime":
return Optional.ofNullable(clazz.cast(cacheNodeCreateTime()));
case "SnapshotCreateTime":
return Optional.ofNullable(clazz.cast(snapshotCreateTime()));
default:
return Optional.empty();
}
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
private static Function
© 2015 - 2025 Weber Informatics LLC | Privacy Policy