@Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;

        if (obj instanceof DescribeDeviceResult == false)
            return false;
        DescribeDeviceResult other = (DescribeDeviceResult) obj;
        if (other.getAlternateSoftwares() == null ^ this.getAlternateSoftwares() == null)
            return false;
        if (other.getAlternateSoftwares() != null && other.getAlternateSoftwares().equals(this.getAlternateSoftwares()) == false)
            return false;
        if (other.getArn() == null ^ this.getArn() == null)
            return false;
        if (other.getArn() != null && other.getArn().equals(this.getArn()) == false)
            return false;
        if (other.getBrand() == null ^ this.getBrand() == null)
            return false;
        if (other.getBrand() != null && other.getBrand().equals(this.getBrand()) == false)
            return false;
        if (other.getCreatedTime() == null ^ this.getCreatedTime() == null)
            return false;
        if (other.getCreatedTime() != null && other.getCreatedTime().equals(this.getCreatedTime()) == false)
            return false;
        if (other.getCurrentNetworkingStatus() == null ^ this.getCurrentNetworkingStatus() == null)
            return false;
        if (other.getCurrentNetworkingStatus() != null && other.getCurrentNetworkingStatus().equals(this.getCurrentNetworkingStatus()) == false)
            return false;
        if (other.getCurrentSoftware() == null ^ this.getCurrentSoftware() == null)
            return false;
        if (other.getCurrentSoftware() != null && other.getCurrentSoftware().equals(this.getCurrentSoftware()) == 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.getDeviceAggregatedStatus() == null ^ this.getDeviceAggregatedStatus() == null)
            return false;
        if (other.getDeviceAggregatedStatus() != null && other.getDeviceAggregatedStatus().equals(this.getDeviceAggregatedStatus()) == false)
            return false;
        if (other.getDeviceConnectionStatus() == null ^ this.getDeviceConnectionStatus() == null)
            return false;
        if (other.getDeviceConnectionStatus() != null && other.getDeviceConnectionStatus().equals(this.getDeviceConnectionStatus()) == false)
            return false;
        if (other.getDeviceId() == null ^ this.getDeviceId() == null)
            return false;
        if (other.getDeviceId() != null && other.getDeviceId().equals(this.getDeviceId()) == false)
            return false;
        if (other.getLatestAlternateSoftware() == null ^ this.getLatestAlternateSoftware() == null)
            return false;
        if (other.getLatestAlternateSoftware() != null && other.getLatestAlternateSoftware().equals(this.getLatestAlternateSoftware()) == false)
            return false;
        if (other.getLatestDeviceJob() == null ^ this.getLatestDeviceJob() == null)
            return false;
        if (other.getLatestDeviceJob() != null && other.getLatestDeviceJob().equals(this.getLatestDeviceJob()) == false)
            return false;
        if (other.getLatestSoftware() == null ^ this.getLatestSoftware() == null)
            return false;
        if (other.getLatestSoftware() != null && other.getLatestSoftware().equals(this.getLatestSoftware()) == false)
            return false;
        if (other.getLeaseExpirationTime() == null ^ this.getLeaseExpirationTime() == null)
            return false;
        if (other.getLeaseExpirationTime() != null && other.getLeaseExpirationTime().equals(this.getLeaseExpirationTime()) == false)
            return false;
        if (other.getName() == null ^ this.getName() == null)
            return false;
        if (other.getName() != null && other.getName().equals(this.getName()) == false)
            return false;
        if (other.getNetworkingConfiguration() == null ^ this.getNetworkingConfiguration() == null)
            return false;
        if (other.getNetworkingConfiguration() != null && other.getNetworkingConfiguration().equals(this.getNetworkingConfiguration()) == false)
            return false;
        if (other.getProvisioningStatus() == null ^ this.getProvisioningStatus() == null)
            return false;
        if (other.getProvisioningStatus() != null && other.getProvisioningStatus().equals(this.getProvisioningStatus()) == false)
            return false;
        if (other.getSerialNumber() == null ^ this.getSerialNumber() == null)
            return false;
        if (other.getSerialNumber() != null && other.getSerialNumber().equals(this.getSerialNumber()) == false)
            return false;
        if (other.getTags() == null ^ this.getTags() == null)
            return false;
        if (other.getTags() != null && other.getTags().equals(this.getTags()) == false)
            return false;
        if (other.getType() == null ^ this.getType() == null)
            return false;
        if (other.getType() != null && other.getType().equals(this.getType()) == false)
            return false;
        return true;
    }
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()
aws-java-sdk-panorama/src/main/java/com/amazonaws/services/panorama/model/DescribeDeviceResult.java