@Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    Dataset dataset = (Dataset) o;
    return Objects.equals(accountName, dataset.accountName)
        && Objects.equals(containerName, dataset.containerName)
        && Objects.equals(datasetName, dataset.datasetName)
        && versionSchema == dataset.versionSchema
        && Objects.equals(retentionPolicy, dataset.retentionPolicy)
        && Objects.equals(retentionCount, dataset.retentionCount)
        && Objects.equals(retentionTimeInSeconds, dataset.retentionTimeInSeconds)
        && Objects.equals(userTags, dataset.userTags);
  }
Checks if any required fields is missing for a {@link Dataset} or for any incompatible settings.
@param accountName The name of the account. Cannot be null.
@param containerName The name of the container. Cannot be null.
@param datasetName The name of the dataset. Cannot be null.
@param retentionPolicy The retention policy of the dataset, can be null.
ambry-api/src/main/java/com/github/ambry/account/Dataset.java