1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.netapp.v1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/cloud/netapp/v1/active_directory.proto"; 24import "google/cloud/netapp/v1/backup.proto"; 25import "google/cloud/netapp/v1/backup_policy.proto"; 26import "google/cloud/netapp/v1/backup_vault.proto"; 27import "google/cloud/netapp/v1/kms.proto"; 28import "google/cloud/netapp/v1/replication.proto"; 29import "google/cloud/netapp/v1/snapshot.proto"; 30import "google/cloud/netapp/v1/storage_pool.proto"; 31import "google/cloud/netapp/v1/volume.proto"; 32import "google/longrunning/operations.proto"; 33import "google/protobuf/empty.proto"; 34import "google/protobuf/timestamp.proto"; 35 36option csharp_namespace = "Google.Cloud.NetApp.V1"; 37option go_package = "cloud.google.com/go/netapp/apiv1/netapppb;netapppb"; 38option java_multiple_files = true; 39option java_outer_classname = "CloudNetappServiceProto"; 40option java_package = "com.google.cloud.netapp.v1"; 41option php_namespace = "Google\\Cloud\\NetApp\\V1"; 42option ruby_package = "Google::Cloud::NetApp::V1"; 43option (google.api.resource_definition) = { 44 type: "compute.googleapis.com/Network" 45 pattern: "projects/{project}/global/networks/{network}" 46}; 47 48// NetApp Files Google Cloud Service 49service NetApp { 50 option (google.api.default_host) = "netapp.googleapis.com"; 51 option (google.api.oauth_scopes) = 52 "https://www.googleapis.com/auth/cloud-platform"; 53 54 // Returns descriptions of all storage pools owned by the caller. 55 rpc ListStoragePools(ListStoragePoolsRequest) 56 returns (ListStoragePoolsResponse) { 57 option (google.api.http) = { 58 get: "/v1/{parent=projects/*/locations/*}/storagePools" 59 }; 60 option (google.api.method_signature) = "parent"; 61 } 62 63 // Creates a new storage pool. 64 rpc CreateStoragePool(CreateStoragePoolRequest) 65 returns (google.longrunning.Operation) { 66 option (google.api.http) = { 67 post: "/v1/{parent=projects/*/locations/*}/storagePools" 68 body: "storage_pool" 69 }; 70 option (google.api.method_signature) = 71 "parent,storage_pool,storage_pool_id"; 72 option (google.longrunning.operation_info) = { 73 response_type: "StoragePool" 74 metadata_type: "OperationMetadata" 75 }; 76 } 77 78 // Returns the description of the specified storage pool by poolId. 79 rpc GetStoragePool(GetStoragePoolRequest) returns (StoragePool) { 80 option (google.api.http) = { 81 get: "/v1/{name=projects/*/locations/*/storagePools/*}" 82 }; 83 option (google.api.method_signature) = "name"; 84 } 85 86 // Updates the storage pool properties with the full spec 87 rpc UpdateStoragePool(UpdateStoragePoolRequest) 88 returns (google.longrunning.Operation) { 89 option (google.api.http) = { 90 patch: "/v1/{storage_pool.name=projects/*/locations/*/storagePools/*}" 91 body: "storage_pool" 92 }; 93 option (google.api.method_signature) = "storage_pool,update_mask"; 94 option (google.longrunning.operation_info) = { 95 response_type: "StoragePool" 96 metadata_type: "OperationMetadata" 97 }; 98 } 99 100 // Warning! This operation will permanently delete the storage pool. 101 rpc DeleteStoragePool(DeleteStoragePoolRequest) 102 returns (google.longrunning.Operation) { 103 option (google.api.http) = { 104 delete: "/v1/{name=projects/*/locations/*/storagePools/*}" 105 }; 106 option (google.api.method_signature) = "name"; 107 option (google.longrunning.operation_info) = { 108 response_type: "google.protobuf.Empty" 109 metadata_type: "OperationMetadata" 110 }; 111 } 112 113 // Lists Volumes in a given project. 114 rpc ListVolumes(ListVolumesRequest) returns (ListVolumesResponse) { 115 option (google.api.http) = { 116 get: "/v1/{parent=projects/*/locations/*}/volumes" 117 }; 118 option (google.api.method_signature) = "parent"; 119 } 120 121 // Gets details of a single Volume. 122 rpc GetVolume(GetVolumeRequest) returns (Volume) { 123 option (google.api.http) = { 124 get: "/v1/{name=projects/*/locations/*/volumes/*}" 125 }; 126 option (google.api.method_signature) = "name"; 127 } 128 129 // Creates a new Volume in a given project and location. 130 rpc CreateVolume(CreateVolumeRequest) returns (google.longrunning.Operation) { 131 option (google.api.http) = { 132 post: "/v1/{parent=projects/*/locations/*}/volumes" 133 body: "volume" 134 }; 135 option (google.api.method_signature) = "parent,volume,volume_id"; 136 option (google.longrunning.operation_info) = { 137 response_type: "Volume" 138 metadata_type: "OperationMetadata" 139 }; 140 } 141 142 // Updates the parameters of a single Volume. 143 rpc UpdateVolume(UpdateVolumeRequest) returns (google.longrunning.Operation) { 144 option (google.api.http) = { 145 patch: "/v1/{volume.name=projects/*/locations/*/volumes/*}" 146 body: "volume" 147 }; 148 option (google.api.method_signature) = "volume,update_mask"; 149 option (google.longrunning.operation_info) = { 150 response_type: "Volume" 151 metadata_type: "OperationMetadata" 152 }; 153 } 154 155 // Deletes a single Volume. 156 rpc DeleteVolume(DeleteVolumeRequest) returns (google.longrunning.Operation) { 157 option (google.api.http) = { 158 delete: "/v1/{name=projects/*/locations/*/volumes/*}" 159 }; 160 option (google.api.method_signature) = "name"; 161 option (google.longrunning.operation_info) = { 162 response_type: "google.protobuf.Empty" 163 metadata_type: "OperationMetadata" 164 }; 165 } 166 167 // Revert an existing volume to a specified snapshot. 168 // Warning! This operation will permanently revert all changes made after the 169 // snapshot was created. 170 rpc RevertVolume(RevertVolumeRequest) returns (google.longrunning.Operation) { 171 option (google.api.http) = { 172 post: "/v1/{name=projects/*/locations/*/volumes/*}:revert" 173 body: "*" 174 }; 175 option (google.longrunning.operation_info) = { 176 response_type: "Volume" 177 metadata_type: "OperationMetadata" 178 }; 179 } 180 181 // Returns descriptions of all snapshots for a volume. 182 rpc ListSnapshots(ListSnapshotsRequest) returns (ListSnapshotsResponse) { 183 option (google.api.http) = { 184 get: "/v1/{parent=projects/*/locations/*/volumes/*}/snapshots" 185 }; 186 option (google.api.method_signature) = "parent"; 187 } 188 189 // Describe a snapshot for a volume. 190 rpc GetSnapshot(GetSnapshotRequest) returns (Snapshot) { 191 option (google.api.http) = { 192 get: "/v1/{name=projects/*/locations/*/volumes/*/snapshots/*}" 193 }; 194 option (google.api.method_signature) = "name"; 195 } 196 197 // Create a new snapshot for a volume. 198 rpc CreateSnapshot(CreateSnapshotRequest) 199 returns (google.longrunning.Operation) { 200 option (google.api.http) = { 201 post: "/v1/{parent=projects/*/locations/*/volumes/*}/snapshots" 202 body: "snapshot" 203 }; 204 option (google.api.method_signature) = "parent,snapshot,snapshot_id"; 205 option (google.longrunning.operation_info) = { 206 response_type: "Snapshot" 207 metadata_type: "OperationMetadata" 208 }; 209 } 210 211 // Deletes a snapshot. 212 rpc DeleteSnapshot(DeleteSnapshotRequest) 213 returns (google.longrunning.Operation) { 214 option (google.api.http) = { 215 delete: "/v1/{name=projects/*/locations/*/volumes/*/snapshots/*}" 216 }; 217 option (google.api.method_signature) = "name"; 218 option (google.longrunning.operation_info) = { 219 response_type: "google.protobuf.Empty" 220 metadata_type: "OperationMetadata" 221 }; 222 } 223 224 // Updates the settings of a specific snapshot. 225 rpc UpdateSnapshot(UpdateSnapshotRequest) 226 returns (google.longrunning.Operation) { 227 option (google.api.http) = { 228 patch: "/v1/{snapshot.name=projects/*/locations/*/volumes/*/snapshots/*}" 229 body: "snapshot" 230 }; 231 option (google.api.method_signature) = "snapshot,update_mask"; 232 option (google.longrunning.operation_info) = { 233 response_type: "Snapshot" 234 metadata_type: "OperationMetadata" 235 }; 236 } 237 238 // Lists active directories. 239 rpc ListActiveDirectories(ListActiveDirectoriesRequest) 240 returns (ListActiveDirectoriesResponse) { 241 option (google.api.http) = { 242 get: "/v1/{parent=projects/*/locations/*}/activeDirectories" 243 }; 244 option (google.api.method_signature) = "parent"; 245 } 246 247 // Describes a specified active directory. 248 rpc GetActiveDirectory(GetActiveDirectoryRequest) returns (ActiveDirectory) { 249 option (google.api.http) = { 250 get: "/v1/{name=projects/*/locations/*/activeDirectories/*}" 251 }; 252 option (google.api.method_signature) = "name"; 253 } 254 255 // CreateActiveDirectory 256 // Creates the active directory specified in the request. 257 rpc CreateActiveDirectory(CreateActiveDirectoryRequest) 258 returns (google.longrunning.Operation) { 259 option (google.api.http) = { 260 post: "/v1/{parent=projects/*/locations/*}/activeDirectories" 261 body: "active_directory" 262 }; 263 option (google.api.method_signature) = 264 "parent,active_directory,active_directory_id"; 265 option (google.longrunning.operation_info) = { 266 response_type: "ActiveDirectory" 267 metadata_type: "OperationMetadata" 268 }; 269 } 270 271 // Update the parameters of an active directories. 272 rpc UpdateActiveDirectory(UpdateActiveDirectoryRequest) 273 returns (google.longrunning.Operation) { 274 option (google.api.http) = { 275 patch: "/v1/{active_directory.name=projects/*/locations/*/activeDirectories/*}" 276 body: "active_directory" 277 }; 278 option (google.api.method_signature) = "active_directory,update_mask"; 279 option (google.longrunning.operation_info) = { 280 response_type: "ActiveDirectory" 281 metadata_type: "OperationMetadata" 282 }; 283 } 284 285 // Delete the active directory specified in the request. 286 rpc DeleteActiveDirectory(DeleteActiveDirectoryRequest) 287 returns (google.longrunning.Operation) { 288 option (google.api.http) = { 289 delete: "/v1/{name=projects/*/locations/*/activeDirectories/*}" 290 }; 291 option (google.api.method_signature) = "name"; 292 option (google.longrunning.operation_info) = { 293 response_type: "google.protobuf.Empty" 294 metadata_type: "OperationMetadata" 295 }; 296 } 297 298 // Returns descriptions of all KMS configs owned by the caller. 299 rpc ListKmsConfigs(ListKmsConfigsRequest) returns (ListKmsConfigsResponse) { 300 option (google.api.http) = { 301 get: "/v1/{parent=projects/*/locations/*}/kmsConfigs" 302 }; 303 option (google.api.method_signature) = "parent"; 304 } 305 306 // Creates a new KMS config. 307 rpc CreateKmsConfig(CreateKmsConfigRequest) 308 returns (google.longrunning.Operation) { 309 option (google.api.http) = { 310 post: "/v1/{parent=projects/*/locations/*}/kmsConfigs" 311 body: "kms_config" 312 }; 313 option (google.api.method_signature) = "parent,kms_config,kms_config_id"; 314 option (google.longrunning.operation_info) = { 315 response_type: "KmsConfig" 316 metadata_type: "OperationMetadata" 317 }; 318 } 319 320 // Returns the description of the specified KMS config by kms_config_id. 321 rpc GetKmsConfig(GetKmsConfigRequest) returns (KmsConfig) { 322 option (google.api.http) = { 323 get: "/v1/{name=projects/*/locations/*/kmsConfigs/*}" 324 }; 325 option (google.api.method_signature) = "name"; 326 } 327 328 // Updates the Kms config properties with the full spec 329 rpc UpdateKmsConfig(UpdateKmsConfigRequest) 330 returns (google.longrunning.Operation) { 331 option (google.api.http) = { 332 patch: "/v1/{kms_config.name=projects/*/locations/*/kmsConfigs/*}" 333 body: "kms_config" 334 }; 335 option (google.api.method_signature) = "kms_config,update_mask"; 336 option (google.longrunning.operation_info) = { 337 response_type: "KmsConfig" 338 metadata_type: "OperationMetadata" 339 }; 340 } 341 342 // Encrypt the existing volumes without CMEK encryption with the desired the 343 // KMS config for the whole region. 344 rpc EncryptVolumes(EncryptVolumesRequest) 345 returns (google.longrunning.Operation) { 346 option (google.api.http) = { 347 post: "/v1/{name=projects/*/locations/*/kmsConfigs/*}:encrypt" 348 body: "*" 349 }; 350 option (google.longrunning.operation_info) = { 351 response_type: "KmsConfig" 352 metadata_type: "OperationMetadata" 353 }; 354 } 355 356 // Verifies KMS config reachability. 357 rpc VerifyKmsConfig(VerifyKmsConfigRequest) 358 returns (VerifyKmsConfigResponse) { 359 option (google.api.http) = { 360 post: "/v1/{name=projects/*/locations/*/kmsConfigs/*}:verify" 361 body: "*" 362 }; 363 } 364 365 // Warning! This operation will permanently delete the Kms config. 366 rpc DeleteKmsConfig(DeleteKmsConfigRequest) 367 returns (google.longrunning.Operation) { 368 option (google.api.http) = { 369 delete: "/v1/{name=projects/*/locations/*/kmsConfigs/*}" 370 }; 371 option (google.api.method_signature) = "name"; 372 option (google.longrunning.operation_info) = { 373 response_type: "google.protobuf.Empty" 374 metadata_type: "OperationMetadata" 375 }; 376 } 377 378 // Returns descriptions of all replications for a volume. 379 rpc ListReplications(ListReplicationsRequest) 380 returns (ListReplicationsResponse) { 381 option (google.api.http) = { 382 get: "/v1/{parent=projects/*/locations/*/volumes/*}/replications" 383 }; 384 option (google.api.method_signature) = "parent"; 385 } 386 387 // Describe a replication for a volume. 388 rpc GetReplication(GetReplicationRequest) returns (Replication) { 389 option (google.api.http) = { 390 get: "/v1/{name=projects/*/locations/*/volumes/*/replications/*}" 391 }; 392 option (google.api.method_signature) = "name"; 393 } 394 395 // Create a new replication for a volume. 396 rpc CreateReplication(CreateReplicationRequest) 397 returns (google.longrunning.Operation) { 398 option (google.api.http) = { 399 post: "/v1/{parent=projects/*/locations/*/volumes/*}/replications" 400 body: "replication" 401 }; 402 option (google.api.method_signature) = "parent,replication,replication_id"; 403 option (google.longrunning.operation_info) = { 404 response_type: "Replication" 405 metadata_type: "OperationMetadata" 406 }; 407 } 408 409 // Deletes a replication. 410 rpc DeleteReplication(DeleteReplicationRequest) 411 returns (google.longrunning.Operation) { 412 option (google.api.http) = { 413 delete: "/v1/{name=projects/*/locations/*/volumes/*/replications/*}" 414 }; 415 option (google.api.method_signature) = "name"; 416 option (google.longrunning.operation_info) = { 417 response_type: "google.protobuf.Empty" 418 metadata_type: "OperationMetadata" 419 }; 420 } 421 422 // Updates the settings of a specific replication. 423 rpc UpdateReplication(UpdateReplicationRequest) 424 returns (google.longrunning.Operation) { 425 option (google.api.http) = { 426 patch: "/v1/{replication.name=projects/*/locations/*/volumes/*/replications/*}" 427 body: "replication" 428 }; 429 option (google.api.method_signature) = "replication,update_mask"; 430 option (google.longrunning.operation_info) = { 431 response_type: "Replication" 432 metadata_type: "OperationMetadata" 433 }; 434 } 435 436 // Stop Cross Region Replication. 437 rpc StopReplication(StopReplicationRequest) 438 returns (google.longrunning.Operation) { 439 option (google.api.http) = { 440 post: "/v1/{name=projects/*/locations/*/volumes/*/replications/*}:stop" 441 body: "*" 442 }; 443 option (google.longrunning.operation_info) = { 444 response_type: "Replication" 445 metadata_type: "OperationMetadata" 446 }; 447 } 448 449 // Resume Cross Region Replication. 450 rpc ResumeReplication(ResumeReplicationRequest) 451 returns (google.longrunning.Operation) { 452 option (google.api.http) = { 453 post: "/v1/{name=projects/*/locations/*/volumes/*/replications/*}:resume" 454 body: "*" 455 }; 456 option (google.longrunning.operation_info) = { 457 response_type: "Replication" 458 metadata_type: "OperationMetadata" 459 }; 460 } 461 462 // Reverses direction of replication. Source becomes destination and 463 // destination becomes source. 464 rpc ReverseReplicationDirection(ReverseReplicationDirectionRequest) 465 returns (google.longrunning.Operation) { 466 option (google.api.http) = { 467 post: "/v1/{name=projects/*/locations/*/volumes/*/replications/*}:reverseDirection" 468 body: "*" 469 }; 470 option (google.longrunning.operation_info) = { 471 response_type: "Replication" 472 metadata_type: "OperationMetadata" 473 }; 474 } 475 476 // Creates new backup vault 477 rpc CreateBackupVault(CreateBackupVaultRequest) 478 returns (google.longrunning.Operation) { 479 option (google.api.http) = { 480 post: "/v1/{parent=projects/*/locations/*}/backupVaults" 481 body: "backup_vault" 482 }; 483 option (google.api.method_signature) = 484 "parent,backup_vault,backup_vault_id"; 485 option (google.longrunning.operation_info) = { 486 response_type: "BackupVault" 487 metadata_type: "OperationMetadata" 488 }; 489 } 490 491 // Returns the description of the specified backup vault 492 rpc GetBackupVault(GetBackupVaultRequest) returns (BackupVault) { 493 option (google.api.http) = { 494 get: "/v1/{name=projects/*/locations/*/backupVaults/*}" 495 }; 496 option (google.api.method_signature) = "name"; 497 } 498 499 // Returns list of all available backup vaults. 500 rpc ListBackupVaults(ListBackupVaultsRequest) 501 returns (ListBackupVaultsResponse) { 502 option (google.api.http) = { 503 get: "/v1/{parent=projects/*/locations/*}/backupVaults" 504 }; 505 option (google.api.method_signature) = "parent"; 506 } 507 508 // Updates the settings of a specific backup vault. 509 rpc UpdateBackupVault(UpdateBackupVaultRequest) 510 returns (google.longrunning.Operation) { 511 option (google.api.http) = { 512 patch: "/v1/{backup_vault.name=projects/*/locations/*/backupVaults/*}" 513 body: "backup_vault" 514 }; 515 option (google.api.method_signature) = "backup_vault,update_mask"; 516 option (google.longrunning.operation_info) = { 517 response_type: "BackupVault" 518 metadata_type: "OperationMetadata" 519 }; 520 } 521 522 // Warning! This operation will permanently delete the backup vault. 523 rpc DeleteBackupVault(DeleteBackupVaultRequest) 524 returns (google.longrunning.Operation) { 525 option (google.api.http) = { 526 delete: "/v1/{name=projects/*/locations/*/backupVaults/*}" 527 }; 528 option (google.api.method_signature) = "name"; 529 option (google.longrunning.operation_info) = { 530 response_type: "google.protobuf.Empty" 531 metadata_type: "OperationMetadata" 532 }; 533 } 534 535 // Creates a backup from the volume specified in the request 536 // The backup can be created from the given snapshot if specified in the 537 // request. If no snapshot specified, there'll be a new snapshot taken to 538 // initiate the backup creation. 539 rpc CreateBackup(CreateBackupRequest) returns (google.longrunning.Operation) { 540 option (google.api.http) = { 541 post: "/v1/{parent=projects/*/locations/*/backupVaults/*}/backups" 542 body: "backup" 543 }; 544 option (google.api.method_signature) = "parent,backup,backup_id"; 545 option (google.longrunning.operation_info) = { 546 response_type: "Backup" 547 metadata_type: "OperationMetadata" 548 }; 549 } 550 551 // Returns the description of the specified backup 552 rpc GetBackup(GetBackupRequest) returns (Backup) { 553 option (google.api.http) = { 554 get: "/v1/{name=projects/*/locations/*/backupVaults/*/backups/*}" 555 }; 556 option (google.api.method_signature) = "name"; 557 } 558 559 // Returns descriptions of all backups for a backupVault. 560 rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) { 561 option (google.api.http) = { 562 get: "/v1/{parent=projects/*/locations/*/backupVaults/*}/backups" 563 }; 564 option (google.api.method_signature) = "parent"; 565 } 566 567 // Warning! This operation will permanently delete the backup. 568 rpc DeleteBackup(DeleteBackupRequest) returns (google.longrunning.Operation) { 569 option (google.api.http) = { 570 delete: "/v1/{name=projects/*/locations/*/backupVaults/*/backups/*}" 571 }; 572 option (google.api.method_signature) = "name"; 573 option (google.longrunning.operation_info) = { 574 response_type: "google.protobuf.Empty" 575 metadata_type: "OperationMetadata" 576 }; 577 } 578 579 // Update backup with full spec. 580 rpc UpdateBackup(UpdateBackupRequest) returns (google.longrunning.Operation) { 581 option (google.api.http) = { 582 patch: "/v1/{backup.name=projects/*/locations/*/backupVaults/*/backups/*}" 583 body: "backup" 584 }; 585 option (google.api.method_signature) = "backup,update_mask"; 586 option (google.longrunning.operation_info) = { 587 response_type: "Backup" 588 metadata_type: "OperationMetadata" 589 }; 590 } 591 592 // Creates new backup policy 593 rpc CreateBackupPolicy(CreateBackupPolicyRequest) 594 returns (google.longrunning.Operation) { 595 option (google.api.http) = { 596 post: "/v1/{parent=projects/*/locations/*}/backupPolicies" 597 body: "backup_policy" 598 }; 599 option (google.api.method_signature) = 600 "parent,backup_policy,backup_policy_id"; 601 option (google.longrunning.operation_info) = { 602 response_type: "BackupPolicy" 603 metadata_type: "OperationMetadata" 604 }; 605 } 606 607 // Returns the description of the specified backup policy by backup_policy_id. 608 rpc GetBackupPolicy(GetBackupPolicyRequest) returns (BackupPolicy) { 609 option (google.api.http) = { 610 get: "/v1/{name=projects/*/locations/*/backupPolicies/*}" 611 }; 612 option (google.api.method_signature) = "name"; 613 } 614 615 // Returns list of all available backup policies. 616 rpc ListBackupPolicies(ListBackupPoliciesRequest) 617 returns (ListBackupPoliciesResponse) { 618 option (google.api.http) = { 619 get: "/v1/{parent=projects/*/locations/*}/backupPolicies" 620 }; 621 option (google.api.method_signature) = "parent"; 622 } 623 624 // Updates settings of a specific backup policy. 625 rpc UpdateBackupPolicy(UpdateBackupPolicyRequest) 626 returns (google.longrunning.Operation) { 627 option (google.api.http) = { 628 patch: "/v1/{backup_policy.name=projects/*/locations/*/backupPolicies/*}" 629 body: "backup_policy" 630 }; 631 option (google.api.method_signature) = "backup_policy,update_mask"; 632 option (google.longrunning.operation_info) = { 633 response_type: "BackupPolicy" 634 metadata_type: "OperationMetadata" 635 }; 636 } 637 638 // Warning! This operation will permanently delete the backup policy. 639 rpc DeleteBackupPolicy(DeleteBackupPolicyRequest) 640 returns (google.longrunning.Operation) { 641 option (google.api.http) = { 642 delete: "/v1/{name=projects/*/locations/*/backupPolicies/*}" 643 }; 644 option (google.api.method_signature) = "name"; 645 option (google.longrunning.operation_info) = { 646 response_type: "google.protobuf.Empty" 647 metadata_type: "OperationMetadata" 648 }; 649 } 650} 651 652// Represents the metadata of the long-running operation. 653message OperationMetadata { 654 // Output only. The time the operation was created. 655 google.protobuf.Timestamp create_time = 1 656 [(google.api.field_behavior) = OUTPUT_ONLY]; 657 658 // Output only. The time the operation finished running. 659 google.protobuf.Timestamp end_time = 2 660 [(google.api.field_behavior) = OUTPUT_ONLY]; 661 662 // Output only. Server-defined resource path for the target of the operation. 663 string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 664 665 // Output only. Name of the verb executed by the operation. 666 string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 667 668 // Output only. Human-readable status of the operation, if any. 669 string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 670 671 // Output only. Identifies whether the user has requested cancellation 672 // of the operation. Operations that have been canceled successfully 673 // have [Operation.error][] value with a 674 // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to 675 // `Code.CANCELLED`. 676 bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 677 678 // Output only. API version used to start the operation. 679 string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 680} 681