@java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(adBreakId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, adBreakId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(adId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, adId_);
    }
    if (((bitField0_ & 0x00000001) != 0)) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getAdTimeOffset());
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(skipReason_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, skipReason_);
    }
    for (java.util.Map.Entry<java.lang.String, com.google.protobuf.Value> entry :
        internalGetMedia().getMap().entrySet()) {
      com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.Value> media__ =
          MediaDefaultEntryHolder.defaultEntry
              .newBuilderForType()
              .setKey(entry.getKey())
              .setValue(entry.getValue())
              .build();
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, media__);
    }
    size += getUnknownFields().getSerializedSize();
    memoizedSize = size;
    return size;
  }
<pre>
Optional. The metadata of the chosen media file for the ad.
</pre>

<code>
map&lt;string, .google.protobuf.Value&gt; media = 5 [(.google.api.field_behavior) = OPTIONAL];
</code>
java-video-stitcher/proto-google-cloud-video-stitcher-v1/src/main/java/com/google/cloud/video/stitcher/v1/AdStitchDetail.java