/* * Copyright 2010-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.rekognition.model; import java.io.Serializable; /** *

* A description of a version of an Amazon Rekognition Custom Labels model. *

*/ public class ProjectVersionDescription implements Serializable { /** *

* The Amazon Resource Name (ARN) of the model version. *

*

* Constraints:
* Length: 20 - 2048
* Pattern: * (^arn:[a-z\d-]+:rekognition:[a-z\d-]+:\d{12}:project\/[a-zA * -Z0-9_.\-]{1,255}\/version\/[a-zA-Z0-9_.\-]{1,255}\/[0-9]+$)
*/ private String projectVersionArn; /** *

* The Unix datetime for the date and time that training started. *

*/ private java.util.Date creationTimestamp; /** *

* The minimum number of inference units used by the model. For more * information, see StartProjectVersion. *

*

* Constraints:
* Range: 1 -
*/ private Integer minInferenceUnits; /** *

* The current status of the model version. *

*

* Constraints:
* Allowed Values: TRAINING_IN_PROGRESS, TRAINING_COMPLETED, * TRAINING_FAILED, STARTING, RUNNING, FAILED, STOPPING, STOPPED, DELETING, * COPYING_IN_PROGRESS, COPYING_COMPLETED, COPYING_FAILED */ private String status; /** *

* A descriptive message for an error or warning that occurred. *

*/ private String statusMessage; /** *

* The duration, in seconds, that you were billed for a successful training * of the model version. This value is only returned if the model version * has been successfully trained. *

*

* Constraints:
* Range: 0 -
*/ private Long billableTrainingTimeInSeconds; /** *

* The Unix date and time that training of the model ended. *

*/ private java.util.Date trainingEndTimestamp; /** *

* The location where training results are saved. *

*/ private OutputConfig outputConfig; /** *

* Contains information about the training results. *

*/ private TrainingDataResult trainingDataResult; /** *

* Contains information about the testing results. *

*/ private TestingDataResult testingDataResult; /** *

* The training results. EvaluationResult is only returned if * training is successful. *

*/ private EvaluationResult evaluationResult; /** *

* The location of the summary manifest. The summary manifest provides * aggregate data validation results for the training and test datasets. *

*/ private GroundTruthManifest manifestSummary; /** *

* The identifer for the AWS Key Management Service key (AWS KMS key) that * was used to encrypt the model during training. *

*

* Constraints:
* Length: 1 - 2048
* Pattern: ^[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,2048}$
*/ private String kmsKeyId; /** *

* The maximum number of inference units Amazon Rekognition Custom Labels * uses to auto-scale the model. For more information, see * StartProjectVersion. *

*

* Constraints:
* Range: 1 -
*/ private Integer maxInferenceUnits; /** *

* If the model version was copied from a different project, * SourceProjectVersionArn contains the ARN of the source model * version. *

*

* Constraints:
* Length: 20 - 2048
* Pattern: * (^arn:[a-z\d-]+:rekognition:[a-z\d-]+:\d{12}:project\/[a-zA * -Z0-9_.\-]{1,255}\/version\/[a-zA-Z0-9_.\-]{1,255}\/[0-9]+$)
*/ private String sourceProjectVersionArn; /** *

* The Amazon Resource Name (ARN) of the model version. *

*

* Constraints:
* Length: 20 - 2048
* Pattern: * (^arn:[a-z\d-]+:rekognition:[a-z\d-]+:\d{12}:project\/[a-zA * -Z0-9_.\-]{1,255}\/version\/[a-zA-Z0-9_.\-]{1,255}\/[0-9]+$)
* * @return

* The Amazon Resource Name (ARN) of the model version. *

*/ public String getProjectVersionArn() { return projectVersionArn; } /** *

* The Amazon Resource Name (ARN) of the model version. *

*

* Constraints:
* Length: 20 - 2048
* Pattern: * (^arn:[a-z\d-]+:rekognition:[a-z\d-]+:\d{12}:project\/[a-zA * -Z0-9_.\-]{1,255}\/version\/[a-zA-Z0-9_.\-]{1,255}\/[0-9]+$)
* * @param projectVersionArn

* The Amazon Resource Name (ARN) of the model version. *

*/ public void setProjectVersionArn(String projectVersionArn) { this.projectVersionArn = projectVersionArn; } /** *

* The Amazon Resource Name (ARN) of the model version. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 20 - 2048
* Pattern: * (^arn:[a-z\d-]+:rekognition:[a-z\d-]+:\d{12}:project\/[a-zA * -Z0-9_.\-]{1,255}\/version\/[a-zA-Z0-9_.\-]{1,255}\/[0-9]+$)
* * @param projectVersionArn

* The Amazon Resource Name (ARN) of the model version. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withProjectVersionArn(String projectVersionArn) { this.projectVersionArn = projectVersionArn; return this; } /** *

* The Unix datetime for the date and time that training started. *

* * @return

* The Unix datetime for the date and time that training started. *

*/ public java.util.Date getCreationTimestamp() { return creationTimestamp; } /** *

* The Unix datetime for the date and time that training started. *

* * @param creationTimestamp

* The Unix datetime for the date and time that training started. *

*/ public void setCreationTimestamp(java.util.Date creationTimestamp) { this.creationTimestamp = creationTimestamp; } /** *

* The Unix datetime for the date and time that training started. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param creationTimestamp

* The Unix datetime for the date and time that training started. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withCreationTimestamp(java.util.Date creationTimestamp) { this.creationTimestamp = creationTimestamp; return this; } /** *

* The minimum number of inference units used by the model. For more * information, see StartProjectVersion. *

*

* Constraints:
* Range: 1 -
* * @return

* The minimum number of inference units used by the model. For more * information, see StartProjectVersion. *

*/ public Integer getMinInferenceUnits() { return minInferenceUnits; } /** *

* The minimum number of inference units used by the model. For more * information, see StartProjectVersion. *

*

* Constraints:
* Range: 1 -
* * @param minInferenceUnits

* The minimum number of inference units used by the model. For * more information, see StartProjectVersion. *

*/ public void setMinInferenceUnits(Integer minInferenceUnits) { this.minInferenceUnits = minInferenceUnits; } /** *

* The minimum number of inference units used by the model. For more * information, see StartProjectVersion. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Range: 1 -
* * @param minInferenceUnits

* The minimum number of inference units used by the model. For * more information, see StartProjectVersion. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withMinInferenceUnits(Integer minInferenceUnits) { this.minInferenceUnits = minInferenceUnits; return this; } /** *

* The current status of the model version. *

*

* Constraints:
* Allowed Values: TRAINING_IN_PROGRESS, TRAINING_COMPLETED, * TRAINING_FAILED, STARTING, RUNNING, FAILED, STOPPING, STOPPED, DELETING, * COPYING_IN_PROGRESS, COPYING_COMPLETED, COPYING_FAILED * * @return

* The current status of the model version. *

* @see ProjectVersionStatus */ public String getStatus() { return status; } /** *

* The current status of the model version. *

*

* Constraints:
* Allowed Values: TRAINING_IN_PROGRESS, TRAINING_COMPLETED, * TRAINING_FAILED, STARTING, RUNNING, FAILED, STOPPING, STOPPED, DELETING, * COPYING_IN_PROGRESS, COPYING_COMPLETED, COPYING_FAILED * * @param status

* The current status of the model version. *

* @see ProjectVersionStatus */ public void setStatus(String status) { this.status = status; } /** *

* The current status of the model version. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: TRAINING_IN_PROGRESS, TRAINING_COMPLETED, * TRAINING_FAILED, STARTING, RUNNING, FAILED, STOPPING, STOPPED, DELETING, * COPYING_IN_PROGRESS, COPYING_COMPLETED, COPYING_FAILED * * @param status

* The current status of the model version. *

* @return A reference to this updated object so that method calls can be * chained together. * @see ProjectVersionStatus */ public ProjectVersionDescription withStatus(String status) { this.status = status; return this; } /** *

* The current status of the model version. *

*

* Constraints:
* Allowed Values: TRAINING_IN_PROGRESS, TRAINING_COMPLETED, * TRAINING_FAILED, STARTING, RUNNING, FAILED, STOPPING, STOPPED, DELETING, * COPYING_IN_PROGRESS, COPYING_COMPLETED, COPYING_FAILED * * @param status

* The current status of the model version. *

* @see ProjectVersionStatus */ public void setStatus(ProjectVersionStatus status) { this.status = status.toString(); } /** *

* The current status of the model version. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: TRAINING_IN_PROGRESS, TRAINING_COMPLETED, * TRAINING_FAILED, STARTING, RUNNING, FAILED, STOPPING, STOPPED, DELETING, * COPYING_IN_PROGRESS, COPYING_COMPLETED, COPYING_FAILED * * @param status

* The current status of the model version. *

* @return A reference to this updated object so that method calls can be * chained together. * @see ProjectVersionStatus */ public ProjectVersionDescription withStatus(ProjectVersionStatus status) { this.status = status.toString(); return this; } /** *

* A descriptive message for an error or warning that occurred. *

* * @return

* A descriptive message for an error or warning that occurred. *

*/ public String getStatusMessage() { return statusMessage; } /** *

* A descriptive message for an error or warning that occurred. *

* * @param statusMessage

* A descriptive message for an error or warning that occurred. *

*/ public void setStatusMessage(String statusMessage) { this.statusMessage = statusMessage; } /** *

* A descriptive message for an error or warning that occurred. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param statusMessage

* A descriptive message for an error or warning that occurred. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withStatusMessage(String statusMessage) { this.statusMessage = statusMessage; return this; } /** *

* The duration, in seconds, that you were billed for a successful training * of the model version. This value is only returned if the model version * has been successfully trained. *

*

* Constraints:
* Range: 0 -
* * @return

* The duration, in seconds, that you were billed for a successful * training of the model version. This value is only returned if the * model version has been successfully trained. *

*/ public Long getBillableTrainingTimeInSeconds() { return billableTrainingTimeInSeconds; } /** *

* The duration, in seconds, that you were billed for a successful training * of the model version. This value is only returned if the model version * has been successfully trained. *

*

* Constraints:
* Range: 0 -
* * @param billableTrainingTimeInSeconds

* The duration, in seconds, that you were billed for a * successful training of the model version. This value is only * returned if the model version has been successfully trained. *

*/ public void setBillableTrainingTimeInSeconds(Long billableTrainingTimeInSeconds) { this.billableTrainingTimeInSeconds = billableTrainingTimeInSeconds; } /** *

* The duration, in seconds, that you were billed for a successful training * of the model version. This value is only returned if the model version * has been successfully trained. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Range: 0 -
* * @param billableTrainingTimeInSeconds

* The duration, in seconds, that you were billed for a * successful training of the model version. This value is only * returned if the model version has been successfully trained. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withBillableTrainingTimeInSeconds( Long billableTrainingTimeInSeconds) { this.billableTrainingTimeInSeconds = billableTrainingTimeInSeconds; return this; } /** *

* The Unix date and time that training of the model ended. *

* * @return

* The Unix date and time that training of the model ended. *

*/ public java.util.Date getTrainingEndTimestamp() { return trainingEndTimestamp; } /** *

* The Unix date and time that training of the model ended. *

* * @param trainingEndTimestamp

* The Unix date and time that training of the model ended. *

*/ public void setTrainingEndTimestamp(java.util.Date trainingEndTimestamp) { this.trainingEndTimestamp = trainingEndTimestamp; } /** *

* The Unix date and time that training of the model ended. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param trainingEndTimestamp

* The Unix date and time that training of the model ended. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withTrainingEndTimestamp(java.util.Date trainingEndTimestamp) { this.trainingEndTimestamp = trainingEndTimestamp; return this; } /** *

* The location where training results are saved. *

* * @return

* The location where training results are saved. *

*/ public OutputConfig getOutputConfig() { return outputConfig; } /** *

* The location where training results are saved. *

* * @param outputConfig

* The location where training results are saved. *

*/ public void setOutputConfig(OutputConfig outputConfig) { this.outputConfig = outputConfig; } /** *

* The location where training results are saved. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param outputConfig

* The location where training results are saved. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withOutputConfig(OutputConfig outputConfig) { this.outputConfig = outputConfig; return this; } /** *

* Contains information about the training results. *

* * @return

* Contains information about the training results. *

*/ public TrainingDataResult getTrainingDataResult() { return trainingDataResult; } /** *

* Contains information about the training results. *

* * @param trainingDataResult

* Contains information about the training results. *

*/ public void setTrainingDataResult(TrainingDataResult trainingDataResult) { this.trainingDataResult = trainingDataResult; } /** *

* Contains information about the training results. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param trainingDataResult

* Contains information about the training results. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withTrainingDataResult(TrainingDataResult trainingDataResult) { this.trainingDataResult = trainingDataResult; return this; } /** *

* Contains information about the testing results. *

* * @return

* Contains information about the testing results. *

*/ public TestingDataResult getTestingDataResult() { return testingDataResult; } /** *

* Contains information about the testing results. *

* * @param testingDataResult

* Contains information about the testing results. *

*/ public void setTestingDataResult(TestingDataResult testingDataResult) { this.testingDataResult = testingDataResult; } /** *

* Contains information about the testing results. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param testingDataResult

* Contains information about the testing results. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withTestingDataResult(TestingDataResult testingDataResult) { this.testingDataResult = testingDataResult; return this; } /** *

* The training results. EvaluationResult is only returned if * training is successful. *

* * @return

* The training results. EvaluationResult is only * returned if training is successful. *

*/ public EvaluationResult getEvaluationResult() { return evaluationResult; } /** *

* The training results. EvaluationResult is only returned if * training is successful. *

* * @param evaluationResult

* The training results. EvaluationResult is only * returned if training is successful. *

*/ public void setEvaluationResult(EvaluationResult evaluationResult) { this.evaluationResult = evaluationResult; } /** *

* The training results. EvaluationResult is only returned if * training is successful. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param evaluationResult

* The training results. EvaluationResult is only * returned if training is successful. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withEvaluationResult(EvaluationResult evaluationResult) { this.evaluationResult = evaluationResult; return this; } /** *

* The location of the summary manifest. The summary manifest provides * aggregate data validation results for the training and test datasets. *

* * @return

* The location of the summary manifest. The summary manifest * provides aggregate data validation results for the training and * test datasets. *

*/ public GroundTruthManifest getManifestSummary() { return manifestSummary; } /** *

* The location of the summary manifest. The summary manifest provides * aggregate data validation results for the training and test datasets. *

* * @param manifestSummary

* The location of the summary manifest. The summary manifest * provides aggregate data validation results for the training * and test datasets. *

*/ public void setManifestSummary(GroundTruthManifest manifestSummary) { this.manifestSummary = manifestSummary; } /** *

* The location of the summary manifest. The summary manifest provides * aggregate data validation results for the training and test datasets. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param manifestSummary

* The location of the summary manifest. The summary manifest * provides aggregate data validation results for the training * and test datasets. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withManifestSummary(GroundTruthManifest manifestSummary) { this.manifestSummary = manifestSummary; return this; } /** *

* The identifer for the AWS Key Management Service key (AWS KMS key) that * was used to encrypt the model during training. *

*

* Constraints:
* Length: 1 - 2048
* Pattern: ^[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,2048}$
* * @return

* The identifer for the AWS Key Management Service key (AWS KMS * key) that was used to encrypt the model during training. *

*/ public String getKmsKeyId() { return kmsKeyId; } /** *

* The identifer for the AWS Key Management Service key (AWS KMS key) that * was used to encrypt the model during training. *

*

* Constraints:
* Length: 1 - 2048
* Pattern: ^[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,2048}$
* * @param kmsKeyId

* The identifer for the AWS Key Management Service key (AWS KMS * key) that was used to encrypt the model during training. *

*/ public void setKmsKeyId(String kmsKeyId) { this.kmsKeyId = kmsKeyId; } /** *

* The identifer for the AWS Key Management Service key (AWS KMS key) that * was used to encrypt the model during training. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 1 - 2048
* Pattern: ^[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,2048}$
* * @param kmsKeyId

* The identifer for the AWS Key Management Service key (AWS KMS * key) that was used to encrypt the model during training. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withKmsKeyId(String kmsKeyId) { this.kmsKeyId = kmsKeyId; return this; } /** *

* The maximum number of inference units Amazon Rekognition Custom Labels * uses to auto-scale the model. For more information, see * StartProjectVersion. *

*

* Constraints:
* Range: 1 -
* * @return

* The maximum number of inference units Amazon Rekognition Custom * Labels uses to auto-scale the model. For more information, see * StartProjectVersion. *

*/ public Integer getMaxInferenceUnits() { return maxInferenceUnits; } /** *

* The maximum number of inference units Amazon Rekognition Custom Labels * uses to auto-scale the model. For more information, see * StartProjectVersion. *

*

* Constraints:
* Range: 1 -
* * @param maxInferenceUnits

* The maximum number of inference units Amazon Rekognition * Custom Labels uses to auto-scale the model. For more * information, see StartProjectVersion. *

*/ public void setMaxInferenceUnits(Integer maxInferenceUnits) { this.maxInferenceUnits = maxInferenceUnits; } /** *

* The maximum number of inference units Amazon Rekognition Custom Labels * uses to auto-scale the model. For more information, see * StartProjectVersion. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Range: 1 -
* * @param maxInferenceUnits

* The maximum number of inference units Amazon Rekognition * Custom Labels uses to auto-scale the model. For more * information, see StartProjectVersion. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withMaxInferenceUnits(Integer maxInferenceUnits) { this.maxInferenceUnits = maxInferenceUnits; return this; } /** *

* If the model version was copied from a different project, * SourceProjectVersionArn contains the ARN of the source model * version. *

*

* Constraints:
* Length: 20 - 2048
* Pattern: * (^arn:[a-z\d-]+:rekognition:[a-z\d-]+:\d{12}:project\/[a-zA * -Z0-9_.\-]{1,255}\/version\/[a-zA-Z0-9_.\-]{1,255}\/[0-9]+$)
* * @return

* If the model version was copied from a different project, * SourceProjectVersionArn contains the ARN of the * source model version. *

*/ public String getSourceProjectVersionArn() { return sourceProjectVersionArn; } /** *

* If the model version was copied from a different project, * SourceProjectVersionArn contains the ARN of the source model * version. *

*

* Constraints:
* Length: 20 - 2048
* Pattern: * (^arn:[a-z\d-]+:rekognition:[a-z\d-]+:\d{12}:project\/[a-zA * -Z0-9_.\-]{1,255}\/version\/[a-zA-Z0-9_.\-]{1,255}\/[0-9]+$)
* * @param sourceProjectVersionArn

* If the model version was copied from a different project, * SourceProjectVersionArn contains the ARN of the * source model version. *

*/ public void setSourceProjectVersionArn(String sourceProjectVersionArn) { this.sourceProjectVersionArn = sourceProjectVersionArn; } /** *

* If the model version was copied from a different project, * SourceProjectVersionArn contains the ARN of the source model * version. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 20 - 2048
* Pattern: * (^arn:[a-z\d-]+:rekognition:[a-z\d-]+:\d{12}:project\/[a-zA * -Z0-9_.\-]{1,255}\/version\/[a-zA-Z0-9_.\-]{1,255}\/[0-9]+$)
* * @param sourceProjectVersionArn

* If the model version was copied from a different project, * SourceProjectVersionArn contains the ARN of the * source model version. *

* @return A reference to this updated object so that method calls can be * chained together. */ public ProjectVersionDescription withSourceProjectVersionArn(String sourceProjectVersionArn) { this.sourceProjectVersionArn = sourceProjectVersionArn; return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getProjectVersionArn() != null) sb.append("ProjectVersionArn: " + getProjectVersionArn() + ","); if (getCreationTimestamp() != null) sb.append("CreationTimestamp: " + getCreationTimestamp() + ","); if (getMinInferenceUnits() != null) sb.append("MinInferenceUnits: " + getMinInferenceUnits() + ","); if (getStatus() != null) sb.append("Status: " + getStatus() + ","); if (getStatusMessage() != null) sb.append("StatusMessage: " + getStatusMessage() + ","); if (getBillableTrainingTimeInSeconds() != null) sb.append("BillableTrainingTimeInSeconds: " + getBillableTrainingTimeInSeconds() + ","); if (getTrainingEndTimestamp() != null) sb.append("TrainingEndTimestamp: " + getTrainingEndTimestamp() + ","); if (getOutputConfig() != null) sb.append("OutputConfig: " + getOutputConfig() + ","); if (getTrainingDataResult() != null) sb.append("TrainingDataResult: " + getTrainingDataResult() + ","); if (getTestingDataResult() != null) sb.append("TestingDataResult: " + getTestingDataResult() + ","); if (getEvaluationResult() != null) sb.append("EvaluationResult: " + getEvaluationResult() + ","); if (getManifestSummary() != null) sb.append("ManifestSummary: " + getManifestSummary() + ","); if (getKmsKeyId() != null) sb.append("KmsKeyId: " + getKmsKeyId() + ","); if (getMaxInferenceUnits() != null) sb.append("MaxInferenceUnits: " + getMaxInferenceUnits() + ","); if (getSourceProjectVersionArn() != null) sb.append("SourceProjectVersionArn: " + getSourceProjectVersionArn()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getProjectVersionArn() == null) ? 0 : getProjectVersionArn().hashCode()); hashCode = prime * hashCode + ((getCreationTimestamp() == null) ? 0 : getCreationTimestamp().hashCode()); hashCode = prime * hashCode + ((getMinInferenceUnits() == null) ? 0 : getMinInferenceUnits().hashCode()); hashCode = prime * hashCode + ((getStatus() == null) ? 0 : getStatus().hashCode()); hashCode = prime * hashCode + ((getStatusMessage() == null) ? 0 : getStatusMessage().hashCode()); hashCode = prime * hashCode + ((getBillableTrainingTimeInSeconds() == null) ? 0 : getBillableTrainingTimeInSeconds().hashCode()); hashCode = prime * hashCode + ((getTrainingEndTimestamp() == null) ? 0 : getTrainingEndTimestamp().hashCode()); hashCode = prime * hashCode + ((getOutputConfig() == null) ? 0 : getOutputConfig().hashCode()); hashCode = prime * hashCode + ((getTrainingDataResult() == null) ? 0 : getTrainingDataResult().hashCode()); hashCode = prime * hashCode + ((getTestingDataResult() == null) ? 0 : getTestingDataResult().hashCode()); hashCode = prime * hashCode + ((getEvaluationResult() == null) ? 0 : getEvaluationResult().hashCode()); hashCode = prime * hashCode + ((getManifestSummary() == null) ? 0 : getManifestSummary().hashCode()); hashCode = prime * hashCode + ((getKmsKeyId() == null) ? 0 : getKmsKeyId().hashCode()); hashCode = prime * hashCode + ((getMaxInferenceUnits() == null) ? 0 : getMaxInferenceUnits().hashCode()); hashCode = prime * hashCode + ((getSourceProjectVersionArn() == null) ? 0 : getSourceProjectVersionArn() .hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof ProjectVersionDescription == false) return false; ProjectVersionDescription other = (ProjectVersionDescription) obj; if (other.getProjectVersionArn() == null ^ this.getProjectVersionArn() == null) return false; if (other.getProjectVersionArn() != null && other.getProjectVersionArn().equals(this.getProjectVersionArn()) == false) return false; if (other.getCreationTimestamp() == null ^ this.getCreationTimestamp() == null) return false; if (other.getCreationTimestamp() != null && other.getCreationTimestamp().equals(this.getCreationTimestamp()) == false) return false; if (other.getMinInferenceUnits() == null ^ this.getMinInferenceUnits() == null) return false; if (other.getMinInferenceUnits() != null && other.getMinInferenceUnits().equals(this.getMinInferenceUnits()) == false) return false; if (other.getStatus() == null ^ this.getStatus() == null) return false; if (other.getStatus() != null && other.getStatus().equals(this.getStatus()) == false) return false; if (other.getStatusMessage() == null ^ this.getStatusMessage() == null) return false; if (other.getStatusMessage() != null && other.getStatusMessage().equals(this.getStatusMessage()) == false) return false; if (other.getBillableTrainingTimeInSeconds() == null ^ this.getBillableTrainingTimeInSeconds() == null) return false; if (other.getBillableTrainingTimeInSeconds() != null && other.getBillableTrainingTimeInSeconds().equals( this.getBillableTrainingTimeInSeconds()) == false) return false; if (other.getTrainingEndTimestamp() == null ^ this.getTrainingEndTimestamp() == null) return false; if (other.getTrainingEndTimestamp() != null && other.getTrainingEndTimestamp().equals(this.getTrainingEndTimestamp()) == false) return false; if (other.getOutputConfig() == null ^ this.getOutputConfig() == null) return false; if (other.getOutputConfig() != null && other.getOutputConfig().equals(this.getOutputConfig()) == false) return false; if (other.getTrainingDataResult() == null ^ this.getTrainingDataResult() == null) return false; if (other.getTrainingDataResult() != null && other.getTrainingDataResult().equals(this.getTrainingDataResult()) == false) return false; if (other.getTestingDataResult() == null ^ this.getTestingDataResult() == null) return false; if (other.getTestingDataResult() != null && other.getTestingDataResult().equals(this.getTestingDataResult()) == false) return false; if (other.getEvaluationResult() == null ^ this.getEvaluationResult() == null) return false; if (other.getEvaluationResult() != null && other.getEvaluationResult().equals(this.getEvaluationResult()) == false) return false; if (other.getManifestSummary() == null ^ this.getManifestSummary() == null) return false; if (other.getManifestSummary() != null && other.getManifestSummary().equals(this.getManifestSummary()) == false) return false; if (other.getKmsKeyId() == null ^ this.getKmsKeyId() == null) return false; if (other.getKmsKeyId() != null && other.getKmsKeyId().equals(this.getKmsKeyId()) == false) return false; if (other.getMaxInferenceUnits() == null ^ this.getMaxInferenceUnits() == null) return false; if (other.getMaxInferenceUnits() != null && other.getMaxInferenceUnits().equals(this.getMaxInferenceUnits()) == false) return false; if (other.getSourceProjectVersionArn() == null ^ this.getSourceProjectVersionArn() == null) return false; if (other.getSourceProjectVersionArn() != null && other.getSourceProjectVersionArn().equals(this.getSourceProjectVersionArn()) == false) return false; return true; } }