Skip to content

Commit 005b0fd

Browse files
Google APIscopybara-github
authored andcommitted
feat: Enable creation of Onprem Migration in CreateVolume
feat: Add EstablishPeering API for Onprem Migration feat: Add Sync API for Replications feat: Add new Active Directory state for AD Diagnostics support docs: Docs now do not allow underscore in IDs of various Resources PiperOrigin-RevId: 699033921
1 parent 6f7652b commit 005b0fd

11 files changed

Lines changed: 206 additions & 25 deletions

google/cloud/netapp/v1/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ proto_library(
4040
"//google/api:annotations_proto",
4141
"//google/api:client_proto",
4242
"//google/api:field_behavior_proto",
43+
"//google/api:field_info_proto",
4344
"//google/api:resource_proto",
4445
"//google/longrunning:operations_proto",
4546
"@com_google_protobuf//:duration_proto",
@@ -351,7 +352,6 @@ load(
351352

352353
csharp_proto_library(
353354
name = "netapp_csharp_proto",
354-
extra_opts = [],
355355
deps = [":netapp_proto"],
356356
)
357357

google/cloud/netapp/v1/active_directory.proto

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ message CreateActiveDirectoryRequest {
9090
ActiveDirectory active_directory = 2 [(google.api.field_behavior) = REQUIRED];
9191

9292
// Required. ID of the active directory to create. Must be unique within the
93-
// parent resource. Must contain only letters, numbers, underscore and hyphen,
94-
// with the first character a letter or underscore, the last a letter or
95-
// underscore or a number, and a 63 character maximum.
93+
// parent resource. Must contain only letters, numbers and hyphen, with the
94+
// first character a letter , the last a letter or a number, and a 63
95+
// character maximum.
9696
string active_directory_id = 3 [(google.api.field_behavior) = REQUIRED];
9797
}
9898

@@ -152,6 +152,9 @@ message ActiveDirectory {
152152

153153
// Active Directory State is Error
154154
ERROR = 6;
155+
156+
// Active Directory State is Diagnosing.
157+
DIAGNOSING = 7;
155158
}
156159

157160
// Identifier. The resource name of the active directory.

google/cloud/netapp/v1/backup.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,8 @@ message CreateBackupRequest {
199199

200200
// Required. The ID to use for the backup.
201201
// The ID must be unique within the specified backupVault.
202-
// Must contain only letters, numbers, underscore and hyphen, with the first
203-
// character a letter or underscore, the last a letter or underscore or a
202+
// Must contain only letters, numbers and hyphen, with the first
203+
// character a letter, the last a letter or a
204204
// number, and a 63 character maximum.
205205
string backup_id = 2 [(google.api.field_behavior) = REQUIRED];
206206

google/cloud/netapp/v1/backup_policy.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ message CreateBackupPolicyRequest {
114114

115115
// Required. The ID to use for the backup policy.
116116
// The ID must be unique within the specified location.
117-
// Must contain only letters, numbers, underscore and hyphen, with the first
118-
// character a letter or underscore, the last a letter or underscore or a
117+
// Must contain only letters, numbers and hyphen, with the first
118+
// character a letter, the last a letter or a
119119
// number, and a 63 character maximum.
120120
string backup_policy_id = 3 [(google.api.field_behavior) = REQUIRED];
121121
}

google/cloud/netapp/v1/backup_vault.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ message CreateBackupVaultRequest {
142142

143143
// Required. The ID to use for the backupVault.
144144
// The ID must be unique within the specified location.
145-
// Must contain only letters, numbers, underscore and hyphen, with the first
146-
// character a letter or underscore, the last a letter or underscore or a
145+
// Must contain only letters, numbers and hyphen, with the first
146+
// character a letter, the last a letter or a
147147
// number, and a 63 character maximum.
148148
string backup_vault_id = 2 [(google.api.field_behavior) = REQUIRED];
149149

google/cloud/netapp/v1/cloud_netapp_service.proto

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,33 @@ service NetApp {
487487
};
488488
}
489489

490+
// Establish replication peering.
491+
rpc EstablishPeering(EstablishPeeringRequest)
492+
returns (google.longrunning.Operation) {
493+
option (google.api.http) = {
494+
post: "/v1/{name=projects/*/locations/*/volumes/*/replications/*}:establishPeering"
495+
body: "*"
496+
};
497+
option (google.longrunning.operation_info) = {
498+
response_type: "Replication"
499+
metadata_type: "OperationMetadata"
500+
};
501+
}
502+
503+
// Syncs the replication. This will invoke one time volume data transfer from
504+
// source to destination.
505+
rpc SyncReplication(SyncReplicationRequest)
506+
returns (google.longrunning.Operation) {
507+
option (google.api.http) = {
508+
post: "/v1/{name=projects/*/locations/*/volumes/*/replications/*}:sync"
509+
body: "*"
510+
};
511+
option (google.longrunning.operation_info) = {
512+
response_type: "Replication"
513+
metadata_type: "OperationMetadata"
514+
};
515+
}
516+
490517
// Creates new backup vault
491518
rpc CreateBackupVault(CreateBackupVaultRequest)
492519
returns (google.longrunning.Operation) {

google/cloud/netapp/v1/kms.proto

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ message CreateKmsConfigRequest {
8787
];
8888

8989
// Required. Id of the requesting KmsConfig. Must be unique within the parent
90-
// resource. Must contain only letters, numbers, underscore and hyphen, with
91-
// the first character a letter or underscore, the last a letter or underscore
92-
// or a number, and a 63 character maximum.
90+
// resource. Must contain only letters, numbers and hyphen, with the first
91+
// character a letter, the last a letter or a
92+
// number, and a 63 character maximum.
9393
string kms_config_id = 2 [(google.api.field_behavior) = REQUIRED];
9494

9595
// Required. The required parameters to create a new KmsConfig.

google/cloud/netapp/v1/replication.proto

Lines changed: 102 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package google.cloud.netapp.v1;
1818

1919
import "google/api/field_behavior.proto";
2020
import "google/api/resource.proto";
21+
import "google/cloud/netapp/v1/volume.proto";
2122
import "google/protobuf/duration.proto";
2223
import "google/protobuf/field_mask.proto";
2324
import "google/protobuf/timestamp.proto";
@@ -90,6 +91,12 @@ message Replication {
9091

9192
// Replication is in error state.
9293
ERROR = 6;
94+
95+
// Replication is waiting for cluster peering to be established.
96+
PENDING_CLUSTER_PEERING = 8;
97+
98+
// Replication is waiting for SVM peering to be established.
99+
PENDING_SVM_PEERING = 9;
93100
}
94101

95102
// New enum values may be added in future to support different replication
@@ -140,6 +147,24 @@ message Replication {
140147

141148
// Incremental replication is in progress.
142149
TRANSFERRING = 4;
150+
151+
// Baseline replication is in progress.
152+
BASELINE_TRANSFERRING = 5;
153+
154+
// Replication is aborted.
155+
ABORTED = 6;
156+
}
157+
158+
// Hybrid replication type.
159+
enum HybridReplicationType {
160+
// Unspecified hybrid replication type.
161+
HYBRID_REPLICATION_TYPE_UNSPECIFIED = 0;
162+
163+
// Hybrid replication type for migration.
164+
MIGRATION = 1;
165+
166+
// Hybrid replication type for continuous replication.
167+
CONTINUOUS_REPLICATION = 2;
143168
}
144169

145170
// Identifier. The resource name of the Replication.
@@ -202,6 +227,35 @@ message Replication {
202227
(google.api.field_behavior) = OUTPUT_ONLY,
203228
(google.api.resource_reference) = { type: "netapp.googleapis.com/Volume" }
204229
];
230+
231+
// Output only. Hybrid peering details.
232+
HybridPeeringDetails hybrid_peering_details = 16
233+
[(google.api.field_behavior) = OUTPUT_ONLY];
234+
235+
// Optional. Location of the user cluster.
236+
string cluster_location = 18 [(google.api.field_behavior) = OPTIONAL];
237+
238+
// Output only. Type of the hybrid replication.
239+
HybridReplicationType hybrid_replication_type = 19
240+
[(google.api.field_behavior) = OUTPUT_ONLY];
241+
}
242+
243+
// HybridPeeringDetails contains details about the hybrid peering.
244+
message HybridPeeringDetails {
245+
// Optional. IP address of the subnet.
246+
string subnet_ip = 1 [(google.api.field_behavior) = OPTIONAL];
247+
248+
// Optional. Copy-paste-able commands to be used on user's ONTAP to accept
249+
// peering requests.
250+
string command = 2 [(google.api.field_behavior) = OPTIONAL];
251+
252+
// Optional. Expiration time for the peering command to be executed on user's
253+
// ONTAP.
254+
google.protobuf.Timestamp command_expiry_time = 3
255+
[(google.api.field_behavior) = OPTIONAL];
256+
257+
// Optional. Temporary passphrase generated to accept cluster peering command.
258+
string passphrase = 4 [(google.api.field_behavior) = OPTIONAL];
205259
}
206260

207261
// ListReplications lists replications.
@@ -278,6 +332,10 @@ message DestinationVolumeParameters {
278332

279333
// Description for the destination volume.
280334
optional string description = 4;
335+
336+
// Optional. Tiering policy for the volume.
337+
optional TieringPolicy tiering_policy = 5
338+
[(google.api.field_behavior) = OPTIONAL];
281339
}
282340

283341
// CreateReplicationRequest creates a replication.
@@ -295,9 +353,9 @@ message CreateReplicationRequest {
295353
Replication replication = 2 [(google.api.field_behavior) = REQUIRED];
296354

297355
// Required. ID of the replication to create. Must be unique within the parent
298-
// resource. Must contain only letters, numbers, underscore and hyphen, with
299-
// the first character a letter or underscore, the last a letter or underscore
300-
// or a number, and a 63 character maximum.
356+
// resource. Must contain only letters, numbers and hyphen, with the first
357+
// character a letter, the last a letter or a
358+
// number, and a 63 character maximum.
301359
string replication_id = 3 [(google.api.field_behavior) = REQUIRED];
302360
}
303361

@@ -368,3 +426,44 @@ message ReverseReplicationDirectionRequest {
368426
}
369427
];
370428
}
429+
430+
// EstablishPeeringRequest establishes cluster and svm peerings between the
431+
// source and the destination replications.
432+
message EstablishPeeringRequest {
433+
// Required. The resource name of the replication, in the format of
434+
// projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
435+
string name = 1 [
436+
(google.api.field_behavior) = REQUIRED,
437+
(google.api.resource_reference) = {
438+
type: "netapp.googleapis.com/Replication"
439+
}
440+
];
441+
442+
// Required. Name of the user's local source cluster to be peered with the
443+
// destination cluster.
444+
string peer_cluster_name = 2 [(google.api.field_behavior) = REQUIRED];
445+
446+
// Required. Name of the user's local source vserver svm to be peered with the
447+
// destination vserver svm.
448+
string peer_svm_name = 3 [(google.api.field_behavior) = REQUIRED];
449+
450+
// Optional. List of IPv4 ip addresses to be used for peering.
451+
repeated string peer_ip_addresses = 4
452+
[(google.api.field_behavior) = OPTIONAL];
453+
454+
// Required. Name of the user's local source volume to be peered with the
455+
// destination volume.
456+
string peer_volume_name = 5 [(google.api.field_behavior) = REQUIRED];
457+
}
458+
459+
// SyncReplicationRequest syncs the replication from source to destination.
460+
message SyncReplicationRequest {
461+
// Required. The resource name of the replication, in the format of
462+
// projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
463+
string name = 1 [
464+
(google.api.field_behavior) = REQUIRED,
465+
(google.api.resource_reference) = {
466+
type: "netapp.googleapis.com/Replication"
467+
}
468+
];
469+
}

google/cloud/netapp/v1/snapshot.proto

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,9 @@ message CreateSnapshotRequest {
9393
Snapshot snapshot = 2 [(google.api.field_behavior) = REQUIRED];
9494

9595
// Required. ID of the snapshot to create. Must be unique within the parent
96-
// resource. Must contain only letters, numbers, underscore and hyphen, with
97-
// the first character a letter or underscore, the last a letter or underscore
98-
// or a number, and a 63 character maximum.
96+
// resource. Must contain only letters, numbers and hyphen, with the first
97+
// character a letter, the last a letter or a
98+
// number, and a 63 character maximum.
9999
string snapshot_id = 3 [(google.api.field_behavior) = REQUIRED];
100100
}
101101

google/cloud/netapp/v1/storage_pool.proto

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ message CreateStoragePoolRequest {
8989
];
9090

9191
// Required. Id of the requesting storage pool. Must be unique within the
92-
// parent resource. Must contain only letters, numbers, underscore and hyphen,
93-
// with the first character a letter or underscore, the last a letter or
94-
// underscore or a number, and a 63 character maximum.
92+
// parent resource. Must contain only letters, numbers and hyphen, with the
93+
// first character a letter, the last a letter or a number, and a 63 character
94+
// maximum.
9595
string storage_pool_id = 2 [(google.api.field_behavior) = REQUIRED];
9696

9797
// Required. The required parameters to create a new storage pool.

0 commit comments

Comments
 (0)