in aws-memorydb-cluster/src/main/java/software/amazon/memorydb/cluster/Translator.java [190:216]
static ResourceModel translateFromReadResponse(Cluster cluster) {
final int replicaCount = cluster.shards().stream().mapToInt(software.amazon.awssdk.services.memorydb.model.Shard::numberOfNodes).min().orElse(1) - 1;
final List<String> securityGroupIds = cluster.securityGroups().stream().map(SecurityGroupMembership::securityGroupId).collect(Collectors.toList());
return ResourceModel.builder()
.clusterName(cluster.name())
.description(cluster.description())
.status(cluster.status())
.nodeType(cluster.nodeType())
.numShards(cluster.numberOfShards())
.numReplicasPerShard(replicaCount)
.subnetGroupName(cluster.subnetGroupName())
.securityGroupIds(securityGroupIds)
.port(cluster.clusterEndpoint().port())
.snsTopicArn(cluster.snsTopicArn())
.tLSEnabled(cluster.tlsEnabled())
.aRN(cluster.arn())
.engineVersion(cluster.engineVersion())
.parameterGroupName(cluster.parameterGroupName())
.parameterGroupStatus(cluster.parameterGroupStatus())
.autoMinorVersionUpgrade(cluster.autoMinorVersionUpgrade())
.maintenanceWindow(cluster.maintenanceWindow())
.snapshotWindow(cluster.snapshotWindow())
.snapshotRetentionLimit(cluster.snapshotRetentionLimit())
.aCLName(cluster.aclName())
.snsTopicStatus(cluster.snsTopicStatus())
.clusterEndpoint(translateEndpoint(cluster)).build();
}