All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.redshift.model.Cluster Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon Redshift module holds the client classes that are used for communicating with Amazon Redshift Service

There is a newer version: 2.28.3
Show newest version
/*
 * 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 devdev 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 * devdev 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 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 getter(Function g) { return obj -> g.apply((Cluster) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder { /** *

          * The unique identifier of the cluster. *

          * * @param clusterIdentifier * The unique identifier of the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterIdentifier(String clusterIdentifier); /** *

          * The node type for the nodes in the cluster. *

          * * @param nodeType * The node type for the nodes in the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder nodeType(String 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 *

            *
          • *
          * * @param clusterStatus * 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 Returns a reference to this object so that method calls can be chained together. */ Builder clusterStatus(String 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. *

              *
            • *
            * * @param clusterAvailabilityStatus * 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 Returns a reference to this object so that method calls can be chained together. */ Builder clusterAvailabilityStatus(String clusterAvailabilityStatus); /** *

              * The status of a modify operation, if any, initiated for the cluster. *

              * * @param modifyStatus * The status of a modify operation, if any, initiated for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder modifyStatus(String modifyStatus); /** *

              * The admin user name for the cluster. This name is used to connect to the database that is specified in the * DBName parameter. *

              * * @param masterUsername * The admin user name for the cluster. This name is used to connect to the database that is specified in * the DBName parameter. * @return Returns a reference to this object so that method calls can be chained together. */ Builder masterUsername(String 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 devdev * was created by default. *

              * * @param dbName * 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 * devdev was created by default. * @return Returns a reference to this object so that method calls can be chained together. */ Builder dbName(String dbName); /** *

              * The connection endpoint. *

              * * @param endpoint * The connection endpoint. * @return Returns a reference to this object so that method calls can be chained together. */ Builder endpoint(Endpoint endpoint); /** *

              * The connection endpoint. *

              * This is a convenience method that creates an instance of the {@link Endpoint.Builder} avoiding the need to * create one manually via {@link Endpoint#builder()}. * *

              * When the {@link Consumer} completes, {@link Endpoint.Builder#build()} is called immediately and its result is * passed to {@link #endpoint(Endpoint)}. * * @param endpoint * a consumer that will call methods on {@link Endpoint.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #endpoint(Endpoint) */ default Builder endpoint(Consumer endpoint) { return endpoint(Endpoint.builder().applyMutation(endpoint).build()); } /** *

              * The date and time that the cluster was created. *

              * * @param clusterCreateTime * The date and time that the cluster was created. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterCreateTime(Instant clusterCreateTime); /** *

              * The number of days that automatic cluster snapshots are retained. *

              * * @param automatedSnapshotRetentionPeriod * The number of days that automatic cluster snapshots are retained. * @return Returns a reference to this object so that method calls can be chained together. */ Builder automatedSnapshotRetentionPeriod(Integer 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. *

              * * @param manualSnapshotRetentionPeriod * 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 Returns a reference to this object so that method calls can be chained together. */ Builder manualSnapshotRetentionPeriod(Integer manualSnapshotRetentionPeriod); /** *

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

              * * @param clusterSecurityGroups * 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. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterSecurityGroups(Collection clusterSecurityGroups); /** *

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

              * * @param clusterSecurityGroups * 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. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterSecurityGroups(ClusterSecurityGroupMembership... clusterSecurityGroups); /** *

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

              * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.redshift.model.ClusterSecurityGroupMembership.Builder} avoiding the * need to create one manually via * {@link software.amazon.awssdk.services.redshift.model.ClusterSecurityGroupMembership#builder()}. * *

              * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.redshift.model.ClusterSecurityGroupMembership.Builder#build()} is * called immediately and its result is passed to {@link * #clusterSecurityGroups(List)}. * * @param clusterSecurityGroups * a consumer that will call methods on * {@link software.amazon.awssdk.services.redshift.model.ClusterSecurityGroupMembership.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #clusterSecurityGroups(java.util.Collection) */ Builder clusterSecurityGroups(Consumer... clusterSecurityGroups); /** *

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

              * * @param vpcSecurityGroups * 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. * @return Returns a reference to this object so that method calls can be chained together. */ Builder vpcSecurityGroups(Collection vpcSecurityGroups); /** *

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

              * * @param vpcSecurityGroups * 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. * @return Returns a reference to this object so that method calls can be chained together. */ Builder vpcSecurityGroups(VpcSecurityGroupMembership... vpcSecurityGroups); /** *

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

              * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.redshift.model.VpcSecurityGroupMembership.Builder} avoiding the need * to create one manually via * {@link software.amazon.awssdk.services.redshift.model.VpcSecurityGroupMembership#builder()}. * *

              * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.redshift.model.VpcSecurityGroupMembership.Builder#build()} is called * immediately and its result is passed to {@link #vpcSecurityGroups(List)}. * * @param vpcSecurityGroups * a consumer that will call methods on * {@link software.amazon.awssdk.services.redshift.model.VpcSecurityGroupMembership.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #vpcSecurityGroups(java.util.Collection) */ Builder vpcSecurityGroups(Consumer... vpcSecurityGroups); /** *

              * The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list * is returned with its status. *

              * * @param clusterParameterGroups * The list of cluster parameter groups that are associated with this cluster. Each parameter group in * the list is returned with its status. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterParameterGroups(Collection clusterParameterGroups); /** *

              * The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list * is returned with its status. *

              * * @param clusterParameterGroups * The list of cluster parameter groups that are associated with this cluster. Each parameter group in * the list is returned with its status. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterParameterGroups(ClusterParameterGroupStatus... clusterParameterGroups); /** *

              * The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list * is returned with its status. *

              * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.redshift.model.ClusterParameterGroupStatus.Builder} avoiding the need * to create one manually via * {@link software.amazon.awssdk.services.redshift.model.ClusterParameterGroupStatus#builder()}. * *

              * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.redshift.model.ClusterParameterGroupStatus.Builder#build()} is called * immediately and its result is passed to {@link #clusterParameterGroups(List)}. * * @param clusterParameterGroups * a consumer that will call methods on * {@link software.amazon.awssdk.services.redshift.model.ClusterParameterGroupStatus.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #clusterParameterGroups(java.util.Collection) */ Builder clusterParameterGroups(Consumer... 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. *

              * * @param clusterSubnetGroupName * 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 Returns a reference to this object so that method calls can be chained together. */ Builder clusterSubnetGroupName(String clusterSubnetGroupName); /** *

              * The identifier of the VPC the cluster is in, if the cluster is in a VPC. *

              * * @param vpcId * The identifier of the VPC the cluster is in, if the cluster is in a VPC. * @return Returns a reference to this object so that method calls can be chained together. */ Builder vpcId(String vpcId); /** *

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

              * * @param availabilityZone * The name of the Availability Zone in which the cluster is located. * @return Returns a reference to this object so that method calls can be chained together. */ Builder availabilityZone(String availabilityZone); /** *

              * The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur. *

              * * @param preferredMaintenanceWindow * The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur. * @return Returns a reference to this object so that method calls can be chained together. */ Builder preferredMaintenanceWindow(String preferredMaintenanceWindow); /** *

              * A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are * identified by subelements. *

              * * @param pendingModifiedValues * A value that, if present, indicates that changes to the cluster are pending. Specific pending changes * are identified by subelements. * @return Returns a reference to this object so that method calls can be chained together. */ Builder pendingModifiedValues(PendingModifiedValues pendingModifiedValues); /** *

              * A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are * identified by subelements. *

              * This is a convenience method that creates an instance of the {@link PendingModifiedValues.Builder} avoiding * the need to create one manually via {@link PendingModifiedValues#builder()}. * *

              * When the {@link Consumer} completes, {@link PendingModifiedValues.Builder#build()} is called immediately and * its result is passed to {@link #pendingModifiedValues(PendingModifiedValues)}. * * @param pendingModifiedValues * a consumer that will call methods on {@link PendingModifiedValues.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #pendingModifiedValues(PendingModifiedValues) */ default Builder pendingModifiedValues(Consumer pendingModifiedValues) { return pendingModifiedValues(PendingModifiedValues.builder().applyMutation(pendingModifiedValues).build()); } /** *

              * The version ID of the Amazon Redshift engine that is running on the cluster. *

              * * @param clusterVersion * The version ID of the Amazon Redshift engine that is running on the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterVersion(String clusterVersion); /** *

              * A boolean value that, if true, indicates that major version upgrades will be applied * automatically to the cluster during the maintenance window. *

              * * @param allowVersionUpgrade * A boolean value that, if true, indicates that major version upgrades will be applied * automatically to the cluster during the maintenance window. * @return Returns a reference to this object so that method calls can be chained together. */ Builder allowVersionUpgrade(Boolean allowVersionUpgrade); /** *

              * The number of compute nodes in the cluster. *

              * * @param numberOfNodes * The number of compute nodes in the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder numberOfNodes(Integer numberOfNodes); /** *

              * A boolean value that, if true, indicates that the cluster can be accessed from a public network. *

              * * @param publiclyAccessible * A boolean value that, if true, indicates that the cluster can be accessed from a public * network. * @return Returns a reference to this object so that method calls can be chained together. */ Builder publiclyAccessible(Boolean publiclyAccessible); /** *

              * A boolean value that, if true, indicates that data in the cluster is encrypted at rest. *

              * * @param encrypted * A boolean value that, if true, indicates that data in the cluster is encrypted at rest. * @return Returns a reference to this object so that method calls can be chained together. */ Builder encrypted(Boolean 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. *

              * * @param restoreStatus * 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 Returns a reference to this object so that method calls can be chained together. */ Builder restoreStatus(RestoreStatus restoreStatus); /** *

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

              * This is a convenience method that creates an instance of the {@link RestoreStatus.Builder} avoiding the need * to create one manually via {@link RestoreStatus#builder()}. * *

              * When the {@link Consumer} completes, {@link RestoreStatus.Builder#build()} is called immediately and its * result is passed to {@link #restoreStatus(RestoreStatus)}. * * @param restoreStatus * a consumer that will call methods on {@link RestoreStatus.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #restoreStatus(RestoreStatus) */ default Builder restoreStatus(Consumer restoreStatus) { return restoreStatus(RestoreStatus.builder().applyMutation(restoreStatus).build()); } /** *

              * * @param dataTransferProgress * @return Returns a reference to this object so that method calls can be chained together. */ Builder dataTransferProgress(DataTransferProgress dataTransferProgress); /** *

              * This is a convenience method that creates an instance of the {@link DataTransferProgress.Builder} avoiding * the need to create one manually via {@link DataTransferProgress#builder()}. * *

              * When the {@link Consumer} completes, {@link DataTransferProgress.Builder#build()} is called immediately and * its result is passed to {@link #dataTransferProgress(DataTransferProgress)}. * * @param dataTransferProgress * a consumer that will call methods on {@link DataTransferProgress.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #dataTransferProgress(DataTransferProgress) */ default Builder dataTransferProgress(Consumer dataTransferProgress) { return dataTransferProgress(DataTransferProgress.builder().applyMutation(dataTransferProgress).build()); } /** *

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

              * * @param hsmStatus * 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 Returns a reference to this object so that method calls can be chained together. */ Builder hsmStatus(HsmStatus hsmStatus); /** *

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

              * This is a convenience method that creates an instance of the {@link HsmStatus.Builder} avoiding the need to * create one manually via {@link HsmStatus#builder()}. * *

              * When the {@link Consumer} completes, {@link HsmStatus.Builder#build()} is called immediately and its result * is passed to {@link #hsmStatus(HsmStatus)}. * * @param hsmStatus * a consumer that will call methods on {@link HsmStatus.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #hsmStatus(HsmStatus) */ default Builder hsmStatus(Consumer hsmStatus) { return hsmStatus(HsmStatus.builder().applyMutation(hsmStatus).build()); } /** *

              * A value that returns the destination region and retention period that are configured for cross-region * snapshot copy. *

              * * @param clusterSnapshotCopyStatus * A value that returns the destination region and retention period that are configured for cross-region * snapshot copy. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterSnapshotCopyStatus(ClusterSnapshotCopyStatus clusterSnapshotCopyStatus); /** *

              * A value that returns the destination region and retention period that are configured for cross-region * snapshot copy. *

              * This is a convenience method that creates an instance of the {@link ClusterSnapshotCopyStatus.Builder} * avoiding the need to create one manually via {@link ClusterSnapshotCopyStatus#builder()}. * *

              * When the {@link Consumer} completes, {@link ClusterSnapshotCopyStatus.Builder#build()} is called immediately * and its result is passed to {@link #clusterSnapshotCopyStatus(ClusterSnapshotCopyStatus)}. * * @param clusterSnapshotCopyStatus * a consumer that will call methods on {@link ClusterSnapshotCopyStatus.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #clusterSnapshotCopyStatus(ClusterSnapshotCopyStatus) */ default Builder clusterSnapshotCopyStatus(Consumer clusterSnapshotCopyStatus) { return clusterSnapshotCopyStatus(ClusterSnapshotCopyStatus.builder().applyMutation(clusterSnapshotCopyStatus).build()); } /** *

              * The public key for the cluster. *

              * * @param clusterPublicKey * The public key for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterPublicKey(String clusterPublicKey); /** *

              * The nodes in the cluster. *

              * * @param clusterNodes * The nodes in the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterNodes(Collection clusterNodes); /** *

              * The nodes in the cluster. *

              * * @param clusterNodes * The nodes in the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterNodes(ClusterNode... clusterNodes); /** *

              * The nodes in the cluster. *

              * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.redshift.model.ClusterNode.Builder} avoiding the need to create one * manually via {@link software.amazon.awssdk.services.redshift.model.ClusterNode#builder()}. * *

              * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.redshift.model.ClusterNode.Builder#build()} is called immediately and * its result is passed to {@link #clusterNodes(List)}. * * @param clusterNodes * a consumer that will call methods on * {@link software.amazon.awssdk.services.redshift.model.ClusterNode.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #clusterNodes(java.util.Collection) */ Builder clusterNodes(Consumer... clusterNodes); /** *

              * The status of the elastic IP (EIP) address. *

              * * @param elasticIpStatus * The status of the elastic IP (EIP) address. * @return Returns a reference to this object so that method calls can be chained together. */ Builder elasticIpStatus(ElasticIpStatus elasticIpStatus); /** *

              * The status of the elastic IP (EIP) address. *

              * This is a convenience method that creates an instance of the {@link ElasticIpStatus.Builder} avoiding the * need to create one manually via {@link ElasticIpStatus#builder()}. * *

              * When the {@link Consumer} completes, {@link ElasticIpStatus.Builder#build()} is called immediately and its * result is passed to {@link #elasticIpStatus(ElasticIpStatus)}. * * @param elasticIpStatus * a consumer that will call methods on {@link ElasticIpStatus.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #elasticIpStatus(ElasticIpStatus) */ default Builder elasticIpStatus(Consumer elasticIpStatus) { return elasticIpStatus(ElasticIpStatus.builder().applyMutation(elasticIpStatus).build()); } /** *

              * The specific revision number of the database in the cluster. *

              * * @param clusterRevisionNumber * The specific revision number of the database in the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterRevisionNumber(String clusterRevisionNumber); /** *

              * The list of tags for the cluster. *

              * * @param tags * The list of tags for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Collection tags); /** *

              * The list of tags for the cluster. *

              * * @param tags * The list of tags for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Tag... tags); /** *

              * The list of tags for the cluster. *

              * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.redshift.model.Tag.Builder} avoiding the need to create one manually * via {@link software.amazon.awssdk.services.redshift.model.Tag#builder()}. * *

              * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.redshift.model.Tag.Builder#build()} is called immediately and its * result is passed to {@link #tags(List)}. * * @param tags * a consumer that will call methods on * {@link software.amazon.awssdk.services.redshift.model.Tag.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #tags(java.util.Collection) */ Builder tags(Consumer... tags); /** *

              * The Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster. *

              * * @param kmsKeyId * The Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder kmsKeyId(String 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 *

              * * @param enhancedVpcRouting * 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 Returns a reference to this object so that method calls can be chained together. */ Builder enhancedVpcRouting(Boolean enhancedVpcRouting); /** *

              * A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other Amazon * Web Services services. *

              * * @param iamRoles * A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other * Amazon Web Services services. * @return Returns a reference to this object so that method calls can be chained together. */ Builder iamRoles(Collection iamRoles); /** *

              * A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other Amazon * Web Services services. *

              * * @param iamRoles * A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other * Amazon Web Services services. * @return Returns a reference to this object so that method calls can be chained together. */ Builder iamRoles(ClusterIamRole... iamRoles); /** *

              * A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other Amazon * Web Services services. *

              * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.redshift.model.ClusterIamRole.Builder} avoiding the need to create one * manually via {@link software.amazon.awssdk.services.redshift.model.ClusterIamRole#builder()}. * *

              * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.redshift.model.ClusterIamRole.Builder#build()} is called immediately * and its result is passed to {@link #iamRoles(List)}. * * @param iamRoles * a consumer that will call methods on * {@link software.amazon.awssdk.services.redshift.model.ClusterIamRole.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #iamRoles(java.util.Collection) */ Builder iamRoles(Consumer... iamRoles); /** *

              * Cluster operations that are waiting to be started. *

              * * @param pendingActions * Cluster operations that are waiting to be started. * @return Returns a reference to this object so that method calls can be chained together. */ Builder pendingActions(Collection pendingActions); /** *

              * Cluster operations that are waiting to be started. *

              * * @param pendingActions * Cluster operations that are waiting to be started. * @return Returns a reference to this object so that method calls can be chained together. */ Builder pendingActions(String... pendingActions); /** *

              * The name of the maintenance track for the cluster. *

              * * @param maintenanceTrackName * The name of the maintenance track for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder maintenanceTrackName(String maintenanceTrackName); /** *

              * The number of nodes that you can resize the cluster to with the elastic resize method. *

              * * @param elasticResizeNumberOfNodeOptions * The number of nodes that you can resize the cluster to with the elastic resize method. * @return Returns a reference to this object so that method calls can be chained together. */ Builder elasticResizeNumberOfNodeOptions(String elasticResizeNumberOfNodeOptions); /** *

              * Describes a group of DeferredMaintenanceWindow objects. *

              * * @param deferredMaintenanceWindows * Describes a group of DeferredMaintenanceWindow objects. * @return Returns a reference to this object so that method calls can be chained together. */ Builder deferredMaintenanceWindows(Collection deferredMaintenanceWindows); /** *

              * Describes a group of DeferredMaintenanceWindow objects. *

              * * @param deferredMaintenanceWindows * Describes a group of DeferredMaintenanceWindow objects. * @return Returns a reference to this object so that method calls can be chained together. */ Builder deferredMaintenanceWindows(DeferredMaintenanceWindow... deferredMaintenanceWindows); /** *

              * Describes a group of DeferredMaintenanceWindow objects. *

              * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.redshift.model.DeferredMaintenanceWindow.Builder} avoiding the need to * create one manually via * {@link software.amazon.awssdk.services.redshift.model.DeferredMaintenanceWindow#builder()}. * *

              * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.redshift.model.DeferredMaintenanceWindow.Builder#build()} is called * immediately and its result is passed to {@link #deferredMaintenanceWindows(List)}. * * @param deferredMaintenanceWindows * a consumer that will call methods on * {@link software.amazon.awssdk.services.redshift.model.DeferredMaintenanceWindow.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #deferredMaintenanceWindows(java.util.Collection) */ Builder deferredMaintenanceWindows(Consumer... deferredMaintenanceWindows); /** *

              * A unique identifier for the cluster snapshot schedule. *

              * * @param snapshotScheduleIdentifier * A unique identifier for the cluster snapshot schedule. * @return Returns a reference to this object so that method calls can be chained together. */ Builder snapshotScheduleIdentifier(String snapshotScheduleIdentifier); /** *

              * The current state of the cluster snapshot schedule. *

              * * @param snapshotScheduleState * The current state of the cluster snapshot schedule. * @see ScheduleState * @return Returns a reference to this object so that method calls can be chained together. * @see ScheduleState */ Builder snapshotScheduleState(String snapshotScheduleState); /** *

              * The current state of the cluster snapshot schedule. *

              * * @param snapshotScheduleState * The current state of the cluster snapshot schedule. * @see ScheduleState * @return Returns a reference to this object so that method calls can be chained together. * @see ScheduleState */ Builder snapshotScheduleState(ScheduleState snapshotScheduleState); /** *

              * The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule * and backups enabled. *

              * * @param expectedNextSnapshotScheduleTime * The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot * schedule and backups enabled. * @return Returns a reference to this object so that method calls can be chained together. */ Builder expectedNextSnapshotScheduleTime(Instant 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. *

                *
              • *
              * * @param expectedNextSnapshotScheduleTimeStatus * 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 Returns a reference to this object so that method calls can be chained together. */ Builder expectedNextSnapshotScheduleTimeStatus(String expectedNextSnapshotScheduleTimeStatus); /** *

                * The date and time in UTC when system maintenance can begin. *

                * * @param nextMaintenanceWindowStartTime * The date and time in UTC when system maintenance can begin. * @return Returns a reference to this object so that method calls can be chained together. */ Builder nextMaintenanceWindowStartTime(Instant nextMaintenanceWindowStartTime); /** *

                * Returns the following: *

                *
                  *
                • *

                  * AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. *

                  *
                • *
                • *

                  * ResizeType: Returns ClassicResize *

                  *
                • *
                * * @param resizeInfo * Returns the following:

                *
                  *
                • *

                  * AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. *

                  *
                • *
                • *

                  * ResizeType: Returns ClassicResize *

                  *
                • * @return Returns a reference to this object so that method calls can be chained together. */ Builder resizeInfo(ResizeInfo resizeInfo); /** *

                  * Returns the following: *

                  *
                    *
                  • *

                    * AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. *

                    *
                  • *
                  • *

                    * ResizeType: Returns ClassicResize *

                    *
                  • *
                  * This is a convenience method that creates an instance of the {@link ResizeInfo.Builder} avoiding the need to * create one manually via {@link ResizeInfo#builder()}. * *

                  * When the {@link Consumer} completes, {@link ResizeInfo.Builder#build()} is called immediately and its result * is passed to {@link #resizeInfo(ResizeInfo)}. * * @param resizeInfo * a consumer that will call methods on {@link ResizeInfo.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #resizeInfo(ResizeInfo) */ default Builder resizeInfo(Consumer resizeInfo) { return resizeInfo(ResizeInfo.builder().applyMutation(resizeInfo).build()); } /** *

                  * Describes the status of the Availability Zone relocation operation. *

                  * * @param availabilityZoneRelocationStatus * Describes the status of the Availability Zone relocation operation. * @return Returns a reference to this object so that method calls can be chained together. */ Builder availabilityZoneRelocationStatus(String availabilityZoneRelocationStatus); /** *

                  * The namespace Amazon Resource Name (ARN) of the cluster. *

                  * * @param clusterNamespaceArn * The namespace Amazon Resource Name (ARN) of the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterNamespaceArn(String clusterNamespaceArn); /** *

                  * The total storage capacity of the cluster in megabytes. *

                  * * @param totalStorageCapacityInMegaBytes * The total storage capacity of the cluster in megabytes. * @return Returns a reference to this object so that method calls can be chained together. */ Builder totalStorageCapacityInMegaBytes(Long totalStorageCapacityInMegaBytes); /** *

                  * This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query * Accelerator). *

                  * * @param aquaConfiguration * This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query * Accelerator). * @return Returns a reference to this object so that method calls can be chained together. */ Builder aquaConfiguration(AquaConfiguration aquaConfiguration); /** *

                  * This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query * Accelerator). *

                  * This is a convenience method that creates an instance of the {@link AquaConfiguration.Builder} avoiding the * need to create one manually via {@link AquaConfiguration#builder()}. * *

                  * When the {@link Consumer} completes, {@link AquaConfiguration.Builder#build()} is called immediately and its * result is passed to {@link #aquaConfiguration(AquaConfiguration)}. * * @param aquaConfiguration * a consumer that will call methods on {@link AquaConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #aquaConfiguration(AquaConfiguration) */ default Builder aquaConfiguration(Consumer aquaConfiguration) { return aquaConfiguration(AquaConfiguration.builder().applyMutation(aquaConfiguration).build()); } /** *

                  * The Amazon Resource Name (ARN) for the IAM role set as default for the cluster. *

                  * * @param defaultIamRoleArn * The Amazon Resource Name (ARN) for the IAM role set as default for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder defaultIamRoleArn(String defaultIamRoleArn); /** *

                  * The status of the reserved-node exchange request. Statuses include in-progress and requested. *

                  * * @param reservedNodeExchangeStatus * The status of the reserved-node exchange request. Statuses include in-progress and requested. * @return Returns a reference to this object so that method calls can be chained together. */ Builder reservedNodeExchangeStatus(ReservedNodeExchangeStatus reservedNodeExchangeStatus); /** *

                  * The status of the reserved-node exchange request. Statuses include in-progress and requested. *

                  * This is a convenience method that creates an instance of the {@link ReservedNodeExchangeStatus.Builder} * avoiding the need to create one manually via {@link ReservedNodeExchangeStatus#builder()}. * *

                  * When the {@link Consumer} completes, {@link ReservedNodeExchangeStatus.Builder#build()} is called immediately * and its result is passed to {@link #reservedNodeExchangeStatus(ReservedNodeExchangeStatus)}. * * @param reservedNodeExchangeStatus * a consumer that will call methods on {@link ReservedNodeExchangeStatus.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #reservedNodeExchangeStatus(ReservedNodeExchangeStatus) */ default Builder reservedNodeExchangeStatus(Consumer reservedNodeExchangeStatus) { return reservedNodeExchangeStatus(ReservedNodeExchangeStatus.builder().applyMutation(reservedNodeExchangeStatus) .build()); } /** *

                  * The custom domain name associated with the cluster. *

                  * * @param customDomainName * The custom domain name associated with the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder customDomainName(String customDomainName); /** *

                  * The certificate Amazon Resource Name (ARN) for the custom domain name. *

                  * * @param customDomainCertificateArn * The certificate Amazon Resource Name (ARN) for the custom domain name. * @return Returns a reference to this object so that method calls can be chained together. */ Builder customDomainCertificateArn(String customDomainCertificateArn); /** *

                  * The expiration date for the certificate associated with the custom domain name. *

                  * * @param customDomainCertificateExpiryDate * The expiration date for the certificate associated with the custom domain name. * @return Returns a reference to this object so that method calls can be chained together. */ Builder customDomainCertificateExpiryDate(Instant customDomainCertificateExpiryDate); /** *

                  * The Amazon Resource Name (ARN) for the cluster's admin user credentials secret. *

                  * * @param masterPasswordSecretArn * The Amazon Resource Name (ARN) for the cluster's admin user credentials secret. * @return Returns a reference to this object so that method calls can be chained together. */ Builder masterPasswordSecretArn(String masterPasswordSecretArn); /** *

                  * The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials * secret. *

                  * * @param masterPasswordSecretKmsKeyId * The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin * credentials secret. * @return Returns a reference to this object so that method calls can be chained together. */ Builder masterPasswordSecretKmsKeyId(String masterPasswordSecretKmsKeyId); /** *

                  * The IP address type for the cluster. Possible values are ipv4 and dualstack. *

                  * * @param ipAddressType * The IP address type for the cluster. Possible values are ipv4 and dualstack. * @return Returns a reference to this object so that method calls can be chained together. */ Builder ipAddressType(String ipAddressType); /** *

                  * A boolean value that, if true, indicates that the cluster is deployed in two Availability Zones. *

                  * * @param multiAZ * A boolean value that, if true, indicates that the cluster is deployed in two Availability Zones. * @return Returns a reference to this object so that method calls can be chained together. */ Builder multiAZ(String multiAZ); /** *

                  * The secondary compute unit of a cluster, if Multi-AZ deployment is turned on. *

                  * * @param multiAZSecondary * The secondary compute unit of a cluster, if Multi-AZ deployment is turned on. * @return Returns a reference to this object so that method calls can be chained together. */ Builder multiAZSecondary(SecondaryClusterInfo multiAZSecondary); /** *

                  * The secondary compute unit of a cluster, if Multi-AZ deployment is turned on. *

                  * This is a convenience method that creates an instance of the {@link SecondaryClusterInfo.Builder} avoiding * the need to create one manually via {@link SecondaryClusterInfo#builder()}. * *

                  * When the {@link Consumer} completes, {@link SecondaryClusterInfo.Builder#build()} is called immediately and * its result is passed to {@link #multiAZSecondary(SecondaryClusterInfo)}. * * @param multiAZSecondary * a consumer that will call methods on {@link SecondaryClusterInfo.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #multiAZSecondary(SecondaryClusterInfo) */ default Builder multiAZSecondary(Consumer multiAZSecondary) { return multiAZSecondary(SecondaryClusterInfo.builder().applyMutation(multiAZSecondary).build()); } } static final class BuilderImpl implements Builder { private String clusterIdentifier; private String nodeType; private String clusterStatus; private String clusterAvailabilityStatus; private String modifyStatus; private String masterUsername; private String dbName; private Endpoint endpoint; private Instant clusterCreateTime; private Integer automatedSnapshotRetentionPeriod; private Integer manualSnapshotRetentionPeriod; private List clusterSecurityGroups = DefaultSdkAutoConstructList.getInstance(); private List vpcSecurityGroups = DefaultSdkAutoConstructList.getInstance(); private List clusterParameterGroups = DefaultSdkAutoConstructList.getInstance(); private String clusterSubnetGroupName; private String vpcId; private String availabilityZone; private String preferredMaintenanceWindow; private PendingModifiedValues pendingModifiedValues; private String clusterVersion; private Boolean allowVersionUpgrade; private Integer numberOfNodes; private Boolean publiclyAccessible; private Boolean encrypted; private RestoreStatus restoreStatus; private DataTransferProgress dataTransferProgress; private HsmStatus hsmStatus; private ClusterSnapshotCopyStatus clusterSnapshotCopyStatus; private String clusterPublicKey; private List clusterNodes = DefaultSdkAutoConstructList.getInstance(); private ElasticIpStatus elasticIpStatus; private String clusterRevisionNumber; private List tags = DefaultSdkAutoConstructList.getInstance(); private String kmsKeyId; private Boolean enhancedVpcRouting; private List iamRoles = DefaultSdkAutoConstructList.getInstance(); private List pendingActions = DefaultSdkAutoConstructList.getInstance(); private String maintenanceTrackName; private String elasticResizeNumberOfNodeOptions; private List deferredMaintenanceWindows = DefaultSdkAutoConstructList.getInstance(); private String snapshotScheduleIdentifier; private String snapshotScheduleState; private Instant expectedNextSnapshotScheduleTime; private String expectedNextSnapshotScheduleTimeStatus; private Instant nextMaintenanceWindowStartTime; private ResizeInfo resizeInfo; private String availabilityZoneRelocationStatus; private String clusterNamespaceArn; private Long totalStorageCapacityInMegaBytes; private AquaConfiguration aquaConfiguration; private String defaultIamRoleArn; private ReservedNodeExchangeStatus reservedNodeExchangeStatus; private String customDomainName; private String customDomainCertificateArn; private Instant customDomainCertificateExpiryDate; private String masterPasswordSecretArn; private String masterPasswordSecretKmsKeyId; private String ipAddressType; private String multiAZ; private SecondaryClusterInfo multiAZSecondary; private BuilderImpl() { } private BuilderImpl(Cluster model) { clusterIdentifier(model.clusterIdentifier); nodeType(model.nodeType); clusterStatus(model.clusterStatus); clusterAvailabilityStatus(model.clusterAvailabilityStatus); modifyStatus(model.modifyStatus); masterUsername(model.masterUsername); dbName(model.dbName); endpoint(model.endpoint); clusterCreateTime(model.clusterCreateTime); automatedSnapshotRetentionPeriod(model.automatedSnapshotRetentionPeriod); manualSnapshotRetentionPeriod(model.manualSnapshotRetentionPeriod); clusterSecurityGroups(model.clusterSecurityGroups); vpcSecurityGroups(model.vpcSecurityGroups); clusterParameterGroups(model.clusterParameterGroups); clusterSubnetGroupName(model.clusterSubnetGroupName); vpcId(model.vpcId); availabilityZone(model.availabilityZone); preferredMaintenanceWindow(model.preferredMaintenanceWindow); pendingModifiedValues(model.pendingModifiedValues); clusterVersion(model.clusterVersion); allowVersionUpgrade(model.allowVersionUpgrade); numberOfNodes(model.numberOfNodes); publiclyAccessible(model.publiclyAccessible); encrypted(model.encrypted); restoreStatus(model.restoreStatus); dataTransferProgress(model.dataTransferProgress); hsmStatus(model.hsmStatus); clusterSnapshotCopyStatus(model.clusterSnapshotCopyStatus); clusterPublicKey(model.clusterPublicKey); clusterNodes(model.clusterNodes); elasticIpStatus(model.elasticIpStatus); clusterRevisionNumber(model.clusterRevisionNumber); tags(model.tags); kmsKeyId(model.kmsKeyId); enhancedVpcRouting(model.enhancedVpcRouting); iamRoles(model.iamRoles); pendingActions(model.pendingActions); maintenanceTrackName(model.maintenanceTrackName); elasticResizeNumberOfNodeOptions(model.elasticResizeNumberOfNodeOptions); deferredMaintenanceWindows(model.deferredMaintenanceWindows); snapshotScheduleIdentifier(model.snapshotScheduleIdentifier); snapshotScheduleState(model.snapshotScheduleState); expectedNextSnapshotScheduleTime(model.expectedNextSnapshotScheduleTime); expectedNextSnapshotScheduleTimeStatus(model.expectedNextSnapshotScheduleTimeStatus); nextMaintenanceWindowStartTime(model.nextMaintenanceWindowStartTime); resizeInfo(model.resizeInfo); availabilityZoneRelocationStatus(model.availabilityZoneRelocationStatus); clusterNamespaceArn(model.clusterNamespaceArn); totalStorageCapacityInMegaBytes(model.totalStorageCapacityInMegaBytes); aquaConfiguration(model.aquaConfiguration); defaultIamRoleArn(model.defaultIamRoleArn); reservedNodeExchangeStatus(model.reservedNodeExchangeStatus); customDomainName(model.customDomainName); customDomainCertificateArn(model.customDomainCertificateArn); customDomainCertificateExpiryDate(model.customDomainCertificateExpiryDate); masterPasswordSecretArn(model.masterPasswordSecretArn); masterPasswordSecretKmsKeyId(model.masterPasswordSecretKmsKeyId); ipAddressType(model.ipAddressType); multiAZ(model.multiAZ); multiAZSecondary(model.multiAZSecondary); } public final String getClusterIdentifier() { return clusterIdentifier; } public final void setClusterIdentifier(String clusterIdentifier) { this.clusterIdentifier = clusterIdentifier; } @Override public final Builder clusterIdentifier(String clusterIdentifier) { this.clusterIdentifier = clusterIdentifier; return this; } public final String getNodeType() { return nodeType; } public final void setNodeType(String nodeType) { this.nodeType = nodeType; } @Override public final Builder nodeType(String nodeType) { this.nodeType = nodeType; return this; } public final String getClusterStatus() { return clusterStatus; } public final void setClusterStatus(String clusterStatus) { this.clusterStatus = clusterStatus; } @Override public final Builder clusterStatus(String clusterStatus) { this.clusterStatus = clusterStatus; return this; } public final String getClusterAvailabilityStatus() { return clusterAvailabilityStatus; } public final void setClusterAvailabilityStatus(String clusterAvailabilityStatus) { this.clusterAvailabilityStatus = clusterAvailabilityStatus; } @Override public final Builder clusterAvailabilityStatus(String clusterAvailabilityStatus) { this.clusterAvailabilityStatus = clusterAvailabilityStatus; return this; } public final String getModifyStatus() { return modifyStatus; } public final void setModifyStatus(String modifyStatus) { this.modifyStatus = modifyStatus; } @Override public final Builder modifyStatus(String modifyStatus) { this.modifyStatus = modifyStatus; return this; } public final String getMasterUsername() { return masterUsername; } public final void setMasterUsername(String masterUsername) { this.masterUsername = masterUsername; } @Override public final Builder masterUsername(String masterUsername) { this.masterUsername = masterUsername; return this; } public final String getDbName() { return dbName; } public final void setDbName(String dbName) { this.dbName = dbName; } @Override public final Builder dbName(String dbName) { this.dbName = dbName; return this; } public final Endpoint.Builder getEndpoint() { return endpoint != null ? endpoint.toBuilder() : null; } public final void setEndpoint(Endpoint.BuilderImpl endpoint) { this.endpoint = endpoint != null ? endpoint.build() : null; } @Override public final Builder endpoint(Endpoint endpoint) { this.endpoint = endpoint; return this; } public final Instant getClusterCreateTime() { return clusterCreateTime; } public final void setClusterCreateTime(Instant clusterCreateTime) { this.clusterCreateTime = clusterCreateTime; } @Override public final Builder clusterCreateTime(Instant clusterCreateTime) { this.clusterCreateTime = clusterCreateTime; return this; } public final Integer getAutomatedSnapshotRetentionPeriod() { return automatedSnapshotRetentionPeriod; } public final void setAutomatedSnapshotRetentionPeriod(Integer automatedSnapshotRetentionPeriod) { this.automatedSnapshotRetentionPeriod = automatedSnapshotRetentionPeriod; } @Override public final Builder automatedSnapshotRetentionPeriod(Integer automatedSnapshotRetentionPeriod) { this.automatedSnapshotRetentionPeriod = automatedSnapshotRetentionPeriod; return this; } public final Integer getManualSnapshotRetentionPeriod() { return manualSnapshotRetentionPeriod; } public final void setManualSnapshotRetentionPeriod(Integer manualSnapshotRetentionPeriod) { this.manualSnapshotRetentionPeriod = manualSnapshotRetentionPeriod; } @Override public final Builder manualSnapshotRetentionPeriod(Integer manualSnapshotRetentionPeriod) { this.manualSnapshotRetentionPeriod = manualSnapshotRetentionPeriod; return this; } public final List getClusterSecurityGroups() { List result = ClusterSecurityGroupMembershipListCopier .copyToBuilder(this.clusterSecurityGroups); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setClusterSecurityGroups(Collection clusterSecurityGroups) { this.clusterSecurityGroups = ClusterSecurityGroupMembershipListCopier.copyFromBuilder(clusterSecurityGroups); } @Override public final Builder clusterSecurityGroups(Collection clusterSecurityGroups) { this.clusterSecurityGroups = ClusterSecurityGroupMembershipListCopier.copy(clusterSecurityGroups); return this; } @Override @SafeVarargs public final Builder clusterSecurityGroups(ClusterSecurityGroupMembership... clusterSecurityGroups) { clusterSecurityGroups(Arrays.asList(clusterSecurityGroups)); return this; } @Override @SafeVarargs public final Builder clusterSecurityGroups(Consumer... clusterSecurityGroups) { clusterSecurityGroups(Stream.of(clusterSecurityGroups) .map(c -> ClusterSecurityGroupMembership.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final List getVpcSecurityGroups() { List result = VpcSecurityGroupMembershipListCopier .copyToBuilder(this.vpcSecurityGroups); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setVpcSecurityGroups(Collection vpcSecurityGroups) { this.vpcSecurityGroups = VpcSecurityGroupMembershipListCopier.copyFromBuilder(vpcSecurityGroups); } @Override public final Builder vpcSecurityGroups(Collection vpcSecurityGroups) { this.vpcSecurityGroups = VpcSecurityGroupMembershipListCopier.copy(vpcSecurityGroups); return this; } @Override @SafeVarargs public final Builder vpcSecurityGroups(VpcSecurityGroupMembership... vpcSecurityGroups) { vpcSecurityGroups(Arrays.asList(vpcSecurityGroups)); return this; } @Override @SafeVarargs public final Builder vpcSecurityGroups(Consumer... vpcSecurityGroups) { vpcSecurityGroups(Stream.of(vpcSecurityGroups) .map(c -> VpcSecurityGroupMembership.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final List getClusterParameterGroups() { List result = ClusterParameterGroupStatusListCopier .copyToBuilder(this.clusterParameterGroups); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setClusterParameterGroups(Collection clusterParameterGroups) { this.clusterParameterGroups = ClusterParameterGroupStatusListCopier.copyFromBuilder(clusterParameterGroups); } @Override public final Builder clusterParameterGroups(Collection clusterParameterGroups) { this.clusterParameterGroups = ClusterParameterGroupStatusListCopier.copy(clusterParameterGroups); return this; } @Override @SafeVarargs public final Builder clusterParameterGroups(ClusterParameterGroupStatus... clusterParameterGroups) { clusterParameterGroups(Arrays.asList(clusterParameterGroups)); return this; } @Override @SafeVarargs public final Builder clusterParameterGroups(Consumer... clusterParameterGroups) { clusterParameterGroups(Stream.of(clusterParameterGroups) .map(c -> ClusterParameterGroupStatus.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final String getClusterSubnetGroupName() { return clusterSubnetGroupName; } public final void setClusterSubnetGroupName(String clusterSubnetGroupName) { this.clusterSubnetGroupName = clusterSubnetGroupName; } @Override public final Builder clusterSubnetGroupName(String clusterSubnetGroupName) { this.clusterSubnetGroupName = clusterSubnetGroupName; return this; } public final String getVpcId() { return vpcId; } public final void setVpcId(String vpcId) { this.vpcId = vpcId; } @Override public final Builder vpcId(String vpcId) { this.vpcId = vpcId; return this; } public final String getAvailabilityZone() { return availabilityZone; } public final void setAvailabilityZone(String availabilityZone) { this.availabilityZone = availabilityZone; } @Override public final Builder availabilityZone(String availabilityZone) { this.availabilityZone = availabilityZone; return this; } public final String getPreferredMaintenanceWindow() { return preferredMaintenanceWindow; } public final void setPreferredMaintenanceWindow(String preferredMaintenanceWindow) { this.preferredMaintenanceWindow = preferredMaintenanceWindow; } @Override public final Builder preferredMaintenanceWindow(String preferredMaintenanceWindow) { this.preferredMaintenanceWindow = preferredMaintenanceWindow; return this; } public final PendingModifiedValues.Builder getPendingModifiedValues() { return pendingModifiedValues != null ? pendingModifiedValues.toBuilder() : null; } public final void setPendingModifiedValues(PendingModifiedValues.BuilderImpl pendingModifiedValues) { this.pendingModifiedValues = pendingModifiedValues != null ? pendingModifiedValues.build() : null; } @Override public final Builder pendingModifiedValues(PendingModifiedValues pendingModifiedValues) { this.pendingModifiedValues = pendingModifiedValues; return this; } public final String getClusterVersion() { return clusterVersion; } public final void setClusterVersion(String clusterVersion) { this.clusterVersion = clusterVersion; } @Override public final Builder clusterVersion(String clusterVersion) { this.clusterVersion = clusterVersion; return this; } public final Boolean getAllowVersionUpgrade() { return allowVersionUpgrade; } public final void setAllowVersionUpgrade(Boolean allowVersionUpgrade) { this.allowVersionUpgrade = allowVersionUpgrade; } @Override public final Builder allowVersionUpgrade(Boolean allowVersionUpgrade) { this.allowVersionUpgrade = allowVersionUpgrade; return this; } public final Integer getNumberOfNodes() { return numberOfNodes; } public final void setNumberOfNodes(Integer numberOfNodes) { this.numberOfNodes = numberOfNodes; } @Override public final Builder numberOfNodes(Integer numberOfNodes) { this.numberOfNodes = numberOfNodes; return this; } public final Boolean getPubliclyAccessible() { return publiclyAccessible; } public final void setPubliclyAccessible(Boolean publiclyAccessible) { this.publiclyAccessible = publiclyAccessible; } @Override public final Builder publiclyAccessible(Boolean publiclyAccessible) { this.publiclyAccessible = publiclyAccessible; return this; } public final Boolean getEncrypted() { return encrypted; } public final void setEncrypted(Boolean encrypted) { this.encrypted = encrypted; } @Override public final Builder encrypted(Boolean encrypted) { this.encrypted = encrypted; return this; } public final RestoreStatus.Builder getRestoreStatus() { return restoreStatus != null ? restoreStatus.toBuilder() : null; } public final void setRestoreStatus(RestoreStatus.BuilderImpl restoreStatus) { this.restoreStatus = restoreStatus != null ? restoreStatus.build() : null; } @Override public final Builder restoreStatus(RestoreStatus restoreStatus) { this.restoreStatus = restoreStatus; return this; } public final DataTransferProgress.Builder getDataTransferProgress() { return dataTransferProgress != null ? dataTransferProgress.toBuilder() : null; } public final void setDataTransferProgress(DataTransferProgress.BuilderImpl dataTransferProgress) { this.dataTransferProgress = dataTransferProgress != null ? dataTransferProgress.build() : null; } @Override public final Builder dataTransferProgress(DataTransferProgress dataTransferProgress) { this.dataTransferProgress = dataTransferProgress; return this; } public final HsmStatus.Builder getHsmStatus() { return hsmStatus != null ? hsmStatus.toBuilder() : null; } public final void setHsmStatus(HsmStatus.BuilderImpl hsmStatus) { this.hsmStatus = hsmStatus != null ? hsmStatus.build() : null; } @Override public final Builder hsmStatus(HsmStatus hsmStatus) { this.hsmStatus = hsmStatus; return this; } public final ClusterSnapshotCopyStatus.Builder getClusterSnapshotCopyStatus() { return clusterSnapshotCopyStatus != null ? clusterSnapshotCopyStatus.toBuilder() : null; } public final void setClusterSnapshotCopyStatus(ClusterSnapshotCopyStatus.BuilderImpl clusterSnapshotCopyStatus) { this.clusterSnapshotCopyStatus = clusterSnapshotCopyStatus != null ? clusterSnapshotCopyStatus.build() : null; } @Override public final Builder clusterSnapshotCopyStatus(ClusterSnapshotCopyStatus clusterSnapshotCopyStatus) { this.clusterSnapshotCopyStatus = clusterSnapshotCopyStatus; return this; } public final String getClusterPublicKey() { return clusterPublicKey; } public final void setClusterPublicKey(String clusterPublicKey) { this.clusterPublicKey = clusterPublicKey; } @Override public final Builder clusterPublicKey(String clusterPublicKey) { this.clusterPublicKey = clusterPublicKey; return this; } public final List getClusterNodes() { List result = ClusterNodesListCopier.copyToBuilder(this.clusterNodes); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setClusterNodes(Collection clusterNodes) { this.clusterNodes = ClusterNodesListCopier.copyFromBuilder(clusterNodes); } @Override public final Builder clusterNodes(Collection clusterNodes) { this.clusterNodes = ClusterNodesListCopier.copy(clusterNodes); return this; } @Override @SafeVarargs public final Builder clusterNodes(ClusterNode... clusterNodes) { clusterNodes(Arrays.asList(clusterNodes)); return this; } @Override @SafeVarargs public final Builder clusterNodes(Consumer... clusterNodes) { clusterNodes(Stream.of(clusterNodes).map(c -> ClusterNode.builder().applyMutation(c).build()) .collect(Collectors.toList())); return this; } public final ElasticIpStatus.Builder getElasticIpStatus() { return elasticIpStatus != null ? elasticIpStatus.toBuilder() : null; } public final void setElasticIpStatus(ElasticIpStatus.BuilderImpl elasticIpStatus) { this.elasticIpStatus = elasticIpStatus != null ? elasticIpStatus.build() : null; } @Override public final Builder elasticIpStatus(ElasticIpStatus elasticIpStatus) { this.elasticIpStatus = elasticIpStatus; return this; } public final String getClusterRevisionNumber() { return clusterRevisionNumber; } public final void setClusterRevisionNumber(String clusterRevisionNumber) { this.clusterRevisionNumber = clusterRevisionNumber; } @Override public final Builder clusterRevisionNumber(String clusterRevisionNumber) { this.clusterRevisionNumber = clusterRevisionNumber; return this; } public final List getTags() { List result = TagListCopier.copyToBuilder(this.tags); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setTags(Collection tags) { this.tags = TagListCopier.copyFromBuilder(tags); } @Override public final Builder tags(Collection tags) { this.tags = TagListCopier.copy(tags); return this; } @Override @SafeVarargs public final Builder tags(Tag... tags) { tags(Arrays.asList(tags)); return this; } @Override @SafeVarargs public final Builder tags(Consumer... tags) { tags(Stream.of(tags).map(c -> Tag.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final String getKmsKeyId() { return kmsKeyId; } public final void setKmsKeyId(String kmsKeyId) { this.kmsKeyId = kmsKeyId; } @Override public final Builder kmsKeyId(String kmsKeyId) { this.kmsKeyId = kmsKeyId; return this; } public final Boolean getEnhancedVpcRouting() { return enhancedVpcRouting; } public final void setEnhancedVpcRouting(Boolean enhancedVpcRouting) { this.enhancedVpcRouting = enhancedVpcRouting; } @Override public final Builder enhancedVpcRouting(Boolean enhancedVpcRouting) { this.enhancedVpcRouting = enhancedVpcRouting; return this; } public final List getIamRoles() { List result = ClusterIamRoleListCopier.copyToBuilder(this.iamRoles); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setIamRoles(Collection iamRoles) { this.iamRoles = ClusterIamRoleListCopier.copyFromBuilder(iamRoles); } @Override public final Builder iamRoles(Collection iamRoles) { this.iamRoles = ClusterIamRoleListCopier.copy(iamRoles); return this; } @Override @SafeVarargs public final Builder iamRoles(ClusterIamRole... iamRoles) { iamRoles(Arrays.asList(iamRoles)); return this; } @Override @SafeVarargs public final Builder iamRoles(Consumer... iamRoles) { iamRoles(Stream.of(iamRoles).map(c -> ClusterIamRole.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final Collection getPendingActions() { if (pendingActions instanceof SdkAutoConstructList) { return null; } return pendingActions; } public final void setPendingActions(Collection pendingActions) { this.pendingActions = PendingActionsListCopier.copy(pendingActions); } @Override public final Builder pendingActions(Collection pendingActions) { this.pendingActions = PendingActionsListCopier.copy(pendingActions); return this; } @Override @SafeVarargs public final Builder pendingActions(String... pendingActions) { pendingActions(Arrays.asList(pendingActions)); return this; } public final String getMaintenanceTrackName() { return maintenanceTrackName; } public final void setMaintenanceTrackName(String maintenanceTrackName) { this.maintenanceTrackName = maintenanceTrackName; } @Override public final Builder maintenanceTrackName(String maintenanceTrackName) { this.maintenanceTrackName = maintenanceTrackName; return this; } public final String getElasticResizeNumberOfNodeOptions() { return elasticResizeNumberOfNodeOptions; } public final void setElasticResizeNumberOfNodeOptions(String elasticResizeNumberOfNodeOptions) { this.elasticResizeNumberOfNodeOptions = elasticResizeNumberOfNodeOptions; } @Override public final Builder elasticResizeNumberOfNodeOptions(String elasticResizeNumberOfNodeOptions) { this.elasticResizeNumberOfNodeOptions = elasticResizeNumberOfNodeOptions; return this; } public final List getDeferredMaintenanceWindows() { List result = DeferredMaintenanceWindowsListCopier .copyToBuilder(this.deferredMaintenanceWindows); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setDeferredMaintenanceWindows( Collection deferredMaintenanceWindows) { this.deferredMaintenanceWindows = DeferredMaintenanceWindowsListCopier.copyFromBuilder(deferredMaintenanceWindows); } @Override public final Builder deferredMaintenanceWindows(Collection deferredMaintenanceWindows) { this.deferredMaintenanceWindows = DeferredMaintenanceWindowsListCopier.copy(deferredMaintenanceWindows); return this; } @Override @SafeVarargs public final Builder deferredMaintenanceWindows(DeferredMaintenanceWindow... deferredMaintenanceWindows) { deferredMaintenanceWindows(Arrays.asList(deferredMaintenanceWindows)); return this; } @Override @SafeVarargs public final Builder deferredMaintenanceWindows(Consumer... deferredMaintenanceWindows) { deferredMaintenanceWindows(Stream.of(deferredMaintenanceWindows) .map(c -> DeferredMaintenanceWindow.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final String getSnapshotScheduleIdentifier() { return snapshotScheduleIdentifier; } public final void setSnapshotScheduleIdentifier(String snapshotScheduleIdentifier) { this.snapshotScheduleIdentifier = snapshotScheduleIdentifier; } @Override public final Builder snapshotScheduleIdentifier(String snapshotScheduleIdentifier) { this.snapshotScheduleIdentifier = snapshotScheduleIdentifier; return this; } public final String getSnapshotScheduleState() { return snapshotScheduleState; } public final void setSnapshotScheduleState(String snapshotScheduleState) { this.snapshotScheduleState = snapshotScheduleState; } @Override public final Builder snapshotScheduleState(String snapshotScheduleState) { this.snapshotScheduleState = snapshotScheduleState; return this; } @Override public final Builder snapshotScheduleState(ScheduleState snapshotScheduleState) { this.snapshotScheduleState(snapshotScheduleState == null ? null : snapshotScheduleState.toString()); return this; } public final Instant getExpectedNextSnapshotScheduleTime() { return expectedNextSnapshotScheduleTime; } public final void setExpectedNextSnapshotScheduleTime(Instant expectedNextSnapshotScheduleTime) { this.expectedNextSnapshotScheduleTime = expectedNextSnapshotScheduleTime; } @Override public final Builder expectedNextSnapshotScheduleTime(Instant expectedNextSnapshotScheduleTime) { this.expectedNextSnapshotScheduleTime = expectedNextSnapshotScheduleTime; return this; } public final String getExpectedNextSnapshotScheduleTimeStatus() { return expectedNextSnapshotScheduleTimeStatus; } public final void setExpectedNextSnapshotScheduleTimeStatus(String expectedNextSnapshotScheduleTimeStatus) { this.expectedNextSnapshotScheduleTimeStatus = expectedNextSnapshotScheduleTimeStatus; } @Override public final Builder expectedNextSnapshotScheduleTimeStatus(String expectedNextSnapshotScheduleTimeStatus) { this.expectedNextSnapshotScheduleTimeStatus = expectedNextSnapshotScheduleTimeStatus; return this; } public final Instant getNextMaintenanceWindowStartTime() { return nextMaintenanceWindowStartTime; } public final void setNextMaintenanceWindowStartTime(Instant nextMaintenanceWindowStartTime) { this.nextMaintenanceWindowStartTime = nextMaintenanceWindowStartTime; } @Override public final Builder nextMaintenanceWindowStartTime(Instant nextMaintenanceWindowStartTime) { this.nextMaintenanceWindowStartTime = nextMaintenanceWindowStartTime; return this; } public final ResizeInfo.Builder getResizeInfo() { return resizeInfo != null ? resizeInfo.toBuilder() : null; } public final void setResizeInfo(ResizeInfo.BuilderImpl resizeInfo) { this.resizeInfo = resizeInfo != null ? resizeInfo.build() : null; } @Override public final Builder resizeInfo(ResizeInfo resizeInfo) { this.resizeInfo = resizeInfo; return this; } public final String getAvailabilityZoneRelocationStatus() { return availabilityZoneRelocationStatus; } public final void setAvailabilityZoneRelocationStatus(String availabilityZoneRelocationStatus) { this.availabilityZoneRelocationStatus = availabilityZoneRelocationStatus; } @Override public final Builder availabilityZoneRelocationStatus(String availabilityZoneRelocationStatus) { this.availabilityZoneRelocationStatus = availabilityZoneRelocationStatus; return this; } public final String getClusterNamespaceArn() { return clusterNamespaceArn; } public final void setClusterNamespaceArn(String clusterNamespaceArn) { this.clusterNamespaceArn = clusterNamespaceArn; } @Override public final Builder clusterNamespaceArn(String clusterNamespaceArn) { this.clusterNamespaceArn = clusterNamespaceArn; return this; } public final Long getTotalStorageCapacityInMegaBytes() { return totalStorageCapacityInMegaBytes; } public final void setTotalStorageCapacityInMegaBytes(Long totalStorageCapacityInMegaBytes) { this.totalStorageCapacityInMegaBytes = totalStorageCapacityInMegaBytes; } @Override public final Builder totalStorageCapacityInMegaBytes(Long totalStorageCapacityInMegaBytes) { this.totalStorageCapacityInMegaBytes = totalStorageCapacityInMegaBytes; return this; } public final AquaConfiguration.Builder getAquaConfiguration() { return aquaConfiguration != null ? aquaConfiguration.toBuilder() : null; } public final void setAquaConfiguration(AquaConfiguration.BuilderImpl aquaConfiguration) { this.aquaConfiguration = aquaConfiguration != null ? aquaConfiguration.build() : null; } @Override public final Builder aquaConfiguration(AquaConfiguration aquaConfiguration) { this.aquaConfiguration = aquaConfiguration; return this; } public final String getDefaultIamRoleArn() { return defaultIamRoleArn; } public final void setDefaultIamRoleArn(String defaultIamRoleArn) { this.defaultIamRoleArn = defaultIamRoleArn; } @Override public final Builder defaultIamRoleArn(String defaultIamRoleArn) { this.defaultIamRoleArn = defaultIamRoleArn; return this; } public final ReservedNodeExchangeStatus.Builder getReservedNodeExchangeStatus() { return reservedNodeExchangeStatus != null ? reservedNodeExchangeStatus.toBuilder() : null; } public final void setReservedNodeExchangeStatus(ReservedNodeExchangeStatus.BuilderImpl reservedNodeExchangeStatus) { this.reservedNodeExchangeStatus = reservedNodeExchangeStatus != null ? reservedNodeExchangeStatus.build() : null; } @Override public final Builder reservedNodeExchangeStatus(ReservedNodeExchangeStatus reservedNodeExchangeStatus) { this.reservedNodeExchangeStatus = reservedNodeExchangeStatus; return this; } public final String getCustomDomainName() { return customDomainName; } public final void setCustomDomainName(String customDomainName) { this.customDomainName = customDomainName; } @Override public final Builder customDomainName(String customDomainName) { this.customDomainName = customDomainName; return this; } public final String getCustomDomainCertificateArn() { return customDomainCertificateArn; } public final void setCustomDomainCertificateArn(String customDomainCertificateArn) { this.customDomainCertificateArn = customDomainCertificateArn; } @Override public final Builder customDomainCertificateArn(String customDomainCertificateArn) { this.customDomainCertificateArn = customDomainCertificateArn; return this; } public final Instant getCustomDomainCertificateExpiryDate() { return customDomainCertificateExpiryDate; } public final void setCustomDomainCertificateExpiryDate(Instant customDomainCertificateExpiryDate) { this.customDomainCertificateExpiryDate = customDomainCertificateExpiryDate; } @Override public final Builder customDomainCertificateExpiryDate(Instant customDomainCertificateExpiryDate) { this.customDomainCertificateExpiryDate = customDomainCertificateExpiryDate; return this; } public final String getMasterPasswordSecretArn() { return masterPasswordSecretArn; } public final void setMasterPasswordSecretArn(String masterPasswordSecretArn) { this.masterPasswordSecretArn = masterPasswordSecretArn; } @Override public final Builder masterPasswordSecretArn(String masterPasswordSecretArn) { this.masterPasswordSecretArn = masterPasswordSecretArn; return this; } public final String getMasterPasswordSecretKmsKeyId() { return masterPasswordSecretKmsKeyId; } public final void setMasterPasswordSecretKmsKeyId(String masterPasswordSecretKmsKeyId) { this.masterPasswordSecretKmsKeyId = masterPasswordSecretKmsKeyId; } @Override public final Builder masterPasswordSecretKmsKeyId(String masterPasswordSecretKmsKeyId) { this.masterPasswordSecretKmsKeyId = masterPasswordSecretKmsKeyId; return this; } public final String getIpAddressType() { return ipAddressType; } public final void setIpAddressType(String ipAddressType) { this.ipAddressType = ipAddressType; } @Override public final Builder ipAddressType(String ipAddressType) { this.ipAddressType = ipAddressType; return this; } public final String getMultiAZ() { return multiAZ; } public final void setMultiAZ(String multiAZ) { this.multiAZ = multiAZ; } @Override public final Builder multiAZ(String multiAZ) { this.multiAZ = multiAZ; return this; } public final SecondaryClusterInfo.Builder getMultiAZSecondary() { return multiAZSecondary != null ? multiAZSecondary.toBuilder() : null; } public final void setMultiAZSecondary(SecondaryClusterInfo.BuilderImpl multiAZSecondary) { this.multiAZSecondary = multiAZSecondary != null ? multiAZSecondary.build() : null; } @Override public final Builder multiAZSecondary(SecondaryClusterInfo multiAZSecondary) { this.multiAZSecondary = multiAZSecondary; return this; } @Override public Cluster build() { return new Cluster(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy