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

    size = 0;
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_);
    }
    if (state_ != com.google.cloud.workflows.v1.Workflow.State.STATE_UNSPECIFIED.getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, state_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(revisionId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, revisionId_);
    }
    if (((bitField0_ & 0x00000001) != 0)) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getCreateTime());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getUpdateTime());
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getRevisionCreateTime());
    }
    for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
        internalGetLabels().getMap().entrySet()) {
      com.google.protobuf.MapEntry<java.lang.String, java.lang.String> labels__ =
          LabelsDefaultEntryHolder.defaultEntry
              .newBuilderForType()
              .setKey(entry.getKey())
              .setValue(entry.getValue())
              .build();
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, labels__);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccount_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, serviceAccount_);
    }
    if (sourceCodeCase_ == 10) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, sourceCode_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cryptoKeyName_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, cryptoKeyName_);
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(12, getStateError());
    }
    if (callLogLevel_
        != com.google.cloud.workflows.v1.Workflow.CallLogLevel.CALL_LOG_LEVEL_UNSPECIFIED
            .getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(13, callLogLevel_);
    }
    for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
        internalGetUserEnvVars().getMap().entrySet()) {
      com.google.protobuf.MapEntry<java.lang.String, java.lang.String> userEnvVars__ =
          UserEnvVarsDefaultEntryHolder.defaultEntry
              .newBuilderForType()
              .setKey(entry.getKey())
              .setValue(entry.getValue())
              .build();
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, userEnvVars__);
    }
    if (executionHistoryLevel_
        != com.google.cloud.workflows.v1.ExecutionHistoryLevel.EXECUTION_HISTORY_LEVEL_UNSPECIFIED
            .getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(15, executionHistoryLevel_);
    }
    {
      int dataSize = 0;
      for (int i = 0; i < allKmsKeys_.size(); i++) {
        dataSize += computeStringSizeNoTag(allKmsKeys_.getRaw(i));
      }
      size += dataSize;
      size += 2 * getAllKmsKeysList().size();
    }
    {
      int dataSize = 0;
      for (int i = 0; i < allKmsKeysVersions_.size(); i++) {
        dataSize += computeStringSizeNoTag(allKmsKeysVersions_.getRaw(i));
      }
      size += dataSize;
      size += 2 * getAllKmsKeysVersionsList().size();
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cryptoKeyVersion_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, cryptoKeyVersion_);
    }
    for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
        internalGetTags().getMap().entrySet()) {
      com.google.protobuf.MapEntry<java.lang.String, java.lang.String> tags__ =
          TagsDefaultEntryHolder.defaultEntry
              .newBuilderForType()
              .setKey(entry.getKey())
              .setValue(entry.getValue())
              .build();
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(19, tags__);
    }
    size += getUnknownFields().getSerializedSize();
    memoizedSize = size;
    return size;
  }
<pre>
Optional. Input only. Immutable. Tags associated with this workflow.
</pre>

<code>
map&lt;string, string&gt; tags = 19 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL];
</code>
java-workflows/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/Workflow.java