@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) + SOURCE_URI_FIELD_NUMBER;
    hash = (53 * hash) + getSourceUri().hashCode();
    hash = (37 * hash) + AD_TAG_URI_FIELD_NUMBER;
    hash = (53 * hash) + getAdTagUri().hashCode();
    if (hasGamLiveConfig()) {
      hash = (37 * hash) + GAM_LIVE_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getGamLiveConfig().hashCode();
    }
    hash = (37 * hash) + STATE_FIELD_NUMBER;
    hash = (53 * hash) + state_;
    hash = (37 * hash) + AD_TRACKING_FIELD_NUMBER;
    hash = (53 * hash) + adTracking_;
    hash = (37 * hash) + DEFAULT_SLATE_FIELD_NUMBER;
    hash = (53 * hash) + getDefaultSlate().hashCode();
    hash = (37 * hash) + STITCHING_POLICY_FIELD_NUMBER;
    hash = (53 * hash) + stitchingPolicy_;
    if (hasPrefetchConfig()) {
      hash = (37 * hash) + PREFETCH_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getPrefetchConfig().hashCode();
    }
    if (hasSourceFetchOptions()) {
      hash = (37 * hash) + SOURCE_FETCH_OPTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getSourceFetchOptions().hashCode();
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }
<pre>
Options for fetching source manifests and segments.
</pre>

<code>.google.cloud.video.stitcher.v1.FetchOptions source_fetch_options = 16;</code>
java-video-stitcher/proto-google-cloud-video-stitcher-v1/src/main/java/com/google/cloud/video/stitcher/v1/LiveConfig.java