Required. Immutable. A reference to the
[BackupPlan][google.cloud.gkebackup.v1.BackupPlan] from which Backups may
be used as the source for Restores created via this RestorePlan. Format:
projects/*/locations/*/backupPlans/*.
Required. Immutable. The target cluster into which Restores created via
this RestorePlan will restore data. NOTE: the cluster's region must be the
same as the RestorePlan. Valid formats:
Output only. etag is used for optimistic concurrency control as a way to
help prevent simultaneous updates of a restore from overwriting each other.
It is strongly suggested that systems make use of the etag in the
read-modify-write cycle to perform restore updates in order to avoid
race conditions: An etag is returned in the response to GetRestorePlan,
and systems are expected to put that etag in the request to
UpdateRestorePlan or DeleteRestorePlan to ensure that their change
will be applied to the same version of the resource.
Output only. The fully qualified name of the RestoreChannel to be used to
create a RestorePlan. This field is set only if the backup_plan is in a
different project than the RestorePlan. Format:
projects/*/locations/*/restoreChannels/*
Output only. Human-readable description of why RestorePlan is in the
current state. This field is only meant for human readability and should
not be used programmatically as this field is not guaranteed to be
consistent.
[[["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 latest version of the \u003ccode\u003eRestorePlan\u003c/code\u003e API is 2.6.0, with documentation available at \u003ccode\u003e/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestorePlan\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eRestorePlan\u003c/code\u003e is a configuration class within the Backup for GKE v1 API used to manage Restore operations from Backups, with its properties including details about the backup plan and the cluster to be restored.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRestorePlan\u003c/code\u003e class implements several interfaces, including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, and inherits members from the \u003ccode\u003eobject\u003c/code\u003e class, such as \u003ccode\u003eGetHashCode()\u003c/code\u003e, \u003ccode\u003eGetType()\u003c/code\u003e, and \u003ccode\u003eToString()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eA \u003ccode\u003eRestorePlan\u003c/code\u003e needs to be associated with a \u003ccode\u003eBackupPlan\u003c/code\u003e that acts as a source for the restore operations and a \u003ccode\u003eCluster\u003c/code\u003e that is the target into which the data is restored, both of which are immutable properties.\u003c/p\u003e\n"],["\u003cp\u003eImportant output-only properties of a \u003ccode\u003eRestorePlan\u003c/code\u003e instance include its \u003ccode\u003eCreateTime\u003c/code\u003e, \u003ccode\u003eUpdateTime\u003c/code\u003e, \u003ccode\u003eState\u003c/code\u003e, \u003ccode\u003eStateReason\u003c/code\u003e, and \u003ccode\u003eEtag\u003c/code\u003e which can be used for optimistic concurrency control.\u003c/p\u003e\n"]]],[],null,["# Backup for GKE v1 API - Class RestorePlan (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.RestorePlan)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.7.0/Google.Cloud.GkeBackup.V1.RestorePlan)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.6.0/Google.Cloud.GkeBackup.V1.RestorePlan)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.5.0/Google.Cloud.GkeBackup.V1.RestorePlan)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.4.0/Google.Cloud.GkeBackup.V1.RestorePlan)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.3.0/Google.Cloud.GkeBackup.V1.RestorePlan)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.2.0/Google.Cloud.GkeBackup.V1.RestorePlan)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.1.0/Google.Cloud.GkeBackup.V1.RestorePlan)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/2.0.0/Google.Cloud.GkeBackup.V1.RestorePlan)\n- [1.0.0-beta01](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/1.0.0-beta01/Google.Cloud.GkeBackup.V1.RestorePlan) \n\n public sealed class RestorePlan : IMessage\u003cRestorePlan\u003e, IEquatable\u003cRestorePlan\u003e, IDeepCloneable\u003cRestorePlan\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Backup for GKE v1 API class RestorePlan.\n\nThe configuration of a potential series of Restore operations to be performed\nagainst Backups belong to a particular BackupPlan. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e RestorePlan \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[RestorePlan](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestorePlan), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[RestorePlan](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestorePlan), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[RestorePlan](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestorePlan), [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### RestorePlan()\n\n public RestorePlan()\n\n### RestorePlan(RestorePlan)\n\n public RestorePlan(RestorePlan other)\n\nProperties\n----------\n\n### BackupPlan\n\n public string BackupPlan { get; set; }\n\nRequired. Immutable. A reference to the\n\\[BackupPlan\\]\\[google.cloud.gkebackup.v1.BackupPlan\\] from which Backups may\nbe used as the source for Restores created via this RestorePlan. Format:\n`projects/*/locations/*/backupPlans/*`.\n\n### BackupPlanAsBackupPlanName\n\n public BackupPlanName BackupPlanAsBackupPlanName { get; set; }\n\n[BackupPlanName](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.BackupPlanName)-typed view over the [BackupPlan](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestorePlan#Google_Cloud_GkeBackup_V1_RestorePlan_BackupPlan) resource name property.\n\n### Cluster\n\n public string Cluster { get; set; }\n\nRequired. Immutable. The target cluster into which Restores created via\nthis RestorePlan will restore data. NOTE: the cluster's region must be the\nsame as the RestorePlan. Valid formats:\n\n- `projects/*/locations/*/clusters/*`\n- `projects/*/zones/*/clusters/*`\n\n### ClusterAsClusterName\n\n public ClusterName ClusterAsClusterName { get; set; }\n\n[ClusterName](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.ClusterName)-typed view over the [Cluster](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestorePlan#Google_Cloud_GkeBackup_V1_RestorePlan_Cluster) resource name property.\n\n### CreateTime\n\n public Timestamp CreateTime { get; set; }\n\nOutput only. The timestamp when this RestorePlan resource was\ncreated.\n\n### Description\n\n public string Description { get; set; }\n\nOptional. User specified descriptive string for this RestorePlan.\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 restore from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform restore updates in order to avoid\nrace conditions: An `etag` is returned in the response to `GetRestorePlan`,\nand systems are expected to put that etag in the request to\n`UpdateRestorePlan` or `DeleteRestorePlan` to ensure that their change\nwill be applied to the same version of the resource.\n\n### Labels\n\n public MapField\u003cstring, string\u003e Labels { get; }\n\nOptional. A set of custom labels supplied by user.\n\n### Name\n\n public string Name { get; set; }\n\nOutput only. The full name of the RestorePlan resource.\nFormat: `projects/*/locations/*/restorePlans/*`.\n\n### RestoreChannel\n\n public string RestoreChannel { get; set; }\n\nOutput only. The fully qualified name of the RestoreChannel to be used to\ncreate a RestorePlan. This field is set only if the `backup_plan` is in a\ndifferent project than the RestorePlan. Format:\n`projects/*/locations/*/restoreChannels/*`\n\n### RestoreChannelAsRestoreChannelName\n\n public RestoreChannelName RestoreChannelAsRestoreChannelName { get; set; }\n\n[RestoreChannelName](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestoreChannelName)-typed view over the [RestoreChannel](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestorePlan#Google_Cloud_GkeBackup_V1_RestorePlan_RestoreChannel) resource name property.\n\n### RestoreConfig\n\n public RestoreConfig RestoreConfig { get; set; }\n\nRequired. Configuration of Restores created via this RestorePlan.\n\n### RestorePlanName\n\n public RestorePlanName RestorePlanName { get; set; }\n\n[RestorePlanName](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestorePlanName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.GkeBackup.V1/latest/Google.Cloud.GkeBackup.V1.RestorePlan#Google_Cloud_GkeBackup_V1_RestorePlan_Name) resource name property.\n\n### State\n\n public RestorePlan.Types.State State { get; set; }\n\nOutput only. State of the RestorePlan. This State field reflects the\nvarious stages a RestorePlan can be in\nduring the Create operation.\n\n### StateReason\n\n public string StateReason { get; set; }\n\nOutput only. Human-readable description of why RestorePlan is in the\ncurrent `state`. This field is only meant for human readability and should\nnot be used programmatically as this field is not guaranteed to be\nconsistent.\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 RestorePlan resource was last\nupdated."]]