software.amazon.awssdk.services.redshift.model.Cluster Maven / Gradle / Ivy
Show all versions of redshift Show documentation
/*
* 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.redshift.model;
import java.io.Serializable;
import java.time.Instant;
import java.util.Arrays;
import java.util.Collection;
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 java.util.stream.Collectors;
import java.util.stream.Stream;
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.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* Describes a cluster.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class Cluster implements SdkPojo, Serializable, ToCopyableBuilder {
private static final SdkField CLUSTER_IDENTIFIER_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClusterIdentifier").getter(getter(Cluster::clusterIdentifier))
.setter(setter(Builder::clusterIdentifier))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterIdentifier").build()).build();
private static final SdkField NODE_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("NodeType").getter(getter(Cluster::nodeType)).setter(setter(Builder::nodeType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("NodeType").build()).build();
private static final SdkField CLUSTER_STATUS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClusterStatus").getter(getter(Cluster::clusterStatus)).setter(setter(Builder::clusterStatus))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterStatus").build()).build();
private static final SdkField CLUSTER_AVAILABILITY_STATUS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClusterAvailabilityStatus").getter(getter(Cluster::clusterAvailabilityStatus))
.setter(setter(Builder::clusterAvailabilityStatus))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterAvailabilityStatus").build())
.build();
private static final SdkField MODIFY_STATUS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ModifyStatus").getter(getter(Cluster::modifyStatus)).setter(setter(Builder::modifyStatus))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ModifyStatus").build()).build();
private static final SdkField MASTER_USERNAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("MasterUsername").getter(getter(Cluster::masterUsername)).setter(setter(Builder::masterUsername))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MasterUsername").build()).build();
private static final SdkField DB_NAME_FIELD = SdkField. builder(MarshallingType.STRING).memberName("DBName")
.getter(getter(Cluster::dbName)).setter(setter(Builder::dbName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DBName").build()).build();
private static final SdkField ENDPOINT_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("Endpoint").getter(getter(Cluster::endpoint)).setter(setter(Builder::endpoint))
.constructor(Endpoint::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Endpoint").build()).build();
private static final SdkField CLUSTER_CREATE_TIME_FIELD = SdkField. builder(MarshallingType.INSTANT)
.memberName("ClusterCreateTime").getter(getter(Cluster::clusterCreateTime))
.setter(setter(Builder::clusterCreateTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterCreateTime").build()).build();
private static final SdkField AUTOMATED_SNAPSHOT_RETENTION_PERIOD_FIELD = SdkField
. builder(MarshallingType.INTEGER)
.memberName("AutomatedSnapshotRetentionPeriod")
.getter(getter(Cluster::automatedSnapshotRetentionPeriod))
.setter(setter(Builder::automatedSnapshotRetentionPeriod))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AutomatedSnapshotRetentionPeriod")
.build()).build();
private static final SdkField MANUAL_SNAPSHOT_RETENTION_PERIOD_FIELD = SdkField
. builder(MarshallingType.INTEGER)
.memberName("ManualSnapshotRetentionPeriod")
.getter(getter(Cluster::manualSnapshotRetentionPeriod))
.setter(setter(Builder::manualSnapshotRetentionPeriod))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ManualSnapshotRetentionPeriod")
.build()).build();
private static final SdkField> CLUSTER_SECURITY_GROUPS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("ClusterSecurityGroups")
.getter(getter(Cluster::clusterSecurityGroups))
.setter(setter(Builder::clusterSecurityGroups))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterSecurityGroups").build(),
ListTrait
.builder()
.memberLocationName("ClusterSecurityGroup")
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(ClusterSecurityGroupMembership::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("ClusterSecurityGroup").build()).build()).build()).build();
private static final SdkField> VPC_SECURITY_GROUPS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("VpcSecurityGroups")
.getter(getter(Cluster::vpcSecurityGroups))
.setter(setter(Builder::vpcSecurityGroups))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("VpcSecurityGroups").build(),
ListTrait
.builder()
.memberLocationName("VpcSecurityGroup")
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(VpcSecurityGroupMembership::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("VpcSecurityGroup").build()).build()).build()).build();
private static final SdkField> CLUSTER_PARAMETER_GROUPS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("ClusterParameterGroups")
.getter(getter(Cluster::clusterParameterGroups))
.setter(setter(Builder::clusterParameterGroups))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterParameterGroups").build(),
ListTrait
.builder()
.memberLocationName("ClusterParameterGroup")
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(ClusterParameterGroupStatus::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("ClusterParameterGroup").build()).build()).build()).build();
private static final SdkField CLUSTER_SUBNET_GROUP_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClusterSubnetGroupName").getter(getter(Cluster::clusterSubnetGroupName))
.setter(setter(Builder::clusterSubnetGroupName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterSubnetGroupName").build())
.build();
private static final SdkField VPC_ID_FIELD = SdkField. builder(MarshallingType.STRING).memberName("VpcId")
.getter(getter(Cluster::vpcId)).setter(setter(Builder::vpcId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("VpcId").build()).build();
private static final SdkField AVAILABILITY_ZONE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("AvailabilityZone").getter(getter(Cluster::availabilityZone)).setter(setter(Builder::availabilityZone))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AvailabilityZone").build()).build();
private static final SdkField PREFERRED_MAINTENANCE_WINDOW_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("PreferredMaintenanceWindow")
.getter(getter(Cluster::preferredMaintenanceWindow))
.setter(setter(Builder::preferredMaintenanceWindow))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PreferredMaintenanceWindow").build())
.build();
private static final SdkField PENDING_MODIFIED_VALUES_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("PendingModifiedValues")
.getter(getter(Cluster::pendingModifiedValues)).setter(setter(Builder::pendingModifiedValues))
.constructor(PendingModifiedValues::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PendingModifiedValues").build())
.build();
private static final SdkField CLUSTER_VERSION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClusterVersion").getter(getter(Cluster::clusterVersion)).setter(setter(Builder::clusterVersion))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterVersion").build()).build();
private static final SdkField ALLOW_VERSION_UPGRADE_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("AllowVersionUpgrade").getter(getter(Cluster::allowVersionUpgrade))
.setter(setter(Builder::allowVersionUpgrade))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AllowVersionUpgrade").build())
.build();
private static final SdkField NUMBER_OF_NODES_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("NumberOfNodes").getter(getter(Cluster::numberOfNodes)).setter(setter(Builder::numberOfNodes))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("NumberOfNodes").build()).build();
private static final SdkField PUBLICLY_ACCESSIBLE_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("PubliclyAccessible").getter(getter(Cluster::publiclyAccessible))
.setter(setter(Builder::publiclyAccessible))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PubliclyAccessible").build())
.build();
private static final SdkField ENCRYPTED_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("Encrypted").getter(getter(Cluster::encrypted)).setter(setter(Builder::encrypted))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Encrypted").build()).build();
private static final SdkField RESTORE_STATUS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("RestoreStatus").getter(getter(Cluster::restoreStatus))
.setter(setter(Builder::restoreStatus)).constructor(RestoreStatus::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RestoreStatus").build()).build();
private static final SdkField DATA_TRANSFER_PROGRESS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("DataTransferProgress")
.getter(getter(Cluster::dataTransferProgress)).setter(setter(Builder::dataTransferProgress))
.constructor(DataTransferProgress::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DataTransferProgress").build())
.build();
private static final SdkField HSM_STATUS_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("HsmStatus").getter(getter(Cluster::hsmStatus)).setter(setter(Builder::hsmStatus))
.constructor(HsmStatus::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("HsmStatus").build()).build();
private static final SdkField CLUSTER_SNAPSHOT_COPY_STATUS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("ClusterSnapshotCopyStatus")
.getter(getter(Cluster::clusterSnapshotCopyStatus)).setter(setter(Builder::clusterSnapshotCopyStatus))
.constructor(ClusterSnapshotCopyStatus::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterSnapshotCopyStatus").build())
.build();
private static final SdkField CLUSTER_PUBLIC_KEY_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClusterPublicKey").getter(getter(Cluster::clusterPublicKey)).setter(setter(Builder::clusterPublicKey))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterPublicKey").build()).build();
private static final SdkField> CLUSTER_NODES_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("ClusterNodes")
.getter(getter(Cluster::clusterNodes))
.setter(setter(Builder::clusterNodes))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterNodes").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(ClusterNode::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField ELASTIC_IP_STATUS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("ElasticIpStatus")
.getter(getter(Cluster::elasticIpStatus)).setter(setter(Builder::elasticIpStatus))
.constructor(ElasticIpStatus::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ElasticIpStatus").build()).build();
private static final SdkField CLUSTER_REVISION_NUMBER_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClusterRevisionNumber").getter(getter(Cluster::clusterRevisionNumber))
.setter(setter(Builder::clusterRevisionNumber))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterRevisionNumber").build())
.build();
private static final SdkField> TAGS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("Tags")
.getter(getter(Cluster::tags))
.setter(setter(Builder::tags))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Tags").build(),
ListTrait
.builder()
.memberLocationName("Tag")
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(Tag::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("Tag").build()).build()).build()).build();
private static final SdkField KMS_KEY_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("KmsKeyId").getter(getter(Cluster::kmsKeyId)).setter(setter(Builder::kmsKeyId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("KmsKeyId").build()).build();
private static final SdkField ENHANCED_VPC_ROUTING_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("EnhancedVpcRouting").getter(getter(Cluster::enhancedVpcRouting))
.setter(setter(Builder::enhancedVpcRouting))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EnhancedVpcRouting").build())
.build();
private static final SdkField> IAM_ROLES_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("IamRoles")
.getter(getter(Cluster::iamRoles))
.setter(setter(Builder::iamRoles))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("IamRoles").build(),
ListTrait
.builder()
.memberLocationName("ClusterIamRole")
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(ClusterIamRole::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("ClusterIamRole").build()).build()).build()).build();
private static final SdkField> PENDING_ACTIONS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("PendingActions")
.getter(getter(Cluster::pendingActions))
.setter(setter(Builder::pendingActions))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PendingActions").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField MAINTENANCE_TRACK_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("MaintenanceTrackName").getter(getter(Cluster::maintenanceTrackName))
.setter(setter(Builder::maintenanceTrackName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MaintenanceTrackName").build())
.build();
private static final SdkField ELASTIC_RESIZE_NUMBER_OF_NODE_OPTIONS_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("ElasticResizeNumberOfNodeOptions")
.getter(getter(Cluster::elasticResizeNumberOfNodeOptions))
.setter(setter(Builder::elasticResizeNumberOfNodeOptions))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ElasticResizeNumberOfNodeOptions")
.build()).build();
private static final SdkField> DEFERRED_MAINTENANCE_WINDOWS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("DeferredMaintenanceWindows")
.getter(getter(Cluster::deferredMaintenanceWindows))
.setter(setter(Builder::deferredMaintenanceWindows))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DeferredMaintenanceWindows").build(),
ListTrait
.builder()
.memberLocationName("DeferredMaintenanceWindow")
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(DeferredMaintenanceWindow::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("DeferredMaintenanceWindow").build()).build()).build()).build();
private static final SdkField SNAPSHOT_SCHEDULE_IDENTIFIER_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("SnapshotScheduleIdentifier")
.getter(getter(Cluster::snapshotScheduleIdentifier))
.setter(setter(Builder::snapshotScheduleIdentifier))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SnapshotScheduleIdentifier").build())
.build();
private static final SdkField SNAPSHOT_SCHEDULE_STATE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SnapshotScheduleState").getter(getter(Cluster::snapshotScheduleStateAsString))
.setter(setter(Builder::snapshotScheduleState))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SnapshotScheduleState").build())
.build();
private static final SdkField EXPECTED_NEXT_SNAPSHOT_SCHEDULE_TIME_FIELD = SdkField
. builder(MarshallingType.INSTANT)
.memberName("ExpectedNextSnapshotScheduleTime")
.getter(getter(Cluster::expectedNextSnapshotScheduleTime))
.setter(setter(Builder::expectedNextSnapshotScheduleTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ExpectedNextSnapshotScheduleTime")
.build()).build();
private static final SdkField EXPECTED_NEXT_SNAPSHOT_SCHEDULE_TIME_STATUS_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("ExpectedNextSnapshotScheduleTimeStatus")
.getter(getter(Cluster::expectedNextSnapshotScheduleTimeStatus))
.setter(setter(Builder::expectedNextSnapshotScheduleTimeStatus))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("ExpectedNextSnapshotScheduleTimeStatus").build()).build();
private static final SdkField NEXT_MAINTENANCE_WINDOW_START_TIME_FIELD = SdkField
. builder(MarshallingType.INSTANT)
.memberName("NextMaintenanceWindowStartTime")
.getter(getter(Cluster::nextMaintenanceWindowStartTime))
.setter(setter(Builder::nextMaintenanceWindowStartTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("NextMaintenanceWindowStartTime")
.build()).build();
private static final SdkField RESIZE_INFO_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("ResizeInfo").getter(getter(Cluster::resizeInfo)).setter(setter(Builder::resizeInfo))
.constructor(ResizeInfo::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ResizeInfo").build()).build();
private static final SdkField AVAILABILITY_ZONE_RELOCATION_STATUS_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("AvailabilityZoneRelocationStatus")
.getter(getter(Cluster::availabilityZoneRelocationStatus))
.setter(setter(Builder::availabilityZoneRelocationStatus))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AvailabilityZoneRelocationStatus")
.build()).build();
private static final SdkField CLUSTER_NAMESPACE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClusterNamespaceArn").getter(getter(Cluster::clusterNamespaceArn))
.setter(setter(Builder::clusterNamespaceArn))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterNamespaceArn").build())
.build();
private static final SdkField TOTAL_STORAGE_CAPACITY_IN_MEGA_BYTES_FIELD = SdkField
. builder(MarshallingType.LONG)
.memberName("TotalStorageCapacityInMegaBytes")
.getter(getter(Cluster::totalStorageCapacityInMegaBytes))
.setter(setter(Builder::totalStorageCapacityInMegaBytes))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("TotalStorageCapacityInMegaBytes")
.build()).build();
private static final SdkField AQUA_CONFIGURATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("AquaConfiguration")
.getter(getter(Cluster::aquaConfiguration)).setter(setter(Builder::aquaConfiguration))
.constructor(AquaConfiguration::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AquaConfiguration").build()).build();
private static final SdkField DEFAULT_IAM_ROLE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("DefaultIamRoleArn").getter(getter(Cluster::defaultIamRoleArn))
.setter(setter(Builder::defaultIamRoleArn))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DefaultIamRoleArn").build()).build();
private static final SdkField RESERVED_NODE_EXCHANGE_STATUS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO)
.memberName("ReservedNodeExchangeStatus")
.getter(getter(Cluster::reservedNodeExchangeStatus))
.setter(setter(Builder::reservedNodeExchangeStatus))
.constructor(ReservedNodeExchangeStatus::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ReservedNodeExchangeStatus").build())
.build();
private static final SdkField CUSTOM_DOMAIN_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("CustomDomainName").getter(getter(Cluster::customDomainName)).setter(setter(Builder::customDomainName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CustomDomainName").build()).build();
private static final SdkField CUSTOM_DOMAIN_CERTIFICATE_ARN_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("CustomDomainCertificateArn")
.getter(getter(Cluster::customDomainCertificateArn))
.setter(setter(Builder::customDomainCertificateArn))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CustomDomainCertificateArn").build())
.build();
private static final SdkField CUSTOM_DOMAIN_CERTIFICATE_EXPIRY_DATE_FIELD = SdkField
. builder(MarshallingType.INSTANT)
.memberName("CustomDomainCertificateExpiryDate")
.getter(getter(Cluster::customDomainCertificateExpiryDate))
.setter(setter(Builder::customDomainCertificateExpiryDate))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CustomDomainCertificateExpiryDate")
.build()).build();
private static final SdkField MASTER_PASSWORD_SECRET_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("MasterPasswordSecretArn").getter(getter(Cluster::masterPasswordSecretArn))
.setter(setter(Builder::masterPasswordSecretArn))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MasterPasswordSecretArn").build())
.build();
private static final SdkField MASTER_PASSWORD_SECRET_KMS_KEY_ID_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("MasterPasswordSecretKmsKeyId")
.getter(getter(Cluster::masterPasswordSecretKmsKeyId))
.setter(setter(Builder::masterPasswordSecretKmsKeyId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MasterPasswordSecretKmsKeyId")
.build()).build();
private static final SdkField IP_ADDRESS_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("IpAddressType").getter(getter(Cluster::ipAddressType)).setter(setter(Builder::ipAddressType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("IpAddressType").build()).build();
private static final SdkField MULTI_AZ_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("MultiAZ").getter(getter(Cluster::multiAZ)).setter(setter(Builder::multiAZ))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MultiAZ").build()).build();
private static final SdkField MULTI_AZ_SECONDARY_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("MultiAZSecondary")
.getter(getter(Cluster::multiAZSecondary)).setter(setter(Builder::multiAZSecondary))
.constructor(SecondaryClusterInfo::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MultiAZSecondary").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(CLUSTER_IDENTIFIER_FIELD,
NODE_TYPE_FIELD, CLUSTER_STATUS_FIELD, CLUSTER_AVAILABILITY_STATUS_FIELD, MODIFY_STATUS_FIELD, MASTER_USERNAME_FIELD,
DB_NAME_FIELD, ENDPOINT_FIELD, CLUSTER_CREATE_TIME_FIELD, AUTOMATED_SNAPSHOT_RETENTION_PERIOD_FIELD,
MANUAL_SNAPSHOT_RETENTION_PERIOD_FIELD, CLUSTER_SECURITY_GROUPS_FIELD, VPC_SECURITY_GROUPS_FIELD,
CLUSTER_PARAMETER_GROUPS_FIELD, CLUSTER_SUBNET_GROUP_NAME_FIELD, VPC_ID_FIELD, AVAILABILITY_ZONE_FIELD,
PREFERRED_MAINTENANCE_WINDOW_FIELD, PENDING_MODIFIED_VALUES_FIELD, CLUSTER_VERSION_FIELD,
ALLOW_VERSION_UPGRADE_FIELD, NUMBER_OF_NODES_FIELD, PUBLICLY_ACCESSIBLE_FIELD, ENCRYPTED_FIELD, RESTORE_STATUS_FIELD,
DATA_TRANSFER_PROGRESS_FIELD, HSM_STATUS_FIELD, CLUSTER_SNAPSHOT_COPY_STATUS_FIELD, CLUSTER_PUBLIC_KEY_FIELD,
CLUSTER_NODES_FIELD, ELASTIC_IP_STATUS_FIELD, CLUSTER_REVISION_NUMBER_FIELD, TAGS_FIELD, KMS_KEY_ID_FIELD,
ENHANCED_VPC_ROUTING_FIELD, IAM_ROLES_FIELD, PENDING_ACTIONS_FIELD, MAINTENANCE_TRACK_NAME_FIELD,
ELASTIC_RESIZE_NUMBER_OF_NODE_OPTIONS_FIELD, DEFERRED_MAINTENANCE_WINDOWS_FIELD, SNAPSHOT_SCHEDULE_IDENTIFIER_FIELD,
SNAPSHOT_SCHEDULE_STATE_FIELD, EXPECTED_NEXT_SNAPSHOT_SCHEDULE_TIME_FIELD,
EXPECTED_NEXT_SNAPSHOT_SCHEDULE_TIME_STATUS_FIELD, NEXT_MAINTENANCE_WINDOW_START_TIME_FIELD, RESIZE_INFO_FIELD,
AVAILABILITY_ZONE_RELOCATION_STATUS_FIELD, CLUSTER_NAMESPACE_ARN_FIELD, TOTAL_STORAGE_CAPACITY_IN_MEGA_BYTES_FIELD,
AQUA_CONFIGURATION_FIELD, DEFAULT_IAM_ROLE_ARN_FIELD, RESERVED_NODE_EXCHANGE_STATUS_FIELD, CUSTOM_DOMAIN_NAME_FIELD,
CUSTOM_DOMAIN_CERTIFICATE_ARN_FIELD, CUSTOM_DOMAIN_CERTIFICATE_EXPIRY_DATE_FIELD, MASTER_PASSWORD_SECRET_ARN_FIELD,
MASTER_PASSWORD_SECRET_KMS_KEY_ID_FIELD, IP_ADDRESS_TYPE_FIELD, MULTI_AZ_FIELD, MULTI_AZ_SECONDARY_FIELD));
private static final long serialVersionUID = 1L;
private final String clusterIdentifier;
private final String nodeType;
private final String clusterStatus;
private final String clusterAvailabilityStatus;
private final String modifyStatus;
private final String masterUsername;
private final String dbName;
private final Endpoint endpoint;
private final Instant clusterCreateTime;
private final Integer automatedSnapshotRetentionPeriod;
private final Integer manualSnapshotRetentionPeriod;
private final List clusterSecurityGroups;
private final List vpcSecurityGroups;
private final List clusterParameterGroups;
private final String clusterSubnetGroupName;
private final String vpcId;
private final String availabilityZone;
private final String preferredMaintenanceWindow;
private final PendingModifiedValues pendingModifiedValues;
private final String clusterVersion;
private final Boolean allowVersionUpgrade;
private final Integer numberOfNodes;
private final Boolean publiclyAccessible;
private final Boolean encrypted;
private final RestoreStatus restoreStatus;
private final DataTransferProgress dataTransferProgress;
private final HsmStatus hsmStatus;
private final ClusterSnapshotCopyStatus clusterSnapshotCopyStatus;
private final String clusterPublicKey;
private final List clusterNodes;
private final ElasticIpStatus elasticIpStatus;
private final String clusterRevisionNumber;
private final List tags;
private final String kmsKeyId;
private final Boolean enhancedVpcRouting;
private final List iamRoles;
private final List pendingActions;
private final String maintenanceTrackName;
private final String elasticResizeNumberOfNodeOptions;
private final List deferredMaintenanceWindows;
private final String snapshotScheduleIdentifier;
private final String snapshotScheduleState;
private final Instant expectedNextSnapshotScheduleTime;
private final String expectedNextSnapshotScheduleTimeStatus;
private final Instant nextMaintenanceWindowStartTime;
private final ResizeInfo resizeInfo;
private final String availabilityZoneRelocationStatus;
private final String clusterNamespaceArn;
private final Long totalStorageCapacityInMegaBytes;
private final AquaConfiguration aquaConfiguration;
private final String defaultIamRoleArn;
private final ReservedNodeExchangeStatus reservedNodeExchangeStatus;
private final String customDomainName;
private final String customDomainCertificateArn;
private final Instant customDomainCertificateExpiryDate;
private final String masterPasswordSecretArn;
private final String masterPasswordSecretKmsKeyId;
private final String ipAddressType;
private final String multiAZ;
private final SecondaryClusterInfo multiAZSecondary;
private Cluster(BuilderImpl builder) {
this.clusterIdentifier = builder.clusterIdentifier;
this.nodeType = builder.nodeType;
this.clusterStatus = builder.clusterStatus;
this.clusterAvailabilityStatus = builder.clusterAvailabilityStatus;
this.modifyStatus = builder.modifyStatus;
this.masterUsername = builder.masterUsername;
this.dbName = builder.dbName;
this.endpoint = builder.endpoint;
this.clusterCreateTime = builder.clusterCreateTime;
this.automatedSnapshotRetentionPeriod = builder.automatedSnapshotRetentionPeriod;
this.manualSnapshotRetentionPeriod = builder.manualSnapshotRetentionPeriod;
this.clusterSecurityGroups = builder.clusterSecurityGroups;
this.vpcSecurityGroups = builder.vpcSecurityGroups;
this.clusterParameterGroups = builder.clusterParameterGroups;
this.clusterSubnetGroupName = builder.clusterSubnetGroupName;
this.vpcId = builder.vpcId;
this.availabilityZone = builder.availabilityZone;
this.preferredMaintenanceWindow = builder.preferredMaintenanceWindow;
this.pendingModifiedValues = builder.pendingModifiedValues;
this.clusterVersion = builder.clusterVersion;
this.allowVersionUpgrade = builder.allowVersionUpgrade;
this.numberOfNodes = builder.numberOfNodes;
this.publiclyAccessible = builder.publiclyAccessible;
this.encrypted = builder.encrypted;
this.restoreStatus = builder.restoreStatus;
this.dataTransferProgress = builder.dataTransferProgress;
this.hsmStatus = builder.hsmStatus;
this.clusterSnapshotCopyStatus = builder.clusterSnapshotCopyStatus;
this.clusterPublicKey = builder.clusterPublicKey;
this.clusterNodes = builder.clusterNodes;
this.elasticIpStatus = builder.elasticIpStatus;
this.clusterRevisionNumber = builder.clusterRevisionNumber;
this.tags = builder.tags;
this.kmsKeyId = builder.kmsKeyId;
this.enhancedVpcRouting = builder.enhancedVpcRouting;
this.iamRoles = builder.iamRoles;
this.pendingActions = builder.pendingActions;
this.maintenanceTrackName = builder.maintenanceTrackName;
this.elasticResizeNumberOfNodeOptions = builder.elasticResizeNumberOfNodeOptions;
this.deferredMaintenanceWindows = builder.deferredMaintenanceWindows;
this.snapshotScheduleIdentifier = builder.snapshotScheduleIdentifier;
this.snapshotScheduleState = builder.snapshotScheduleState;
this.expectedNextSnapshotScheduleTime = builder.expectedNextSnapshotScheduleTime;
this.expectedNextSnapshotScheduleTimeStatus = builder.expectedNextSnapshotScheduleTimeStatus;
this.nextMaintenanceWindowStartTime = builder.nextMaintenanceWindowStartTime;
this.resizeInfo = builder.resizeInfo;
this.availabilityZoneRelocationStatus = builder.availabilityZoneRelocationStatus;
this.clusterNamespaceArn = builder.clusterNamespaceArn;
this.totalStorageCapacityInMegaBytes = builder.totalStorageCapacityInMegaBytes;
this.aquaConfiguration = builder.aquaConfiguration;
this.defaultIamRoleArn = builder.defaultIamRoleArn;
this.reservedNodeExchangeStatus = builder.reservedNodeExchangeStatus;
this.customDomainName = builder.customDomainName;
this.customDomainCertificateArn = builder.customDomainCertificateArn;
this.customDomainCertificateExpiryDate = builder.customDomainCertificateExpiryDate;
this.masterPasswordSecretArn = builder.masterPasswordSecretArn;
this.masterPasswordSecretKmsKeyId = builder.masterPasswordSecretKmsKeyId;
this.ipAddressType = builder.ipAddressType;
this.multiAZ = builder.multiAZ;
this.multiAZSecondary = builder.multiAZSecondary;
}
/**
*
* The unique identifier of the cluster.
*
*
* @return The unique identifier of the cluster.
*/
public final String clusterIdentifier() {
return clusterIdentifier;
}
/**
*
* The node type for the nodes in the cluster.
*
*
* @return The node type for the nodes in the cluster.
*/
public final String nodeType() {
return nodeType;
}
/**
*
* The current state of the cluster. Possible values are the following:
*
*
* -
*
* available
*
*
* -
*
* available, prep-for-resize
*
*
* -
*
* available, resize-cleanup
*
*
* -
*
* cancelling-resize
*
*
* -
*
* creating
*
*
* -
*
* deleting
*
*
* -
*
* final-snapshot
*
*
* -
*
* hardware-failure
*
*
* -
*
* incompatible-hsm
*
*
* -
*
* incompatible-network
*
*
* -
*
* incompatible-parameters
*
*
* -
*
* incompatible-restore
*
*
* -
*
* modifying
*
*
* -
*
* paused
*
*
* -
*
* rebooting
*
*
* -
*
* renaming
*
*
* -
*
* resizing
*
*
* -
*
* rotating-keys
*
*
* -
*
* storage-full
*
*
* -
*
* updating-hsm
*
*
*
*
* @return The current state of the cluster. Possible values are the following:
*
* -
*
* available
*
*
* -
*
* available, prep-for-resize
*
*
* -
*
* available, resize-cleanup
*
*
* -
*
* cancelling-resize
*
*
* -
*
* creating
*
*
* -
*
* deleting
*
*
* -
*
* final-snapshot
*
*
* -
*
* hardware-failure
*
*
* -
*
* incompatible-hsm
*
*
* -
*
* incompatible-network
*
*
* -
*
* incompatible-parameters
*
*
* -
*
* incompatible-restore
*
*
* -
*
* modifying
*
*
* -
*
* paused
*
*
* -
*
* rebooting
*
*
* -
*
* renaming
*
*
* -
*
* resizing
*
*
* -
*
* rotating-keys
*
*
* -
*
* storage-full
*
*
* -
*
* updating-hsm
*
*
*/
public final String clusterStatus() {
return clusterStatus;
}
/**
*
* The availability status of the cluster for queries. Possible values are the following:
*
*
* -
*
* Available - The cluster is available for queries.
*
*
* -
*
* Unavailable - The cluster is not available for queries.
*
*
* -
*
* Maintenance - The cluster is intermittently available for queries due to maintenance activities.
*
*
* -
*
* Modifying - The cluster is intermittently available for queries due to changes that modify the cluster.
*
*
* -
*
* Failed - The cluster failed and is not available for queries.
*
*
*
*
* @return The availability status of the cluster for queries. Possible values are the following:
*
* -
*
* Available - The cluster is available for queries.
*
*
* -
*
* Unavailable - The cluster is not available for queries.
*
*
* -
*
* Maintenance - The cluster is intermittently available for queries due to maintenance activities.
*
*
* -
*
* Modifying - The cluster is intermittently available for queries due to changes that modify the cluster.
*
*
* -
*
* Failed - The cluster failed and is not available for queries.
*
*
*/
public final String clusterAvailabilityStatus() {
return clusterAvailabilityStatus;
}
/**
*
* The status of a modify operation, if any, initiated for the cluster.
*
*
* @return The status of a modify operation, if any, initiated for the cluster.
*/
public final String modifyStatus() {
return modifyStatus;
}
/**
*
* The admin user name for the cluster. This name is used to connect to the database that is specified in the
* DBName parameter.
*
*
* @return The admin user name for the cluster. This name is used to connect to the database that is specified in
* the DBName parameter.
*/
public final String masterUsername() {
return masterUsername;
}
/**
*
* The name of the initial database that was created when the cluster was created. This same name is returned for
* the life of the cluster. If an initial database was not specified, a database named dev
dev was
* created by default.
*
*
* @return The name of the initial database that was created when the cluster was created. This same name is
* returned for the life of the cluster. If an initial database was not specified, a database named
* dev
dev was created by default.
*/
public final String dbName() {
return dbName;
}
/**
*
* The connection endpoint.
*
*
* @return The connection endpoint.
*/
public final Endpoint endpoint() {
return endpoint;
}
/**
*
* The date and time that the cluster was created.
*
*
* @return The date and time that the cluster was created.
*/
public final Instant clusterCreateTime() {
return clusterCreateTime;
}
/**
*
* The number of days that automatic cluster snapshots are retained.
*
*
* @return The number of days that automatic cluster snapshots are retained.
*/
public final Integer automatedSnapshotRetentionPeriod() {
return automatedSnapshotRetentionPeriod;
}
/**
*
* The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained
* indefinitely. This setting doesn't change the retention period of existing snapshots.
*
*
* The value must be either -1 or an integer between 1 and 3,653.
*
*
* @return The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained
* indefinitely. This setting doesn't change the retention period of existing snapshots.
*
* The value must be either -1 or an integer between 1 and 3,653.
*/
public final Integer manualSnapshotRetentionPeriod() {
return manualSnapshotRetentionPeriod;
}
/**
* For responses, this returns true if the service returned a value for the ClusterSecurityGroups property. This
* DOES NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the
* property). This is useful because the SDK will never return a null collection or map, but you may need to
* differentiate between the service returning nothing (or null) and the service returning an empty collection or
* map. For requests, this returns true if a value for the property was specified in the request builder, and false
* if a value was not specified.
*/
public final boolean hasClusterSecurityGroups() {
return clusterSecurityGroups != null && !(clusterSecurityGroups instanceof SdkAutoConstructList);
}
/**
*
* A list of cluster security group that are associated with the cluster. Each security group is represented by an
* element that contains ClusterSecurityGroup.Name
and ClusterSecurityGroup.Status
* subelements.
*
*
* Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC).
* Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups
* parameter.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasClusterSecurityGroups} method.
*
*
* @return A list of cluster security group that are associated with the cluster. Each security group is represented
* by an element that contains ClusterSecurityGroup.Name
and
* ClusterSecurityGroup.Status
subelements.
*
* Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud
* (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the
* VpcSecurityGroups parameter.
*/
public final List clusterSecurityGroups() {
return clusterSecurityGroups;
}
/**
* For responses, this returns true if the service returned a value for the VpcSecurityGroups property. This DOES
* NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasVpcSecurityGroups() {
return vpcSecurityGroups != null && !(vpcSecurityGroups instanceof SdkAutoConstructList);
}
/**
*
* A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This
* parameter is returned only if the cluster is in a VPC.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasVpcSecurityGroups} method.
*
*
* @return A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster.
* This parameter is returned only if the cluster is in a VPC.
*/
public final List vpcSecurityGroups() {
return vpcSecurityGroups;
}
/**
* For responses, this returns true if the service returned a value for the ClusterParameterGroups property. This
* DOES NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the
* property). This is useful because the SDK will never return a null collection or map, but you may need to
* differentiate between the service returning nothing (or null) and the service returning an empty collection or
* map. For requests, this returns true if a value for the property was specified in the request builder, and false
* if a value was not specified.
*/
public final boolean hasClusterParameterGroups() {
return clusterParameterGroups != null && !(clusterParameterGroups instanceof SdkAutoConstructList);
}
/**
*
* The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is
* returned with its status.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasClusterParameterGroups} method.
*
*
* @return The list of cluster parameter groups that are associated with this cluster. Each parameter group in the
* list is returned with its status.
*/
public final List clusterParameterGroups() {
return clusterParameterGroups;
}
/**
*
* The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster
* is in a VPC.
*
*
* @return The name of the subnet group that is associated with the cluster. This parameter is valid only when the
* cluster is in a VPC.
*/
public final String clusterSubnetGroupName() {
return clusterSubnetGroupName;
}
/**
*
* The identifier of the VPC the cluster is in, if the cluster is in a VPC.
*
*
* @return The identifier of the VPC the cluster is in, if the cluster is in a VPC.
*/
public final String vpcId() {
return vpcId;
}
/**
*
* The name of the Availability Zone in which the cluster is located.
*
*
* @return The name of the Availability Zone in which the cluster is located.
*/
public final String availabilityZone() {
return availabilityZone;
}
/**
*
* The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.
*
*
* @return The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.
*/
public final String preferredMaintenanceWindow() {
return preferredMaintenanceWindow;
}
/**
*
* A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are
* identified by subelements.
*
*
* @return A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are
* identified by subelements.
*/
public final PendingModifiedValues pendingModifiedValues() {
return pendingModifiedValues;
}
/**
*
* The version ID of the Amazon Redshift engine that is running on the cluster.
*
*
* @return The version ID of the Amazon Redshift engine that is running on the cluster.
*/
public final String clusterVersion() {
return clusterVersion;
}
/**
*
* A boolean value that, if true
, indicates that major version upgrades will be applied automatically
* to the cluster during the maintenance window.
*
*
* @return A boolean value that, if true
, indicates that major version upgrades will be applied
* automatically to the cluster during the maintenance window.
*/
public final Boolean allowVersionUpgrade() {
return allowVersionUpgrade;
}
/**
*
* The number of compute nodes in the cluster.
*
*
* @return The number of compute nodes in the cluster.
*/
public final Integer numberOfNodes() {
return numberOfNodes;
}
/**
*
* A boolean value that, if true
, indicates that the cluster can be accessed from a public network.
*
*
* @return A boolean value that, if true
, indicates that the cluster can be accessed from a public
* network.
*/
public final Boolean publiclyAccessible() {
return publiclyAccessible;
}
/**
*
* A boolean value that, if true
, indicates that data in the cluster is encrypted at rest.
*
*
* @return A boolean value that, if true
, indicates that data in the cluster is encrypted at rest.
*/
public final Boolean encrypted() {
return encrypted;
}
/**
*
* A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not
* created by restoring a snapshot.
*
*
* @return A value that describes the status of a cluster restore action. This parameter returns null if the cluster
* was not created by restoring a snapshot.
*/
public final RestoreStatus restoreStatus() {
return restoreStatus;
}
/**
*
*
* @return
*/
public final DataTransferProgress dataTransferProgress() {
return dataTransferProgress;
}
/**
*
* A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM)
* settings changes specified in a modify cluster command.
*
*
* Values: active, applying
*
*
* @return A value that reports whether the Amazon Redshift cluster has finished applying any hardware security
* module (HSM) settings changes specified in a modify cluster command.
*
* Values: active, applying
*/
public final HsmStatus hsmStatus() {
return hsmStatus;
}
/**
*
* A value that returns the destination region and retention period that are configured for cross-region snapshot
* copy.
*
*
* @return A value that returns the destination region and retention period that are configured for cross-region
* snapshot copy.
*/
public final ClusterSnapshotCopyStatus clusterSnapshotCopyStatus() {
return clusterSnapshotCopyStatus;
}
/**
*
* The public key for the cluster.
*
*
* @return The public key for the cluster.
*/
public final String clusterPublicKey() {
return clusterPublicKey;
}
/**
* For responses, this returns true if the service returned a value for the ClusterNodes property. This DOES NOT
* check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasClusterNodes() {
return clusterNodes != null && !(clusterNodes instanceof SdkAutoConstructList);
}
/**
*
* The nodes in the cluster.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasClusterNodes} method.
*
*
* @return The nodes in the cluster.
*/
public final List clusterNodes() {
return clusterNodes;
}
/**
*
* The status of the elastic IP (EIP) address.
*
*
* @return The status of the elastic IP (EIP) address.
*/
public final ElasticIpStatus elasticIpStatus() {
return elasticIpStatus;
}
/**
*
* The specific revision number of the database in the cluster.
*
*
* @return The specific revision number of the database in the cluster.
*/
public final String clusterRevisionNumber() {
return clusterRevisionNumber;
}
/**
* For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that
* the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is useful
* because the SDK will never return a null collection or map, but you may need to differentiate between the service
* returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true
* if a value for the property was specified in the request builder, and false if a value was not specified.
*/
public final boolean hasTags() {
return tags != null && !(tags instanceof SdkAutoConstructList);
}
/**
*
* The list of tags for the cluster.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasTags} method.
*
*
* @return The list of tags for the cluster.
*/
public final List tags() {
return tags;
}
/**
*
* The Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.
*
*
* @return The Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.
*/
public final String kmsKeyId() {
return kmsKeyId;
}
/**
*
* An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster
* that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see Enhanced VPC Routing in the
* Amazon Redshift Cluster Management Guide.
*
*
* If this option is true
, enhanced VPC routing is enabled.
*
*
* Default: false
*
*
* @return An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a
* cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see Enhanced VPC
* Routing in the Amazon Redshift Cluster Management Guide.
*
* If this option is true
, enhanced VPC routing is enabled.
*
*
* Default: false
*/
public final Boolean enhancedVpcRouting() {
return enhancedVpcRouting;
}
/**
* For responses, this returns true if the service returned a value for the IamRoles property. This DOES NOT check
* that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is
* useful because the SDK will never return a null collection or map, but you may need to differentiate between the
* service returning nothing (or null) and the service returning an empty collection or map. For requests, this
* returns true if a value for the property was specified in the request builder, and false if a value was not
* specified.
*/
public final boolean hasIamRoles() {
return iamRoles != null && !(iamRoles instanceof SdkAutoConstructList);
}
/**
*
* A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other Amazon Web
* Services services.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasIamRoles} method.
*
*
* @return A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other
* Amazon Web Services services.
*/
public final List iamRoles() {
return iamRoles;
}
/**
* For responses, this returns true if the service returned a value for the PendingActions property. This DOES NOT
* check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasPendingActions() {
return pendingActions != null && !(pendingActions instanceof SdkAutoConstructList);
}
/**
*
* Cluster operations that are waiting to be started.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasPendingActions} method.
*
*
* @return Cluster operations that are waiting to be started.
*/
public final List pendingActions() {
return pendingActions;
}
/**
*
* The name of the maintenance track for the cluster.
*
*
* @return The name of the maintenance track for the cluster.
*/
public final String maintenanceTrackName() {
return maintenanceTrackName;
}
/**
*
* The number of nodes that you can resize the cluster to with the elastic resize method.
*
*
* @return The number of nodes that you can resize the cluster to with the elastic resize method.
*/
public final String elasticResizeNumberOfNodeOptions() {
return elasticResizeNumberOfNodeOptions;
}
/**
* For responses, this returns true if the service returned a value for the DeferredMaintenanceWindows property.
* This DOES NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the
* property). This is useful because the SDK will never return a null collection or map, but you may need to
* differentiate between the service returning nothing (or null) and the service returning an empty collection or
* map. For requests, this returns true if a value for the property was specified in the request builder, and false
* if a value was not specified.
*/
public final boolean hasDeferredMaintenanceWindows() {
return deferredMaintenanceWindows != null && !(deferredMaintenanceWindows instanceof SdkAutoConstructList);
}
/**
*
* Describes a group of DeferredMaintenanceWindow
objects.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasDeferredMaintenanceWindows} method.
*
*
* @return Describes a group of DeferredMaintenanceWindow
objects.
*/
public final List deferredMaintenanceWindows() {
return deferredMaintenanceWindows;
}
/**
*
* A unique identifier for the cluster snapshot schedule.
*
*
* @return A unique identifier for the cluster snapshot schedule.
*/
public final String snapshotScheduleIdentifier() {
return snapshotScheduleIdentifier;
}
/**
*
* The current state of the cluster snapshot schedule.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #snapshotScheduleState} will return {@link ScheduleState#UNKNOWN_TO_SDK_VERSION}. The raw value returned
* by the service is available from {@link #snapshotScheduleStateAsString}.
*
*
* @return The current state of the cluster snapshot schedule.
* @see ScheduleState
*/
public final ScheduleState snapshotScheduleState() {
return ScheduleState.fromValue(snapshotScheduleState);
}
/**
*
* The current state of the cluster snapshot schedule.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #snapshotScheduleState} will return {@link ScheduleState#UNKNOWN_TO_SDK_VERSION}. The raw value returned
* by the service is available from {@link #snapshotScheduleStateAsString}.
*
*
* @return The current state of the cluster snapshot schedule.
* @see ScheduleState
*/
public final String snapshotScheduleStateAsString() {
return snapshotScheduleState;
}
/**
*
* The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and
* backups enabled.
*
*
* @return The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot
* schedule and backups enabled.
*/
public final Instant expectedNextSnapshotScheduleTime() {
return expectedNextSnapshotScheduleTime;
}
/**
*
* The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible
* values are the following:
*
*
* -
*
* OnTrack - The next snapshot is expected to be taken on time.
*
*
* -
*
* Pending - The next snapshot is pending to be taken.
*
*
*
*
* @return The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled.
* Possible values are the following:
*
* -
*
* OnTrack - The next snapshot is expected to be taken on time.
*
*
* -
*
* Pending - The next snapshot is pending to be taken.
*
*
*/
public final String expectedNextSnapshotScheduleTimeStatus() {
return expectedNextSnapshotScheduleTimeStatus;
}
/**
*
* The date and time in UTC when system maintenance can begin.
*
*
* @return The date and time in UTC when system maintenance can begin.
*/
public final Instant nextMaintenanceWindowStartTime() {
return nextMaintenanceWindowStartTime;
}
/**
*
* Returns the following:
*
*
* -
*
* AllowCancelResize: a boolean value indicating if the resize operation can be cancelled.
*
*
* -
*
* ResizeType: Returns ClassicResize
*
*
*
*
* @return Returns the following:
*
* -
*
* AllowCancelResize: a boolean value indicating if the resize operation can be cancelled.
*
*
* -
*
* ResizeType: Returns ClassicResize
*
*
*/
public final ResizeInfo resizeInfo() {
return resizeInfo;
}
/**
*
* Describes the status of the Availability Zone relocation operation.
*
*
* @return Describes the status of the Availability Zone relocation operation.
*/
public final String availabilityZoneRelocationStatus() {
return availabilityZoneRelocationStatus;
}
/**
*
* The namespace Amazon Resource Name (ARN) of the cluster.
*
*
* @return The namespace Amazon Resource Name (ARN) of the cluster.
*/
public final String clusterNamespaceArn() {
return clusterNamespaceArn;
}
/**
*
* The total storage capacity of the cluster in megabytes.
*
*
* @return The total storage capacity of the cluster in megabytes.
*/
public final Long totalStorageCapacityInMegaBytes() {
return totalStorageCapacityInMegaBytes;
}
/**
*
* This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).
*
*
* @return This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query
* Accelerator).
*/
public final AquaConfiguration aquaConfiguration() {
return aquaConfiguration;
}
/**
*
* The Amazon Resource Name (ARN) for the IAM role set as default for the cluster.
*
*
* @return The Amazon Resource Name (ARN) for the IAM role set as default for the cluster.
*/
public final String defaultIamRoleArn() {
return defaultIamRoleArn;
}
/**
*
* The status of the reserved-node exchange request. Statuses include in-progress and requested.
*
*
* @return The status of the reserved-node exchange request. Statuses include in-progress and requested.
*/
public final ReservedNodeExchangeStatus reservedNodeExchangeStatus() {
return reservedNodeExchangeStatus;
}
/**
*
* The custom domain name associated with the cluster.
*
*
* @return The custom domain name associated with the cluster.
*/
public final String customDomainName() {
return customDomainName;
}
/**
*
* The certificate Amazon Resource Name (ARN) for the custom domain name.
*
*
* @return The certificate Amazon Resource Name (ARN) for the custom domain name.
*/
public final String customDomainCertificateArn() {
return customDomainCertificateArn;
}
/**
*
* The expiration date for the certificate associated with the custom domain name.
*
*
* @return The expiration date for the certificate associated with the custom domain name.
*/
public final Instant customDomainCertificateExpiryDate() {
return customDomainCertificateExpiryDate;
}
/**
*
* The Amazon Resource Name (ARN) for the cluster's admin user credentials secret.
*
*
* @return The Amazon Resource Name (ARN) for the cluster's admin user credentials secret.
*/
public final String masterPasswordSecretArn() {
return masterPasswordSecretArn;
}
/**
*
* The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret.
*
*
* @return The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials
* secret.
*/
public final String masterPasswordSecretKmsKeyId() {
return masterPasswordSecretKmsKeyId;
}
/**
*
* The IP address type for the cluster. Possible values are ipv4
and dualstack
.
*
*
* @return The IP address type for the cluster. Possible values are ipv4
and dualstack
.
*/
public final String ipAddressType() {
return ipAddressType;
}
/**
*
* A boolean value that, if true, indicates that the cluster is deployed in two Availability Zones.
*
*
* @return A boolean value that, if true, indicates that the cluster is deployed in two Availability Zones.
*/
public final String multiAZ() {
return multiAZ;
}
/**
*
* The secondary compute unit of a cluster, if Multi-AZ deployment is turned on.
*
*
* @return The secondary compute unit of a cluster, if Multi-AZ deployment is turned on.
*/
public final SecondaryClusterInfo multiAZSecondary() {
return multiAZSecondary;
}
@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 final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(clusterIdentifier());
hashCode = 31 * hashCode + Objects.hashCode(nodeType());
hashCode = 31 * hashCode + Objects.hashCode(clusterStatus());
hashCode = 31 * hashCode + Objects.hashCode(clusterAvailabilityStatus());
hashCode = 31 * hashCode + Objects.hashCode(modifyStatus());
hashCode = 31 * hashCode + Objects.hashCode(masterUsername());
hashCode = 31 * hashCode + Objects.hashCode(dbName());
hashCode = 31 * hashCode + Objects.hashCode(endpoint());
hashCode = 31 * hashCode + Objects.hashCode(clusterCreateTime());
hashCode = 31 * hashCode + Objects.hashCode(automatedSnapshotRetentionPeriod());
hashCode = 31 * hashCode + Objects.hashCode(manualSnapshotRetentionPeriod());
hashCode = 31 * hashCode + Objects.hashCode(hasClusterSecurityGroups() ? clusterSecurityGroups() : null);
hashCode = 31 * hashCode + Objects.hashCode(hasVpcSecurityGroups() ? vpcSecurityGroups() : null);
hashCode = 31 * hashCode + Objects.hashCode(hasClusterParameterGroups() ? clusterParameterGroups() : null);
hashCode = 31 * hashCode + Objects.hashCode(clusterSubnetGroupName());
hashCode = 31 * hashCode + Objects.hashCode(vpcId());
hashCode = 31 * hashCode + Objects.hashCode(availabilityZone());
hashCode = 31 * hashCode + Objects.hashCode(preferredMaintenanceWindow());
hashCode = 31 * hashCode + Objects.hashCode(pendingModifiedValues());
hashCode = 31 * hashCode + Objects.hashCode(clusterVersion());
hashCode = 31 * hashCode + Objects.hashCode(allowVersionUpgrade());
hashCode = 31 * hashCode + Objects.hashCode(numberOfNodes());
hashCode = 31 * hashCode + Objects.hashCode(publiclyAccessible());
hashCode = 31 * hashCode + Objects.hashCode(encrypted());
hashCode = 31 * hashCode + Objects.hashCode(restoreStatus());
hashCode = 31 * hashCode + Objects.hashCode(dataTransferProgress());
hashCode = 31 * hashCode + Objects.hashCode(hsmStatus());
hashCode = 31 * hashCode + Objects.hashCode(clusterSnapshotCopyStatus());
hashCode = 31 * hashCode + Objects.hashCode(clusterPublicKey());
hashCode = 31 * hashCode + Objects.hashCode(hasClusterNodes() ? clusterNodes() : null);
hashCode = 31 * hashCode + Objects.hashCode(elasticIpStatus());
hashCode = 31 * hashCode + Objects.hashCode(clusterRevisionNumber());
hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null);
hashCode = 31 * hashCode + Objects.hashCode(kmsKeyId());
hashCode = 31 * hashCode + Objects.hashCode(enhancedVpcRouting());
hashCode = 31 * hashCode + Objects.hashCode(hasIamRoles() ? iamRoles() : null);
hashCode = 31 * hashCode + Objects.hashCode(hasPendingActions() ? pendingActions() : null);
hashCode = 31 * hashCode + Objects.hashCode(maintenanceTrackName());
hashCode = 31 * hashCode + Objects.hashCode(elasticResizeNumberOfNodeOptions());
hashCode = 31 * hashCode + Objects.hashCode(hasDeferredMaintenanceWindows() ? deferredMaintenanceWindows() : null);
hashCode = 31 * hashCode + Objects.hashCode(snapshotScheduleIdentifier());
hashCode = 31 * hashCode + Objects.hashCode(snapshotScheduleStateAsString());
hashCode = 31 * hashCode + Objects.hashCode(expectedNextSnapshotScheduleTime());
hashCode = 31 * hashCode + Objects.hashCode(expectedNextSnapshotScheduleTimeStatus());
hashCode = 31 * hashCode + Objects.hashCode(nextMaintenanceWindowStartTime());
hashCode = 31 * hashCode + Objects.hashCode(resizeInfo());
hashCode = 31 * hashCode + Objects.hashCode(availabilityZoneRelocationStatus());
hashCode = 31 * hashCode + Objects.hashCode(clusterNamespaceArn());
hashCode = 31 * hashCode + Objects.hashCode(totalStorageCapacityInMegaBytes());
hashCode = 31 * hashCode + Objects.hashCode(aquaConfiguration());
hashCode = 31 * hashCode + Objects.hashCode(defaultIamRoleArn());
hashCode = 31 * hashCode + Objects.hashCode(reservedNodeExchangeStatus());
hashCode = 31 * hashCode + Objects.hashCode(customDomainName());
hashCode = 31 * hashCode + Objects.hashCode(customDomainCertificateArn());
hashCode = 31 * hashCode + Objects.hashCode(customDomainCertificateExpiryDate());
hashCode = 31 * hashCode + Objects.hashCode(masterPasswordSecretArn());
hashCode = 31 * hashCode + Objects.hashCode(masterPasswordSecretKmsKeyId());
hashCode = 31 * hashCode + Objects.hashCode(ipAddressType());
hashCode = 31 * hashCode + Objects.hashCode(multiAZ());
hashCode = 31 * hashCode + Objects.hashCode(multiAZSecondary());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof Cluster)) {
return false;
}
Cluster other = (Cluster) obj;
return Objects.equals(clusterIdentifier(), other.clusterIdentifier()) && Objects.equals(nodeType(), other.nodeType())
&& Objects.equals(clusterStatus(), other.clusterStatus())
&& Objects.equals(clusterAvailabilityStatus(), other.clusterAvailabilityStatus())
&& Objects.equals(modifyStatus(), other.modifyStatus())
&& Objects.equals(masterUsername(), other.masterUsername()) && Objects.equals(dbName(), other.dbName())
&& Objects.equals(endpoint(), other.endpoint()) && Objects.equals(clusterCreateTime(), other.clusterCreateTime())
&& Objects.equals(automatedSnapshotRetentionPeriod(), other.automatedSnapshotRetentionPeriod())
&& Objects.equals(manualSnapshotRetentionPeriod(), other.manualSnapshotRetentionPeriod())
&& hasClusterSecurityGroups() == other.hasClusterSecurityGroups()
&& Objects.equals(clusterSecurityGroups(), other.clusterSecurityGroups())
&& hasVpcSecurityGroups() == other.hasVpcSecurityGroups()
&& Objects.equals(vpcSecurityGroups(), other.vpcSecurityGroups())
&& hasClusterParameterGroups() == other.hasClusterParameterGroups()
&& Objects.equals(clusterParameterGroups(), other.clusterParameterGroups())
&& Objects.equals(clusterSubnetGroupName(), other.clusterSubnetGroupName())
&& Objects.equals(vpcId(), other.vpcId()) && Objects.equals(availabilityZone(), other.availabilityZone())
&& Objects.equals(preferredMaintenanceWindow(), other.preferredMaintenanceWindow())
&& Objects.equals(pendingModifiedValues(), other.pendingModifiedValues())
&& Objects.equals(clusterVersion(), other.clusterVersion())
&& Objects.equals(allowVersionUpgrade(), other.allowVersionUpgrade())
&& Objects.equals(numberOfNodes(), other.numberOfNodes())
&& Objects.equals(publiclyAccessible(), other.publiclyAccessible())
&& Objects.equals(encrypted(), other.encrypted()) && Objects.equals(restoreStatus(), other.restoreStatus())
&& Objects.equals(dataTransferProgress(), other.dataTransferProgress())
&& Objects.equals(hsmStatus(), other.hsmStatus())
&& Objects.equals(clusterSnapshotCopyStatus(), other.clusterSnapshotCopyStatus())
&& Objects.equals(clusterPublicKey(), other.clusterPublicKey()) && hasClusterNodes() == other.hasClusterNodes()
&& Objects.equals(clusterNodes(), other.clusterNodes())
&& Objects.equals(elasticIpStatus(), other.elasticIpStatus())
&& Objects.equals(clusterRevisionNumber(), other.clusterRevisionNumber()) && hasTags() == other.hasTags()
&& Objects.equals(tags(), other.tags()) && Objects.equals(kmsKeyId(), other.kmsKeyId())
&& Objects.equals(enhancedVpcRouting(), other.enhancedVpcRouting()) && hasIamRoles() == other.hasIamRoles()
&& Objects.equals(iamRoles(), other.iamRoles()) && hasPendingActions() == other.hasPendingActions()
&& Objects.equals(pendingActions(), other.pendingActions())
&& Objects.equals(maintenanceTrackName(), other.maintenanceTrackName())
&& Objects.equals(elasticResizeNumberOfNodeOptions(), other.elasticResizeNumberOfNodeOptions())
&& hasDeferredMaintenanceWindows() == other.hasDeferredMaintenanceWindows()
&& Objects.equals(deferredMaintenanceWindows(), other.deferredMaintenanceWindows())
&& Objects.equals(snapshotScheduleIdentifier(), other.snapshotScheduleIdentifier())
&& Objects.equals(snapshotScheduleStateAsString(), other.snapshotScheduleStateAsString())
&& Objects.equals(expectedNextSnapshotScheduleTime(), other.expectedNextSnapshotScheduleTime())
&& Objects.equals(expectedNextSnapshotScheduleTimeStatus(), other.expectedNextSnapshotScheduleTimeStatus())
&& Objects.equals(nextMaintenanceWindowStartTime(), other.nextMaintenanceWindowStartTime())
&& Objects.equals(resizeInfo(), other.resizeInfo())
&& Objects.equals(availabilityZoneRelocationStatus(), other.availabilityZoneRelocationStatus())
&& Objects.equals(clusterNamespaceArn(), other.clusterNamespaceArn())
&& Objects.equals(totalStorageCapacityInMegaBytes(), other.totalStorageCapacityInMegaBytes())
&& Objects.equals(aquaConfiguration(), other.aquaConfiguration())
&& Objects.equals(defaultIamRoleArn(), other.defaultIamRoleArn())
&& Objects.equals(reservedNodeExchangeStatus(), other.reservedNodeExchangeStatus())
&& Objects.equals(customDomainName(), other.customDomainName())
&& Objects.equals(customDomainCertificateArn(), other.customDomainCertificateArn())
&& Objects.equals(customDomainCertificateExpiryDate(), other.customDomainCertificateExpiryDate())
&& Objects.equals(masterPasswordSecretArn(), other.masterPasswordSecretArn())
&& Objects.equals(masterPasswordSecretKmsKeyId(), other.masterPasswordSecretKmsKeyId())
&& Objects.equals(ipAddressType(), other.ipAddressType()) && Objects.equals(multiAZ(), other.multiAZ())
&& Objects.equals(multiAZSecondary(), other.multiAZSecondary());
}
/**
* 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 final String toString() {
return ToString.builder("Cluster").add("ClusterIdentifier", clusterIdentifier()).add("NodeType", nodeType())
.add("ClusterStatus", clusterStatus()).add("ClusterAvailabilityStatus", clusterAvailabilityStatus())
.add("ModifyStatus", modifyStatus()).add("MasterUsername", masterUsername()).add("DBName", dbName())
.add("Endpoint", endpoint()).add("ClusterCreateTime", clusterCreateTime())
.add("AutomatedSnapshotRetentionPeriod", automatedSnapshotRetentionPeriod())
.add("ManualSnapshotRetentionPeriod", manualSnapshotRetentionPeriod())
.add("ClusterSecurityGroups", hasClusterSecurityGroups() ? clusterSecurityGroups() : null)
.add("VpcSecurityGroups", hasVpcSecurityGroups() ? vpcSecurityGroups() : null)
.add("ClusterParameterGroups", hasClusterParameterGroups() ? clusterParameterGroups() : null)
.add("ClusterSubnetGroupName", clusterSubnetGroupName()).add("VpcId", vpcId())
.add("AvailabilityZone", availabilityZone()).add("PreferredMaintenanceWindow", preferredMaintenanceWindow())
.add("PendingModifiedValues", pendingModifiedValues()).add("ClusterVersion", clusterVersion())
.add("AllowVersionUpgrade", allowVersionUpgrade()).add("NumberOfNodes", numberOfNodes())
.add("PubliclyAccessible", publiclyAccessible()).add("Encrypted", encrypted())
.add("RestoreStatus", restoreStatus()).add("DataTransferProgress", dataTransferProgress())
.add("HsmStatus", hsmStatus()).add("ClusterSnapshotCopyStatus", clusterSnapshotCopyStatus())
.add("ClusterPublicKey", clusterPublicKey()).add("ClusterNodes", hasClusterNodes() ? clusterNodes() : null)
.add("ElasticIpStatus", elasticIpStatus()).add("ClusterRevisionNumber", clusterRevisionNumber())
.add("Tags", hasTags() ? tags() : null).add("KmsKeyId", kmsKeyId())
.add("EnhancedVpcRouting", enhancedVpcRouting()).add("IamRoles", hasIamRoles() ? iamRoles() : null)
.add("PendingActions", hasPendingActions() ? pendingActions() : null)
.add("MaintenanceTrackName", maintenanceTrackName())
.add("ElasticResizeNumberOfNodeOptions", elasticResizeNumberOfNodeOptions())
.add("DeferredMaintenanceWindows", hasDeferredMaintenanceWindows() ? deferredMaintenanceWindows() : null)
.add("SnapshotScheduleIdentifier", snapshotScheduleIdentifier())
.add("SnapshotScheduleState", snapshotScheduleStateAsString())
.add("ExpectedNextSnapshotScheduleTime", expectedNextSnapshotScheduleTime())
.add("ExpectedNextSnapshotScheduleTimeStatus", expectedNextSnapshotScheduleTimeStatus())
.add("NextMaintenanceWindowStartTime", nextMaintenanceWindowStartTime()).add("ResizeInfo", resizeInfo())
.add("AvailabilityZoneRelocationStatus", availabilityZoneRelocationStatus())
.add("ClusterNamespaceArn", clusterNamespaceArn())
.add("TotalStorageCapacityInMegaBytes", totalStorageCapacityInMegaBytes())
.add("AquaConfiguration", aquaConfiguration()).add("DefaultIamRoleArn", defaultIamRoleArn())
.add("ReservedNodeExchangeStatus", reservedNodeExchangeStatus()).add("CustomDomainName", customDomainName())
.add("CustomDomainCertificateArn", customDomainCertificateArn())
.add("CustomDomainCertificateExpiryDate", customDomainCertificateExpiryDate())
.add("MasterPasswordSecretArn", masterPasswordSecretArn())
.add("MasterPasswordSecretKmsKeyId", masterPasswordSecretKmsKeyId()).add("IpAddressType", ipAddressType())
.add("MultiAZ", multiAZ()).add("MultiAZSecondary", multiAZSecondary()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "ClusterIdentifier":
return Optional.ofNullable(clazz.cast(clusterIdentifier()));
case "NodeType":
return Optional.ofNullable(clazz.cast(nodeType()));
case "ClusterStatus":
return Optional.ofNullable(clazz.cast(clusterStatus()));
case "ClusterAvailabilityStatus":
return Optional.ofNullable(clazz.cast(clusterAvailabilityStatus()));
case "ModifyStatus":
return Optional.ofNullable(clazz.cast(modifyStatus()));
case "MasterUsername":
return Optional.ofNullable(clazz.cast(masterUsername()));
case "DBName":
return Optional.ofNullable(clazz.cast(dbName()));
case "Endpoint":
return Optional.ofNullable(clazz.cast(endpoint()));
case "ClusterCreateTime":
return Optional.ofNullable(clazz.cast(clusterCreateTime()));
case "AutomatedSnapshotRetentionPeriod":
return Optional.ofNullable(clazz.cast(automatedSnapshotRetentionPeriod()));
case "ManualSnapshotRetentionPeriod":
return Optional.ofNullable(clazz.cast(manualSnapshotRetentionPeriod()));
case "ClusterSecurityGroups":
return Optional.ofNullable(clazz.cast(clusterSecurityGroups()));
case "VpcSecurityGroups":
return Optional.ofNullable(clazz.cast(vpcSecurityGroups()));
case "ClusterParameterGroups":
return Optional.ofNullable(clazz.cast(clusterParameterGroups()));
case "ClusterSubnetGroupName":
return Optional.ofNullable(clazz.cast(clusterSubnetGroupName()));
case "VpcId":
return Optional.ofNullable(clazz.cast(vpcId()));
case "AvailabilityZone":
return Optional.ofNullable(clazz.cast(availabilityZone()));
case "PreferredMaintenanceWindow":
return Optional.ofNullable(clazz.cast(preferredMaintenanceWindow()));
case "PendingModifiedValues":
return Optional.ofNullable(clazz.cast(pendingModifiedValues()));
case "ClusterVersion":
return Optional.ofNullable(clazz.cast(clusterVersion()));
case "AllowVersionUpgrade":
return Optional.ofNullable(clazz.cast(allowVersionUpgrade()));
case "NumberOfNodes":
return Optional.ofNullable(clazz.cast(numberOfNodes()));
case "PubliclyAccessible":
return Optional.ofNullable(clazz.cast(publiclyAccessible()));
case "Encrypted":
return Optional.ofNullable(clazz.cast(encrypted()));
case "RestoreStatus":
return Optional.ofNullable(clazz.cast(restoreStatus()));
case "DataTransferProgress":
return Optional.ofNullable(clazz.cast(dataTransferProgress()));
case "HsmStatus":
return Optional.ofNullable(clazz.cast(hsmStatus()));
case "ClusterSnapshotCopyStatus":
return Optional.ofNullable(clazz.cast(clusterSnapshotCopyStatus()));
case "ClusterPublicKey":
return Optional.ofNullable(clazz.cast(clusterPublicKey()));
case "ClusterNodes":
return Optional.ofNullable(clazz.cast(clusterNodes()));
case "ElasticIpStatus":
return Optional.ofNullable(clazz.cast(elasticIpStatus()));
case "ClusterRevisionNumber":
return Optional.ofNullable(clazz.cast(clusterRevisionNumber()));
case "Tags":
return Optional.ofNullable(clazz.cast(tags()));
case "KmsKeyId":
return Optional.ofNullable(clazz.cast(kmsKeyId()));
case "EnhancedVpcRouting":
return Optional.ofNullable(clazz.cast(enhancedVpcRouting()));
case "IamRoles":
return Optional.ofNullable(clazz.cast(iamRoles()));
case "PendingActions":
return Optional.ofNullable(clazz.cast(pendingActions()));
case "MaintenanceTrackName":
return Optional.ofNullable(clazz.cast(maintenanceTrackName()));
case "ElasticResizeNumberOfNodeOptions":
return Optional.ofNullable(clazz.cast(elasticResizeNumberOfNodeOptions()));
case "DeferredMaintenanceWindows":
return Optional.ofNullable(clazz.cast(deferredMaintenanceWindows()));
case "SnapshotScheduleIdentifier":
return Optional.ofNullable(clazz.cast(snapshotScheduleIdentifier()));
case "SnapshotScheduleState":
return Optional.ofNullable(clazz.cast(snapshotScheduleStateAsString()));
case "ExpectedNextSnapshotScheduleTime":
return Optional.ofNullable(clazz.cast(expectedNextSnapshotScheduleTime()));
case "ExpectedNextSnapshotScheduleTimeStatus":
return Optional.ofNullable(clazz.cast(expectedNextSnapshotScheduleTimeStatus()));
case "NextMaintenanceWindowStartTime":
return Optional.ofNullable(clazz.cast(nextMaintenanceWindowStartTime()));
case "ResizeInfo":
return Optional.ofNullable(clazz.cast(resizeInfo()));
case "AvailabilityZoneRelocationStatus":
return Optional.ofNullable(clazz.cast(availabilityZoneRelocationStatus()));
case "ClusterNamespaceArn":
return Optional.ofNullable(clazz.cast(clusterNamespaceArn()));
case "TotalStorageCapacityInMegaBytes":
return Optional.ofNullable(clazz.cast(totalStorageCapacityInMegaBytes()));
case "AquaConfiguration":
return Optional.ofNullable(clazz.cast(aquaConfiguration()));
case "DefaultIamRoleArn":
return Optional.ofNullable(clazz.cast(defaultIamRoleArn()));
case "ReservedNodeExchangeStatus":
return Optional.ofNullable(clazz.cast(reservedNodeExchangeStatus()));
case "CustomDomainName":
return Optional.ofNullable(clazz.cast(customDomainName()));
case "CustomDomainCertificateArn":
return Optional.ofNullable(clazz.cast(customDomainCertificateArn()));
case "CustomDomainCertificateExpiryDate":
return Optional.ofNullable(clazz.cast(customDomainCertificateExpiryDate()));
case "MasterPasswordSecretArn":
return Optional.ofNullable(clazz.cast(masterPasswordSecretArn()));
case "MasterPasswordSecretKmsKeyId":
return Optional.ofNullable(clazz.cast(masterPasswordSecretKmsKeyId()));
case "IpAddressType":
return Optional.ofNullable(clazz.cast(ipAddressType()));
case "MultiAZ":
return Optional.ofNullable(clazz.cast(multiAZ()));
case "MultiAZSecondary":
return Optional.ofNullable(clazz.cast(multiAZSecondary()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function