/* * Copyright 2018-2023 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 com.amazonaws.services.finspace.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* The details of a kdb cluster. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class KxCluster implements Serializable, Cloneable, StructuredPojo { /** ** The status of a cluster. *
** PENDING – The cluster is pending creation. *
** CREATING –The cluster creation process is in progress. *
** CREATE_FAILED– The cluster creation process has failed. *
** RUNNING – The cluster creation process is running. *
** UPDATING – The cluster is in the process of being updated. *
** DELETING – The cluster is in the process of being deleted. *
** DELETED – The cluster has been deleted. *
** DELETE_FAILED – The cluster failed to delete. *
** The error message when a failed state occurs. *
*/ private String statusReason; /** ** A unique name for the cluster. *
*/ private String clusterName; /** ** Specifies the type of KDB database that is being created. The following types are available: *
** HDB – A Historical Database. The data is only accessible with read-only permissions from one of the FinSpace * managed kdb databases mounted to the cluster. *
*
* RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it in
* memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster
* type requires local storage for temporary storage of data during the savedown process. If you specify this field
* in your request, you must provide the savedownStorageConfiguration
parameter.
*
* GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to create * your own routing logic using the initialization scripts and custom code. This type of cluster does not require a * writable local storage. *
** A description of the cluster. *
*/ private String clusterDescription; /** ** A version of the FinSpace managed kdb to run. *
*/ private String releaseLabel; /** *
* Specifies a Q program that will be run at launch of a cluster. It is a relative path within .zip file that
* contains the custom code, which will be loaded on the cluster. It must include the file name itself. For example,
* somedir/init.q
.
*
* An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a * cluster attempts to access another cluster. *
*/ private String executionRole; /** ** The number of availability zones assigned per cluster. This can be one of the following *
*
* SINGLE
– Assigns one availability zone per cluster.
*
* MULTI
– Assigns all the availability zones per cluster.
*
* The availability zone identifiers for the requested regions. *
*/ private String availabilityZoneId; /** ** The last time that the cluster was modified. The value is determined as epoch time in milliseconds. For example, * the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. *
*/ private java.util.Date lastModifiedTimestamp; /** ** The timestamp at which the cluster was created in FinSpace. The value is determined as epoch time in * milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. *
*/ private java.util.Date createdTimestamp; /** ** The status of a cluster. *
** PENDING – The cluster is pending creation. *
** CREATING –The cluster creation process is in progress. *
** CREATE_FAILED– The cluster creation process has failed. *
** RUNNING – The cluster creation process is running. *
** UPDATING – The cluster is in the process of being updated. *
** DELETING – The cluster is in the process of being deleted. *
** DELETED – The cluster has been deleted. *
** DELETE_FAILED – The cluster failed to delete. *
** PENDING – The cluster is pending creation. *
** CREATING –The cluster creation process is in progress. *
** CREATE_FAILED– The cluster creation process has failed. *
** RUNNING – The cluster creation process is running. *
** UPDATING – The cluster is in the process of being updated. *
** DELETING – The cluster is in the process of being deleted. *
** DELETED – The cluster has been deleted. *
** DELETE_FAILED – The cluster failed to delete. *
** The status of a cluster. *
** PENDING – The cluster is pending creation. *
** CREATING –The cluster creation process is in progress. *
** CREATE_FAILED– The cluster creation process has failed. *
** RUNNING – The cluster creation process is running. *
** UPDATING – The cluster is in the process of being updated. *
** DELETING – The cluster is in the process of being deleted. *
** DELETED – The cluster has been deleted. *
** DELETE_FAILED – The cluster failed to delete. *
** PENDING – The cluster is pending creation. *
** CREATING –The cluster creation process is in progress. *
** CREATE_FAILED– The cluster creation process has failed. *
** RUNNING – The cluster creation process is running. *
** UPDATING – The cluster is in the process of being updated. *
** DELETING – The cluster is in the process of being deleted. *
** DELETED – The cluster has been deleted. *
** DELETE_FAILED – The cluster failed to delete. *
** The status of a cluster. *
** PENDING – The cluster is pending creation. *
** CREATING –The cluster creation process is in progress. *
** CREATE_FAILED– The cluster creation process has failed. *
** RUNNING – The cluster creation process is running. *
** UPDATING – The cluster is in the process of being updated. *
** DELETING – The cluster is in the process of being deleted. *
** DELETED – The cluster has been deleted. *
** DELETE_FAILED – The cluster failed to delete. *
** PENDING – The cluster is pending creation. *
** CREATING –The cluster creation process is in progress. *
** CREATE_FAILED– The cluster creation process has failed. *
** RUNNING – The cluster creation process is running. *
** UPDATING – The cluster is in the process of being updated. *
** DELETING – The cluster is in the process of being deleted. *
** DELETED – The cluster has been deleted. *
** DELETE_FAILED – The cluster failed to delete. *
** The status of a cluster. *
** PENDING – The cluster is pending creation. *
** CREATING –The cluster creation process is in progress. *
** CREATE_FAILED– The cluster creation process has failed. *
** RUNNING – The cluster creation process is running. *
** UPDATING – The cluster is in the process of being updated. *
** DELETING – The cluster is in the process of being deleted. *
** DELETED – The cluster has been deleted. *
** DELETE_FAILED – The cluster failed to delete. *
** PENDING – The cluster is pending creation. *
** CREATING –The cluster creation process is in progress. *
** CREATE_FAILED– The cluster creation process has failed. *
** RUNNING – The cluster creation process is running. *
** UPDATING – The cluster is in the process of being updated. *
** DELETING – The cluster is in the process of being deleted. *
** DELETED – The cluster has been deleted. *
** DELETE_FAILED – The cluster failed to delete. *
** The error message when a failed state occurs. *
* * @param statusReason * The error message when a failed state occurs. */ public void setStatusReason(String statusReason) { this.statusReason = statusReason; } /** ** The error message when a failed state occurs. *
* * @return The error message when a failed state occurs. */ public String getStatusReason() { return this.statusReason; } /** ** The error message when a failed state occurs. *
* * @param statusReason * The error message when a failed state occurs. * @return Returns a reference to this object so that method calls can be chained together. */ public KxCluster withStatusReason(String statusReason) { setStatusReason(statusReason); return this; } /** ** A unique name for the cluster. *
* * @param clusterName * A unique name for the cluster. */ public void setClusterName(String clusterName) { this.clusterName = clusterName; } /** ** A unique name for the cluster. *
* * @return A unique name for the cluster. */ public String getClusterName() { return this.clusterName; } /** ** A unique name for the cluster. *
* * @param clusterName * A unique name for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public KxCluster withClusterName(String clusterName) { setClusterName(clusterName); return this; } /** ** Specifies the type of KDB database that is being created. The following types are available: *
** HDB – A Historical Database. The data is only accessible with read-only permissions from one of the FinSpace * managed kdb databases mounted to the cluster. *
*
* RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it in
* memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster
* type requires local storage for temporary storage of data during the savedown process. If you specify this field
* in your request, you must provide the savedownStorageConfiguration
parameter.
*
* GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to create * your own routing logic using the initialization scripts and custom code. This type of cluster does not require a * writable local storage. *
** HDB – A Historical Database. The data is only accessible with read-only permissions from one of the * FinSpace managed kdb databases mounted to the cluster. *
*
* RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it
* in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This
* cluster type requires local storage for temporary storage of data during the savedown process. If you
* specify this field in your request, you must provide the savedownStorageConfiguration
* parameter.
*
* GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to * create your own routing logic using the initialization scripts and custom code. This type of cluster does * not require a writable local storage. *
** Specifies the type of KDB database that is being created. The following types are available: *
** HDB – A Historical Database. The data is only accessible with read-only permissions from one of the FinSpace * managed kdb databases mounted to the cluster. *
*
* RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it in
* memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster
* type requires local storage for temporary storage of data during the savedown process. If you specify this field
* in your request, you must provide the savedownStorageConfiguration
parameter.
*
* GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to create * your own routing logic using the initialization scripts and custom code. This type of cluster does not require a * writable local storage. *
** HDB – A Historical Database. The data is only accessible with read-only permissions from one of the * FinSpace managed kdb databases mounted to the cluster. *
*
* RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it
* in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This
* cluster type requires local storage for temporary storage of data during the savedown process. If you
* specify this field in your request, you must provide the savedownStorageConfiguration
* parameter.
*
* GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to * create your own routing logic using the initialization scripts and custom code. This type of cluster does * not require a writable local storage. *
** Specifies the type of KDB database that is being created. The following types are available: *
** HDB – A Historical Database. The data is only accessible with read-only permissions from one of the FinSpace * managed kdb databases mounted to the cluster. *
*
* RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it in
* memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster
* type requires local storage for temporary storage of data during the savedown process. If you specify this field
* in your request, you must provide the savedownStorageConfiguration
parameter.
*
* GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to create * your own routing logic using the initialization scripts and custom code. This type of cluster does not require a * writable local storage. *
** HDB – A Historical Database. The data is only accessible with read-only permissions from one of the * FinSpace managed kdb databases mounted to the cluster. *
*
* RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it
* in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This
* cluster type requires local storage for temporary storage of data during the savedown process. If you
* specify this field in your request, you must provide the savedownStorageConfiguration
* parameter.
*
* GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to * create your own routing logic using the initialization scripts and custom code. This type of cluster does * not require a writable local storage. *
** Specifies the type of KDB database that is being created. The following types are available: *
** HDB – A Historical Database. The data is only accessible with read-only permissions from one of the FinSpace * managed kdb databases mounted to the cluster. *
*
* RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it in
* memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster
* type requires local storage for temporary storage of data during the savedown process. If you specify this field
* in your request, you must provide the savedownStorageConfiguration
parameter.
*
* GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to create * your own routing logic using the initialization scripts and custom code. This type of cluster does not require a * writable local storage. *
** HDB – A Historical Database. The data is only accessible with read-only permissions from one of the * FinSpace managed kdb databases mounted to the cluster. *
*
* RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it
* in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This
* cluster type requires local storage for temporary storage of data during the savedown process. If you
* specify this field in your request, you must provide the savedownStorageConfiguration
* parameter.
*
* GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to * create your own routing logic using the initialization scripts and custom code. This type of cluster does * not require a writable local storage. *
** A description of the cluster. *
* * @param clusterDescription * A description of the cluster. */ public void setClusterDescription(String clusterDescription) { this.clusterDescription = clusterDescription; } /** ** A description of the cluster. *
* * @return A description of the cluster. */ public String getClusterDescription() { return this.clusterDescription; } /** ** A description of the cluster. *
* * @param clusterDescription * A description of the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public KxCluster withClusterDescription(String clusterDescription) { setClusterDescription(clusterDescription); return this; } /** ** A version of the FinSpace managed kdb to run. *
* * @param releaseLabel * A version of the FinSpace managed kdb to run. */ public void setReleaseLabel(String releaseLabel) { this.releaseLabel = releaseLabel; } /** ** A version of the FinSpace managed kdb to run. *
* * @return A version of the FinSpace managed kdb to run. */ public String getReleaseLabel() { return this.releaseLabel; } /** ** A version of the FinSpace managed kdb to run. *
* * @param releaseLabel * A version of the FinSpace managed kdb to run. * @return Returns a reference to this object so that method calls can be chained together. */ public KxCluster withReleaseLabel(String releaseLabel) { setReleaseLabel(releaseLabel); return this; } /** *
* Specifies a Q program that will be run at launch of a cluster. It is a relative path within .zip file that
* contains the custom code, which will be loaded on the cluster. It must include the file name itself. For example,
* somedir/init.q
.
*
somedir/init.q
.
*/
public void setInitializationScript(String initializationScript) {
this.initializationScript = initializationScript;
}
/**
*
* Specifies a Q program that will be run at launch of a cluster. It is a relative path within .zip file that
* contains the custom code, which will be loaded on the cluster. It must include the file name itself. For example,
* somedir/init.q
.
*
somedir/init.q
.
*/
public String getInitializationScript() {
return this.initializationScript;
}
/**
*
* Specifies a Q program that will be run at launch of a cluster. It is a relative path within .zip file that
* contains the custom code, which will be loaded on the cluster. It must include the file name itself. For example,
* somedir/init.q
.
*
somedir/init.q
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public KxCluster withInitializationScript(String initializationScript) {
setInitializationScript(initializationScript);
return this;
}
/**
* * An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a * cluster attempts to access another cluster. *
* * @param executionRole * An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed * when a cluster attempts to access another cluster. */ public void setExecutionRole(String executionRole) { this.executionRole = executionRole; } /** ** An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a * cluster attempts to access another cluster. *
* * @return An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed * when a cluster attempts to access another cluster. */ public String getExecutionRole() { return this.executionRole; } /** ** An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a * cluster attempts to access another cluster. *
* * @param executionRole * An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed * when a cluster attempts to access another cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public KxCluster withExecutionRole(String executionRole) { setExecutionRole(executionRole); return this; } /** ** The number of availability zones assigned per cluster. This can be one of the following *
*
* SINGLE
– Assigns one availability zone per cluster.
*
* MULTI
– Assigns all the availability zones per cluster.
*
* SINGLE
– Assigns one availability zone per cluster.
*
* MULTI
– Assigns all the availability zones per cluster.
*
* The number of availability zones assigned per cluster. This can be one of the following *
*
* SINGLE
– Assigns one availability zone per cluster.
*
* MULTI
– Assigns all the availability zones per cluster.
*
* SINGLE
– Assigns one availability zone per cluster.
*
* MULTI
– Assigns all the availability zones per cluster.
*
* The number of availability zones assigned per cluster. This can be one of the following *
*
* SINGLE
– Assigns one availability zone per cluster.
*
* MULTI
– Assigns all the availability zones per cluster.
*
* SINGLE
– Assigns one availability zone per cluster.
*
* MULTI
– Assigns all the availability zones per cluster.
*
* The number of availability zones assigned per cluster. This can be one of the following *
*
* SINGLE
– Assigns one availability zone per cluster.
*
* MULTI
– Assigns all the availability zones per cluster.
*
* SINGLE
– Assigns one availability zone per cluster.
*
* MULTI
– Assigns all the availability zones per cluster.
*
* The availability zone identifiers for the requested regions. *
* * @param availabilityZoneId * The availability zone identifiers for the requested regions. */ public void setAvailabilityZoneId(String availabilityZoneId) { this.availabilityZoneId = availabilityZoneId; } /** ** The availability zone identifiers for the requested regions. *
* * @return The availability zone identifiers for the requested regions. */ public String getAvailabilityZoneId() { return this.availabilityZoneId; } /** ** The availability zone identifiers for the requested regions. *
* * @param availabilityZoneId * The availability zone identifiers for the requested regions. * @return Returns a reference to this object so that method calls can be chained together. */ public KxCluster withAvailabilityZoneId(String availabilityZoneId) { setAvailabilityZoneId(availabilityZoneId); return this; } /** ** The last time that the cluster was modified. The value is determined as epoch time in milliseconds. For example, * the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. *
* * @param lastModifiedTimestamp * The last time that the cluster was modified. The value is determined as epoch time in milliseconds. For * example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. */ public void setLastModifiedTimestamp(java.util.Date lastModifiedTimestamp) { this.lastModifiedTimestamp = lastModifiedTimestamp; } /** ** The last time that the cluster was modified. The value is determined as epoch time in milliseconds. For example, * the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. *
* * @return The last time that the cluster was modified. The value is determined as epoch time in milliseconds. For * example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. */ public java.util.Date getLastModifiedTimestamp() { return this.lastModifiedTimestamp; } /** ** The last time that the cluster was modified. The value is determined as epoch time in milliseconds. For example, * the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. *
* * @param lastModifiedTimestamp * The last time that the cluster was modified. The value is determined as epoch time in milliseconds. For * example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. * @return Returns a reference to this object so that method calls can be chained together. */ public KxCluster withLastModifiedTimestamp(java.util.Date lastModifiedTimestamp) { setLastModifiedTimestamp(lastModifiedTimestamp); return this; } /** ** The timestamp at which the cluster was created in FinSpace. The value is determined as epoch time in * milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. *
* * @param createdTimestamp * The timestamp at which the cluster was created in FinSpace. The value is determined as epoch time in * milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as * 1635768000000. */ public void setCreatedTimestamp(java.util.Date createdTimestamp) { this.createdTimestamp = createdTimestamp; } /** ** The timestamp at which the cluster was created in FinSpace. The value is determined as epoch time in * milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. *
* * @return The timestamp at which the cluster was created in FinSpace. The value is determined as epoch time in * milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as * 1635768000000. */ public java.util.Date getCreatedTimestamp() { return this.createdTimestamp; } /** ** The timestamp at which the cluster was created in FinSpace. The value is determined as epoch time in * milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. *
* * @param createdTimestamp * The timestamp at which the cluster was created in FinSpace. The value is determined as epoch time in * milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as * 1635768000000. * @return Returns a reference to this object so that method calls can be chained together. */ public KxCluster withCreatedTimestamp(java.util.Date createdTimestamp) { setCreatedTimestamp(createdTimestamp); return this; } /** * 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. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getStatus() != null) sb.append("Status: ").append(getStatus()).append(","); if (getStatusReason() != null) sb.append("StatusReason: ").append(getStatusReason()).append(","); if (getClusterName() != null) sb.append("ClusterName: ").append(getClusterName()).append(","); if (getClusterType() != null) sb.append("ClusterType: ").append(getClusterType()).append(","); if (getClusterDescription() != null) sb.append("ClusterDescription: ").append(getClusterDescription()).append(","); if (getReleaseLabel() != null) sb.append("ReleaseLabel: ").append(getReleaseLabel()).append(","); if (getInitializationScript() != null) sb.append("InitializationScript: ").append(getInitializationScript()).append(","); if (getExecutionRole() != null) sb.append("ExecutionRole: ").append(getExecutionRole()).append(","); if (getAzMode() != null) sb.append("AzMode: ").append(getAzMode()).append(","); if (getAvailabilityZoneId() != null) sb.append("AvailabilityZoneId: ").append(getAvailabilityZoneId()).append(","); if (getLastModifiedTimestamp() != null) sb.append("LastModifiedTimestamp: ").append(getLastModifiedTimestamp()).append(","); if (getCreatedTimestamp() != null) sb.append("CreatedTimestamp: ").append(getCreatedTimestamp()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof KxCluster == false) return false; KxCluster other = (KxCluster) obj; if (other.getStatus() == null ^ this.getStatus() == null) return false; if (other.getStatus() != null && other.getStatus().equals(this.getStatus()) == false) return false; if (other.getStatusReason() == null ^ this.getStatusReason() == null) return false; if (other.getStatusReason() != null && other.getStatusReason().equals(this.getStatusReason()) == false) return false; if (other.getClusterName() == null ^ this.getClusterName() == null) return false; if (other.getClusterName() != null && other.getClusterName().equals(this.getClusterName()) == false) return false; if (other.getClusterType() == null ^ this.getClusterType() == null) return false; if (other.getClusterType() != null && other.getClusterType().equals(this.getClusterType()) == false) return false; if (other.getClusterDescription() == null ^ this.getClusterDescription() == null) return false; if (other.getClusterDescription() != null && other.getClusterDescription().equals(this.getClusterDescription()) == false) return false; if (other.getReleaseLabel() == null ^ this.getReleaseLabel() == null) return false; if (other.getReleaseLabel() != null && other.getReleaseLabel().equals(this.getReleaseLabel()) == false) return false; if (other.getInitializationScript() == null ^ this.getInitializationScript() == null) return false; if (other.getInitializationScript() != null && other.getInitializationScript().equals(this.getInitializationScript()) == false) return false; if (other.getExecutionRole() == null ^ this.getExecutionRole() == null) return false; if (other.getExecutionRole() != null && other.getExecutionRole().equals(this.getExecutionRole()) == false) return false; if (other.getAzMode() == null ^ this.getAzMode() == null) return false; if (other.getAzMode() != null && other.getAzMode().equals(this.getAzMode()) == false) return false; if (other.getAvailabilityZoneId() == null ^ this.getAvailabilityZoneId() == null) return false; if (other.getAvailabilityZoneId() != null && other.getAvailabilityZoneId().equals(this.getAvailabilityZoneId()) == false) return false; if (other.getLastModifiedTimestamp() == null ^ this.getLastModifiedTimestamp() == null) return false; if (other.getLastModifiedTimestamp() != null && other.getLastModifiedTimestamp().equals(this.getLastModifiedTimestamp()) == false) return false; if (other.getCreatedTimestamp() == null ^ this.getCreatedTimestamp() == null) return false; if (other.getCreatedTimestamp() != null && other.getCreatedTimestamp().equals(this.getCreatedTimestamp()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getStatus() == null) ? 0 : getStatus().hashCode()); hashCode = prime * hashCode + ((getStatusReason() == null) ? 0 : getStatusReason().hashCode()); hashCode = prime * hashCode + ((getClusterName() == null) ? 0 : getClusterName().hashCode()); hashCode = prime * hashCode + ((getClusterType() == null) ? 0 : getClusterType().hashCode()); hashCode = prime * hashCode + ((getClusterDescription() == null) ? 0 : getClusterDescription().hashCode()); hashCode = prime * hashCode + ((getReleaseLabel() == null) ? 0 : getReleaseLabel().hashCode()); hashCode = prime * hashCode + ((getInitializationScript() == null) ? 0 : getInitializationScript().hashCode()); hashCode = prime * hashCode + ((getExecutionRole() == null) ? 0 : getExecutionRole().hashCode()); hashCode = prime * hashCode + ((getAzMode() == null) ? 0 : getAzMode().hashCode()); hashCode = prime * hashCode + ((getAvailabilityZoneId() == null) ? 0 : getAvailabilityZoneId().hashCode()); hashCode = prime * hashCode + ((getLastModifiedTimestamp() == null) ? 0 : getLastModifiedTimestamp().hashCode()); hashCode = prime * hashCode + ((getCreatedTimestamp() == null) ? 0 : getCreatedTimestamp().hashCode()); return hashCode; } @Override public KxCluster clone() { try { return (KxCluster) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.finspace.model.transform.KxClusterMarshaller.getInstance().marshall(this, protocolMarshaller); } }