@java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                name_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 10
            case 18:
              {
                sourceVmId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 18
            case 26:
              {
                description_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 26
            case 66:
              {
                input.readMessage(getPolicyFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 66
            case 74:
              {
                input.readMessage(getCreateTimeFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 74
            case 82:
              {
                input.readMessage(getUpdateTimeFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00000100;
                break;
              } // case 82
            case 90:
              {
                input.readMessage(getLastSyncFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00000200;
                break;
              } // case 90
            case 106:
              {
                input.readMessage(getCurrentSyncInfoFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00001000;
                break;
              } // case 106
            case 122:
              {
                group_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00002000;
                break;
              } // case 122
            case 130:
              {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> labels__ =
                    input.readMessage(
                        LabelsDefaultEntryHolder.defaultEntry.getParserForType(),
                        extensionRegistry);
                internalGetMutableLabels()
                    .getMutableMap()
                    .put(labels__.getKey(), labels__.getValue());
                bitField0_ |= 0x00004000;
                break;
              } // case 130
            case 138:
              {
                com.google.cloud.vmmigration.v1.CloneJob m =
                    input.readMessage(
                        com.google.cloud.vmmigration.v1.CloneJob.parser(), extensionRegistry);
                if (recentCloneJobsBuilder_ == null) {
                  ensureRecentCloneJobsIsMutable();
                  recentCloneJobs_.add(m);
                } else {
                  recentCloneJobsBuilder_.addMessage(m);
                }
                break;
              } // case 138
            case 146:
              {
                displayName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 146
            case 154:
              {
                input.readMessage(getErrorFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00010000;
                break;
              } // case 154
            case 162:
              {
                com.google.cloud.vmmigration.v1.CutoverJob m =
                    input.readMessage(
                        com.google.cloud.vmmigration.v1.CutoverJob.parser(), extensionRegistry);
                if (recentCutoverJobsBuilder_ == null) {
                  ensureRecentCutoverJobsIsMutable();
                  recentCutoverJobs_.add(m);
                } else {
                  recentCutoverJobsBuilder_.addMessage(m);
                }
                break;
              } // case 162
            case 178:
              {
                input.readMessage(getStateTimeFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00000800;
                break;
              } // case 178
            case 184:
              {
                state_ = input.readEnum();
                bitField0_ |= 0x00000400;
                break;
              } // case 184
            case 210:
              {
                input.readMessage(
                    getComputeEngineTargetDefaultsFieldBuilder().getBuilder(), extensionRegistry);
                targetVmDefaultsCase_ = 26;
                break;
              } // case 210
            case 234:
              {
                input.readMessage(
                    getAwsSourceVmDetailsFieldBuilder().getBuilder(), extensionRegistry);
                sourceVmDetailsCase_ = 29;
                break;
              } // case 234
            default:
              {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }
<pre>
MigratingVm describes the VM that will be migrated from a Source environment
and its replication state.
</pre>

Protobuf type {@code google.cloud.vmmigration.v1.MigratingVm}
java-vmmigration/proto-google-cloud-vmmigration-v1/src/main/java/com/google/cloud/vmmigration/v1/MigratingVm.java