public Builder mergeFrom(com.google.cloud.vmmigration.v1.CutoverJob other) {
      if (other == com.google.cloud.vmmigration.v1.CutoverJob.getDefaultInstance()) return this;
      if (other.hasCreateTime()) {
        mergeCreateTime(other.getCreateTime());
      }
      if (other.hasEndTime()) {
        mergeEndTime(other.getEndTime());
      }
      if (!other.getName().isEmpty()) {
        name_ = other.name_;
        bitField0_ |= 0x00000008;
        onChanged();
      }
      if (other.state_ != 0) {
        setStateValue(other.getStateValue());
      }
      if (other.hasStateTime()) {
        mergeStateTime(other.getStateTime());
      }
      if (other.getProgressPercent() != 0) {
        setProgressPercent(other.getProgressPercent());
      }
      if (other.hasError()) {
        mergeError(other.getError());
      }
      if (!other.getStateMessage().isEmpty()) {
        stateMessage_ = other.stateMessage_;
        bitField0_ |= 0x00000100;
        onChanged();
      }
      if (stepsBuilder_ == null) {
        if (!other.steps_.isEmpty()) {
          if (steps_.isEmpty()) {
            steps_ = other.steps_;
            bitField0_ = (bitField0_ & ~0x00000200);
          } else {
            ensureStepsIsMutable();
            steps_.addAll(other.steps_);
          }
          onChanged();
        }
      } else {
        if (!other.steps_.isEmpty()) {
          if (stepsBuilder_.isEmpty()) {
            stepsBuilder_.dispose();
            stepsBuilder_ = null;
            steps_ = other.steps_;
            bitField0_ = (bitField0_ & ~0x00000200);
            stepsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                    ? getStepsFieldBuilder()
                    : null;
          } else {
            stepsBuilder_.addAllMessages(other.steps_);
          }
        }
      }
      switch (other.getTargetVmDetailsCase()) {
        case COMPUTE_ENGINE_TARGET_DETAILS:
          {
            mergeComputeEngineTargetDetails(other.getComputeEngineTargetDetails());
            break;
          }
        case TARGETVMDETAILS_NOT_SET:
          {
            break;
          }
      }
      this.mergeUnknownFields(other.getUnknownFields());
      onChanged();
      return this;
    }
<pre>
CutoverJob message describes a cutover of a migrating VM. The CutoverJob is
the operation of shutting down the VM, creating a snapshot and
clonning the VM using the replicated snapshot.
</pre>

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