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

        if (obj instanceof MigrationProject == false)
            return false;
        MigrationProject other = (MigrationProject) obj;
        if (other.getMigrationProjectName() == null ^ this.getMigrationProjectName() == null)
            return false;
        if (other.getMigrationProjectName() != null && other.getMigrationProjectName().equals(this.getMigrationProjectName()) == false)
            return false;
        if (other.getMigrationProjectArn() == null ^ this.getMigrationProjectArn() == null)
            return false;
        if (other.getMigrationProjectArn() != null && other.getMigrationProjectArn().equals(this.getMigrationProjectArn()) == false)
            return false;
        if (other.getMigrationProjectCreationTime() == null ^ this.getMigrationProjectCreationTime() == null)
            return false;
        if (other.getMigrationProjectCreationTime() != null && other.getMigrationProjectCreationTime().equals(this.getMigrationProjectCreationTime()) == false)
            return false;
        if (other.getSourceDataProviderDescriptors() == null ^ this.getSourceDataProviderDescriptors() == null)
            return false;
        if (other.getSourceDataProviderDescriptors() != null
                && other.getSourceDataProviderDescriptors().equals(this.getSourceDataProviderDescriptors()) == false)
            return false;
        if (other.getTargetDataProviderDescriptors() == null ^ this.getTargetDataProviderDescriptors() == null)
            return false;
        if (other.getTargetDataProviderDescriptors() != null
                && other.getTargetDataProviderDescriptors().equals(this.getTargetDataProviderDescriptors()) == false)
            return false;
        if (other.getInstanceProfileArn() == null ^ this.getInstanceProfileArn() == null)
            return false;
        if (other.getInstanceProfileArn() != null && other.getInstanceProfileArn().equals(this.getInstanceProfileArn()) == false)
            return false;
        if (other.getInstanceProfileName() == null ^ this.getInstanceProfileName() == null)
            return false;
        if (other.getInstanceProfileName() != null && other.getInstanceProfileName().equals(this.getInstanceProfileName()) == false)
            return false;
        if (other.getTransformationRules() == null ^ this.getTransformationRules() == null)
            return false;
        if (other.getTransformationRules() != null && other.getTransformationRules().equals(this.getTransformationRules()) == 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.getSchemaConversionApplicationAttributes() == null ^ this.getSchemaConversionApplicationAttributes() == null)
            return false;
        if (other.getSchemaConversionApplicationAttributes() != null
                && other.getSchemaConversionApplicationAttributes().equals(this.getSchemaConversionApplicationAttributes()) == 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/MigrationProject.java