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

      if (!getCluster().equals(other.getCluster())) return false;
      if (!getStream().equals(other.getStream())) return false;
      if (!getReceiver().equals(other.getReceiver())) return false;
      if (hasControlledMode() != other.hasControlledMode()) return false;
      if (hasControlledMode()) {
        if (!getControlledMode().equals(other.getControlledMode())) return false;
      }
      if (hasHeartbeatInterval() != other.hasHeartbeatInterval()) return false;
      if (hasHeartbeatInterval()) {
        if (!getHeartbeatInterval().equals(other.getHeartbeatInterval())) return false;
      }
      if (hasWritesDoneGracePeriod() != other.hasWritesDoneGracePeriod()) return false;
      if (hasWritesDoneGracePeriod()) {
        if (!getWritesDoneGracePeriod().equals(other.getWritesDoneGracePeriod())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }
<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/ReceiveEventsRequest.java