@java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + NAME_FIELD_NUMBER;
    hash = (53 * hash) + getName().hashCode();
    hash = (37 * hash) + UID_FIELD_NUMBER;
    hash = (53 * hash) + getUid().hashCode();
    hash = (37 * hash) + TARGET_RESOURCE_FIELD_NUMBER;
    hash = (53 * hash) + getTargetResource().hashCode();
    if (getEventTypesCount() > 0) {
      hash = (37 * hash) + EVENT_TYPES_FIELD_NUMBER;
      hash = (53 * hash) + getEventTypesList().hashCode();
    }
    if (hasPayloadOptions()) {
      hash = (37 * hash) + PAYLOAD_OPTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getPayloadOptions().hashCode();
    }
    if (hasNotificationEndpoint()) {
      hash = (37 * hash) + NOTIFICATION_ENDPOINT_FIELD_NUMBER;
      hash = (53 * hash) + getNotificationEndpoint().hashCode();
    }
    hash = (37 * hash) + STATE_FIELD_NUMBER;
    hash = (53 * hash) + state_;
    hash = (37 * hash) + SUSPENSION_REASON_FIELD_NUMBER;
    hash = (53 * hash) + suspensionReason_;
    hash = (37 * hash) + AUTHORITY_FIELD_NUMBER;
    hash = (53 * hash) + getAuthority().hashCode();
    if (hasCreateTime()) {
      hash = (37 * hash) + CREATE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getCreateTime().hashCode();
    }
    if (hasUpdateTime()) {
      hash = (37 * hash) + UPDATE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getUpdateTime().hashCode();
    }
    hash = (37 * hash) + RECONCILING_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReconciling());
    hash = (37 * hash) + ETAG_FIELD_NUMBER;
    hash = (53 * hash) + getEtag().hashCode();
    switch (expirationCase_) {
      case 13:
        hash = (37 * hash) + EXPIRE_TIME_FIELD_NUMBER;
        hash = (53 * hash) + getExpireTime().hashCode();
        break;
      case 14:
        hash = (37 * hash) + TTL_FIELD_NUMBER;
        hash = (53 * hash) + getTtl().hashCode();
        break;
      case 0:
      default:
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }
<pre>
Optional. This checksum is computed by the server based on the value of
other fields, and might be sent on update requests to ensure the client has
an up-to-date value before proceeding.
</pre>

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

@return The bytes for etag.
java-workspaceevents/proto-google-cloud-workspaceevents-v1/src/main/java/com/google/apps/events/subscriptions/v1/Subscription.java