public sealed class CloneJob : IMessage<CloneJob>, IEquatable<CloneJob>, IDeepCloneable<CloneJob>, IBufferMessage, IMessage
Reference documentation and code samples for the VM Migration v1 API class CloneJob.
CloneJob describes the process of creating a clone of a
[MigratingVM][google.cloud.vmmigration.v1.MigratingVm] to the
requested target based on the latest successful uploaded snapshots.
While the migration cycles of a MigratingVm take place, it is possible to
verify the uploaded VM can be started in the cloud, by creating a clone. The
clone can be created without any downtime, and it is created using the latest
snapshots which are already in the cloud. The cloneJob is only responsible
for its work, not its products, which means once it is finished, it will
never touch the instance it created. It will only delete it in case of the
CloneJob being cancelled or upon failure to clone.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eCloneJob\u003c/code\u003e class in the VM Migration v1 API describes the process of creating a clone of a \u003ccode\u003eMigratingVM\u003c/code\u003e based on the latest successful snapshots.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of the \u003ccode\u003eCloneJob\u003c/code\u003e class is 2.6.0, with previous versions from 2.5.0 down to 1.0.0 also available.\u003c/p\u003e\n"],["\u003cp\u003eA clone created by \u003ccode\u003eCloneJob\u003c/code\u003e can be made without downtime and is generated from snapshots already in the cloud, and the class is responsible for its own actions, not the products it creates.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eCloneJob\u003c/code\u003e class provides properties such as \u003ccode\u003eCreateTime\u003c/code\u003e, \u003ccode\u003eEndTime\u003c/code\u003e, \u003ccode\u003eState\u003c/code\u003e, and \u003ccode\u003eError\u003c/code\u003e to manage the process of creating and running a clone VM.\u003c/p\u003e\n"],["\u003cp\u003eThe CloneJob is created using two constructors, either a default one, or one using another CloneJob as a parameter.\u003c/p\u003e\n"]]],[],null,["# VM Migration v1 API - Class CloneJob (2.6.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.6.0 (latest)](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/latest/Google.Cloud.VMMigration.V1.CloneJob)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/2.5.0/Google.Cloud.VMMigration.V1.CloneJob)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/2.4.0/Google.Cloud.VMMigration.V1.CloneJob)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/2.3.0/Google.Cloud.VMMigration.V1.CloneJob)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/2.2.0/Google.Cloud.VMMigration.V1.CloneJob)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/2.1.0/Google.Cloud.VMMigration.V1.CloneJob)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/2.0.0/Google.Cloud.VMMigration.V1.CloneJob)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/1.0.0/Google.Cloud.VMMigration.V1.CloneJob) \n\n public sealed class CloneJob : IMessage\u003cCloneJob\u003e, IEquatable\u003cCloneJob\u003e, IDeepCloneable\u003cCloneJob\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the VM Migration v1 API class CloneJob.\n\nCloneJob describes the process of creating a clone of a\n\\[MigratingVM\\]\\[google.cloud.vmmigration.v1.MigratingVm\\] to the\nrequested target based on the latest successful uploaded snapshots.\nWhile the migration cycles of a MigratingVm take place, it is possible to\nverify the uploaded VM can be started in the cloud, by creating a clone. The\nclone can be created without any downtime, and it is created using the latest\nsnapshots which are already in the cloud. The cloneJob is only responsible\nfor its work, not its products, which means once it is finished, it will\nnever touch the instance it created. It will only delete it in case of the\nCloneJob being cancelled or upon failure to clone. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e CloneJob \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[CloneJob](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/latest/Google.Cloud.VMMigration.V1.CloneJob), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[CloneJob](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/latest/Google.Cloud.VMMigration.V1.CloneJob), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[CloneJob](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/latest/Google.Cloud.VMMigration.V1.CloneJob), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.VMMigration.V1](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/latest/Google.Cloud.VMMigration.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.VMMigration.V1.dll\n\nConstructors\n------------\n\n### CloneJob()\n\n public CloneJob()\n\n### CloneJob(CloneJob)\n\n public CloneJob(CloneJob other)\n\nProperties\n----------\n\n### CloneJobName\n\n public CloneJobName CloneJobName { get; set; }\n\n[CloneJobName](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/latest/Google.Cloud.VMMigration.V1.CloneJobName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.VMMigration.V1/latest/Google.Cloud.VMMigration.V1.CloneJob#Google_Cloud_VMMigration_V1_CloneJob_Name) resource name property.\n\n### ComputeEngineTargetDetails\n\n public ComputeEngineTargetDetails ComputeEngineTargetDetails { get; set; }\n\nOutput only. Details of the target VM in Compute Engine.\n\n### CreateTime\n\n public Timestamp CreateTime { get; set; }\n\nOutput only. The time the clone job was created (as an API call, not when\nit was actually created in the target).\n\n### EndTime\n\n public Timestamp EndTime { get; set; }\n\nOutput only. The time the clone job was ended.\n\n### Error\n\n public Status Error { get; set; }\n\nOutput only. Provides details for the errors that led to the Clone Job's\nstate.\n\n### Name\n\n public string Name { get; set; }\n\nOutput only. The name of the clone.\n\n### State\n\n public CloneJob.Types.State State { get; set; }\n\nOutput only. State of the clone job.\n\n### StateTime\n\n public Timestamp StateTime { get; set; }\n\nOutput only. The time the state was last updated.\n\n### Steps\n\n public RepeatedField\u003cCloneStep\u003e Steps { get; }\n\nOutput only. The clone steps list representing its progress.\n\n### TargetVmDetailsCase\n\n public CloneJob.TargetVmDetailsOneofCase TargetVmDetailsCase { get; }"]]