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

    if (hasDuration() != other.hasDuration()) return false;
    if (hasDuration()) {
      if (!getDuration().equals(other.getDuration())) return false;
    }
    if (hasCompanionAds() != other.hasCompanionAds()) return false;
    if (hasCompanionAds()) {
      if (!getCompanionAds().equals(other.getCompanionAds())) return false;
    }
    if (!getActivityEventsList().equals(other.getActivityEventsList())) return false;
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }
<pre>
The list of progress tracking events for the ad break. These can be of
the following IAB types: `MUTE`, `UNMUTE`, `PAUSE`, `CLICK`,
`CLICK_THROUGH`, `REWIND`, `RESUME`, `ERROR`, `FULLSCREEN`,
`EXIT_FULLSCREEN`, `EXPAND`, `COLLAPSE`, `ACCEPT_INVITATION_LINEAR`,
`CLOSE_LINEAR`, `SKIP`.
</pre>

<code>repeated .google.cloud.video.stitcher.v1.Event activity_events = 3;</code>
java-video-stitcher/proto-google-cloud-video-stitcher-v1/src/main/java/com/google/cloud/video/stitcher/v1/VodSessionAd.java