@java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      hash = (37 * hash) + RECEIVER_FIELD_NUMBER;
      hash = (53 * hash) + getReceiver().hashCode();
      if (hasHeartbeatInterval()) {
        hash = (37 * hash) + HEARTBEAT_INTERVAL_FIELD_NUMBER;
        hash = (53 * hash) + getHeartbeatInterval().hashCode();
      }
      if (hasWritesDoneGracePeriod()) {
        hash = (37 * hash) + WRITES_DONE_GRACE_PERIOD_FIELD_NUMBER;
        hash = (53 * hash) + getWritesDoneGracePeriod().hashCode();
      }
      switch (consumerModeCase_) {
        case 3:
          hash = (37 * hash) + EAGER_RECEIVE_MODE_FIELD_NUMBER;
          hash = (53 * hash) + getEagerReceiveMode().hashCode();
          break;
        case 4:
          hash = (37 * hash) + CONTROLLED_RECEIVE_MODE_FIELD_NUMBER;
          hash = (53 * hash) + getControlledReceiveMode().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }
<pre>
The grace period after which a `writes_done_request` is issued, that a
`WritesDone` is expected from the client.

The server is free to cancel the RPC should this expire.

A system default will be chosen if unset.
</pre>

<code>.google.protobuf.Duration writes_done_grace_period = 6;</code>
java-visionai/proto-google-cloud-visionai-v1/src/main/java/com/google/cloud/visionai/v1/ReceivePacketsRequest.java