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

        if (obj instanceof ReportDefinition == false)
            return false;
        ReportDefinition other = (ReportDefinition) obj;
        if (other.getReportName() == null ^ this.getReportName() == null)
            return false;
        if (other.getReportName() != null && other.getReportName().equals(this.getReportName()) == false)
            return false;
        if (other.getTimeUnit() == null ^ this.getTimeUnit() == null)
            return false;
        if (other.getTimeUnit() != null && other.getTimeUnit().equals(this.getTimeUnit()) == false)
            return false;
        if (other.getFormat() == null ^ this.getFormat() == null)
            return false;
        if (other.getFormat() != null && other.getFormat().equals(this.getFormat()) == false)
            return false;
        if (other.getCompression() == null ^ this.getCompression() == null)
            return false;
        if (other.getCompression() != null && other.getCompression().equals(this.getCompression()) == false)
            return false;
        if (other.getAdditionalSchemaElements() == null ^ this.getAdditionalSchemaElements() == null)
            return false;
        if (other.getAdditionalSchemaElements() != null && other.getAdditionalSchemaElements().equals(this.getAdditionalSchemaElements()) == false)
            return false;
        if (other.getS3Bucket() == null ^ this.getS3Bucket() == null)
            return false;
        if (other.getS3Bucket() != null && other.getS3Bucket().equals(this.getS3Bucket()) == false)
            return false;
        if (other.getS3Prefix() == null ^ this.getS3Prefix() == null)
            return false;
        if (other.getS3Prefix() != null && other.getS3Prefix().equals(this.getS3Prefix()) == false)
            return false;
        if (other.getS3Region() == null ^ this.getS3Region() == null)
            return false;
        if (other.getS3Region() != null && other.getS3Region().equals(this.getS3Region()) == false)
            return false;
        if (other.getAdditionalArtifacts() == null ^ this.getAdditionalArtifacts() == null)
            return false;
        if (other.getAdditionalArtifacts() != null && other.getAdditionalArtifacts().equals(this.getAdditionalArtifacts()) == false)
            return false;
        if (other.getRefreshClosedReports() == null ^ this.getRefreshClosedReports() == null)
            return false;
        if (other.getRefreshClosedReports() != null && other.getRefreshClosedReports().equals(this.getRefreshClosedReports()) == false)
            return false;
        if (other.getReportVersioning() == null ^ this.getReportVersioning() == null)
            return false;
        if (other.getReportVersioning() != null && other.getReportVersioning().equals(this.getReportVersioning()) == false)
            return false;
        if (other.getBillingViewArn() == null ^ this.getBillingViewArn() == null)
            return false;
        if (other.getBillingViewArn() != null && other.getBillingViewArn().equals(this.getBillingViewArn()) == false)
            return false;
        if (other.getReportStatus() == null ^ this.getReportStatus() == null)
            return false;
        if (other.getReportStatus() != null && other.getReportStatus().equals(this.getReportStatus()) == 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-costandusagereport/src/main/java/com/amazonaws/services/costandusagereport/model/ReportDefinition.java