@java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj instanceof com.google.cloud.storageinsights.v1.DatasetConfig)) {
      return super.equals(obj);
    }
    com.google.cloud.storageinsights.v1.DatasetConfig other =
        (com.google.cloud.storageinsights.v1.DatasetConfig) obj;

    if (!getName().equals(other.getName())) return false;
    if (hasCreateTime() != other.hasCreateTime()) return false;
    if (hasCreateTime()) {
      if (!getCreateTime().equals(other.getCreateTime())) return false;
    }
    if (hasUpdateTime() != other.hasUpdateTime()) return false;
    if (hasUpdateTime()) {
      if (!getUpdateTime().equals(other.getUpdateTime())) return false;
    }
    if (!internalGetLabels().equals(other.internalGetLabels())) return false;
    if (!getUid().equals(other.getUid())) return false;
    if (getOrganizationNumber() != other.getOrganizationNumber()) return false;
    if (getIncludeNewlyCreatedBuckets() != other.getIncludeNewlyCreatedBuckets()) return false;
    if (getSkipVerificationAndIngest() != other.getSkipVerificationAndIngest()) return false;
    if (getRetentionPeriodDays() != other.getRetentionPeriodDays()) return false;
    if (hasLink() != other.hasLink()) return false;
    if (hasLink()) {
      if (!getLink().equals(other.getLink())) return false;
    }
    if (hasIdentity() != other.hasIdentity()) return false;
    if (hasIdentity()) {
      if (!getIdentity().equals(other.getIdentity())) return false;
    }
    if (hasStatus() != other.hasStatus()) return false;
    if (hasStatus()) {
      if (!getStatus().equals(other.getStatus())) return false;
    }
    if (datasetConfigState_ != other.datasetConfigState_) return false;
    if (!getDescription().equals(other.getDescription())) return false;
    if (!getSourceOptionsCase().equals(other.getSourceOptionsCase())) return false;
    switch (sourceOptionsCase_) {
      case 7:
        if (!getSourceProjects().equals(other.getSourceProjects())) return false;
        break;
      case 24:
        if (!getSourceFolders().equals(other.getSourceFolders())) return false;
        break;
      case 25:
        if (getOrganizationScope() != other.getOrganizationScope()) return false;
        break;
      case 21:
        if (!getCloudStorageObjectPath().equals(other.getCloudStorageObjectPath())) return false;
        break;
      case 0:
      default:
    }
    if (!getCloudStorageLocationsCase().equals(other.getCloudStorageLocationsCase())) return false;
    switch (cloudStorageLocationsCase_) {
      case 8:
        if (!getIncludeCloudStorageLocations().equals(other.getIncludeCloudStorageLocations()))
          return false;
        break;
      case 9:
        if (!getExcludeCloudStorageLocations().equals(other.getExcludeCloudStorageLocations()))
          return false;
        break;
      case 0:
      default:
    }
    if (!getCloudStorageBucketsCase().equals(other.getCloudStorageBucketsCase())) return false;
    switch (cloudStorageBucketsCase_) {
      case 10:
        if (!getIncludeCloudStorageBuckets().equals(other.getIncludeCloudStorageBuckets()))
          return false;
        break;
      case 11:
        if (!getExcludeCloudStorageBuckets().equals(other.getExcludeCloudStorageBuckets()))
          return false;
        break;
      case 0:
      default:
    }
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }
<pre>
Optional. A user-provided description for the dataset configuration.

Maximum length: 256 characters.
</pre>

<code>string description = 20 [(.google.api.field_behavior) = OPTIONAL];</code>

@return The bytes for description.
java-storageinsights/proto-google-cloud-storageinsights-v1/src/main/java/com/google/cloud/storageinsights/v1/DatasetConfig.java