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

        if (obj instanceof Replication == false)
            return false;
        Replication other = (Replication) obj;
        if (other.getReplicationConfigIdentifier() == null ^ this.getReplicationConfigIdentifier() == null)
            return false;
        if (other.getReplicationConfigIdentifier() != null && other.getReplicationConfigIdentifier().equals(this.getReplicationConfigIdentifier()) == false)
            return false;
        if (other.getReplicationConfigArn() == null ^ this.getReplicationConfigArn() == null)
            return false;
        if (other.getReplicationConfigArn() != null && other.getReplicationConfigArn().equals(this.getReplicationConfigArn()) == false)
            return false;
        if (other.getSourceEndpointArn() == null ^ this.getSourceEndpointArn() == null)
            return false;
        if (other.getSourceEndpointArn() != null && other.getSourceEndpointArn().equals(this.getSourceEndpointArn()) == false)
            return false;
        if (other.getTargetEndpointArn() == null ^ this.getTargetEndpointArn() == null)
            return false;
        if (other.getTargetEndpointArn() != null && other.getTargetEndpointArn().equals(this.getTargetEndpointArn()) == false)
            return false;
        if (other.getReplicationType() == null ^ this.getReplicationType() == null)
            return false;
        if (other.getReplicationType() != null && other.getReplicationType().equals(this.getReplicationType()) == 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.getProvisionData() == null ^ this.getProvisionData() == null)
            return false;
        if (other.getProvisionData() != null && other.getProvisionData().equals(this.getProvisionData()) == false)
            return false;
        if (other.getStopReason() == null ^ this.getStopReason() == null)
            return false;
        if (other.getStopReason() != null && other.getStopReason().equals(this.getStopReason()) == false)
            return false;
        if (other.getFailureMessages() == null ^ this.getFailureMessages() == null)
            return false;
        if (other.getFailureMessages() != null && other.getFailureMessages().equals(this.getFailureMessages()) == false)
            return false;
        if (other.getReplicationStats() == null ^ this.getReplicationStats() == null)
            return false;
        if (other.getReplicationStats() != null && other.getReplicationStats().equals(this.getReplicationStats()) == false)
            return false;
        if (other.getStartReplicationType() == null ^ this.getStartReplicationType() == null)
            return false;
        if (other.getStartReplicationType() != null && other.getStartReplicationType().equals(this.getStartReplicationType()) == false)
            return false;
        if (other.getCdcStartTime() == null ^ this.getCdcStartTime() == null)
            return false;
        if (other.getCdcStartTime() != null && other.getCdcStartTime().equals(this.getCdcStartTime()) == false)
            return false;
        if (other.getCdcStartPosition() == null ^ this.getCdcStartPosition() == null)
            return false;
        if (other.getCdcStartPosition() != null && other.getCdcStartPosition().equals(this.getCdcStartPosition()) == false)
            return false;
        if (other.getCdcStopPosition() == null ^ this.getCdcStopPosition() == null)
            return false;
        if (other.getCdcStopPosition() != null && other.getCdcStopPosition().equals(this.getCdcStopPosition()) == false)
            return false;
        if (other.getRecoveryCheckpoint() == null ^ this.getRecoveryCheckpoint() == null)
            return false;
        if (other.getRecoveryCheckpoint() != null && other.getRecoveryCheckpoint().equals(this.getRecoveryCheckpoint()) == false)
            return false;
        if (other.getReplicationCreateTime() == null ^ this.getReplicationCreateTime() == null)
            return false;
        if (other.getReplicationCreateTime() != null && other.getReplicationCreateTime().equals(this.getReplicationCreateTime()) == false)
            return false;
        if (other.getReplicationUpdateTime() == null ^ this.getReplicationUpdateTime() == null)
            return false;
        if (other.getReplicationUpdateTime() != null && other.getReplicationUpdateTime().equals(this.getReplicationUpdateTime()) == false)
            return false;
        if (other.getReplicationLastStopTime() == null ^ this.getReplicationLastStopTime() == null)
            return false;
        if (other.getReplicationLastStopTime() != null && other.getReplicationLastStopTime().equals(this.getReplicationLastStopTime()) == false)
            return false;
        if (other.getReplicationDeprovisionTime() == null ^ this.getReplicationDeprovisionTime() == null)
            return false;
        if (other.getReplicationDeprovisionTime() != null && other.getReplicationDeprovisionTime().equals(this.getReplicationDeprovisionTime()) == 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-dms/src/main/java/com/amazonaws/services/databasemigrationservice/model/Replication.java