@@ -94,6 +94,11 @@ service Controller {
94
94
rpc ListSnapshots (ListSnapshotsRequest )
95
95
returns (ListSnapshotsResponse ) {}
96
96
97
+ rpc GetSnapshot (GetSnapshotRequest )
98
+ returns (GetSnapshotResponse ) {
99
+ option (alpha_method) = true ;
100
+ }
101
+
97
102
rpc ControllerExpandVolume (ControllerExpandVolumeRequest )
98
103
returns (ControllerExpandVolumeResponse ) {}
99
104
@@ -1185,6 +1190,10 @@ message ControllerServiceCapability {
1185
1190
// Indicates the SP supports modifying volume with mutable
1186
1191
// parameters. See ControllerModifyVolume for details.
1187
1192
MODIFY_VOLUME = 14 [(alpha_enum_value) = true ];
1193
+
1194
+ // Indicates the SP supports the GetSnapshot RPC.
1195
+ // This enables COs to fetch an existing snapshot.
1196
+ GET_SNAPSHOT = 15 [(alpha_enum_value) = true ];
1188
1197
}
1189
1198
1190
1199
Type type = 1 ;
@@ -1347,6 +1356,25 @@ message ListSnapshotsResponse {
1347
1356
// An empty string is equal to an unspecified field value.
1348
1357
string next_token = 2 ;
1349
1358
}
1359
+ message GetSnapshotRequest {
1360
+ option (alpha_message) = true ;
1361
+
1362
+ // The ID of the snapshot to fetch current snapshot information for.
1363
+ // This field is REQUIRED.
1364
+ string snapshot_id = 1 ;
1365
+
1366
+ // Secrets required by plugin to complete GetSnapshot request.
1367
+ // This field is OPTIONAL. Refer to the `Secrets Requirements`
1368
+ // section on how to use this field.
1369
+ map <string , string > secrets = 2 [(csi_secret) = true ];
1370
+ }
1371
+
1372
+ message GetSnapshotResponse {
1373
+ option (alpha_message) = true ;
1374
+
1375
+ // This field is REQUIRED
1376
+ Snapshot snapshot = 1 ;
1377
+ }
1350
1378
message ControllerExpandVolumeRequest {
1351
1379
// The ID of the volume to expand. This field is REQUIRED.
1352
1380
string volume_id = 1 ;
0 commit comments