mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-16 13:00:34 +02:00
Adds the following new methods for direct ONTAP API interaction: - ExecuteOntapPost - ExecuteOntapGet - ExecuteOntapDelete - ExecuteOntapPatch `StoragePoolType` docs: A comment for field `source_volume` in message `.google.cloud.netapp.v1.Backup` is changed docs: A comment for field `type` in message `.google.cloud.netapp.v1.StoragePool` is changed docs: A comment for field `source_backup` in message `.google.cloud.netapp.v1.RestoreParameters` is changed fix!: An existing value `UNIFIED_LARGE_CAPACITY` is removed from enum `StoragePoolType` PiperOrigin-RevId: 889585893
1022 lines
35 KiB
Protocol Buffer
1022 lines
35 KiB
Protocol Buffer
// Copyright 2026 Google LLC
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto3";
|
|
|
|
package google.cloud.netapp.v1;
|
|
|
|
import "google/api/field_behavior.proto";
|
|
import "google/api/field_info.proto";
|
|
import "google/api/resource.proto";
|
|
import "google/cloud/netapp/v1/common.proto";
|
|
import "google/protobuf/field_mask.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option csharp_namespace = "Google.Cloud.NetApp.V1";
|
|
option go_package = "cloud.google.com/go/netapp/apiv1/netapppb;netapppb";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "VolumeProto";
|
|
option java_package = "com.google.cloud.netapp.v1";
|
|
option php_namespace = "Google\\Cloud\\NetApp\\V1";
|
|
option ruby_package = "Google::Cloud::NetApp::V1";
|
|
|
|
// Protocols is an enum of all the supported network protocols for a volume.
|
|
enum Protocols {
|
|
// Unspecified protocol
|
|
PROTOCOLS_UNSPECIFIED = 0;
|
|
|
|
// NFS V3 protocol
|
|
NFSV3 = 1;
|
|
|
|
// NFS V4 protocol
|
|
NFSV4 = 2;
|
|
|
|
// SMB protocol
|
|
SMB = 3;
|
|
|
|
// ISCSI protocol
|
|
ISCSI = 4;
|
|
}
|
|
|
|
// AccessType is an enum of all the supported access types for a volume.
|
|
enum AccessType {
|
|
// Unspecified Access Type
|
|
ACCESS_TYPE_UNSPECIFIED = 0;
|
|
|
|
// Read Only
|
|
READ_ONLY = 1;
|
|
|
|
// Read Write
|
|
READ_WRITE = 2;
|
|
|
|
// None
|
|
READ_NONE = 3;
|
|
}
|
|
|
|
// SMBSettings
|
|
// Modifies the behaviour of a SMB volume.
|
|
enum SMBSettings {
|
|
// Unspecified default option
|
|
SMB_SETTINGS_UNSPECIFIED = 0;
|
|
|
|
// SMB setting encrypt data
|
|
ENCRYPT_DATA = 1;
|
|
|
|
// SMB setting browsable
|
|
BROWSABLE = 2;
|
|
|
|
// SMB setting notify change
|
|
CHANGE_NOTIFY = 3;
|
|
|
|
// SMB setting not to notify change
|
|
NON_BROWSABLE = 4;
|
|
|
|
// SMB setting oplocks
|
|
OPLOCKS = 5;
|
|
|
|
// SMB setting to show snapshots
|
|
SHOW_SNAPSHOT = 6;
|
|
|
|
// SMB setting to show previous versions
|
|
SHOW_PREVIOUS_VERSIONS = 7;
|
|
|
|
// SMB setting to access volume based on enumerartion
|
|
ACCESS_BASED_ENUMERATION = 8;
|
|
|
|
// Continuously available enumeration
|
|
CONTINUOUSLY_AVAILABLE = 9;
|
|
}
|
|
|
|
// The security style of the volume, can be either UNIX or NTFS.
|
|
enum SecurityStyle {
|
|
// SecurityStyle is unspecified
|
|
SECURITY_STYLE_UNSPECIFIED = 0;
|
|
|
|
// SecurityStyle uses NTFS
|
|
NTFS = 1;
|
|
|
|
// SecurityStyle uses UNIX
|
|
UNIX = 2;
|
|
}
|
|
|
|
// Actions to be restricted for a volume.
|
|
enum RestrictedAction {
|
|
// Unspecified restricted action
|
|
RESTRICTED_ACTION_UNSPECIFIED = 0;
|
|
|
|
// Prevent volume from being deleted when mounted.
|
|
DELETE = 1;
|
|
}
|
|
|
|
// Message for requesting list of Volumes
|
|
message ListVolumesRequest {
|
|
// Required. Parent value for ListVolumesRequest
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
child_type: "netapp.googleapis.com/Volume"
|
|
}
|
|
];
|
|
|
|
// Requested page size. Server may return fewer items than requested.
|
|
// If unspecified, the server will pick an appropriate default.
|
|
int32 page_size = 2;
|
|
|
|
// A token identifying a page of results the server should return.
|
|
string page_token = 3;
|
|
|
|
// Filtering results
|
|
string filter = 4;
|
|
|
|
// Hint for how to order the results
|
|
string order_by = 5;
|
|
}
|
|
|
|
// Message for response to listing Volumes
|
|
message ListVolumesResponse {
|
|
// The list of Volume
|
|
repeated Volume volumes = 1;
|
|
|
|
// A token identifying a page of results the server should return.
|
|
string next_page_token = 2;
|
|
|
|
// Locations that could not be reached.
|
|
repeated string unreachable = 3;
|
|
}
|
|
|
|
// Message for getting a Volume
|
|
message GetVolumeRequest {
|
|
// Required. Name of the volume
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = { type: "netapp.googleapis.com/Volume" }
|
|
];
|
|
}
|
|
|
|
// Message for creating a Volume
|
|
message CreateVolumeRequest {
|
|
// Required. Value for parent.
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
child_type: "netapp.googleapis.com/Volume"
|
|
}
|
|
];
|
|
|
|
// Required. Id of the requesting volume. Must be unique within the parent
|
|
// resource. 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.
|
|
string volume_id = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. The volume being created.
|
|
Volume volume = 3 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Message for updating a Volume
|
|
message UpdateVolumeRequest {
|
|
// Required. Field mask is used to specify the fields to be overwritten in the
|
|
// Volume resource by the update.
|
|
// The fields specified in the update_mask are relative to the resource, not
|
|
// the full request. A field will be overwritten if it is in the mask. If the
|
|
// user does not provide a mask then all fields will be overwritten.
|
|
google.protobuf.FieldMask update_mask = 1
|
|
[(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. The volume being updated
|
|
Volume volume = 2 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Message for deleting a Volume
|
|
message DeleteVolumeRequest {
|
|
// Required. Name of the volume
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = { type: "netapp.googleapis.com/Volume" }
|
|
];
|
|
|
|
// If this field is set as true, CCFE will not block the volume resource
|
|
// deletion even if it has any snapshots resource. (Otherwise, the request
|
|
// will only work if the volume has no snapshots.)
|
|
bool force = 2;
|
|
}
|
|
|
|
// RevertVolumeRequest reverts the given volume to the specified snapshot.
|
|
message RevertVolumeRequest {
|
|
// Required. The resource name of the volume, in the format of
|
|
// projects/{project_id}/locations/{location}/volumes/{volume_id}.
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = { type: "netapp.googleapis.com/Volume" }
|
|
];
|
|
|
|
// Required. The snapshot resource ID, in the format 'my-snapshot', where the
|
|
// specified ID is the {snapshot_id} of the fully qualified name like
|
|
// projects/{project_id}/locations/{location_id}/volumes/{volume_id}/snapshots/{snapshot_id}
|
|
string snapshot_id = 2 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Volume provides a filesystem that you can mount.
|
|
message Volume {
|
|
option (google.api.resource) = {
|
|
type: "netapp.googleapis.com/Volume"
|
|
pattern: "projects/{project}/locations/{location}/volumes/{volume}"
|
|
plural: "volumes"
|
|
singular: "volume"
|
|
};
|
|
|
|
// Details about a clone volume.
|
|
message CloneDetails {
|
|
// Output only. Specifies the full resource name of the source snapshot from
|
|
// which this volume was cloned. Format:
|
|
// projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}
|
|
string source_snapshot = 1 [
|
|
(google.api.field_behavior) = OUTPUT_ONLY,
|
|
(google.api.resource_reference) = {
|
|
type: "netapp.googleapis.com/Snapshot"
|
|
}
|
|
];
|
|
|
|
// Output only. Full name of the source volume resource.
|
|
// Format:
|
|
// projects/{project}/locations/{location}/volumes/{volume}
|
|
string source_volume = 2 [
|
|
(google.api.field_behavior) = OUTPUT_ONLY,
|
|
(google.api.resource_reference) = { type: "netapp.googleapis.com/Volume" }
|
|
];
|
|
|
|
// Output only. Shared space in GiB. Determined at volume creation time
|
|
// based on size of source snapshot.
|
|
int64 shared_space_gib = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
// The volume states
|
|
enum State {
|
|
// Unspecified Volume State
|
|
STATE_UNSPECIFIED = 0;
|
|
|
|
// Volume State is Ready
|
|
READY = 1;
|
|
|
|
// Volume State is Creating
|
|
CREATING = 2;
|
|
|
|
// Volume State is Deleting
|
|
DELETING = 3;
|
|
|
|
// Volume State is Updating
|
|
UPDATING = 4;
|
|
|
|
// Volume State is Restoring
|
|
RESTORING = 5;
|
|
|
|
// Volume State is Disabled
|
|
DISABLED = 6;
|
|
|
|
// Volume State is Error
|
|
ERROR = 7;
|
|
|
|
// Volume State is Preparing. Note that this is different from CREATING
|
|
// where CREATING means the volume is being created, while PREPARING means
|
|
// the volume is created and now being prepared for the replication.
|
|
PREPARING = 8;
|
|
|
|
// Volume State is Read Only
|
|
READ_ONLY = 9;
|
|
}
|
|
|
|
// Identifier. Name of the volume
|
|
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
|
|
|
|
// Output only. State of the volume
|
|
State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. State details of the volume
|
|
string state_details = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Create time of the volume
|
|
google.protobuf.Timestamp create_time = 4
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Required. Share name of the volume
|
|
string share_name = 5 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Output only. This field is not implemented. The values provided in this
|
|
// field are ignored.
|
|
string psa_range = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Required. StoragePool name of the volume
|
|
string storage_pool = 7 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "netapp.googleapis.com/StoragePool"
|
|
}
|
|
];
|
|
|
|
// Output only. VPC Network name.
|
|
// Format: projects/{project}/global/networks/{network}
|
|
string network = 8 [
|
|
(google.api.field_behavior) = OUTPUT_ONLY,
|
|
(google.api.resource_reference) = { type: "compute.googleapis.com/Network" }
|
|
];
|
|
|
|
// Output only. Service level of the volume
|
|
ServiceLevel service_level = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Required. Capacity in GIB of the volume
|
|
int64 capacity_gib = 10 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. Export policy of the volume
|
|
ExportPolicy export_policy = 11 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Required. Protocols required for the volume
|
|
repeated Protocols protocols = 12 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. SMB share settings for the volume.
|
|
repeated SMBSettings smb_settings = 13
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Mount options of this volume
|
|
repeated MountOption mount_options = 14
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. Default unix style permission (e.g. 777) the mount point will be
|
|
// created with. Applicable for NFS protocol types only.
|
|
string unix_permissions = 15 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Labels as key value pairs
|
|
map<string, string> labels = 16 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Description of the volume
|
|
string description = 17 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. SnapshotPolicy for a volume.
|
|
SnapshotPolicy snapshot_policy = 18 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Snap_reserve specifies percentage of volume storage reserved for
|
|
// snapshot storage. Default is 0 percent.
|
|
double snap_reserve = 19 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Snapshot_directory if enabled (true) the volume will contain a
|
|
// read-only .snapshot directory which provides access to each of the volume's
|
|
// snapshots.
|
|
bool snapshot_directory = 20 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Used capacity in GIB of the volume. This is computed
|
|
// periodically and it does not represent the realtime usage.
|
|
int64 used_gib = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. Security Style of the Volume
|
|
SecurityStyle security_style = 22 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Flag indicating if the volume is a kerberos volume or not, export
|
|
// policy rules control kerberos security modes (krb5, krb5i, krb5p).
|
|
bool kerberos_enabled = 23 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Flag indicating if the volume is NFS LDAP enabled or not.
|
|
bool ldap_enabled = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Specifies the ActiveDirectory name of a SMB volume.
|
|
string active_directory = 25 [
|
|
(google.api.field_behavior) = OUTPUT_ONLY,
|
|
(google.api.resource_reference) = {
|
|
type: "netapp.googleapis.com/ActiveDirectory"
|
|
}
|
|
];
|
|
|
|
// Optional. Specifies the source of the volume to be created from.
|
|
RestoreParameters restore_parameters = 26
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Specifies the KMS config to be used for volume encryption.
|
|
string kms_config = 27 [
|
|
(google.api.field_behavior) = OUTPUT_ONLY,
|
|
(google.api.resource_reference) = {
|
|
type: "netapp.googleapis.com/KmsConfig"
|
|
}
|
|
];
|
|
|
|
// Output only. Specified the current volume encryption key source.
|
|
EncryptionType encryption_type = 28
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Indicates whether the volume is part of a replication
|
|
// relationship.
|
|
bool has_replication = 29 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// BackupConfig of the volume.
|
|
optional BackupConfig backup_config = 30;
|
|
|
|
// Optional. List of actions that are restricted on this volume.
|
|
repeated RestrictedAction restricted_actions = 31
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Flag indicating if the volume will be a large capacity volume or
|
|
// a regular volume.
|
|
bool large_capacity = 32 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Flag indicating if the volume will have an IP address per node
|
|
// for volumes supporting multiple IP endpoints. Only the volume with
|
|
// large_capacity will be allowed to have multiple endpoints.
|
|
bool multiple_endpoints = 33 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Tiering policy for the volume.
|
|
optional TieringPolicy tiering_policy = 34;
|
|
|
|
// Output only. Specifies the replica zone for regional volume.
|
|
string replica_zone = 36 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Specifies the active zone for regional volume.
|
|
string zone = 37 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Size of the volume cold tier data rounded down to the nearest
|
|
// GiB.
|
|
int64 cold_tier_size_gib = 39 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. The Hybrid Replication parameters for the volume.
|
|
HybridReplicationParameters hybrid_replication_parameters = 40
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Throughput of the volume (in MiB/s)
|
|
double throughput_mibps = 41 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Cache parameters for the volume.
|
|
CacheParameters cache_parameters = 42
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Total hot tier data rounded down to the nearest GiB used by
|
|
// the Volume. This field is only used for flex Service Level
|
|
int64 hot_tier_size_used_gib = 44 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. Block devices for the volume.
|
|
// Currently, only one block device is permitted per Volume.
|
|
repeated BlockDevice block_devices = 45
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. If this volume is a clone, this field contains details about
|
|
// the clone.
|
|
CloneDetails clone_details = 47 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
// Defines the export policy for the volume.
|
|
message ExportPolicy {
|
|
// Required. List of export policy rules
|
|
repeated SimpleExportPolicyRule rules = 1
|
|
[(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// An export policy rule describing various export options.
|
|
message SimpleExportPolicyRule {
|
|
// `SquashMode` defines how remote user privileges are restricted when
|
|
// accessing an NFS export. It controls how user identities (like root) are
|
|
// mapped to anonymous users to limit access and enforce security.
|
|
enum SquashMode {
|
|
// Defaults to `NO_ROOT_SQUASH`.
|
|
SQUASH_MODE_UNSPECIFIED = 0;
|
|
|
|
// The root user (UID 0) retains full access. Other users are
|
|
// unaffected.
|
|
NO_ROOT_SQUASH = 1;
|
|
|
|
// The root user (UID 0) is squashed to anonymous user ID. Other users are
|
|
// unaffected.
|
|
ROOT_SQUASH = 2;
|
|
|
|
// All users are squashed to anonymous user ID.
|
|
ALL_SQUASH = 3;
|
|
}
|
|
|
|
// Comma separated list of allowed clients IP addresses
|
|
optional string allowed_clients = 1;
|
|
|
|
// Whether Unix root access will be granted.
|
|
optional string has_root_access = 2;
|
|
|
|
// Access type (ReadWrite, ReadOnly, None)
|
|
optional AccessType access_type = 3;
|
|
|
|
// NFS V3 protocol.
|
|
optional bool nfsv3 = 4;
|
|
|
|
// NFS V4 protocol.
|
|
optional bool nfsv4 = 5;
|
|
|
|
// If enabled (true) the rule defines a read only access for clients matching
|
|
// the 'allowedClients' specification. It enables nfs clients to mount using
|
|
// 'authentication' kerberos security mode.
|
|
optional bool kerberos_5_read_only = 6;
|
|
|
|
// If enabled (true) the rule defines read and write access for clients
|
|
// matching the 'allowedClients' specification. It enables nfs clients to
|
|
// mount using 'authentication' kerberos security mode. The
|
|
// 'kerberos5ReadOnly' value be ignored if this is enabled.
|
|
optional bool kerberos_5_read_write = 7;
|
|
|
|
// If enabled (true) the rule defines a read only access for clients matching
|
|
// the 'allowedClients' specification. It enables nfs clients to mount using
|
|
// 'integrity' kerberos security mode.
|
|
optional bool kerberos_5i_read_only = 8;
|
|
|
|
// If enabled (true) the rule defines read and write access for clients
|
|
// matching the 'allowedClients' specification. It enables nfs clients to
|
|
// mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly'
|
|
// value be ignored if this is enabled.
|
|
optional bool kerberos_5i_read_write = 9;
|
|
|
|
// If enabled (true) the rule defines a read only access for clients matching
|
|
// the 'allowedClients' specification. It enables nfs clients to mount using
|
|
// 'privacy' kerberos security mode.
|
|
optional bool kerberos_5p_read_only = 10;
|
|
|
|
// If enabled (true) the rule defines read and write access for clients
|
|
// matching the 'allowedClients' specification. It enables nfs clients to
|
|
// mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly'
|
|
// value be ignored if this is enabled.
|
|
optional bool kerberos_5p_read_write = 11;
|
|
|
|
// Optional. Defines how user identity squashing is applied for this export
|
|
// rule. This field is the preferred way to configure squashing behavior and
|
|
// takes precedence over `has_root_access` if both are provided.
|
|
optional SquashMode squash_mode = 12 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. An integer representing the anonymous user ID. Range is 0 to
|
|
// `4294967295`. Required when `squash_mode` is `ROOT_SQUASH` or `ALL_SQUASH`.
|
|
optional int64 anon_uid = 13 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Snapshot Policy for a volume.
|
|
message SnapshotPolicy {
|
|
// If enabled, make snapshots automatically according to the schedules.
|
|
// Default is false.
|
|
optional bool enabled = 1;
|
|
|
|
// Hourly schedule policy.
|
|
optional HourlySchedule hourly_schedule = 2;
|
|
|
|
// Daily schedule policy.
|
|
optional DailySchedule daily_schedule = 3;
|
|
|
|
// Weekly schedule policy.
|
|
optional WeeklySchedule weekly_schedule = 4;
|
|
|
|
// Monthly schedule policy.
|
|
optional MonthlySchedule monthly_schedule = 5;
|
|
}
|
|
|
|
// Make a snapshot every hour e.g. at 04:00, 05:00, 06:00.
|
|
message HourlySchedule {
|
|
// The maximum number of Snapshots to keep for the hourly schedule
|
|
optional double snapshots_to_keep = 1;
|
|
|
|
// Set the minute of the hour to start the snapshot (0-59), defaults to the
|
|
// top of the hour (0).
|
|
optional double minute = 2;
|
|
}
|
|
|
|
// Make a snapshot every day e.g. at 04:00, 05:20, 23:50
|
|
message DailySchedule {
|
|
// The maximum number of Snapshots to keep for the hourly schedule
|
|
optional double snapshots_to_keep = 1;
|
|
|
|
// Set the minute of the hour to start the snapshot (0-59), defaults to the
|
|
// top of the hour (0).
|
|
optional double minute = 2;
|
|
|
|
// Set the hour to start the snapshot (0-23), defaults to midnight (0).
|
|
optional double hour = 3;
|
|
}
|
|
|
|
// Make a snapshot every week e.g. at Monday 04:00, Wednesday 05:20, Sunday
|
|
// 23:50
|
|
message WeeklySchedule {
|
|
// The maximum number of Snapshots to keep for the hourly schedule
|
|
optional double snapshots_to_keep = 1;
|
|
|
|
// Set the minute of the hour to start the snapshot (0-59), defaults to the
|
|
// top of the hour (0).
|
|
optional double minute = 2;
|
|
|
|
// Set the hour to start the snapshot (0-23), defaults to midnight (0).
|
|
optional double hour = 3;
|
|
|
|
// Set the day or days of the week to make a snapshot. Accepts a comma
|
|
// separated days of the week. Defaults to 'Sunday'.
|
|
optional string day = 4;
|
|
}
|
|
|
|
// Make a snapshot once a month e.g. at 2nd 04:00, 7th 05:20, 24th 23:50
|
|
message MonthlySchedule {
|
|
// The maximum number of Snapshots to keep for the hourly schedule
|
|
optional double snapshots_to_keep = 1;
|
|
|
|
// Set the minute of the hour to start the snapshot (0-59), defaults to the
|
|
// top of the hour (0).
|
|
optional double minute = 2;
|
|
|
|
// Set the hour to start the snapshot (0-23), defaults to midnight (0).
|
|
optional double hour = 3;
|
|
|
|
// Set the day or days of the month to make a snapshot (1-31). Accepts a
|
|
// comma separated number of days. Defaults to '1'.
|
|
optional string days_of_month = 4;
|
|
}
|
|
|
|
// View only mount options for a volume.
|
|
message MountOption {
|
|
// Export string
|
|
string export = 1;
|
|
|
|
// Full export string
|
|
string export_full = 2;
|
|
|
|
// Protocol to mount with.
|
|
Protocols protocol = 3;
|
|
|
|
// Instructions for mounting
|
|
string instructions = 4;
|
|
|
|
// Output only. IP Address.
|
|
string ip_address = 5 [
|
|
(google.api.field_info).format = IPV4,
|
|
(google.api.field_behavior) = OUTPUT_ONLY
|
|
];
|
|
}
|
|
|
|
// The RestoreParameters if volume is created from a snapshot or backup.
|
|
message RestoreParameters {
|
|
// The source that the volume is created from.
|
|
oneof source {
|
|
// Full name of the snapshot resource.
|
|
// Format:
|
|
// projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}
|
|
string source_snapshot = 1;
|
|
|
|
// Full name of the backup resource.
|
|
// Format for standard backup:
|
|
// projects/{project}/locations/{location}/backupVaults/{backup_vault_id}/backups/{backup_id}
|
|
// Format for BackupDR backup:
|
|
// projects/{project}/locations/{location}/backupVaults/{backup_vault}/dataSources/{data_source}/backups/{backup}
|
|
string source_backup = 2 [
|
|
(google.api.resource_reference) = { type: "netapp.googleapis.com/Backup" }
|
|
];
|
|
}
|
|
}
|
|
|
|
// BackupConfig contains backup related config on a volume.
|
|
message BackupConfig {
|
|
// Optional. When specified, schedule backups will be created based on the
|
|
// policy configuration.
|
|
repeated string backup_policies = 1 [
|
|
(google.api.field_behavior) = OPTIONAL,
|
|
(google.api.resource_reference) = {
|
|
type: "netapp.googleapis.com/BackupPolicy"
|
|
}
|
|
];
|
|
|
|
// Optional. Name of backup vault.
|
|
// Format:
|
|
// projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}
|
|
string backup_vault = 2 [
|
|
(google.api.field_behavior) = OPTIONAL,
|
|
(google.api.resource_reference) = {
|
|
type: "netapp.googleapis.com/BackupVault"
|
|
}
|
|
];
|
|
|
|
// Optional. When set to true, scheduled backup is enabled on the volume.
|
|
// This field should be nil when there's no backup policy attached.
|
|
optional bool scheduled_backup_enabled = 3
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Total size of all backups in a chain in bytes = baseline
|
|
// backup size + sum(incremental backup size).
|
|
optional int64 backup_chain_bytes = 4
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
// Defines tiering policy for the volume.
|
|
message TieringPolicy {
|
|
// Tier action for the volume.
|
|
enum TierAction {
|
|
// Unspecified.
|
|
TIER_ACTION_UNSPECIFIED = 0;
|
|
|
|
// When tiering is enabled, new cold data will be tiered.
|
|
ENABLED = 1;
|
|
|
|
// When paused, tiering won't be performed on new data. Existing data stays
|
|
// tiered until accessed.
|
|
PAUSED = 2;
|
|
}
|
|
|
|
// Optional. Flag indicating if the volume has tiering policy enable/pause.
|
|
// Default is PAUSED.
|
|
optional TierAction tier_action = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Time in days to mark the volume's data block as cold and make it
|
|
// eligible for tiering, can be range from 2-183. Default is 31.
|
|
optional int32 cooling_threshold_days = 2
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Flag indicating that the hot tier bypass mode is enabled. Default
|
|
// is false. This is only applicable to Flex service level.
|
|
optional bool hot_tier_bypass_mode_enabled = 3
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// The Hybrid Replication parameters for the volume.
|
|
message HybridReplicationParameters {
|
|
// Type of the volume's hybrid replication.
|
|
enum VolumeHybridReplicationType {
|
|
// Unspecified hybrid replication type.
|
|
VOLUME_HYBRID_REPLICATION_TYPE_UNSPECIFIED = 0;
|
|
|
|
// Hybrid replication type for migration.
|
|
MIGRATION = 1;
|
|
|
|
// Hybrid replication type for continuous replication.
|
|
CONTINUOUS_REPLICATION = 2;
|
|
|
|
// New field for reversible OnPrem replication, to be used for data
|
|
// protection.
|
|
ONPREM_REPLICATION = 3;
|
|
|
|
// New field for reversible OnPrem replication, to be used for data
|
|
// protection.
|
|
REVERSE_ONPREM_REPLICATION = 4;
|
|
}
|
|
|
|
// Required. Desired name for the replication of this volume.
|
|
string replication = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "netapp.googleapis.com/Replication"
|
|
}
|
|
];
|
|
|
|
// Required. Name of the user's local source volume to be peered with the
|
|
// destination volume.
|
|
string peer_volume_name = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. Name of the user's local source cluster to be peered with the
|
|
// destination cluster.
|
|
string peer_cluster_name = 3 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. Name of the user's local source vserver svm to be peered with the
|
|
// destination vserver svm.
|
|
string peer_svm_name = 4 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. List of node ip addresses to be peered with.
|
|
repeated string peer_ip_addresses = 5
|
|
[(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. Name of source cluster location associated with the Hybrid
|
|
// replication. This is a free-form field for the display purpose only.
|
|
string cluster_location = 6 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Description of the replication.
|
|
string description = 7 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Labels to be added to the replication as the key value pairs.
|
|
map<string, string> labels = 8 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Replication Schedule for the replication created.
|
|
HybridReplicationSchedule replication_schedule = 9
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Type of the hybrid replication.
|
|
VolumeHybridReplicationType hybrid_replication_type = 10
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Constituent volume count for large volume.
|
|
int32 large_volume_constituent_count = 11
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Cache Parameters for the volume.
|
|
message CacheParameters {
|
|
// State of the cache volume indicating the peering status.
|
|
enum CacheState {
|
|
// Default unspecified state.
|
|
CACHE_STATE_UNSPECIFIED = 0;
|
|
|
|
// State indicating waiting for cluster peering to be established.
|
|
PENDING_CLUSTER_PEERING = 1;
|
|
|
|
// State indicating waiting for SVM peering to be established.
|
|
PENDING_SVM_PEERING = 2;
|
|
|
|
// State indicating successful establishment of peering with origin
|
|
// volumes's ONTAP cluster.
|
|
PEERED = 3;
|
|
|
|
// Terminal state wherein peering with origin volume's ONTAP cluster
|
|
// has failed.
|
|
ERROR = 4;
|
|
}
|
|
|
|
// Required. Name of the origin volume for the cache volume.
|
|
string peer_volume_name = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. Name of the origin volume's ONTAP cluster.
|
|
string peer_cluster_name = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. Name of the origin volume's SVM.
|
|
string peer_svm_name = 3 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. List of IC LIF addresses of the origin volume's ONTAP cluster.
|
|
repeated string peer_ip_addresses = 4
|
|
[(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. Indicates whether the cache volume has global file lock enabled.
|
|
optional bool enable_global_file_lock = 5
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Configuration of the cache volume.
|
|
CacheConfig cache_config = 6 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. State of the cache volume indicating the peering status.
|
|
CacheState cache_state = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Copy-paste-able commands to be used on user's ONTAP to accept
|
|
// peering requests.
|
|
string command = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. Expiration time for the peering command to be executed on user's
|
|
// ONTAP.
|
|
google.protobuf.Timestamp peering_command_expiry_time = 9
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Temporary passphrase generated to accept cluster peering
|
|
// command.
|
|
string passphrase = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Detailed description of the current cache state.
|
|
string state_details = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
// Configuration of the cache volume.
|
|
message CacheConfig {
|
|
// State of the prepopulation job indicating how the prepopulation is
|
|
// progressing.
|
|
enum CachePrePopulateState {
|
|
// Default unspecified state.
|
|
CACHE_PRE_POPULATE_STATE_UNSPECIFIED = 0;
|
|
|
|
// State representing when the most recent create or update request did not
|
|
// require a prepopulation job.
|
|
NOT_NEEDED = 1;
|
|
|
|
// State representing when the most recent update request requested a
|
|
// prepopulation job but it has not yet completed.
|
|
IN_PROGRESS = 2;
|
|
|
|
// State representing when the most recent update request requested a
|
|
// prepopulation job and it has completed successfully.
|
|
COMPLETE = 3;
|
|
|
|
// State representing when the most recent update request requested a
|
|
// prepopulation job but the prepopulate job failed.
|
|
ERROR = 4;
|
|
}
|
|
|
|
// Optional. Pre-populate cache volume with data from the origin volume.
|
|
CachePrePopulate cache_pre_populate = 1
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Flag indicating whether writeback is enabled for the FlexCache
|
|
// volume.
|
|
optional bool writeback_enabled = 2 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Flag indicating whether a CIFS change notification is enabled for
|
|
// the FlexCache volume.
|
|
optional bool cifs_change_notify_enabled = 5
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. State of the prepopulation job indicating how the
|
|
// prepopulation is progressing.
|
|
CachePrePopulateState cache_pre_populate_state = 6
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
// Pre-populate cache volume with data from the origin volume.
|
|
message CachePrePopulate {
|
|
// Optional. List of directory-paths to be pre-populated for the FlexCache
|
|
// volume.
|
|
repeated string path_list = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. List of directory-paths to be excluded for pre-population for the
|
|
// FlexCache volume.
|
|
repeated string exclude_path_list = 2
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. Flag indicating whether the directories listed with the
|
|
// `path_list` need to be recursively pre-populated.
|
|
optional bool recursion = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Block device represents the device(s) which are stored in the block volume.
|
|
message BlockDevice {
|
|
// Optional. User-defined name for the block device, unique within the volume.
|
|
// In case no user input is provided, name will be auto-generated in the
|
|
// backend. The name must meet the following requirements:
|
|
// * Be between 1 and 255 characters long.
|
|
// * Contain only uppercase or lowercase letters (A-Z, a-z), numbers (0-9),
|
|
// and the following special characters: "-", "_", "}", "{", ".".
|
|
// * Spaces are not allowed.
|
|
optional string name = 1 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Optional. A list of host groups that identify hosts that can mount the
|
|
// block volume. Format:
|
|
// `projects/{project_id}/locations/{location}/hostGroups/{host_group_id}`
|
|
// This field can be updated after the block device is created.
|
|
repeated string host_groups = 2 [
|
|
(google.api.field_behavior) = OPTIONAL,
|
|
(google.api.resource_reference) = {
|
|
type: "netapp.googleapis.com/HostGroup"
|
|
}
|
|
];
|
|
|
|
// Output only. Device identifier of the block volume. This represents
|
|
// `lun_serial_number` for iSCSI volumes.
|
|
string identifier = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. The size of the block device in GiB.
|
|
// Any value provided for the `size_gib` field during volume creation is
|
|
// ignored. The block device's size is system-managed and will be set to match
|
|
// the parent Volume's `capacity_gib`.
|
|
optional int64 size_gib = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Required. Immutable. The OS type of the volume.
|
|
// This field can't be changed after the block device is created.
|
|
OsType os_type = 5 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.field_behavior) = IMMUTABLE
|
|
];
|
|
}
|
|
|
|
// RestoreBackupFilesRequest restores files from a backup to a volume.
|
|
message RestoreBackupFilesRequest {
|
|
// Required. The volume resource name, in the format
|
|
// `projects/{project_id}/locations/{location}/volumes/{volume_id}`
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = { type: "netapp.googleapis.com/Volume" }
|
|
];
|
|
|
|
// Required. The backup resource name, in the format
|
|
// `projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}/backups/{backup_id}`
|
|
string backup = 2 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = { type: "netapp.googleapis.com/Backup" }
|
|
];
|
|
|
|
// Required. List of files to be restored, specified by their absolute path in
|
|
// the source volume.
|
|
repeated string file_list = 3 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. Absolute directory path in the destination volume. This is
|
|
// required if the `file_list` is provided.
|
|
string restore_destination_path = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// RestoreBackupFilesResponse is the result of RestoreBackupFilesRequest.
|
|
message RestoreBackupFilesResponse {}
|
|
|
|
// EstablishVolumePeeringRequest establishes cluster and svm peerings between
|
|
// the source and destination clusters.
|
|
message EstablishVolumePeeringRequest {
|
|
// Required. The volume resource name, in the format
|
|
// `projects/{project_id}/locations/{location}/volumes/{volume_id}`
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = { type: "netapp.googleapis.com/Volume" }
|
|
];
|
|
|
|
// Required. Name of the user's local source cluster to be peered with the
|
|
// destination cluster.
|
|
string peer_cluster_name = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. Name of the user's local source vserver svm to be peered with the
|
|
// destination vserver svm.
|
|
string peer_svm_name = 3 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. List of IPv4 ip addresses to be used for peering.
|
|
repeated string peer_ip_addresses = 4
|
|
[(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Required. Name of the user's local source volume to be peered with the
|
|
// destination volume.
|
|
string peer_volume_name = 5 [(google.api.field_behavior) = REQUIRED];
|
|
}
|