@Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    Container container = (Container) o;
    // Note: do not under any circumstances compare snapshotVersion!
    //@formatter:off
    return id == container.id
        && encrypted == container.encrypted
        && previouslyEncrypted == container.previouslyEncrypted
        && cacheable == container.cacheable
        && mediaScanDisabled == container.mediaScanDisabled
        && paranoidDurabilityEnabled == container.paranoidDurabilityEnabled
        && parentAccountId == container.parentAccountId
        && Objects.equals(name, container.name)
        && status == container.status
        && deleteTriggerTime == container.deleteTriggerTime
        && Objects.equals(description, container.description)
        && Objects.equals(replicationPolicy, container.replicationPolicy)
        && ttlRequired == container.ttlRequired
        && workflowMigrationEnabled == container.workflowMigrationEnabled
        && securePathRequired == container.securePathRequired
        && overrideAccountAcl == container.overrideAccountAcl
        && namedBlobMode == container.namedBlobMode
        && Objects.equals(accessControlAllowOrigin, container.accessControlAllowOrigin)
        && Objects.equals(contentTypeWhitelistForFilenamesOnDownload, container.contentTypeWhitelistForFilenamesOnDownload)
        && Objects.equals(cacheTtlInSecond, container.cacheTtlInSecond)
        && Objects.equals(userMetadataKeysToNotPrefixInResponse, container.userMetadataKeysToNotPrefixInResponse);
    //@formatter:on
  }
Generates a String representation that uniquely identifies this container. The string
is in the format of {@code Container[accountId:containerId]}.
@return The String representation of this container.
ambry-api/src/main/java/com/github/ambry/account/Container.java