Tool: create_backup
Create backup in a given project and location.
The following sample demonstrates how to use curl
to invoke the create_backup
MCP tool.
| Curl Request |
|---|
curl --location 'https://netapp.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_backup", "arguments": { // provide these details according to the tool' s MCP specification } } , "jsonrpc" : "2.0" , "id" : 1 } ' |
Input Schema
CreateBackupRequest creates a backup.
CreateBackupRequest
| JSON representation |
|---|
{
"parent"
:
string
,
"backupId"
:
string
,
"backup"
:
{
object (
|
| Fields | |
|---|---|
parent
|
Required. The NetApp backupVault to create the backups of, in the format |
backupId
|
Required. The ID to use for the backup. The ID must be unique within the specified backupVault. Must contain only letters, numbers and hyphen, with the first character a letter, the last a letter or a number, and a 63 character maximum. |
backup
|
Required. A backup resource |
Backup
| JSON representation |
|---|
{ "name" : string , "state" : enum ( |
name
string
Identifier. The resource name of the backup. Format: projects/{project}/locations/{location}/backupVaults/{backup_vault_id}/backups/{backup_id}
.
state
enum (
State
)
Output only. The backup state.
description
string
A description of the backup with 2048 characters or less. Requests with longer descriptions will be rejected.
volumeUsageBytes
string ( int64
format)
Output only. Size of the file system when the backup was created. When creating a new volume from the backup, the volume capacity will have to be at least as big.
backupType
enum (
Type
)
Output only. Type of backup, manually created or created by a backup policy.
sourceVolume
string
The resource name of the volume that this backup belongs to. You must provide either source_volume
or ontap_source
. Format: projects/{project}/locations/{location}/volumes/{volume_id}
createTime
string (
Timestamp
format)
Output only. The time when the backup was created.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
labels
map (key: string, value: string)
Resource labels to represent user provided metadata.
An object containing a list of "key": value
pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }
.
chainStorageBytes
string ( int64
format)
Output only. Total size of all backups in a chain in bytes = baseline backup size + sum(incremental backup size)
satisfiesPzs
boolean
Output only. Reserved for future use
satisfiesPzi
boolean
Output only. Reserved for future use
volumeRegion
string
Output only. Region of the volume from which the backup was created. Format: projects/{project}/locations/{location}
backupRegion
string
Output only. Region in which backup is stored. Format: projects/{project}/locations/{location}
enforcedRetentionEndTime
string (
Timestamp
format)
Output only. The time until which the backup is not deletable.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
ontapSource
object (
OntapSource
)
Optional. Represents source details for ONTAP backups. Either source_volume or ontap_source should be provided.
Union field _source_snapshot
.
_source_snapshot
can be only one of the following:
sourceSnapshot
string
If specified, backup will be created from the given snapshot. If not specified, there will be a new snapshot taken to initiate the backup creation. Format: projects/{project}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}
Timestamp
| JSON representation |
|---|
{ "seconds" : string , "nanos" : integer } |
| Fields | |
|---|---|
seconds
|
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos
|
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
LabelsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
OntapSource
| JSON representation |
|---|
{ "volumeUuid" : string , "snapshotUuid" : string , // Union field |
volumeUuid
string
Required. The UUID of the ONTAP source volume.
snapshotUuid
string
Optional. The UUID of the ONTAP source snapshot.
Union field _storage_pool
.
_storage_pool
can be only one of the following:
storagePool
string
Required. Name of the storage pool. This must be specified for creating backups for ONTAP mode volumes. Format: projects/{project}/locations/{location}/storagePools/{storage_pool_id}
State
The Backup States
| Enums | |
|---|---|
STATE_UNSPECIFIED
|
State not set. |
CREATING
|
Backup is being created. While in this state, the snapshot for the backup point-in-time may not have been created yet, and so the point-in-time may not have been fixed. |
UPLOADING
|
Backup is being uploaded. While in this state, none of the writes to the volume will be included in the backup. |
READY
|
Backup is available for use. |
DELETING
|
Backup is being deleted. |
ERROR
|
Backup is not valid and cannot be used for creating new volumes or restoring existing volumes. |
UPDATING
|
Backup is being updated. |
Type
Backup types.
| Enums | |
|---|---|
TYPE_UNSPECIFIED
|
Unspecified backup type. |
MANUAL
|
Manual backup type. |
SCHEDULED
|
Scheduled backup type. |
Output Schema
This resource represents a long-running operation that is the result of a network API call.
Operation
| JSON representation |
|---|
{ "name" : string , "metadata" : { "@type" : string , field1 : ... , ... } , "done" : boolean , // Union field |
name
string
The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name
should be a resource name ending with operations/{unique_id}
.
metadata
object
Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
An object containing fields of an arbitrary type. An additional field "@type"
contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }
.
done
boolean
If the value is false
, it means the operation is still in progress. If true
, the operation is completed, and either error
or response
is available.
result
. The operation result, which can be either an error
or a valid response
. If done
== false
, neither error
nor response
is set. If done
== true
, exactly one of error
or response
can be set. Some services might not provide the result. result
can be only one of the following:error
object (
Status
)
The error result of the operation in case of failure or cancellation.
response
object
The normal, successful response of the operation. If the original method returns no data on success, such as Delete
, the response is google.protobuf.Empty
. If the original method is standard Get
/ Create
/ Update
, the response should be the resource. For other methods, the response should have the type XxxResponse
, where Xxx
is the original method name. For example, if the original method name is TakeSnapshot()
, the inferred response type is TakeSnapshotResponse
.
An object containing fields of an arbitrary type. An additional field "@type"
contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }
.
Any
| JSON representation |
|---|
{ "typeUrl" : string , "value" : string } |
| Fields | |
|---|---|
typeUrl
|
Identifies the type of the serialized Protobuf message with a URI reference consisting of a prefix ending in a slash and the fully-qualified type name. Example: type.googleapis.com/google.protobuf.StringValue This string must contain at least one The prefix is arbitrary and Protobuf implementations are expected to simply strip off everything up to and including the last All type URL strings must be legal URI references with the additional restriction (for the text format) that the content of the reference must consist only of alphanumeric characters, percent-encoded escapes, and characters in the following set (not including the outer backticks): In the original design of |
value
|
Holds a Protobuf serialization of the type described by type_url. A base64-encoded string. |
Status
| JSON representation |
|---|
{ "code" : integer , "message" : string , "details" : [ { "@type" : string , field1 : ... , ... } ] } |
| Fields | |
|---|---|
code
|
The status code, which should be an enum value of |
message
|
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the |
details[]
|
A list of messages that carry the error details. There is a common set of message types for APIs to use. An object containing fields of an arbitrary type. An additional field |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌

