Output only. etag is used for optimistic concurrency control as a way to
help prevent simultaneous updates of a volume restore from overwriting each
other. It is strongly suggested that systems make use of the etag in the
read-modify-write cycle to perform volume restore updates in order to avoid
race conditions.
Output only. The full name of the VolumeBackup from which the volume will
be restored. Format:
projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*.
[[["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\u003eVolumeRestore\u003c/code\u003e class in the Google Cloud GKE Backup v1 API facilitates the restoration of a volume from a \u003ccode\u003eVolumeBackup\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt provides properties such as \u003ccode\u003eName\u003c/code\u003e, \u003ccode\u003eState\u003c/code\u003e, \u003ccode\u003eCreateTime\u003c/code\u003e, and \u003ccode\u003eUpdateTime\u003c/code\u003e to track the status and history of a volume restore operation.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eVolumeRestore\u003c/code\u003e class is part of the \u003ccode\u003eGoogle.Cloud.GkeBackup.V1\u003c/code\u003e namespace and implements interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThere are multiple versions available for the \u003ccode\u003eVolumeRestore\u003c/code\u003e class, with version 2.6.0 being the most recent one.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eVolumeRestore\u003c/code\u003e class uses identifiers, such as \u003ccode\u003eUid\u003c/code\u003e and \u003ccode\u003eEtag\u003c/code\u003e, to uniquely identify and control the concurrency of volume restore operations.\u003c/p\u003e\n"]]],[],null,["# Backup for GKE v1 API - Class VolumeRestore (2.8.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.8.0 (latest)](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.VolumeRestore)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.7.0/Google.Cloud.GkeBackup.V1.VolumeRestore)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.6.0/Google.Cloud.GkeBackup.V1.VolumeRestore)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.5.0/Google.Cloud.GkeBackup.V1.VolumeRestore)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.4.0/Google.Cloud.GkeBackup.V1.VolumeRestore)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.3.0/Google.Cloud.GkeBackup.V1.VolumeRestore)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.2.0/Google.Cloud.GkeBackup.V1.VolumeRestore)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.1.0/Google.Cloud.GkeBackup.V1.VolumeRestore)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.0.0/Google.Cloud.GkeBackup.V1.VolumeRestore)\n- [1.0.0-beta01](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/1.0.0-beta01/Google.Cloud.GkeBackup.V1.VolumeRestore) \n\n public sealed class VolumeRestore : IMessage\u003cVolumeRestore\u003e, IEquatable\u003cVolumeRestore\u003e, IDeepCloneable\u003cVolumeRestore\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Backup for GKE v1 API class VolumeRestore.\n\nRepresents the operation of restoring a volume from a VolumeBackup. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e VolumeRestore \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[VolumeRestore](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.VolumeRestore), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[VolumeRestore](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.VolumeRestore), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[VolumeRestore](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.VolumeRestore), [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.GkeBackup.V1](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.GkeBackup.V1.dll\n\nConstructors\n------------\n\n### VolumeRestore()\n\n public VolumeRestore()\n\n### VolumeRestore(VolumeRestore)\n\n public VolumeRestore(VolumeRestore other)\n\nProperties\n----------\n\n### CompleteTime\n\n public Timestamp CompleteTime { get; set; }\n\nOutput only. The timestamp when the associated underlying volume\nrestoration completed.\n\n### CreateTime\n\n public Timestamp CreateTime { get; set; }\n\nOutput only. The timestamp when this VolumeRestore resource was\ncreated.\n\n### Etag\n\n public string Etag { get; set; }\n\nOutput only. `etag` is used for optimistic concurrency control as a way to\nhelp prevent simultaneous updates of a volume restore from overwriting each\nother. It is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform volume restore updates in order to avoid\nrace conditions.\n\n### Name\n\n public string Name { get; set; }\n\nOutput only. Full name of the VolumeRestore resource.\nFormat: `projects/*/locations/*/restorePlans/*/restores/*/volumeRestores/*`\n\n### State\n\n public VolumeRestore.Types.State State { get; set; }\n\nOutput only. The current state of this VolumeRestore.\n\n### StateMessage\n\n public string StateMessage { get; set; }\n\nOutput only. A human readable message explaining why the VolumeRestore is\nin its current state.\n\n### TargetPvc\n\n public NamespacedName TargetPvc { get; set; }\n\nOutput only. The reference to the target Kubernetes PVC to be restored.\n\n### Uid\n\n public string Uid { get; set; }\n\nOutput only. Server generated global unique identifier of\n[UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format.\n\n### UpdateTime\n\n public Timestamp UpdateTime { get; set; }\n\nOutput only. The timestamp when this VolumeRestore resource was last\nupdated.\n\n### VolumeBackup\n\n public string VolumeBackup { get; set; }\n\nOutput only. The full name of the VolumeBackup from which the volume will\nbe restored. Format:\n`projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/*`.\n\n### VolumeHandle\n\n public string VolumeHandle { get; set; }\n\nOutput only. A storage system-specific opaque handler to the underlying\nvolume created for the target PVC from the volume backup.\n\n### VolumeRestoreName\n\n public VolumeRestoreName VolumeRestoreName { get; set; }\n\n[VolumeRestoreName](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.VolumeRestoreName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.VolumeRestore#Google_Cloud_GkeBackup_V1_VolumeRestore_Name) resource name property.\n\n### VolumeType\n\n public VolumeRestore.Types.VolumeType VolumeType { get; set; }\n\nOutput only. The type of volume provisioned"]]