commonMain.aws.sdk.kotlin.services.redshift.model.Cluster.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of redshift-jvm Show documentation
Show all versions of redshift-jvm Show documentation
The AWS SDK for Kotlin client for Redshift
The newest version!
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.redshift.model
import aws.smithy.kotlin.runtime.SdkDsl
import aws.smithy.kotlin.runtime.time.Instant
/**
* Describes a cluster.
*/
public class Cluster private constructor(builder: Builder) {
/**
* A boolean value that, if `true`, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window.
*/
public val allowVersionUpgrade: kotlin.Boolean? = builder.allowVersionUpgrade
/**
* This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).
*/
public val aquaConfiguration: aws.sdk.kotlin.services.redshift.model.AquaConfiguration? = builder.aquaConfiguration
/**
* The number of days that automatic cluster snapshots are retained.
*/
public val automatedSnapshotRetentionPeriod: kotlin.Int? = builder.automatedSnapshotRetentionPeriod
/**
* The name of the Availability Zone in which the cluster is located.
*/
public val availabilityZone: kotlin.String? = builder.availabilityZone
/**
* Describes the status of the Availability Zone relocation operation.
*/
public val availabilityZoneRelocationStatus: kotlin.String? = builder.availabilityZoneRelocationStatus
/**
* 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 val clusterAvailabilityStatus: kotlin.String? = builder.clusterAvailabilityStatus
/**
* The date and time that the cluster was created.
*/
public val clusterCreateTime: aws.smithy.kotlin.runtime.time.Instant? = builder.clusterCreateTime
/**
* The unique identifier of the cluster.
*/
public val clusterIdentifier: kotlin.String? = builder.clusterIdentifier
/**
* The namespace Amazon Resource Name (ARN) of the cluster.
*/
public val clusterNamespaceArn: kotlin.String? = builder.clusterNamespaceArn
/**
* The nodes in the cluster.
*/
public val clusterNodes: List? = builder.clusterNodes
/**
* The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.
*/
public val clusterParameterGroups: List? = builder.clusterParameterGroups
/**
* The public key for the cluster.
*/
public val clusterPublicKey: kotlin.String? = builder.clusterPublicKey
/**
* The specific revision number of the database in the cluster.
*/
public val clusterRevisionNumber: kotlin.String? = builder.clusterRevisionNumber
/**
* 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 val clusterSecurityGroups: List? = builder.clusterSecurityGroups
/**
* A value that returns the destination region and retention period that are configured for cross-region snapshot copy.
*/
public val clusterSnapshotCopyStatus: aws.sdk.kotlin.services.redshift.model.ClusterSnapshotCopyStatus? = builder.clusterSnapshotCopyStatus
/**
* 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 val clusterStatus: kotlin.String? = builder.clusterStatus
/**
* 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 val clusterSubnetGroupName: kotlin.String? = builder.clusterSubnetGroupName
/**
* The version ID of the Amazon Redshift engine that is running on the cluster.
*/
public val clusterVersion: kotlin.String? = builder.clusterVersion
/**
* The certificate Amazon Resource Name (ARN) for the custom domain name.
*/
public val customDomainCertificateArn: kotlin.String? = builder.customDomainCertificateArn
/**
* The expiration date for the certificate associated with the custom domain name.
*/
public val customDomainCertificateExpiryDate: aws.smithy.kotlin.runtime.time.Instant? = builder.customDomainCertificateExpiryDate
/**
* The custom domain name associated with the cluster.
*/
public val customDomainName: kotlin.String? = builder.customDomainName
/**
*
*/
public val dataTransferProgress: aws.sdk.kotlin.services.redshift.model.DataTransferProgress? = builder.dataTransferProgress
/**
* The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named `dev`dev was created by default.
*/
public val dbName: kotlin.String? = builder.dbName
/**
* The Amazon Resource Name (ARN) for the IAM role set as default for the cluster.
*/
public val defaultIamRoleArn: kotlin.String? = builder.defaultIamRoleArn
/**
* Describes a group of `DeferredMaintenanceWindow` objects.
*/
public val deferredMaintenanceWindows: List? = builder.deferredMaintenanceWindows
/**
* The status of the elastic IP (EIP) address.
*/
public val elasticIpStatus: aws.sdk.kotlin.services.redshift.model.ElasticIpStatus? = builder.elasticIpStatus
/**
* The number of nodes that you can resize the cluster to with the elastic resize method.
*/
public val elasticResizeNumberOfNodeOptions: kotlin.String? = builder.elasticResizeNumberOfNodeOptions
/**
* A boolean value that, if `true`, indicates that data in the cluster is encrypted at rest.
*/
public val encrypted: kotlin.Boolean? = builder.encrypted
/**
* The connection endpoint.
*/
public val endpoint: aws.sdk.kotlin.services.redshift.model.Endpoint? = builder.endpoint
/**
* 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](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) in the Amazon Redshift Cluster Management Guide.
*
* If this option is `true`, enhanced VPC routing is enabled.
*
* Default: false
*/
public val enhancedVpcRouting: kotlin.Boolean? = builder.enhancedVpcRouting
/**
* The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled.
*/
public val expectedNextSnapshotScheduleTime: aws.smithy.kotlin.runtime.time.Instant? = builder.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.
*/
public val expectedNextSnapshotScheduleTimeStatus: kotlin.String? = builder.expectedNextSnapshotScheduleTimeStatus
/**
* 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 val hsmStatus: aws.sdk.kotlin.services.redshift.model.HsmStatus? = builder.hsmStatus
/**
* A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other Amazon Web Services services.
*/
public val iamRoles: List? = builder.iamRoles
/**
* The IP address type for the cluster. Possible values are `ipv4` and `dualstack`.
*/
public val ipAddressType: kotlin.String? = builder.ipAddressType
/**
* The Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.
*/
public val kmsKeyId: kotlin.String? = builder.kmsKeyId
/**
* The name of the maintenance track for the cluster.
*/
public val maintenanceTrackName: kotlin.String? = builder.maintenanceTrackName
/**
* 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 val manualSnapshotRetentionPeriod: kotlin.Int? = builder.manualSnapshotRetentionPeriod
/**
* The Amazon Resource Name (ARN) for the cluster's admin user credentials secret.
*/
public val masterPasswordSecretArn: kotlin.String? = builder.masterPasswordSecretArn
/**
* The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret.
*/
public val masterPasswordSecretKmsKeyId: kotlin.String? = builder.masterPasswordSecretKmsKeyId
/**
* The admin user name for the cluster. This name is used to connect to the database that is specified in the **DBName** parameter.
*/
public val masterUsername: kotlin.String? = builder.masterUsername
/**
* The status of a modify operation, if any, initiated for the cluster.
*/
public val modifyStatus: kotlin.String? = builder.modifyStatus
/**
* A boolean value that, if true, indicates that the cluster is deployed in two Availability Zones.
*/
public val multiAz: kotlin.String? = builder.multiAz
/**
* The secondary compute unit of a cluster, if Multi-AZ deployment is turned on.
*/
public val multiAzSecondary: aws.sdk.kotlin.services.redshift.model.SecondaryClusterInfo? = builder.multiAzSecondary
/**
* The date and time in UTC when system maintenance can begin.
*/
public val nextMaintenanceWindowStartTime: aws.smithy.kotlin.runtime.time.Instant? = builder.nextMaintenanceWindowStartTime
/**
* The node type for the nodes in the cluster.
*/
public val nodeType: kotlin.String? = builder.nodeType
/**
* The number of compute nodes in the cluster.
*/
public val numberOfNodes: kotlin.Int? = builder.numberOfNodes
/**
* Cluster operations that are waiting to be started.
*/
public val pendingActions: List? = builder.pendingActions
/**
* A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.
*/
public val pendingModifiedValues: aws.sdk.kotlin.services.redshift.model.PendingModifiedValues? = builder.pendingModifiedValues
/**
* The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.
*/
public val preferredMaintenanceWindow: kotlin.String? = builder.preferredMaintenanceWindow
/**
* A boolean value that, if `true`, indicates that the cluster can be accessed from a public network.
*/
public val publiclyAccessible: kotlin.Boolean? = builder.publiclyAccessible
/**
* The status of the reserved-node exchange request. Statuses include in-progress and requested.
*/
public val reservedNodeExchangeStatus: aws.sdk.kotlin.services.redshift.model.ReservedNodeExchangeStatus? = builder.reservedNodeExchangeStatus
/**
* Returns the following:
* + AllowCancelResize: a boolean value indicating if the resize operation can be cancelled.
* + ResizeType: Returns ClassicResize
*/
public val resizeInfo: aws.sdk.kotlin.services.redshift.model.ResizeInfo? = builder.resizeInfo
/**
* 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 val restoreStatus: aws.sdk.kotlin.services.redshift.model.RestoreStatus? = builder.restoreStatus
/**
* A unique identifier for the cluster snapshot schedule.
*/
public val snapshotScheduleIdentifier: kotlin.String? = builder.snapshotScheduleIdentifier
/**
* The current state of the cluster snapshot schedule.
*/
public val snapshotScheduleState: aws.sdk.kotlin.services.redshift.model.ScheduleState? = builder.snapshotScheduleState
/**
* The list of tags for the cluster.
*/
public val tags: List? = builder.tags
/**
* The total storage capacity of the cluster in megabytes.
*/
public val totalStorageCapacityInMegaBytes: kotlin.Long? = builder.totalStorageCapacityInMegaBytes
/**
* The identifier of the VPC the cluster is in, if the cluster is in a VPC.
*/
public val vpcId: kotlin.String? = builder.vpcId
/**
* 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 val vpcSecurityGroups: List? = builder.vpcSecurityGroups
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.redshift.model.Cluster = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("Cluster(")
append("allowVersionUpgrade=$allowVersionUpgrade,")
append("aquaConfiguration=$aquaConfiguration,")
append("automatedSnapshotRetentionPeriod=$automatedSnapshotRetentionPeriod,")
append("availabilityZone=$availabilityZone,")
append("availabilityZoneRelocationStatus=$availabilityZoneRelocationStatus,")
append("clusterAvailabilityStatus=$clusterAvailabilityStatus,")
append("clusterCreateTime=$clusterCreateTime,")
append("clusterIdentifier=$clusterIdentifier,")
append("clusterNamespaceArn=$clusterNamespaceArn,")
append("clusterNodes=$clusterNodes,")
append("clusterParameterGroups=$clusterParameterGroups,")
append("clusterPublicKey=$clusterPublicKey,")
append("clusterRevisionNumber=$clusterRevisionNumber,")
append("clusterSecurityGroups=$clusterSecurityGroups,")
append("clusterSnapshotCopyStatus=$clusterSnapshotCopyStatus,")
append("clusterStatus=$clusterStatus,")
append("clusterSubnetGroupName=$clusterSubnetGroupName,")
append("clusterVersion=$clusterVersion,")
append("customDomainCertificateArn=$customDomainCertificateArn,")
append("customDomainCertificateExpiryDate=$customDomainCertificateExpiryDate,")
append("customDomainName=$customDomainName,")
append("dataTransferProgress=$dataTransferProgress,")
append("dbName=$dbName,")
append("defaultIamRoleArn=$defaultIamRoleArn,")
append("deferredMaintenanceWindows=$deferredMaintenanceWindows,")
append("elasticIpStatus=$elasticIpStatus,")
append("elasticResizeNumberOfNodeOptions=$elasticResizeNumberOfNodeOptions,")
append("encrypted=$encrypted,")
append("endpoint=$endpoint,")
append("enhancedVpcRouting=$enhancedVpcRouting,")
append("expectedNextSnapshotScheduleTime=$expectedNextSnapshotScheduleTime,")
append("expectedNextSnapshotScheduleTimeStatus=$expectedNextSnapshotScheduleTimeStatus,")
append("hsmStatus=$hsmStatus,")
append("iamRoles=$iamRoles,")
append("ipAddressType=$ipAddressType,")
append("kmsKeyId=$kmsKeyId,")
append("maintenanceTrackName=$maintenanceTrackName,")
append("manualSnapshotRetentionPeriod=$manualSnapshotRetentionPeriod,")
append("masterPasswordSecretArn=$masterPasswordSecretArn,")
append("masterPasswordSecretKmsKeyId=$masterPasswordSecretKmsKeyId,")
append("masterUsername=$masterUsername,")
append("modifyStatus=$modifyStatus,")
append("multiAz=$multiAz,")
append("multiAzSecondary=$multiAzSecondary,")
append("nextMaintenanceWindowStartTime=$nextMaintenanceWindowStartTime,")
append("nodeType=$nodeType,")
append("numberOfNodes=$numberOfNodes,")
append("pendingActions=$pendingActions,")
append("pendingModifiedValues=$pendingModifiedValues,")
append("preferredMaintenanceWindow=$preferredMaintenanceWindow,")
append("publiclyAccessible=$publiclyAccessible,")
append("reservedNodeExchangeStatus=$reservedNodeExchangeStatus,")
append("resizeInfo=$resizeInfo,")
append("restoreStatus=$restoreStatus,")
append("snapshotScheduleIdentifier=$snapshotScheduleIdentifier,")
append("snapshotScheduleState=$snapshotScheduleState,")
append("tags=$tags,")
append("totalStorageCapacityInMegaBytes=$totalStorageCapacityInMegaBytes,")
append("vpcId=$vpcId,")
append("vpcSecurityGroups=$vpcSecurityGroups")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = allowVersionUpgrade?.hashCode() ?: 0
result = 31 * result + (aquaConfiguration?.hashCode() ?: 0)
result = 31 * result + (automatedSnapshotRetentionPeriod ?: 0)
result = 31 * result + (availabilityZone?.hashCode() ?: 0)
result = 31 * result + (availabilityZoneRelocationStatus?.hashCode() ?: 0)
result = 31 * result + (clusterAvailabilityStatus?.hashCode() ?: 0)
result = 31 * result + (clusterCreateTime?.hashCode() ?: 0)
result = 31 * result + (clusterIdentifier?.hashCode() ?: 0)
result = 31 * result + (clusterNamespaceArn?.hashCode() ?: 0)
result = 31 * result + (clusterNodes?.hashCode() ?: 0)
result = 31 * result + (clusterParameterGroups?.hashCode() ?: 0)
result = 31 * result + (clusterPublicKey?.hashCode() ?: 0)
result = 31 * result + (clusterRevisionNumber?.hashCode() ?: 0)
result = 31 * result + (clusterSecurityGroups?.hashCode() ?: 0)
result = 31 * result + (clusterSnapshotCopyStatus?.hashCode() ?: 0)
result = 31 * result + (clusterStatus?.hashCode() ?: 0)
result = 31 * result + (clusterSubnetGroupName?.hashCode() ?: 0)
result = 31 * result + (clusterVersion?.hashCode() ?: 0)
result = 31 * result + (customDomainCertificateArn?.hashCode() ?: 0)
result = 31 * result + (customDomainCertificateExpiryDate?.hashCode() ?: 0)
result = 31 * result + (customDomainName?.hashCode() ?: 0)
result = 31 * result + (dataTransferProgress?.hashCode() ?: 0)
result = 31 * result + (dbName?.hashCode() ?: 0)
result = 31 * result + (defaultIamRoleArn?.hashCode() ?: 0)
result = 31 * result + (deferredMaintenanceWindows?.hashCode() ?: 0)
result = 31 * result + (elasticIpStatus?.hashCode() ?: 0)
result = 31 * result + (elasticResizeNumberOfNodeOptions?.hashCode() ?: 0)
result = 31 * result + (encrypted?.hashCode() ?: 0)
result = 31 * result + (endpoint?.hashCode() ?: 0)
result = 31 * result + (enhancedVpcRouting?.hashCode() ?: 0)
result = 31 * result + (expectedNextSnapshotScheduleTime?.hashCode() ?: 0)
result = 31 * result + (expectedNextSnapshotScheduleTimeStatus?.hashCode() ?: 0)
result = 31 * result + (hsmStatus?.hashCode() ?: 0)
result = 31 * result + (iamRoles?.hashCode() ?: 0)
result = 31 * result + (ipAddressType?.hashCode() ?: 0)
result = 31 * result + (kmsKeyId?.hashCode() ?: 0)
result = 31 * result + (maintenanceTrackName?.hashCode() ?: 0)
result = 31 * result + (manualSnapshotRetentionPeriod ?: 0)
result = 31 * result + (masterPasswordSecretArn?.hashCode() ?: 0)
result = 31 * result + (masterPasswordSecretKmsKeyId?.hashCode() ?: 0)
result = 31 * result + (masterUsername?.hashCode() ?: 0)
result = 31 * result + (modifyStatus?.hashCode() ?: 0)
result = 31 * result + (multiAz?.hashCode() ?: 0)
result = 31 * result + (multiAzSecondary?.hashCode() ?: 0)
result = 31 * result + (nextMaintenanceWindowStartTime?.hashCode() ?: 0)
result = 31 * result + (nodeType?.hashCode() ?: 0)
result = 31 * result + (numberOfNodes ?: 0)
result = 31 * result + (pendingActions?.hashCode() ?: 0)
result = 31 * result + (pendingModifiedValues?.hashCode() ?: 0)
result = 31 * result + (preferredMaintenanceWindow?.hashCode() ?: 0)
result = 31 * result + (publiclyAccessible?.hashCode() ?: 0)
result = 31 * result + (reservedNodeExchangeStatus?.hashCode() ?: 0)
result = 31 * result + (resizeInfo?.hashCode() ?: 0)
result = 31 * result + (restoreStatus?.hashCode() ?: 0)
result = 31 * result + (snapshotScheduleIdentifier?.hashCode() ?: 0)
result = 31 * result + (snapshotScheduleState?.hashCode() ?: 0)
result = 31 * result + (tags?.hashCode() ?: 0)
result = 31 * result + (totalStorageCapacityInMegaBytes?.hashCode() ?: 0)
result = 31 * result + (vpcId?.hashCode() ?: 0)
result = 31 * result + (vpcSecurityGroups?.hashCode() ?: 0)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as Cluster
if (allowVersionUpgrade != other.allowVersionUpgrade) return false
if (aquaConfiguration != other.aquaConfiguration) return false
if (automatedSnapshotRetentionPeriod != other.automatedSnapshotRetentionPeriod) return false
if (availabilityZone != other.availabilityZone) return false
if (availabilityZoneRelocationStatus != other.availabilityZoneRelocationStatus) return false
if (clusterAvailabilityStatus != other.clusterAvailabilityStatus) return false
if (clusterCreateTime != other.clusterCreateTime) return false
if (clusterIdentifier != other.clusterIdentifier) return false
if (clusterNamespaceArn != other.clusterNamespaceArn) return false
if (clusterNodes != other.clusterNodes) return false
if (clusterParameterGroups != other.clusterParameterGroups) return false
if (clusterPublicKey != other.clusterPublicKey) return false
if (clusterRevisionNumber != other.clusterRevisionNumber) return false
if (clusterSecurityGroups != other.clusterSecurityGroups) return false
if (clusterSnapshotCopyStatus != other.clusterSnapshotCopyStatus) return false
if (clusterStatus != other.clusterStatus) return false
if (clusterSubnetGroupName != other.clusterSubnetGroupName) return false
if (clusterVersion != other.clusterVersion) return false
if (customDomainCertificateArn != other.customDomainCertificateArn) return false
if (customDomainCertificateExpiryDate != other.customDomainCertificateExpiryDate) return false
if (customDomainName != other.customDomainName) return false
if (dataTransferProgress != other.dataTransferProgress) return false
if (dbName != other.dbName) return false
if (defaultIamRoleArn != other.defaultIamRoleArn) return false
if (deferredMaintenanceWindows != other.deferredMaintenanceWindows) return false
if (elasticIpStatus != other.elasticIpStatus) return false
if (elasticResizeNumberOfNodeOptions != other.elasticResizeNumberOfNodeOptions) return false
if (encrypted != other.encrypted) return false
if (endpoint != other.endpoint) return false
if (enhancedVpcRouting != other.enhancedVpcRouting) return false
if (expectedNextSnapshotScheduleTime != other.expectedNextSnapshotScheduleTime) return false
if (expectedNextSnapshotScheduleTimeStatus != other.expectedNextSnapshotScheduleTimeStatus) return false
if (hsmStatus != other.hsmStatus) return false
if (iamRoles != other.iamRoles) return false
if (ipAddressType != other.ipAddressType) return false
if (kmsKeyId != other.kmsKeyId) return false
if (maintenanceTrackName != other.maintenanceTrackName) return false
if (manualSnapshotRetentionPeriod != other.manualSnapshotRetentionPeriod) return false
if (masterPasswordSecretArn != other.masterPasswordSecretArn) return false
if (masterPasswordSecretKmsKeyId != other.masterPasswordSecretKmsKeyId) return false
if (masterUsername != other.masterUsername) return false
if (modifyStatus != other.modifyStatus) return false
if (multiAz != other.multiAz) return false
if (multiAzSecondary != other.multiAzSecondary) return false
if (nextMaintenanceWindowStartTime != other.nextMaintenanceWindowStartTime) return false
if (nodeType != other.nodeType) return false
if (numberOfNodes != other.numberOfNodes) return false
if (pendingActions != other.pendingActions) return false
if (pendingModifiedValues != other.pendingModifiedValues) return false
if (preferredMaintenanceWindow != other.preferredMaintenanceWindow) return false
if (publiclyAccessible != other.publiclyAccessible) return false
if (reservedNodeExchangeStatus != other.reservedNodeExchangeStatus) return false
if (resizeInfo != other.resizeInfo) return false
if (restoreStatus != other.restoreStatus) return false
if (snapshotScheduleIdentifier != other.snapshotScheduleIdentifier) return false
if (snapshotScheduleState != other.snapshotScheduleState) return false
if (tags != other.tags) return false
if (totalStorageCapacityInMegaBytes != other.totalStorageCapacityInMegaBytes) return false
if (vpcId != other.vpcId) return false
if (vpcSecurityGroups != other.vpcSecurityGroups) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.redshift.model.Cluster = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* A boolean value that, if `true`, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window.
*/
public var allowVersionUpgrade: kotlin.Boolean? = null
/**
* This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).
*/
public var aquaConfiguration: aws.sdk.kotlin.services.redshift.model.AquaConfiguration? = null
/**
* The number of days that automatic cluster snapshots are retained.
*/
public var automatedSnapshotRetentionPeriod: kotlin.Int? = null
/**
* The name of the Availability Zone in which the cluster is located.
*/
public var availabilityZone: kotlin.String? = null
/**
* Describes the status of the Availability Zone relocation operation.
*/
public var availabilityZoneRelocationStatus: kotlin.String? = null
/**
* 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 var clusterAvailabilityStatus: kotlin.String? = null
/**
* The date and time that the cluster was created.
*/
public var clusterCreateTime: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* The unique identifier of the cluster.
*/
public var clusterIdentifier: kotlin.String? = null
/**
* The namespace Amazon Resource Name (ARN) of the cluster.
*/
public var clusterNamespaceArn: kotlin.String? = null
/**
* The nodes in the cluster.
*/
public var clusterNodes: List? = null
/**
* The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.
*/
public var clusterParameterGroups: List? = null
/**
* The public key for the cluster.
*/
public var clusterPublicKey: kotlin.String? = null
/**
* The specific revision number of the database in the cluster.
*/
public var clusterRevisionNumber: kotlin.String? = null
/**
* 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 var clusterSecurityGroups: List? = null
/**
* A value that returns the destination region and retention period that are configured for cross-region snapshot copy.
*/
public var clusterSnapshotCopyStatus: aws.sdk.kotlin.services.redshift.model.ClusterSnapshotCopyStatus? = null
/**
* 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 var clusterStatus: kotlin.String? = null
/**
* 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 var clusterSubnetGroupName: kotlin.String? = null
/**
* The version ID of the Amazon Redshift engine that is running on the cluster.
*/
public var clusterVersion: kotlin.String? = null
/**
* The certificate Amazon Resource Name (ARN) for the custom domain name.
*/
public var customDomainCertificateArn: kotlin.String? = null
/**
* The expiration date for the certificate associated with the custom domain name.
*/
public var customDomainCertificateExpiryDate: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* The custom domain name associated with the cluster.
*/
public var customDomainName: kotlin.String? = null
/**
*
*/
public var dataTransferProgress: aws.sdk.kotlin.services.redshift.model.DataTransferProgress? = null
/**
* The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named `dev`dev was created by default.
*/
public var dbName: kotlin.String? = null
/**
* The Amazon Resource Name (ARN) for the IAM role set as default for the cluster.
*/
public var defaultIamRoleArn: kotlin.String? = null
/**
* Describes a group of `DeferredMaintenanceWindow` objects.
*/
public var deferredMaintenanceWindows: List? = null
/**
* The status of the elastic IP (EIP) address.
*/
public var elasticIpStatus: aws.sdk.kotlin.services.redshift.model.ElasticIpStatus? = null
/**
* The number of nodes that you can resize the cluster to with the elastic resize method.
*/
public var elasticResizeNumberOfNodeOptions: kotlin.String? = null
/**
* A boolean value that, if `true`, indicates that data in the cluster is encrypted at rest.
*/
public var encrypted: kotlin.Boolean? = null
/**
* The connection endpoint.
*/
public var endpoint: aws.sdk.kotlin.services.redshift.model.Endpoint? = null
/**
* 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](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) in the Amazon Redshift Cluster Management Guide.
*
* If this option is `true`, enhanced VPC routing is enabled.
*
* Default: false
*/
public var enhancedVpcRouting: kotlin.Boolean? = null
/**
* The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled.
*/
public var expectedNextSnapshotScheduleTime: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* 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 var expectedNextSnapshotScheduleTimeStatus: kotlin.String? = null
/**
* 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 var hsmStatus: aws.sdk.kotlin.services.redshift.model.HsmStatus? = null
/**
* A list of Identity and Access Management (IAM) roles that can be used by the cluster to access other Amazon Web Services services.
*/
public var iamRoles: List? = null
/**
* The IP address type for the cluster. Possible values are `ipv4` and `dualstack`.
*/
public var ipAddressType: kotlin.String? = null
/**
* The Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.
*/
public var kmsKeyId: kotlin.String? = null
/**
* The name of the maintenance track for the cluster.
*/
public var maintenanceTrackName: kotlin.String? = null
/**
* 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 var manualSnapshotRetentionPeriod: kotlin.Int? = null
/**
* The Amazon Resource Name (ARN) for the cluster's admin user credentials secret.
*/
public var masterPasswordSecretArn: kotlin.String? = null
/**
* The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret.
*/
public var masterPasswordSecretKmsKeyId: kotlin.String? = null
/**
* The admin user name for the cluster. This name is used to connect to the database that is specified in the **DBName** parameter.
*/
public var masterUsername: kotlin.String? = null
/**
* The status of a modify operation, if any, initiated for the cluster.
*/
public var modifyStatus: kotlin.String? = null
/**
* A boolean value that, if true, indicates that the cluster is deployed in two Availability Zones.
*/
public var multiAz: kotlin.String? = null
/**
* The secondary compute unit of a cluster, if Multi-AZ deployment is turned on.
*/
public var multiAzSecondary: aws.sdk.kotlin.services.redshift.model.SecondaryClusterInfo? = null
/**
* The date and time in UTC when system maintenance can begin.
*/
public var nextMaintenanceWindowStartTime: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* The node type for the nodes in the cluster.
*/
public var nodeType: kotlin.String? = null
/**
* The number of compute nodes in the cluster.
*/
public var numberOfNodes: kotlin.Int? = null
/**
* Cluster operations that are waiting to be started.
*/
public var pendingActions: List? = null
/**
* A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.
*/
public var pendingModifiedValues: aws.sdk.kotlin.services.redshift.model.PendingModifiedValues? = null
/**
* The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.
*/
public var preferredMaintenanceWindow: kotlin.String? = null
/**
* A boolean value that, if `true`, indicates that the cluster can be accessed from a public network.
*/
public var publiclyAccessible: kotlin.Boolean? = null
/**
* The status of the reserved-node exchange request. Statuses include in-progress and requested.
*/
public var reservedNodeExchangeStatus: aws.sdk.kotlin.services.redshift.model.ReservedNodeExchangeStatus? = null
/**
* Returns the following:
* + AllowCancelResize: a boolean value indicating if the resize operation can be cancelled.
* + ResizeType: Returns ClassicResize
*/
public var resizeInfo: aws.sdk.kotlin.services.redshift.model.ResizeInfo? = null
/**
* 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 var restoreStatus: aws.sdk.kotlin.services.redshift.model.RestoreStatus? = null
/**
* A unique identifier for the cluster snapshot schedule.
*/
public var snapshotScheduleIdentifier: kotlin.String? = null
/**
* The current state of the cluster snapshot schedule.
*/
public var snapshotScheduleState: aws.sdk.kotlin.services.redshift.model.ScheduleState? = null
/**
* The list of tags for the cluster.
*/
public var tags: List? = null
/**
* The total storage capacity of the cluster in megabytes.
*/
public var totalStorageCapacityInMegaBytes: kotlin.Long? = null
/**
* The identifier of the VPC the cluster is in, if the cluster is in a VPC.
*/
public var vpcId: kotlin.String? = null
/**
* 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 var vpcSecurityGroups: List? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.redshift.model.Cluster) : this() {
this.allowVersionUpgrade = x.allowVersionUpgrade
this.aquaConfiguration = x.aquaConfiguration
this.automatedSnapshotRetentionPeriod = x.automatedSnapshotRetentionPeriod
this.availabilityZone = x.availabilityZone
this.availabilityZoneRelocationStatus = x.availabilityZoneRelocationStatus
this.clusterAvailabilityStatus = x.clusterAvailabilityStatus
this.clusterCreateTime = x.clusterCreateTime
this.clusterIdentifier = x.clusterIdentifier
this.clusterNamespaceArn = x.clusterNamespaceArn
this.clusterNodes = x.clusterNodes
this.clusterParameterGroups = x.clusterParameterGroups
this.clusterPublicKey = x.clusterPublicKey
this.clusterRevisionNumber = x.clusterRevisionNumber
this.clusterSecurityGroups = x.clusterSecurityGroups
this.clusterSnapshotCopyStatus = x.clusterSnapshotCopyStatus
this.clusterStatus = x.clusterStatus
this.clusterSubnetGroupName = x.clusterSubnetGroupName
this.clusterVersion = x.clusterVersion
this.customDomainCertificateArn = x.customDomainCertificateArn
this.customDomainCertificateExpiryDate = x.customDomainCertificateExpiryDate
this.customDomainName = x.customDomainName
this.dataTransferProgress = x.dataTransferProgress
this.dbName = x.dbName
this.defaultIamRoleArn = x.defaultIamRoleArn
this.deferredMaintenanceWindows = x.deferredMaintenanceWindows
this.elasticIpStatus = x.elasticIpStatus
this.elasticResizeNumberOfNodeOptions = x.elasticResizeNumberOfNodeOptions
this.encrypted = x.encrypted
this.endpoint = x.endpoint
this.enhancedVpcRouting = x.enhancedVpcRouting
this.expectedNextSnapshotScheduleTime = x.expectedNextSnapshotScheduleTime
this.expectedNextSnapshotScheduleTimeStatus = x.expectedNextSnapshotScheduleTimeStatus
this.hsmStatus = x.hsmStatus
this.iamRoles = x.iamRoles
this.ipAddressType = x.ipAddressType
this.kmsKeyId = x.kmsKeyId
this.maintenanceTrackName = x.maintenanceTrackName
this.manualSnapshotRetentionPeriod = x.manualSnapshotRetentionPeriod
this.masterPasswordSecretArn = x.masterPasswordSecretArn
this.masterPasswordSecretKmsKeyId = x.masterPasswordSecretKmsKeyId
this.masterUsername = x.masterUsername
this.modifyStatus = x.modifyStatus
this.multiAz = x.multiAz
this.multiAzSecondary = x.multiAzSecondary
this.nextMaintenanceWindowStartTime = x.nextMaintenanceWindowStartTime
this.nodeType = x.nodeType
this.numberOfNodes = x.numberOfNodes
this.pendingActions = x.pendingActions
this.pendingModifiedValues = x.pendingModifiedValues
this.preferredMaintenanceWindow = x.preferredMaintenanceWindow
this.publiclyAccessible = x.publiclyAccessible
this.reservedNodeExchangeStatus = x.reservedNodeExchangeStatus
this.resizeInfo = x.resizeInfo
this.restoreStatus = x.restoreStatus
this.snapshotScheduleIdentifier = x.snapshotScheduleIdentifier
this.snapshotScheduleState = x.snapshotScheduleState
this.tags = x.tags
this.totalStorageCapacityInMegaBytes = x.totalStorageCapacityInMegaBytes
this.vpcId = x.vpcId
this.vpcSecurityGroups = x.vpcSecurityGroups
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.redshift.model.Cluster = Cluster(this)
/**
* construct an [aws.sdk.kotlin.services.redshift.model.AquaConfiguration] inside the given [block]
*/
public fun aquaConfiguration(block: aws.sdk.kotlin.services.redshift.model.AquaConfiguration.Builder.() -> kotlin.Unit) {
this.aquaConfiguration = aws.sdk.kotlin.services.redshift.model.AquaConfiguration.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.ClusterSnapshotCopyStatus] inside the given [block]
*/
public fun clusterSnapshotCopyStatus(block: aws.sdk.kotlin.services.redshift.model.ClusterSnapshotCopyStatus.Builder.() -> kotlin.Unit) {
this.clusterSnapshotCopyStatus = aws.sdk.kotlin.services.redshift.model.ClusterSnapshotCopyStatus.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.DataTransferProgress] inside the given [block]
*/
public fun dataTransferProgress(block: aws.sdk.kotlin.services.redshift.model.DataTransferProgress.Builder.() -> kotlin.Unit) {
this.dataTransferProgress = aws.sdk.kotlin.services.redshift.model.DataTransferProgress.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.ElasticIpStatus] inside the given [block]
*/
public fun elasticIpStatus(block: aws.sdk.kotlin.services.redshift.model.ElasticIpStatus.Builder.() -> kotlin.Unit) {
this.elasticIpStatus = aws.sdk.kotlin.services.redshift.model.ElasticIpStatus.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.Endpoint] inside the given [block]
*/
public fun endpoint(block: aws.sdk.kotlin.services.redshift.model.Endpoint.Builder.() -> kotlin.Unit) {
this.endpoint = aws.sdk.kotlin.services.redshift.model.Endpoint.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.HsmStatus] inside the given [block]
*/
public fun hsmStatus(block: aws.sdk.kotlin.services.redshift.model.HsmStatus.Builder.() -> kotlin.Unit) {
this.hsmStatus = aws.sdk.kotlin.services.redshift.model.HsmStatus.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.SecondaryClusterInfo] inside the given [block]
*/
public fun multiAzSecondary(block: aws.sdk.kotlin.services.redshift.model.SecondaryClusterInfo.Builder.() -> kotlin.Unit) {
this.multiAzSecondary = aws.sdk.kotlin.services.redshift.model.SecondaryClusterInfo.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.PendingModifiedValues] inside the given [block]
*/
public fun pendingModifiedValues(block: aws.sdk.kotlin.services.redshift.model.PendingModifiedValues.Builder.() -> kotlin.Unit) {
this.pendingModifiedValues = aws.sdk.kotlin.services.redshift.model.PendingModifiedValues.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.ReservedNodeExchangeStatus] inside the given [block]
*/
public fun reservedNodeExchangeStatus(block: aws.sdk.kotlin.services.redshift.model.ReservedNodeExchangeStatus.Builder.() -> kotlin.Unit) {
this.reservedNodeExchangeStatus = aws.sdk.kotlin.services.redshift.model.ReservedNodeExchangeStatus.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.ResizeInfo] inside the given [block]
*/
public fun resizeInfo(block: aws.sdk.kotlin.services.redshift.model.ResizeInfo.Builder.() -> kotlin.Unit) {
this.resizeInfo = aws.sdk.kotlin.services.redshift.model.ResizeInfo.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.redshift.model.RestoreStatus] inside the given [block]
*/
public fun restoreStatus(block: aws.sdk.kotlin.services.redshift.model.RestoreStatus.Builder.() -> kotlin.Unit) {
this.restoreStatus = aws.sdk.kotlin.services.redshift.model.RestoreStatus.invoke(block)
}
internal fun correctErrors(): Builder {
return this
}
}
}