/* * 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.greengrassv2.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** * <p> * Contains information about a deployment job that IoT Greengrass sends to a Greengrass core device. * </p> * * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/greengrassv2-2020-11-30/EffectiveDeployment" target="_top">AWS * API Documentation</a> */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class EffectiveDeployment implements Serializable, Cloneable, StructuredPojo { /** * <p> * The ID of the deployment. * </p> */ private String deploymentId; /** * <p> * The name of the deployment. * </p> */ private String deploymentName; /** * <p> * The ID of the IoT job that applies the deployment to target devices. * </p> */ private String iotJobId; /** * <p> * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the IoT job * that applies the deployment to target devices. * </p> */ private String iotJobArn; /** * <p> * The description of the deployment job. * </p> */ private String description; /** * <p> * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the target * IoT thing or thing group. * </p> */ private String targetArn; /** * <p> * The status of the deployment job on the Greengrass core device. * </p> * <ul> * <li> * <p> * <code>IN_PROGRESS</code> – The deployment job is running. * </p> * </li> * <li> * <p> * <code>QUEUED</code> – The deployment job is in the job queue and waiting to run. * </p> * </li> * <li> * <p> * <code>FAILED</code> – The deployment failed. For more information, see the <code>statusDetails</code> field. * </p> * </li> * <li> * <p> * <code>COMPLETED</code> – The deployment to an IoT thing was completed successfully. * </p> * </li> * <li> * <p> * <code>TIMED_OUT</code> – The deployment didn't complete in the allotted time. * </p> * </li> * <li> * <p> * <code>CANCELED</code> – The deployment was canceled by the user. * </p> * </li> * <li> * <p> * <code>REJECTED</code> – The deployment was rejected. For more information, see the <code>statusDetails</code> * field. * </p> * </li> * <li> * <p> * <code>SUCCEEDED</code> – The deployment to an IoT thing group was completed successfully. * </p> * </li> * </ul> */ private String coreDeviceExecutionStatus; /** * <p> * The reason code for the update, if the job was updated. * </p> */ private String reason; /** * <p> * The time at which the deployment was created, expressed in ISO 8601 format. * </p> */ private java.util.Date creationTimestamp; /** * <p> * The time at which the deployment job was last modified, expressed in ISO 8601 format. * </p> */ private java.util.Date modifiedTimestamp; /** * <p> * The status details that explain why a deployment has an error. This response will be null if the deployment is in * a success state. * </p> */ private EffectiveDeploymentStatusDetails statusDetails; /** * <p> * The ID of the deployment. * </p> * * @param deploymentId * The ID of the deployment. */ public void setDeploymentId(String deploymentId) { this.deploymentId = deploymentId; } /** * <p> * The ID of the deployment. * </p> * * @return The ID of the deployment. */ public String getDeploymentId() { return this.deploymentId; } /** * <p> * The ID of the deployment. * </p> * * @param deploymentId * The ID of the deployment. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withDeploymentId(String deploymentId) { setDeploymentId(deploymentId); return this; } /** * <p> * The name of the deployment. * </p> * * @param deploymentName * The name of the deployment. */ public void setDeploymentName(String deploymentName) { this.deploymentName = deploymentName; } /** * <p> * The name of the deployment. * </p> * * @return The name of the deployment. */ public String getDeploymentName() { return this.deploymentName; } /** * <p> * The name of the deployment. * </p> * * @param deploymentName * The name of the deployment. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withDeploymentName(String deploymentName) { setDeploymentName(deploymentName); return this; } /** * <p> * The ID of the IoT job that applies the deployment to target devices. * </p> * * @param iotJobId * The ID of the IoT job that applies the deployment to target devices. */ public void setIotJobId(String iotJobId) { this.iotJobId = iotJobId; } /** * <p> * The ID of the IoT job that applies the deployment to target devices. * </p> * * @return The ID of the IoT job that applies the deployment to target devices. */ public String getIotJobId() { return this.iotJobId; } /** * <p> * The ID of the IoT job that applies the deployment to target devices. * </p> * * @param iotJobId * The ID of the IoT job that applies the deployment to target devices. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withIotJobId(String iotJobId) { setIotJobId(iotJobId); return this; } /** * <p> * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the IoT job * that applies the deployment to target devices. * </p> * * @param iotJobArn * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the * IoT job that applies the deployment to target devices. */ public void setIotJobArn(String iotJobArn) { this.iotJobArn = iotJobArn; } /** * <p> * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the IoT job * that applies the deployment to target devices. * </p> * * @return The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the * IoT job that applies the deployment to target devices. */ public String getIotJobArn() { return this.iotJobArn; } /** * <p> * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the IoT job * that applies the deployment to target devices. * </p> * * @param iotJobArn * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the * IoT job that applies the deployment to target devices. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withIotJobArn(String iotJobArn) { setIotJobArn(iotJobArn); return this; } /** * <p> * The description of the deployment job. * </p> * * @param description * The description of the deployment job. */ public void setDescription(String description) { this.description = description; } /** * <p> * The description of the deployment job. * </p> * * @return The description of the deployment job. */ public String getDescription() { return this.description; } /** * <p> * The description of the deployment job. * </p> * * @param description * The description of the deployment job. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withDescription(String description) { setDescription(description); return this; } /** * <p> * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the target * IoT thing or thing group. * </p> * * @param targetArn * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the * target IoT thing or thing group. */ public void setTargetArn(String targetArn) { this.targetArn = targetArn; } /** * <p> * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the target * IoT thing or thing group. * </p> * * @return The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the * target IoT thing or thing group. */ public String getTargetArn() { return this.targetArn; } /** * <p> * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the target * IoT thing or thing group. * </p> * * @param targetArn * The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the * target IoT thing or thing group. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withTargetArn(String targetArn) { setTargetArn(targetArn); return this; } /** * <p> * The status of the deployment job on the Greengrass core device. * </p> * <ul> * <li> * <p> * <code>IN_PROGRESS</code> – The deployment job is running. * </p> * </li> * <li> * <p> * <code>QUEUED</code> – The deployment job is in the job queue and waiting to run. * </p> * </li> * <li> * <p> * <code>FAILED</code> – The deployment failed. For more information, see the <code>statusDetails</code> field. * </p> * </li> * <li> * <p> * <code>COMPLETED</code> – The deployment to an IoT thing was completed successfully. * </p> * </li> * <li> * <p> * <code>TIMED_OUT</code> – The deployment didn't complete in the allotted time. * </p> * </li> * <li> * <p> * <code>CANCELED</code> – The deployment was canceled by the user. * </p> * </li> * <li> * <p> * <code>REJECTED</code> – The deployment was rejected. For more information, see the <code>statusDetails</code> * field. * </p> * </li> * <li> * <p> * <code>SUCCEEDED</code> – The deployment to an IoT thing group was completed successfully. * </p> * </li> * </ul> * * @param coreDeviceExecutionStatus * The status of the deployment job on the Greengrass core device.</p> * <ul> * <li> * <p> * <code>IN_PROGRESS</code> – The deployment job is running. * </p> * </li> * <li> * <p> * <code>QUEUED</code> – The deployment job is in the job queue and waiting to run. * </p> * </li> * <li> * <p> * <code>FAILED</code> – The deployment failed. For more information, see the <code>statusDetails</code> * field. * </p> * </li> * <li> * <p> * <code>COMPLETED</code> – The deployment to an IoT thing was completed successfully. * </p> * </li> * <li> * <p> * <code>TIMED_OUT</code> – The deployment didn't complete in the allotted time. * </p> * </li> * <li> * <p> * <code>CANCELED</code> – The deployment was canceled by the user. * </p> * </li> * <li> * <p> * <code>REJECTED</code> – The deployment was rejected. For more information, see the * <code>statusDetails</code> field. * </p> * </li> * <li> * <p> * <code>SUCCEEDED</code> – The deployment to an IoT thing group was completed successfully. * </p> * </li> * @see EffectiveDeploymentExecutionStatus */ public void setCoreDeviceExecutionStatus(String coreDeviceExecutionStatus) { this.coreDeviceExecutionStatus = coreDeviceExecutionStatus; } /** * <p> * The status of the deployment job on the Greengrass core device. * </p> * <ul> * <li> * <p> * <code>IN_PROGRESS</code> – The deployment job is running. * </p> * </li> * <li> * <p> * <code>QUEUED</code> – The deployment job is in the job queue and waiting to run. * </p> * </li> * <li> * <p> * <code>FAILED</code> – The deployment failed. For more information, see the <code>statusDetails</code> field. * </p> * </li> * <li> * <p> * <code>COMPLETED</code> – The deployment to an IoT thing was completed successfully. * </p> * </li> * <li> * <p> * <code>TIMED_OUT</code> – The deployment didn't complete in the allotted time. * </p> * </li> * <li> * <p> * <code>CANCELED</code> – The deployment was canceled by the user. * </p> * </li> * <li> * <p> * <code>REJECTED</code> – The deployment was rejected. For more information, see the <code>statusDetails</code> * field. * </p> * </li> * <li> * <p> * <code>SUCCEEDED</code> – The deployment to an IoT thing group was completed successfully. * </p> * </li> * </ul> * * @return The status of the deployment job on the Greengrass core device.</p> * <ul> * <li> * <p> * <code>IN_PROGRESS</code> – The deployment job is running. * </p> * </li> * <li> * <p> * <code>QUEUED</code> – The deployment job is in the job queue and waiting to run. * </p> * </li> * <li> * <p> * <code>FAILED</code> – The deployment failed. For more information, see the <code>statusDetails</code> * field. * </p> * </li> * <li> * <p> * <code>COMPLETED</code> – The deployment to an IoT thing was completed successfully. * </p> * </li> * <li> * <p> * <code>TIMED_OUT</code> – The deployment didn't complete in the allotted time. * </p> * </li> * <li> * <p> * <code>CANCELED</code> – The deployment was canceled by the user. * </p> * </li> * <li> * <p> * <code>REJECTED</code> – The deployment was rejected. For more information, see the * <code>statusDetails</code> field. * </p> * </li> * <li> * <p> * <code>SUCCEEDED</code> – The deployment to an IoT thing group was completed successfully. * </p> * </li> * @see EffectiveDeploymentExecutionStatus */ public String getCoreDeviceExecutionStatus() { return this.coreDeviceExecutionStatus; } /** * <p> * The status of the deployment job on the Greengrass core device. * </p> * <ul> * <li> * <p> * <code>IN_PROGRESS</code> – The deployment job is running. * </p> * </li> * <li> * <p> * <code>QUEUED</code> – The deployment job is in the job queue and waiting to run. * </p> * </li> * <li> * <p> * <code>FAILED</code> – The deployment failed. For more information, see the <code>statusDetails</code> field. * </p> * </li> * <li> * <p> * <code>COMPLETED</code> – The deployment to an IoT thing was completed successfully. * </p> * </li> * <li> * <p> * <code>TIMED_OUT</code> – The deployment didn't complete in the allotted time. * </p> * </li> * <li> * <p> * <code>CANCELED</code> – The deployment was canceled by the user. * </p> * </li> * <li> * <p> * <code>REJECTED</code> – The deployment was rejected. For more information, see the <code>statusDetails</code> * field. * </p> * </li> * <li> * <p> * <code>SUCCEEDED</code> – The deployment to an IoT thing group was completed successfully. * </p> * </li> * </ul> * * @param coreDeviceExecutionStatus * The status of the deployment job on the Greengrass core device.</p> * <ul> * <li> * <p> * <code>IN_PROGRESS</code> – The deployment job is running. * </p> * </li> * <li> * <p> * <code>QUEUED</code> – The deployment job is in the job queue and waiting to run. * </p> * </li> * <li> * <p> * <code>FAILED</code> – The deployment failed. For more information, see the <code>statusDetails</code> * field. * </p> * </li> * <li> * <p> * <code>COMPLETED</code> – The deployment to an IoT thing was completed successfully. * </p> * </li> * <li> * <p> * <code>TIMED_OUT</code> – The deployment didn't complete in the allotted time. * </p> * </li> * <li> * <p> * <code>CANCELED</code> – The deployment was canceled by the user. * </p> * </li> * <li> * <p> * <code>REJECTED</code> – The deployment was rejected. For more information, see the * <code>statusDetails</code> field. * </p> * </li> * <li> * <p> * <code>SUCCEEDED</code> – The deployment to an IoT thing group was completed successfully. * </p> * </li> * @return Returns a reference to this object so that method calls can be chained together. * @see EffectiveDeploymentExecutionStatus */ public EffectiveDeployment withCoreDeviceExecutionStatus(String coreDeviceExecutionStatus) { setCoreDeviceExecutionStatus(coreDeviceExecutionStatus); return this; } /** * <p> * The status of the deployment job on the Greengrass core device. * </p> * <ul> * <li> * <p> * <code>IN_PROGRESS</code> – The deployment job is running. * </p> * </li> * <li> * <p> * <code>QUEUED</code> – The deployment job is in the job queue and waiting to run. * </p> * </li> * <li> * <p> * <code>FAILED</code> – The deployment failed. For more information, see the <code>statusDetails</code> field. * </p> * </li> * <li> * <p> * <code>COMPLETED</code> – The deployment to an IoT thing was completed successfully. * </p> * </li> * <li> * <p> * <code>TIMED_OUT</code> – The deployment didn't complete in the allotted time. * </p> * </li> * <li> * <p> * <code>CANCELED</code> – The deployment was canceled by the user. * </p> * </li> * <li> * <p> * <code>REJECTED</code> – The deployment was rejected. For more information, see the <code>statusDetails</code> * field. * </p> * </li> * <li> * <p> * <code>SUCCEEDED</code> – The deployment to an IoT thing group was completed successfully. * </p> * </li> * </ul> * * @param coreDeviceExecutionStatus * The status of the deployment job on the Greengrass core device.</p> * <ul> * <li> * <p> * <code>IN_PROGRESS</code> – The deployment job is running. * </p> * </li> * <li> * <p> * <code>QUEUED</code> – The deployment job is in the job queue and waiting to run. * </p> * </li> * <li> * <p> * <code>FAILED</code> – The deployment failed. For more information, see the <code>statusDetails</code> * field. * </p> * </li> * <li> * <p> * <code>COMPLETED</code> – The deployment to an IoT thing was completed successfully. * </p> * </li> * <li> * <p> * <code>TIMED_OUT</code> – The deployment didn't complete in the allotted time. * </p> * </li> * <li> * <p> * <code>CANCELED</code> – The deployment was canceled by the user. * </p> * </li> * <li> * <p> * <code>REJECTED</code> – The deployment was rejected. For more information, see the * <code>statusDetails</code> field. * </p> * </li> * <li> * <p> * <code>SUCCEEDED</code> – The deployment to an IoT thing group was completed successfully. * </p> * </li> * @return Returns a reference to this object so that method calls can be chained together. * @see EffectiveDeploymentExecutionStatus */ public EffectiveDeployment withCoreDeviceExecutionStatus(EffectiveDeploymentExecutionStatus coreDeviceExecutionStatus) { this.coreDeviceExecutionStatus = coreDeviceExecutionStatus.toString(); return this; } /** * <p> * The reason code for the update, if the job was updated. * </p> * * @param reason * The reason code for the update, if the job was updated. */ public void setReason(String reason) { this.reason = reason; } /** * <p> * The reason code for the update, if the job was updated. * </p> * * @return The reason code for the update, if the job was updated. */ public String getReason() { return this.reason; } /** * <p> * The reason code for the update, if the job was updated. * </p> * * @param reason * The reason code for the update, if the job was updated. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withReason(String reason) { setReason(reason); return this; } /** * <p> * The time at which the deployment was created, expressed in ISO 8601 format. * </p> * * @param creationTimestamp * The time at which the deployment was created, expressed in ISO 8601 format. */ public void setCreationTimestamp(java.util.Date creationTimestamp) { this.creationTimestamp = creationTimestamp; } /** * <p> * The time at which the deployment was created, expressed in ISO 8601 format. * </p> * * @return The time at which the deployment was created, expressed in ISO 8601 format. */ public java.util.Date getCreationTimestamp() { return this.creationTimestamp; } /** * <p> * The time at which the deployment was created, expressed in ISO 8601 format. * </p> * * @param creationTimestamp * The time at which the deployment was created, expressed in ISO 8601 format. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withCreationTimestamp(java.util.Date creationTimestamp) { setCreationTimestamp(creationTimestamp); return this; } /** * <p> * The time at which the deployment job was last modified, expressed in ISO 8601 format. * </p> * * @param modifiedTimestamp * The time at which the deployment job was last modified, expressed in ISO 8601 format. */ public void setModifiedTimestamp(java.util.Date modifiedTimestamp) { this.modifiedTimestamp = modifiedTimestamp; } /** * <p> * The time at which the deployment job was last modified, expressed in ISO 8601 format. * </p> * * @return The time at which the deployment job was last modified, expressed in ISO 8601 format. */ public java.util.Date getModifiedTimestamp() { return this.modifiedTimestamp; } /** * <p> * The time at which the deployment job was last modified, expressed in ISO 8601 format. * </p> * * @param modifiedTimestamp * The time at which the deployment job was last modified, expressed in ISO 8601 format. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withModifiedTimestamp(java.util.Date modifiedTimestamp) { setModifiedTimestamp(modifiedTimestamp); return this; } /** * <p> * The status details that explain why a deployment has an error. This response will be null if the deployment is in * a success state. * </p> * * @param statusDetails * The status details that explain why a deployment has an error. This response will be null if the * deployment is in a success state. */ public void setStatusDetails(EffectiveDeploymentStatusDetails statusDetails) { this.statusDetails = statusDetails; } /** * <p> * The status details that explain why a deployment has an error. This response will be null if the deployment is in * a success state. * </p> * * @return The status details that explain why a deployment has an error. This response will be null if the * deployment is in a success state. */ public EffectiveDeploymentStatusDetails getStatusDetails() { return this.statusDetails; } /** * <p> * The status details that explain why a deployment has an error. This response will be null if the deployment is in * a success state. * </p> * * @param statusDetails * The status details that explain why a deployment has an error. This response will be null if the * deployment is in a success state. * @return Returns a reference to this object so that method calls can be chained together. */ public EffectiveDeployment withStatusDetails(EffectiveDeploymentStatusDetails statusDetails) { setStatusDetails(statusDetails); 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 (getDeploymentId() != null) sb.append("DeploymentId: ").append(getDeploymentId()).append(","); if (getDeploymentName() != null) sb.append("DeploymentName: ").append(getDeploymentName()).append(","); if (getIotJobId() != null) sb.append("IotJobId: ").append(getIotJobId()).append(","); if (getIotJobArn() != null) sb.append("IotJobArn: ").append(getIotJobArn()).append(","); if (getDescription() != null) sb.append("Description: ").append(getDescription()).append(","); if (getTargetArn() != null) sb.append("TargetArn: ").append(getTargetArn()).append(","); if (getCoreDeviceExecutionStatus() != null) sb.append("CoreDeviceExecutionStatus: ").append(getCoreDeviceExecutionStatus()).append(","); if (getReason() != null) sb.append("Reason: ").append(getReason()).append(","); if (getCreationTimestamp() != null) sb.append("CreationTimestamp: ").append(getCreationTimestamp()).append(","); if (getModifiedTimestamp() != null) sb.append("ModifiedTimestamp: ").append(getModifiedTimestamp()).append(","); if (getStatusDetails() != null) sb.append("StatusDetails: ").append(getStatusDetails()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof EffectiveDeployment == false) return false; EffectiveDeployment other = (EffectiveDeployment) obj; if (other.getDeploymentId() == null ^ this.getDeploymentId() == null) return false; if (other.getDeploymentId() != null && other.getDeploymentId().equals(this.getDeploymentId()) == false) return false; if (other.getDeploymentName() == null ^ this.getDeploymentName() == null) return false; if (other.getDeploymentName() != null && other.getDeploymentName().equals(this.getDeploymentName()) == false) return false; if (other.getIotJobId() == null ^ this.getIotJobId() == null) return false; if (other.getIotJobId() != null && other.getIotJobId().equals(this.getIotJobId()) == false) return false; if (other.getIotJobArn() == null ^ this.getIotJobArn() == null) return false; if (other.getIotJobArn() != null && other.getIotJobArn().equals(this.getIotJobArn()) == false) return false; if (other.getDescription() == null ^ this.getDescription() == null) return false; if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false) return false; if (other.getTargetArn() == null ^ this.getTargetArn() == null) return false; if (other.getTargetArn() != null && other.getTargetArn().equals(this.getTargetArn()) == false) return false; if (other.getCoreDeviceExecutionStatus() == null ^ this.getCoreDeviceExecutionStatus() == null) return false; if (other.getCoreDeviceExecutionStatus() != null && other.getCoreDeviceExecutionStatus().equals(this.getCoreDeviceExecutionStatus()) == false) return false; if (other.getReason() == null ^ this.getReason() == null) return false; if (other.getReason() != null && other.getReason().equals(this.getReason()) == 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.getModifiedTimestamp() == null ^ this.getModifiedTimestamp() == null) return false; if (other.getModifiedTimestamp() != null && other.getModifiedTimestamp().equals(this.getModifiedTimestamp()) == false) return false; if (other.getStatusDetails() == null ^ this.getStatusDetails() == null) return false; if (other.getStatusDetails() != null && other.getStatusDetails().equals(this.getStatusDetails()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getDeploymentId() == null) ? 0 : getDeploymentId().hashCode()); hashCode = prime * hashCode + ((getDeploymentName() == null) ? 0 : getDeploymentName().hashCode()); hashCode = prime * hashCode + ((getIotJobId() == null) ? 0 : getIotJobId().hashCode()); hashCode = prime * hashCode + ((getIotJobArn() == null) ? 0 : getIotJobArn().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getTargetArn() == null) ? 0 : getTargetArn().hashCode()); hashCode = prime * hashCode + ((getCoreDeviceExecutionStatus() == null) ? 0 : getCoreDeviceExecutionStatus().hashCode()); hashCode = prime * hashCode + ((getReason() == null) ? 0 : getReason().hashCode()); hashCode = prime * hashCode + ((getCreationTimestamp() == null) ? 0 : getCreationTimestamp().hashCode()); hashCode = prime * hashCode + ((getModifiedTimestamp() == null) ? 0 : getModifiedTimestamp().hashCode()); hashCode = prime * hashCode + ((getStatusDetails() == null) ? 0 : getStatusDetails().hashCode()); return hashCode; } @Override public EffectiveDeployment clone() { try { return (EffectiveDeployment) 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.greengrassv2.model.transform.EffectiveDeploymentMarshaller.getInstance().marshall(this, protocolMarshaller); } }