1// Copyright 2022 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.vmmigration.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/longrunning/operations.proto"; 24import "google/protobuf/duration.proto"; 25import "google/protobuf/field_mask.proto"; 26import "google/protobuf/timestamp.proto"; 27import "google/rpc/error_details.proto"; 28import "google/rpc/status.proto"; 29 30option csharp_namespace = "Google.Cloud.VMMigration.V1"; 31option go_package = "cloud.google.com/go/vmmigration/apiv1/vmmigrationpb;vmmigrationpb"; 32option java_multiple_files = true; 33option java_outer_classname = "VmMigrationProto"; 34option java_package = "com.google.cloud.vmmigration.v1"; 35option php_namespace = "Google\\Cloud\\VMMigration\\V1"; 36option ruby_package = "Google::Cloud::VMMigration::V1"; 37 38// VM Migration Service 39service VmMigration { 40 option (google.api.default_host) = "vmmigration.googleapis.com"; 41 option (google.api.oauth_scopes) = 42 "https://www.googleapis.com/auth/cloud-platform"; 43 44 // Lists Sources in a given project and location. 45 rpc ListSources(ListSourcesRequest) returns (ListSourcesResponse) { 46 option (google.api.http) = { 47 get: "/v1/{parent=projects/*/locations/*}/sources" 48 }; 49 option (google.api.method_signature) = "parent"; 50 } 51 52 // Gets details of a single Source. 53 rpc GetSource(GetSourceRequest) returns (Source) { 54 option (google.api.http) = { 55 get: "/v1/{name=projects/*/locations/*/sources/*}" 56 }; 57 option (google.api.method_signature) = "name"; 58 } 59 60 // Creates a new Source in a given project and location. 61 rpc CreateSource(CreateSourceRequest) returns (google.longrunning.Operation) { 62 option (google.api.http) = { 63 post: "/v1/{parent=projects/*/locations/*}/sources" 64 body: "source" 65 }; 66 option (google.api.method_signature) = "parent,source,source_id"; 67 option (google.longrunning.operation_info) = { 68 response_type: "Source" 69 metadata_type: "OperationMetadata" 70 }; 71 } 72 73 // Updates the parameters of a single Source. 74 rpc UpdateSource(UpdateSourceRequest) returns (google.longrunning.Operation) { 75 option (google.api.http) = { 76 patch: "/v1/{source.name=projects/*/locations/*/sources/*}" 77 body: "source" 78 }; 79 option (google.api.method_signature) = "source,update_mask"; 80 option (google.longrunning.operation_info) = { 81 response_type: "Source" 82 metadata_type: "OperationMetadata" 83 }; 84 } 85 86 // Deletes a single Source. 87 rpc DeleteSource(DeleteSourceRequest) returns (google.longrunning.Operation) { 88 option (google.api.http) = { 89 delete: "/v1/{name=projects/*/locations/*/sources/*}" 90 }; 91 option (google.api.method_signature) = "name"; 92 option (google.longrunning.operation_info) = { 93 response_type: "google.protobuf.Empty" 94 metadata_type: "OperationMetadata" 95 }; 96 } 97 98 // List remote source's inventory of VMs. 99 // The remote source is the onprem vCenter (remote in the sense it's not in 100 // Compute Engine). The inventory describes the list of existing VMs in that 101 // source. Note that this operation lists the VMs on the remote source, as 102 // opposed to listing the MigratingVms resources in the vmmigration service. 103 rpc FetchInventory(FetchInventoryRequest) returns (FetchInventoryResponse) { 104 option (google.api.http) = { 105 get: "/v1/{source=projects/*/locations/*/sources/*}:fetchInventory" 106 }; 107 option (google.api.method_signature) = "source"; 108 } 109 110 // Lists Utilization Reports of the given Source. 111 rpc ListUtilizationReports(ListUtilizationReportsRequest) 112 returns (ListUtilizationReportsResponse) { 113 option (google.api.http) = { 114 get: "/v1/{parent=projects/*/locations/*/sources/*}/utilizationReports" 115 }; 116 option (google.api.method_signature) = "parent"; 117 } 118 119 // Gets a single Utilization Report. 120 rpc GetUtilizationReport(GetUtilizationReportRequest) 121 returns (UtilizationReport) { 122 option (google.api.http) = { 123 get: "/v1/{name=projects/*/locations/*/sources/*/utilizationReports/*}" 124 }; 125 option (google.api.method_signature) = "name"; 126 } 127 128 // Creates a new UtilizationReport. 129 rpc CreateUtilizationReport(CreateUtilizationReportRequest) 130 returns (google.longrunning.Operation) { 131 option (google.api.http) = { 132 post: "/v1/{parent=projects/*/locations/*/sources/*}/utilizationReports" 133 body: "utilization_report" 134 }; 135 option (google.api.method_signature) = 136 "parent,utilization_report,utilization_report_id"; 137 option (google.longrunning.operation_info) = { 138 response_type: "UtilizationReport" 139 metadata_type: "OperationMetadata" 140 }; 141 } 142 143 // Deletes a single Utilization Report. 144 rpc DeleteUtilizationReport(DeleteUtilizationReportRequest) 145 returns (google.longrunning.Operation) { 146 option (google.api.http) = { 147 delete: "/v1/{name=projects/*/locations/*/sources/*/utilizationReports/*}" 148 }; 149 option (google.api.method_signature) = "name"; 150 option (google.longrunning.operation_info) = { 151 response_type: "google.protobuf.Empty" 152 metadata_type: "OperationMetadata" 153 }; 154 } 155 156 // Lists DatacenterConnectors in a given Source. 157 rpc ListDatacenterConnectors(ListDatacenterConnectorsRequest) 158 returns (ListDatacenterConnectorsResponse) { 159 option (google.api.http) = { 160 get: "/v1/{parent=projects/*/locations/*/sources/*}/datacenterConnectors" 161 }; 162 option (google.api.method_signature) = "parent"; 163 } 164 165 // Gets details of a single DatacenterConnector. 166 rpc GetDatacenterConnector(GetDatacenterConnectorRequest) 167 returns (DatacenterConnector) { 168 option (google.api.http) = { 169 get: "/v1/{name=projects/*/locations/*/sources/*/datacenterConnectors/*}" 170 }; 171 option (google.api.method_signature) = "name"; 172 } 173 174 // Creates a new DatacenterConnector in a given Source. 175 rpc CreateDatacenterConnector(CreateDatacenterConnectorRequest) 176 returns (google.longrunning.Operation) { 177 option (google.api.http) = { 178 post: "/v1/{parent=projects/*/locations/*/sources/*}/datacenterConnectors" 179 body: "datacenter_connector" 180 }; 181 option (google.api.method_signature) = 182 "parent,datacenter_connector,datacenter_connector_id"; 183 option (google.longrunning.operation_info) = { 184 response_type: "DatacenterConnector" 185 metadata_type: "OperationMetadata" 186 }; 187 } 188 189 // Deletes a single DatacenterConnector. 190 rpc DeleteDatacenterConnector(DeleteDatacenterConnectorRequest) 191 returns (google.longrunning.Operation) { 192 option (google.api.http) = { 193 delete: "/v1/{name=projects/*/locations/*/sources/*/datacenterConnectors/*}" 194 }; 195 option (google.api.method_signature) = "name"; 196 option (google.longrunning.operation_info) = { 197 response_type: "google.protobuf.Empty" 198 metadata_type: "OperationMetadata" 199 }; 200 } 201 202 // Upgrades the appliance relate to this DatacenterConnector to the in-place 203 // updateable version. 204 rpc UpgradeAppliance(UpgradeApplianceRequest) 205 returns (google.longrunning.Operation) { 206 option (google.api.http) = { 207 post: "/v1/{datacenter_connector=projects/*/locations/*/sources/*/datacenterConnectors/*}:upgradeAppliance" 208 body: "*" 209 }; 210 option (google.longrunning.operation_info) = { 211 response_type: "UpgradeApplianceResponse" 212 metadata_type: "OperationMetadata" 213 }; 214 } 215 216 // Creates a new MigratingVm in a given Source. 217 rpc CreateMigratingVm(CreateMigratingVmRequest) 218 returns (google.longrunning.Operation) { 219 option (google.api.http) = { 220 post: "/v1/{parent=projects/*/locations/*/sources/*}/migratingVms" 221 body: "migrating_vm" 222 }; 223 option (google.api.method_signature) = 224 "parent,migrating_vm,migrating_vm_id"; 225 option (google.longrunning.operation_info) = { 226 response_type: "MigratingVm" 227 metadata_type: "OperationMetadata" 228 }; 229 } 230 231 // Lists MigratingVms in a given Source. 232 rpc ListMigratingVms(ListMigratingVmsRequest) 233 returns (ListMigratingVmsResponse) { 234 option (google.api.http) = { 235 get: "/v1/{parent=projects/*/locations/*/sources/*}/migratingVms" 236 }; 237 option (google.api.method_signature) = "parent"; 238 } 239 240 // Gets details of a single MigratingVm. 241 rpc GetMigratingVm(GetMigratingVmRequest) returns (MigratingVm) { 242 option (google.api.http) = { 243 get: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*}" 244 }; 245 option (google.api.method_signature) = "name"; 246 } 247 248 // Updates the parameters of a single MigratingVm. 249 rpc UpdateMigratingVm(UpdateMigratingVmRequest) 250 returns (google.longrunning.Operation) { 251 option (google.api.http) = { 252 patch: "/v1/{migrating_vm.name=projects/*/locations/*/sources/*/migratingVms/*}" 253 body: "migrating_vm" 254 }; 255 option (google.api.method_signature) = "migrating_vm,update_mask"; 256 option (google.longrunning.operation_info) = { 257 response_type: "MigratingVm" 258 metadata_type: "OperationMetadata" 259 }; 260 } 261 262 // Deletes a single MigratingVm. 263 rpc DeleteMigratingVm(DeleteMigratingVmRequest) 264 returns (google.longrunning.Operation) { 265 option (google.api.http) = { 266 delete: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*}" 267 }; 268 option (google.api.method_signature) = "name"; 269 option (google.longrunning.operation_info) = { 270 response_type: "google.protobuf.Empty" 271 metadata_type: "OperationMetadata" 272 }; 273 } 274 275 // Starts migration for a VM. Starts the process of uploading 276 // data and creating snapshots, in replication cycles scheduled by the policy. 277 rpc StartMigration(StartMigrationRequest) 278 returns (google.longrunning.Operation) { 279 option (google.api.http) = { 280 post: "/v1/{migrating_vm=projects/*/locations/*/sources/*/migratingVms/*}:startMigration" 281 body: "*" 282 }; 283 option (google.api.method_signature) = "migrating_vm"; 284 option (google.longrunning.operation_info) = { 285 response_type: "StartMigrationResponse" 286 metadata_type: "OperationMetadata" 287 }; 288 } 289 290 // Resumes a migration for a VM. When called on a paused migration, will start 291 // the process of uploading data and creating snapshots; when called on a 292 // completed cut-over migration, will update the migration to active state and 293 // start the process of uploading data and creating snapshots. 294 rpc ResumeMigration(ResumeMigrationRequest) 295 returns (google.longrunning.Operation) { 296 option (google.api.http) = { 297 post: "/v1/{migrating_vm=projects/*/locations/*/sources/*/migratingVms/*}:resumeMigration" 298 body: "*" 299 }; 300 option (google.longrunning.operation_info) = { 301 response_type: "ResumeMigrationResponse" 302 metadata_type: "OperationMetadata" 303 }; 304 } 305 306 // Pauses a migration for a VM. If cycle tasks are running they will be 307 // cancelled, preserving source task data. Further replication cycles will not 308 // be triggered while the VM is paused. 309 rpc PauseMigration(PauseMigrationRequest) 310 returns (google.longrunning.Operation) { 311 option (google.api.http) = { 312 post: "/v1/{migrating_vm=projects/*/locations/*/sources/*/migratingVms/*}:pauseMigration" 313 body: "*" 314 }; 315 option (google.longrunning.operation_info) = { 316 response_type: "PauseMigrationResponse" 317 metadata_type: "OperationMetadata" 318 }; 319 } 320 321 // Marks a migration as completed, deleting migration resources that are no 322 // longer being used. Only applicable after cutover is done. 323 rpc FinalizeMigration(FinalizeMigrationRequest) 324 returns (google.longrunning.Operation) { 325 option (google.api.http) = { 326 post: "/v1/{migrating_vm=projects/*/locations/*/sources/*/migratingVms/*}:finalizeMigration" 327 body: "*" 328 }; 329 option (google.api.method_signature) = "migrating_vm"; 330 option (google.longrunning.operation_info) = { 331 response_type: "FinalizeMigrationResponse" 332 metadata_type: "OperationMetadata" 333 }; 334 } 335 336 // Initiates a Clone of a specific migrating VM. 337 rpc CreateCloneJob(CreateCloneJobRequest) 338 returns (google.longrunning.Operation) { 339 option (google.api.http) = { 340 post: "/v1/{parent=projects/*/locations/*/sources/*/migratingVms/*}/cloneJobs" 341 body: "clone_job" 342 }; 343 option (google.api.method_signature) = "parent,clone_job,clone_job_id"; 344 option (google.longrunning.operation_info) = { 345 response_type: "CloneJob" 346 metadata_type: "OperationMetadata" 347 }; 348 } 349 350 // Initiates the cancellation of a running clone job. 351 rpc CancelCloneJob(CancelCloneJobRequest) 352 returns (google.longrunning.Operation) { 353 option (google.api.http) = { 354 post: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*/cloneJobs/*}:cancel" 355 body: "*" 356 }; 357 option (google.api.method_signature) = "name"; 358 option (google.longrunning.operation_info) = { 359 response_type: "CancelCloneJobResponse" 360 metadata_type: "OperationMetadata" 361 }; 362 } 363 364 // Lists CloneJobs of a given migrating VM. 365 rpc ListCloneJobs(ListCloneJobsRequest) returns (ListCloneJobsResponse) { 366 option (google.api.http) = { 367 get: "/v1/{parent=projects/*/locations/*/sources/*/migratingVms/*}/cloneJobs" 368 }; 369 option (google.api.method_signature) = "parent"; 370 } 371 372 // Gets details of a single CloneJob. 373 rpc GetCloneJob(GetCloneJobRequest) returns (CloneJob) { 374 option (google.api.http) = { 375 get: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*/cloneJobs/*}" 376 }; 377 option (google.api.method_signature) = "name"; 378 } 379 380 // Initiates a Cutover of a specific migrating VM. 381 // The returned LRO is completed when the cutover job resource is created 382 // and the job is initiated. 383 rpc CreateCutoverJob(CreateCutoverJobRequest) 384 returns (google.longrunning.Operation) { 385 option (google.api.http) = { 386 post: "/v1/{parent=projects/*/locations/*/sources/*/migratingVms/*}/cutoverJobs" 387 body: "cutover_job" 388 }; 389 option (google.api.method_signature) = "parent,cutover_job,cutover_job_id"; 390 option (google.longrunning.operation_info) = { 391 response_type: "CutoverJob" 392 metadata_type: "OperationMetadata" 393 }; 394 } 395 396 // Initiates the cancellation of a running cutover job. 397 rpc CancelCutoverJob(CancelCutoverJobRequest) 398 returns (google.longrunning.Operation) { 399 option (google.api.http) = { 400 post: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*/cutoverJobs/*}:cancel" 401 body: "*" 402 }; 403 option (google.api.method_signature) = "name"; 404 option (google.longrunning.operation_info) = { 405 response_type: "CancelCutoverJobResponse" 406 metadata_type: "OperationMetadata" 407 }; 408 } 409 410 // Lists CutoverJobs of a given migrating VM. 411 rpc ListCutoverJobs(ListCutoverJobsRequest) 412 returns (ListCutoverJobsResponse) { 413 option (google.api.http) = { 414 get: "/v1/{parent=projects/*/locations/*/sources/*/migratingVms/*}/cutoverJobs" 415 }; 416 option (google.api.method_signature) = "parent"; 417 } 418 419 // Gets details of a single CutoverJob. 420 rpc GetCutoverJob(GetCutoverJobRequest) returns (CutoverJob) { 421 option (google.api.http) = { 422 get: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*/cutoverJobs/*}" 423 }; 424 option (google.api.method_signature) = "name"; 425 } 426 427 // Lists Groups in a given project and location. 428 rpc ListGroups(ListGroupsRequest) returns (ListGroupsResponse) { 429 option (google.api.http) = { 430 get: "/v1/{parent=projects/*/locations/*}/groups" 431 }; 432 option (google.api.method_signature) = "parent"; 433 } 434 435 // Gets details of a single Group. 436 rpc GetGroup(GetGroupRequest) returns (Group) { 437 option (google.api.http) = { 438 get: "/v1/{name=projects/*/locations/*/groups/*}" 439 }; 440 option (google.api.method_signature) = "name"; 441 } 442 443 // Creates a new Group in a given project and location. 444 rpc CreateGroup(CreateGroupRequest) returns (google.longrunning.Operation) { 445 option (google.api.http) = { 446 post: "/v1/{parent=projects/*/locations/*}/groups" 447 body: "group" 448 }; 449 option (google.api.method_signature) = "parent,group,group_id"; 450 option (google.longrunning.operation_info) = { 451 response_type: "Group" 452 metadata_type: "OperationMetadata" 453 }; 454 } 455 456 // Updates the parameters of a single Group. 457 rpc UpdateGroup(UpdateGroupRequest) returns (google.longrunning.Operation) { 458 option (google.api.http) = { 459 patch: "/v1/{group.name=projects/*/locations/*/groups/*}" 460 body: "group" 461 }; 462 option (google.api.method_signature) = "group,update_mask"; 463 option (google.longrunning.operation_info) = { 464 response_type: "Group" 465 metadata_type: "OperationMetadata" 466 }; 467 } 468 469 // Deletes a single Group. 470 rpc DeleteGroup(DeleteGroupRequest) returns (google.longrunning.Operation) { 471 option (google.api.http) = { 472 delete: "/v1/{name=projects/*/locations/*/groups/*}" 473 }; 474 option (google.api.method_signature) = "name"; 475 option (google.longrunning.operation_info) = { 476 response_type: "google.protobuf.Empty" 477 metadata_type: "OperationMetadata" 478 }; 479 } 480 481 // Adds a MigratingVm to a Group. 482 rpc AddGroupMigration(AddGroupMigrationRequest) 483 returns (google.longrunning.Operation) { 484 option (google.api.http) = { 485 post: "/v1/{group=projects/*/locations/*/groups/*}:addGroupMigration" 486 body: "*" 487 }; 488 option (google.api.method_signature) = "group"; 489 option (google.longrunning.operation_info) = { 490 response_type: "AddGroupMigrationResponse" 491 metadata_type: "OperationMetadata" 492 }; 493 } 494 495 // Removes a MigratingVm from a Group. 496 rpc RemoveGroupMigration(RemoveGroupMigrationRequest) 497 returns (google.longrunning.Operation) { 498 option (google.api.http) = { 499 post: "/v1/{group=projects/*/locations/*/groups/*}:removeGroupMigration" 500 body: "*" 501 }; 502 option (google.api.method_signature) = "group"; 503 option (google.longrunning.operation_info) = { 504 response_type: "RemoveGroupMigrationResponse" 505 metadata_type: "OperationMetadata" 506 }; 507 } 508 509 // Lists TargetProjects in a given project. 510 // 511 // NOTE: TargetProject is a global resource; hence the only supported value 512 // for location is `global`. 513 rpc ListTargetProjects(ListTargetProjectsRequest) 514 returns (ListTargetProjectsResponse) { 515 option (google.api.http) = { 516 get: "/v1/{parent=projects/*/locations/*}/targetProjects" 517 }; 518 option (google.api.method_signature) = "parent"; 519 } 520 521 // Gets details of a single TargetProject. 522 // 523 // NOTE: TargetProject is a global resource; hence the only supported value 524 // for location is `global`. 525 rpc GetTargetProject(GetTargetProjectRequest) returns (TargetProject) { 526 option (google.api.http) = { 527 get: "/v1/{name=projects/*/locations/*/targetProjects/*}" 528 }; 529 option (google.api.method_signature) = "name"; 530 } 531 532 // Creates a new TargetProject in a given project. 533 // 534 // NOTE: TargetProject is a global resource; hence the only supported value 535 // for location is `global`. 536 rpc CreateTargetProject(CreateTargetProjectRequest) 537 returns (google.longrunning.Operation) { 538 option (google.api.http) = { 539 post: "/v1/{parent=projects/*/locations/*}/targetProjects" 540 body: "target_project" 541 }; 542 option (google.api.method_signature) = 543 "parent,target_project,target_project_id"; 544 option (google.longrunning.operation_info) = { 545 response_type: "TargetProject" 546 metadata_type: "OperationMetadata" 547 }; 548 } 549 550 // Updates the parameters of a single TargetProject. 551 // 552 // NOTE: TargetProject is a global resource; hence the only supported value 553 // for location is `global`. 554 rpc UpdateTargetProject(UpdateTargetProjectRequest) 555 returns (google.longrunning.Operation) { 556 option (google.api.http) = { 557 patch: "/v1/{target_project.name=projects/*/locations/*/targetProjects/*}" 558 body: "target_project" 559 }; 560 option (google.api.method_signature) = "target_project,update_mask"; 561 option (google.longrunning.operation_info) = { 562 response_type: "TargetProject" 563 metadata_type: "OperationMetadata" 564 }; 565 } 566 567 // Deletes a single TargetProject. 568 // 569 // NOTE: TargetProject is a global resource; hence the only supported value 570 // for location is `global`. 571 rpc DeleteTargetProject(DeleteTargetProjectRequest) 572 returns (google.longrunning.Operation) { 573 option (google.api.http) = { 574 delete: "/v1/{name=projects/*/locations/*/targetProjects/*}" 575 }; 576 option (google.api.method_signature) = "name"; 577 option (google.longrunning.operation_info) = { 578 response_type: "google.protobuf.Empty" 579 metadata_type: "OperationMetadata" 580 }; 581 } 582 583 // Lists ReplicationCycles in a given MigratingVM. 584 rpc ListReplicationCycles(ListReplicationCyclesRequest) 585 returns (ListReplicationCyclesResponse) { 586 option (google.api.http) = { 587 get: "/v1/{parent=projects/*/locations/*/sources/*/migratingVms/*}/replicationCycles" 588 }; 589 option (google.api.method_signature) = "parent"; 590 } 591 592 // Gets details of a single ReplicationCycle. 593 rpc GetReplicationCycle(GetReplicationCycleRequest) 594 returns (ReplicationCycle) { 595 option (google.api.http) = { 596 get: "/v1/{name=projects/*/locations/*/sources/*/migratingVms/*/replicationCycles/*}" 597 }; 598 option (google.api.method_signature) = "name"; 599 } 600} 601 602// Controls the level of details of a Utilization Report. 603enum UtilizationReportView { 604 // The default / unset value. 605 // The API will default to FULL on single report request and BASIC for 606 // multiple reports request. 607 UTILIZATION_REPORT_VIEW_UNSPECIFIED = 0; 608 609 // Get the report metadata, without the list of VMs and their utilization 610 // info. 611 BASIC = 1; 612 613 // Include everything. 614 FULL = 2; 615} 616 617// Controls the level of details of a Migrating VM. 618enum MigratingVmView { 619 // View is unspecified. The API will fallback to the default value. 620 MIGRATING_VM_VIEW_UNSPECIFIED = 0; 621 622 // Get the migrating VM basic details. 623 // The basic details do not include the recent clone jobs and recent cutover 624 // jobs lists. 625 MIGRATING_VM_VIEW_BASIC = 1; 626 627 // Include everything. 628 MIGRATING_VM_VIEW_FULL = 2; 629} 630 631// Types of disks supported for Compute Engine VM. 632enum ComputeEngineDiskType { 633 // An unspecified disk type. Will be used as STANDARD. 634 COMPUTE_ENGINE_DISK_TYPE_UNSPECIFIED = 0; 635 636 // A Standard disk type. 637 COMPUTE_ENGINE_DISK_TYPE_STANDARD = 1; 638 639 // SSD hard disk type. 640 COMPUTE_ENGINE_DISK_TYPE_SSD = 2; 641 642 // An alternative to SSD persistent disks that balance performance and 643 // cost. 644 COMPUTE_ENGINE_DISK_TYPE_BALANCED = 3; 645} 646 647// Types of licenses used in OS adaptation. 648enum ComputeEngineLicenseType { 649 // The license type is the default for the OS. 650 COMPUTE_ENGINE_LICENSE_TYPE_DEFAULT = 0; 651 652 // The license type is Pay As You Go license type. 653 COMPUTE_ENGINE_LICENSE_TYPE_PAYG = 1; 654 655 // The license type is Bring Your Own License type. 656 COMPUTE_ENGINE_LICENSE_TYPE_BYOL = 2; 657} 658 659// Possible values for vm boot option. 660enum ComputeEngineBootOption { 661 // The boot option is unknown. 662 COMPUTE_ENGINE_BOOT_OPTION_UNSPECIFIED = 0; 663 664 // The boot option is EFI. 665 COMPUTE_ENGINE_BOOT_OPTION_EFI = 1; 666 667 // The boot option is BIOS. 668 COMPUTE_ENGINE_BOOT_OPTION_BIOS = 2; 669} 670 671// ReplicationCycle contains information about the current replication cycle 672// status. 673message ReplicationCycle { 674 option (google.api.resource) = { 675 type: "vmmigration.googleapis.com/ReplicationCycle" 676 pattern: "projects/{project}/locations/{location}/sources/{source}/migratingVms/{migrating_vm}/replicationCycles/{replication_cycle}" 677 }; 678 679 // Possible states of a replication cycle. 680 enum State { 681 // The state is unknown. This is used for API compatibility only and is not 682 // used by the system. 683 STATE_UNSPECIFIED = 0; 684 685 // The replication cycle is running. 686 RUNNING = 1; 687 688 // The replication cycle is paused. 689 PAUSED = 2; 690 691 // The replication cycle finished with errors. 692 FAILED = 3; 693 694 // The replication cycle finished successfully. 695 SUCCEEDED = 4; 696 } 697 698 // The identifier of the ReplicationCycle. 699 string name = 13; 700 701 // The cycle's ordinal number. 702 int32 cycle_number = 10; 703 704 // The time the replication cycle has started. 705 google.protobuf.Timestamp start_time = 1; 706 707 // The time the replication cycle has ended. 708 google.protobuf.Timestamp end_time = 6; 709 710 // The accumulated duration the replication cycle was paused. 711 google.protobuf.Duration total_pause_duration = 7; 712 713 // The current progress in percentage of this cycle. 714 // Was replaced by 'steps' field, which breaks down the cycle progression more 715 // accurately. 716 int32 progress_percent = 5 [deprecated = true]; 717 718 // The cycle's steps list representing its progress. 719 repeated CycleStep steps = 9; 720 721 // State of the ReplicationCycle. 722 State state = 11; 723 724 // Provides details on the state of the cycle in case of an error. 725 google.rpc.Status error = 12; 726} 727 728// CycleStep holds information about a step progress. 729message CycleStep { 730 oneof step { 731 // Initializing replication step. 732 InitializingReplicationStep initializing_replication = 3; 733 734 // Replicating step. 735 ReplicatingStep replicating = 4; 736 737 // Post processing step. 738 PostProcessingStep post_processing = 5; 739 } 740 741 // The time the cycle step has started. 742 google.protobuf.Timestamp start_time = 1; 743 744 // The time the cycle step has ended. 745 google.protobuf.Timestamp end_time = 2; 746} 747 748// InitializingReplicationStep contains specific step details. 749message InitializingReplicationStep {} 750 751// ReplicatingStep contains specific step details. 752message ReplicatingStep { 753 // Total bytes to be handled in the step. 754 int64 total_bytes = 1; 755 756 // Replicated bytes in the step. 757 int64 replicated_bytes = 2; 758 759 // The source disks replication rate for the last 2 minutes in bytes per 760 // second. 761 int64 last_two_minutes_average_bytes_per_second = 3; 762 763 // The source disks replication rate for the last 30 minutes in bytes per 764 // second. 765 int64 last_thirty_minutes_average_bytes_per_second = 4; 766} 767 768// PostProcessingStep contains specific step details. 769message PostProcessingStep {} 770 771// ReplicationSync contain information about the last replica sync to the cloud. 772message ReplicationSync { 773 // The most updated snapshot created time in the source that finished 774 // replication. 775 google.protobuf.Timestamp last_sync_time = 1; 776} 777 778// MigratingVm describes the VM that will be migrated from a Source environment 779// and its replication state. 780message MigratingVm { 781 option (google.api.resource) = { 782 type: "vmmigration.googleapis.com/MigratingVm" 783 pattern: "projects/{project}/locations/{location}/sources/{source}/migratingVms/{migrating_vm}" 784 }; 785 786 // The possible values of the state/health of source VM. 787 enum State { 788 // The state was not sampled by the health checks yet. 789 STATE_UNSPECIFIED = 0; 790 791 // The VM in the source is being verified. 792 PENDING = 1; 793 794 // The source VM was verified, and it's ready to start replication. 795 READY = 2; 796 797 // Migration is going through the first sync cycle. 798 FIRST_SYNC = 3; 799 800 // The replication is active, and it's running or scheduled to run. 801 ACTIVE = 4; 802 803 // The source VM is being turned off, and a final replication is currently 804 // running. 805 CUTTING_OVER = 7; 806 807 // The source VM was stopped and replicated. The replication is currently 808 // paused. 809 CUTOVER = 8; 810 811 // A cutover job is active and replication cycle is running the final sync. 812 FINAL_SYNC = 9; 813 814 // The replication was paused by the user and no cycles are scheduled to 815 // run. 816 PAUSED = 10; 817 818 // The migrating VM is being finalized and migration resources are being 819 // removed. 820 FINALIZING = 11; 821 822 // The replication process is done. The migrating VM is finalized and no 823 // longer consumes billable resources. 824 FINALIZED = 12; 825 826 // The replication process encountered an unrecoverable error and was 827 // aborted. 828 ERROR = 13; 829 } 830 831 // The default configuration of the target VM that will be created in Google 832 // Cloud as a result of the migration. 833 oneof target_vm_defaults { 834 // Details of the target VM in Compute Engine. 835 ComputeEngineTargetDefaults compute_engine_target_defaults = 26; 836 } 837 838 // Details about the source VM. 839 oneof source_vm_details { 840 // Output only. Details of the VM from an AWS source. 841 AwsSourceVmDetails aws_source_vm_details = 29 842 [(google.api.field_behavior) = OUTPUT_ONLY]; 843 } 844 845 // Output only. The identifier of the MigratingVm. 846 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 847 848 // The unique ID of the VM in the source. 849 // The VM's name in vSphere can be changed, so this is not the VM's name but 850 // rather its moRef id. This id is of the form vm-<num>. 851 string source_vm_id = 2; 852 853 // The display name attached to the MigratingVm by the user. 854 string display_name = 18; 855 856 // The description attached to the migrating VM by the user. 857 string description = 3; 858 859 // The replication schedule policy. 860 SchedulePolicy policy = 8; 861 862 // Output only. The time the migrating VM was created (this refers to this 863 // resource and not to the time it was installed in the source). 864 google.protobuf.Timestamp create_time = 9 865 [(google.api.field_behavior) = OUTPUT_ONLY]; 866 867 // Output only. The last time the migrating VM resource was updated. 868 google.protobuf.Timestamp update_time = 10 869 [(google.api.field_behavior) = OUTPUT_ONLY]; 870 871 // Output only. The most updated snapshot created time in the source that 872 // finished replication. 873 ReplicationSync last_sync = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 874 875 // Output only. State of the MigratingVm. 876 State state = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; 877 878 // Output only. The last time the migrating VM state was updated. 879 google.protobuf.Timestamp state_time = 22 880 [(google.api.field_behavior) = OUTPUT_ONLY]; 881 882 // Output only. The percentage progress of the current running replication 883 // cycle. 884 ReplicationCycle current_sync_info = 13 885 [(google.api.field_behavior) = OUTPUT_ONLY]; 886 887 // Output only. The group this migrating vm is included in, if any. The group 888 // is represented by the full path of the appropriate 889 // [Group][google.cloud.vmmigration.v1.Group] resource. 890 string group = 15 [ 891 (google.api.field_behavior) = OUTPUT_ONLY, 892 (google.api.resource_reference) = { 893 child_type: "vmmigration.googleapis.com/Group" 894 } 895 ]; 896 897 // The labels of the migrating VM. 898 map<string, string> labels = 16; 899 900 // Output only. The recent [clone jobs][google.cloud.vmmigration.v1.CloneJob] 901 // performed on the migrating VM. This field holds the vm's last completed 902 // clone job and the vm's running clone job, if one exists. 903 // Note: To have this field populated you need to explicitly request it via 904 // the "view" parameter of the Get/List request. 905 repeated CloneJob recent_clone_jobs = 17 906 [(google.api.field_behavior) = OUTPUT_ONLY]; 907 908 // Output only. Provides details on the state of the Migrating VM in case of 909 // an error in replication. 910 google.rpc.Status error = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; 911 912 // Output only. The recent cutover jobs performed on the migrating VM. 913 // This field holds the vm's last completed cutover job and the vm's 914 // running cutover job, if one exists. 915 // Note: To have this field populated you need to explicitly request it via 916 // the "view" parameter of the Get/List request. 917 repeated CutoverJob recent_cutover_jobs = 20 918 [(google.api.field_behavior) = OUTPUT_ONLY]; 919} 920 921// CloneJob describes the process of creating a clone of a 922// [MigratingVM][google.cloud.vmmigration.v1.MigratingVm] to the 923// requested target based on the latest successful uploaded snapshots. 924// While the migration cycles of a MigratingVm take place, it is possible to 925// verify the uploaded VM can be started in the cloud, by creating a clone. The 926// clone can be created without any downtime, and it is created using the latest 927// snapshots which are already in the cloud. The cloneJob is only responsible 928// for its work, not its products, which means once it is finished, it will 929// never touch the instance it created. It will only delete it in case of the 930// CloneJob being cancelled or upon failure to clone. 931message CloneJob { 932 option (google.api.resource) = { 933 type: "vmmigration.googleapis.com/CloneJob" 934 pattern: "projects/{project}/locations/{location}/sources/{source}/migratingVms/{migrating_vm}/cloneJobs/{clone_job}" 935 }; 936 937 // Possible states of the clone job. 938 enum State { 939 // The state is unknown. This is used for API compatibility only and is not 940 // used by the system. 941 STATE_UNSPECIFIED = 0; 942 943 // The clone job has not yet started. 944 PENDING = 1; 945 946 // The clone job is active and running. 947 ACTIVE = 2; 948 949 // The clone job finished with errors. 950 FAILED = 3; 951 952 // The clone job finished successfully. 953 SUCCEEDED = 4; 954 955 // The clone job was cancelled. 956 CANCELLED = 5; 957 958 // The clone job is being cancelled. 959 CANCELLING = 6; 960 961 // OS adaptation is running as part of the clone job to generate license. 962 ADAPTING_OS = 7; 963 } 964 965 // Details of the VM to create as the target of this clone job. 966 oneof target_vm_details { 967 // Output only. Details of the target VM in Compute Engine. 968 ComputeEngineTargetDetails compute_engine_target_details = 20 969 [(google.api.field_behavior) = OUTPUT_ONLY]; 970 } 971 972 // Output only. The time the clone job was created (as an API call, not when 973 // it was actually created in the target). 974 google.protobuf.Timestamp create_time = 1 975 [(google.api.field_behavior) = OUTPUT_ONLY]; 976 977 // Output only. The time the clone job was ended. 978 google.protobuf.Timestamp end_time = 22 979 [(google.api.field_behavior) = OUTPUT_ONLY]; 980 981 // Output only. The name of the clone. 982 string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 983 984 // Output only. State of the clone job. 985 State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 986 987 // Output only. The time the state was last updated. 988 google.protobuf.Timestamp state_time = 14 989 [(google.api.field_behavior) = OUTPUT_ONLY]; 990 991 // Output only. Provides details for the errors that led to the Clone Job's 992 // state. 993 google.rpc.Status error = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; 994 995 // Output only. The clone steps list representing its progress. 996 repeated CloneStep steps = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; 997} 998 999// CloneStep holds information about the clone step progress. 1000message CloneStep { 1001 oneof step { 1002 // Adapting OS step. 1003 AdaptingOSStep adapting_os = 3; 1004 1005 // Preparing VM disks step. 1006 PreparingVMDisksStep preparing_vm_disks = 4; 1007 1008 // Instantiating migrated VM step. 1009 InstantiatingMigratedVMStep instantiating_migrated_vm = 5; 1010 } 1011 1012 // The time the step has started. 1013 google.protobuf.Timestamp start_time = 1; 1014 1015 // The time the step has ended. 1016 google.protobuf.Timestamp end_time = 2; 1017} 1018 1019// AdaptingOSStep contains specific step details. 1020message AdaptingOSStep {} 1021 1022// PreparingVMDisksStep contains specific step details. 1023message PreparingVMDisksStep {} 1024 1025// InstantiatingMigratedVMStep contains specific step details. 1026message InstantiatingMigratedVMStep {} 1027 1028// CutoverJob message describes a cutover of a migrating VM. The CutoverJob is 1029// the operation of shutting down the VM, creating a snapshot and 1030// clonning the VM using the replicated snapshot. 1031message CutoverJob { 1032 option (google.api.resource) = { 1033 type: "vmmigration.googleapis.com/CutoverJob" 1034 pattern: "projects/{project}/locations/{location}/sources/{source}/migratingVms/{migrating_vm}/cutoverJobs/{cutover_job}" 1035 }; 1036 1037 // Possible states of the cutover job. 1038 enum State { 1039 // The state is unknown. This is used for API compatibility only and is not 1040 // used by the system. 1041 STATE_UNSPECIFIED = 0; 1042 1043 // The cutover job has not yet started. 1044 PENDING = 1; 1045 1046 // The cutover job finished with errors. 1047 FAILED = 2; 1048 1049 // The cutover job finished successfully. 1050 SUCCEEDED = 3; 1051 1052 // The cutover job was cancelled. 1053 CANCELLED = 4; 1054 1055 // The cutover job is being cancelled. 1056 CANCELLING = 5; 1057 1058 // The cutover job is active and running. 1059 ACTIVE = 6; 1060 1061 // OS adaptation is running as part of the cutover job to generate license. 1062 ADAPTING_OS = 7; 1063 } 1064 1065 // Details of the VM to create as the target of this cutover job. 1066 oneof target_vm_details { 1067 // Output only. Details of the target VM in Compute Engine. 1068 ComputeEngineTargetDetails compute_engine_target_details = 14 1069 [(google.api.field_behavior) = OUTPUT_ONLY]; 1070 } 1071 1072 // Output only. The time the cutover job was created (as an API call, not when 1073 // it was actually created in the target). 1074 google.protobuf.Timestamp create_time = 1 1075 [(google.api.field_behavior) = OUTPUT_ONLY]; 1076 1077 // Output only. The time the cutover job had finished. 1078 google.protobuf.Timestamp end_time = 16 1079 [(google.api.field_behavior) = OUTPUT_ONLY]; 1080 1081 // Output only. The name of the cutover job. 1082 string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1083 1084 // Output only. State of the cutover job. 1085 State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 1086 1087 // Output only. The time the state was last updated. 1088 google.protobuf.Timestamp state_time = 6 1089 [(google.api.field_behavior) = OUTPUT_ONLY]; 1090 1091 // Output only. The current progress in percentage of the cutover job. 1092 int32 progress_percent = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 1093 1094 // Output only. Provides details for the errors that led to the Cutover Job's 1095 // state. 1096 google.rpc.Status error = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 1097 1098 // Output only. A message providing possible extra details about the current 1099 // state. 1100 string state_message = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 1101 1102 // Output only. The cutover steps list representing its progress. 1103 repeated CutoverStep steps = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; 1104} 1105 1106// CutoverStep holds information about the cutover step progress. 1107message CutoverStep { 1108 oneof step { 1109 // A replication cycle prior cutover step. 1110 ReplicationCycle previous_replication_cycle = 3; 1111 1112 // Shutting down VM step. 1113 ShuttingDownSourceVMStep shutting_down_source_vm = 4; 1114 1115 // Final sync step. 1116 ReplicationCycle final_sync = 5; 1117 1118 // Preparing VM disks step. 1119 PreparingVMDisksStep preparing_vm_disks = 6; 1120 1121 // Instantiating migrated VM step. 1122 InstantiatingMigratedVMStep instantiating_migrated_vm = 7; 1123 } 1124 1125 // The time the step has started. 1126 google.protobuf.Timestamp start_time = 1; 1127 1128 // The time the step has ended. 1129 google.protobuf.Timestamp end_time = 2; 1130} 1131 1132// ShuttingDownSourceVMStep contains specific step details. 1133message ShuttingDownSourceVMStep {} 1134 1135// Request message for 'CreateCloneJob' request. 1136message CreateCloneJobRequest { 1137 // Required. The Clone's parent. 1138 string parent = 1 [ 1139 (google.api.field_behavior) = REQUIRED, 1140 (google.api.resource_reference) = { 1141 child_type: "vmmigration.googleapis.com/CloneJob" 1142 } 1143 ]; 1144 1145 // Required. The clone job identifier. 1146 string clone_job_id = 2 [(google.api.field_behavior) = REQUIRED]; 1147 1148 // Required. The clone request body. 1149 CloneJob clone_job = 3 [(google.api.field_behavior) = REQUIRED]; 1150 1151 // A request ID to identify requests. Specify a unique request ID 1152 // so that if you must retry your request, the server will know to ignore 1153 // the request if it has already been completed. The server will guarantee 1154 // that for at least 60 minutes since the first request. 1155 // 1156 // For example, consider a situation where you make an initial request and t 1157 // he request times out. If you make the request again with the same request 1158 // ID, the server can check if original operation with the same request ID 1159 // was received, and if so, will ignore the second request. This prevents 1160 // clients from accidentally creating duplicate commitments. 1161 // 1162 // The request ID must be a valid UUID with the exception that zero UUID is 1163 // not supported (00000000-0000-0000-0000-000000000000). 1164 string request_id = 4; 1165} 1166 1167// Request message for 'CancelCloneJob' request. 1168message CancelCloneJobRequest { 1169 // Required. The clone job id 1170 string name = 1 [ 1171 (google.api.field_behavior) = REQUIRED, 1172 (google.api.resource_reference) = { 1173 type: "vmmigration.googleapis.com/CloneJob" 1174 } 1175 ]; 1176} 1177 1178// Response message for 'CancelCloneJob' request. 1179message CancelCloneJobResponse {} 1180 1181// Request message for 'ListCloneJobsRequest' request. 1182message ListCloneJobsRequest { 1183 // Required. The parent, which owns this collection of source VMs. 1184 string parent = 1 [ 1185 (google.api.field_behavior) = REQUIRED, 1186 (google.api.resource_reference) = { 1187 child_type: "vmmigration.googleapis.com/CloneJob" 1188 } 1189 ]; 1190 1191 // Optional. The maximum number of clone jobs to return. The service may 1192 // return fewer than this value. If unspecified, at most 500 clone jobs will 1193 // be returned. The maximum value is 1000; values above 1000 will be coerced 1194 // to 1000. 1195 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 1196 1197 // Required. A page token, received from a previous `ListCloneJobs` call. 1198 // Provide this to retrieve the subsequent page. 1199 // 1200 // When paginating, all other parameters provided to `ListCloneJobs` must 1201 // match the call that provided the page token. 1202 string page_token = 3 [(google.api.field_behavior) = REQUIRED]; 1203 1204 // Optional. The filter request. 1205 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 1206 1207 // Optional. the order by fields for the result. 1208 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 1209} 1210 1211// Response message for 'ListCloneJobs' request. 1212message ListCloneJobsResponse { 1213 // Output only. The list of clone jobs response. 1214 repeated CloneJob clone_jobs = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1215 1216 // Output only. A token, which can be sent as `page_token` to retrieve the 1217 // next page. If this field is omitted, there are no subsequent pages. 1218 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1219 1220 // Output only. Locations that could not be reached. 1221 repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1222} 1223 1224// Request message for 'GetCloneJob' request. 1225message GetCloneJobRequest { 1226 // Required. The name of the CloneJob. 1227 string name = 1 [ 1228 (google.api.field_behavior) = REQUIRED, 1229 (google.api.resource_reference) = { 1230 type: "vmmigration.googleapis.com/CloneJob" 1231 } 1232 ]; 1233} 1234 1235// Source message describes a specific vm migration Source resource. It contains 1236// the source environment information. 1237message Source { 1238 option (google.api.resource) = { 1239 type: "vmmigration.googleapis.com/Source" 1240 pattern: "projects/{project}/locations/{location}/sources/{source}" 1241 }; 1242 1243 oneof source_details { 1244 // Vmware type source details. 1245 VmwareSourceDetails vmware = 10; 1246 1247 // AWS type source details. 1248 AwsSourceDetails aws = 12; 1249 } 1250 1251 // Output only. The Source name. 1252 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1253 1254 // Output only. The create time timestamp. 1255 google.protobuf.Timestamp create_time = 2 1256 [(google.api.field_behavior) = OUTPUT_ONLY]; 1257 1258 // Output only. The update time timestamp. 1259 google.protobuf.Timestamp update_time = 3 1260 [(google.api.field_behavior) = OUTPUT_ONLY]; 1261 1262 // The labels of the source. 1263 map<string, string> labels = 4; 1264 1265 // User-provided description of the source. 1266 string description = 6; 1267} 1268 1269// VmwareSourceDetails message describes a specific source details for the 1270// vmware source type. 1271message VmwareSourceDetails { 1272 // The credentials username. 1273 string username = 1; 1274 1275 // Input only. The credentials password. This is write only and can not be 1276 // read in a GET operation. 1277 string password = 2 [(google.api.field_behavior) = INPUT_ONLY]; 1278 1279 // The ip address of the vcenter this Source represents. 1280 string vcenter_ip = 3; 1281 1282 // The thumbprint representing the certificate for the vcenter. 1283 string thumbprint = 4; 1284} 1285 1286// AwsSourceDetails message describes a specific source details for the 1287// AWS source type. 1288message AwsSourceDetails { 1289 // Message describing AWS Credentials using access key id and secret. 1290 message AccessKeyCredentials { 1291 // AWS access key ID. 1292 string access_key_id = 1; 1293 1294 // Input only. AWS secret access key. 1295 string secret_access_key = 2 [(google.api.field_behavior) = INPUT_ONLY]; 1296 } 1297 1298 // Tag is an AWS tag representation. 1299 message Tag { 1300 // Key of tag. 1301 string key = 1; 1302 1303 // Value of tag. 1304 string value = 2; 1305 } 1306 1307 // The possible values of the state. 1308 enum State { 1309 // The state is unknown. This is used for API compatibility only and is not 1310 // used by the system. 1311 STATE_UNSPECIFIED = 0; 1312 1313 // The state was not sampled by the health checks yet. 1314 PENDING = 1; 1315 1316 // The source is available but might not be usable yet due to invalid 1317 // credentials or another reason. 1318 // The error message will contain further details. 1319 FAILED = 2; 1320 1321 // The source exists and its credentials were verified. 1322 ACTIVE = 3; 1323 } 1324 1325 oneof credentials_type { 1326 // AWS Credentials using access key id and secret. 1327 AccessKeyCredentials access_key_creds = 11; 1328 } 1329 1330 // Immutable. The AWS region that the source VMs will be migrated from. 1331 string aws_region = 3 [(google.api.field_behavior) = IMMUTABLE]; 1332 1333 // Output only. State of the source as determined by the health check. 1334 State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 1335 1336 // Output only. Provides details on the state of the Source in case of an 1337 // error. 1338 google.rpc.Status error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 1339 1340 // AWS resource tags to limit the scope of the source inventory. 1341 repeated Tag inventory_tag_list = 10; 1342 1343 // AWS security group names to limit the scope of the source 1344 // inventory. 1345 repeated string inventory_security_group_names = 7; 1346 1347 // User specified tags to add to every M2VM generated resource in AWS. 1348 // These tags will be set in addition to the default tags that are set as part 1349 // of the migration process. The tags must not begin with the reserved prefix 1350 // `m2vm`. 1351 map<string, string> migration_resources_user_tags = 8; 1352 1353 // Output only. The source's public IP. All communication initiated by this 1354 // source will originate from this IP. 1355 string public_ip = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 1356} 1357 1358// DatacenterConnector message describes a connector between the Source and 1359// Google Cloud, which is installed on a vmware datacenter (an OVA vm installed 1360// by the user) to connect the Datacenter to Google Cloud and support vm 1361// migration data transfer. 1362message DatacenterConnector { 1363 option (google.api.resource) = { 1364 type: "vmmigration.googleapis.com/DatacenterConnector" 1365 pattern: "projects/{project}/locations/{location}/sources/{source}/datacenterConnectors/{datacenter_connector}" 1366 }; 1367 1368 // The possible values of the state. 1369 enum State { 1370 // The state is unknown. This is used for API compatibility only and is not 1371 // used by the system. 1372 STATE_UNSPECIFIED = 0; 1373 1374 // The state was not sampled by the health checks yet. 1375 PENDING = 1; 1376 1377 // The source was sampled by health checks and is not available. 1378 OFFLINE = 2; 1379 1380 // The source is available but might not be usable yet due to unvalidated 1381 // credentials or another reason. The credentials referred to are the ones 1382 // to the Source. The error message will contain further details. 1383 FAILED = 3; 1384 1385 // The source exists and its credentials were verified. 1386 ACTIVE = 4; 1387 } 1388 1389 // Output only. The time the connector was created (as an API call, not when 1390 // it was actually installed). 1391 google.protobuf.Timestamp create_time = 1 1392 [(google.api.field_behavior) = OUTPUT_ONLY]; 1393 1394 // Output only. The last time the connector was updated with an API call. 1395 google.protobuf.Timestamp update_time = 2 1396 [(google.api.field_behavior) = OUTPUT_ONLY]; 1397 1398 // Output only. The connector's name. 1399 string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1400 1401 // Immutable. A unique key for this connector. This key is internal to the OVA 1402 // connector and is supplied with its creation during the registration process 1403 // and can not be modified. 1404 string registration_id = 12 [(google.api.field_behavior) = IMMUTABLE]; 1405 1406 // The service account to use in the connector when communicating with the 1407 // cloud. 1408 string service_account = 5; 1409 1410 // The version running in the DatacenterConnector. This is supplied by the OVA 1411 // connector during the registration process and can not be modified. 1412 string version = 6; 1413 1414 // Output only. The communication channel between the datacenter connector and 1415 // Google Cloud. 1416 string bucket = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 1417 1418 // Output only. State of the DatacenterConnector, as determined by the health 1419 // checks. 1420 State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 1421 1422 // Output only. The time the state was last set. 1423 google.protobuf.Timestamp state_time = 8 1424 [(google.api.field_behavior) = OUTPUT_ONLY]; 1425 1426 // Output only. Provides details on the state of the Datacenter Connector in 1427 // case of an error. 1428 google.rpc.Status error = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 1429 1430 // Output only. Appliance OVA version. 1431 // This is the OVA which is manually installed by the user and contains the 1432 // infrastructure for the automatically updatable components on the appliance. 1433 string appliance_infrastructure_version = 13 1434 [(google.api.field_behavior) = OUTPUT_ONLY]; 1435 1436 // Output only. Appliance last installed update bundle version. 1437 // This is the version of the automatically updatable components on the 1438 // appliance. 1439 string appliance_software_version = 14 1440 [(google.api.field_behavior) = OUTPUT_ONLY]; 1441 1442 // Output only. The available versions for updating this appliance. 1443 AvailableUpdates available_versions = 15 1444 [(google.api.field_behavior) = OUTPUT_ONLY]; 1445 1446 // Output only. The status of the current / last upgradeAppliance operation. 1447 UpgradeStatus upgrade_status = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; 1448} 1449 1450// UpgradeStatus contains information about upgradeAppliance operation. 1451message UpgradeStatus { 1452 // The possible values of the state. 1453 enum State { 1454 // The state was not sampled by the health checks yet. 1455 STATE_UNSPECIFIED = 0; 1456 1457 // The upgrade has started. 1458 RUNNING = 1; 1459 1460 // The upgrade failed. 1461 FAILED = 2; 1462 1463 // The upgrade finished successfully. 1464 SUCCEEDED = 3; 1465 } 1466 1467 // The version to upgrade to. 1468 string version = 1; 1469 1470 // The state of the upgradeAppliance operation. 1471 State state = 2; 1472 1473 // Provides details on the state of the upgrade operation in case of an error. 1474 google.rpc.Status error = 3; 1475 1476 // The time the operation was started. 1477 google.protobuf.Timestamp start_time = 4; 1478 1479 // The version from which we upgraded. 1480 string previous_version = 5; 1481} 1482 1483// Holds informatiom about the available versions for upgrade. 1484message AvailableUpdates { 1485 // The newest deployable version of the appliance. 1486 // The current appliance can't be updated into this version, and the owner 1487 // must manually deploy this OVA to a new appliance. 1488 ApplianceVersion new_deployable_appliance = 1; 1489 1490 // The latest version for in place update. 1491 // The current appliance can be updated to this version using the API or m4c 1492 // CLI. 1493 ApplianceVersion in_place_update = 2; 1494} 1495 1496// Describes an appliance version. 1497message ApplianceVersion { 1498 // The appliance version. 1499 string version = 1; 1500 1501 // A link for downloading the version. 1502 string uri = 2; 1503 1504 // Determine whether it's critical to upgrade the appliance to this version. 1505 bool critical = 3; 1506 1507 // Link to a page that contains the version release notes. 1508 string release_notes_uri = 4; 1509} 1510 1511// Request message for 'ListSources' request. 1512message ListSourcesRequest { 1513 // Required. The parent, which owns this collection of sources. 1514 string parent = 1 [ 1515 (google.api.field_behavior) = REQUIRED, 1516 (google.api.resource_reference) = { 1517 child_type: "vmmigration.googleapis.com/Source" 1518 } 1519 ]; 1520 1521 // Optional. The maximum number of sources to return. The service may return 1522 // fewer than this value. If unspecified, at most 500 sources will be 1523 // returned. The maximum value is 1000; values above 1000 will be coerced to 1524 // 1000. 1525 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 1526 1527 // Required. A page token, received from a previous `ListSources` call. 1528 // Provide this to retrieve the subsequent page. 1529 // 1530 // When paginating, all other parameters provided to `ListSources` must 1531 // match the call that provided the page token. 1532 string page_token = 3 [(google.api.field_behavior) = REQUIRED]; 1533 1534 // Optional. The filter request. 1535 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 1536 1537 // Optional. the order by fields for the result. 1538 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 1539} 1540 1541// Response message for 'ListSources' request. 1542message ListSourcesResponse { 1543 // Output only. The list of sources response. 1544 repeated Source sources = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1545 1546 // Output only. A token, which can be sent as `page_token` to retrieve the 1547 // next page. If this field is omitted, there are no subsequent pages. 1548 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1549 1550 // Output only. Locations that could not be reached. 1551 repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1552} 1553 1554// Request message for 'GetSource' request. 1555message GetSourceRequest { 1556 // Required. The Source name. 1557 string name = 1 [ 1558 (google.api.field_behavior) = REQUIRED, 1559 (google.api.resource_reference) = { 1560 type: "vmmigration.googleapis.com/Source" 1561 } 1562 ]; 1563} 1564 1565// Request message for 'CreateSource' request. 1566message CreateSourceRequest { 1567 // Required. The Source's parent. 1568 string parent = 1 [ 1569 (google.api.field_behavior) = REQUIRED, 1570 (google.api.resource_reference) = { 1571 child_type: "vmmigration.googleapis.com/Source" 1572 } 1573 ]; 1574 1575 // Required. The source identifier. 1576 string source_id = 2 [(google.api.field_behavior) = REQUIRED]; 1577 1578 // Required. The create request body. 1579 Source source = 3 [(google.api.field_behavior) = REQUIRED]; 1580 1581 // A request ID to identify requests. Specify a unique request ID 1582 // so that if you must retry your request, the server will know to ignore 1583 // the request if it has already been completed. The server will guarantee 1584 // that for at least 60 minutes since the first request. 1585 // 1586 // For example, consider a situation where you make an initial request and t 1587 // he request times out. If you make the request again with the same request 1588 // ID, the server can check if original operation with the same request ID 1589 // was received, and if so, will ignore the second request. This prevents 1590 // clients from accidentally creating duplicate commitments. 1591 // 1592 // The request ID must be a valid UUID with the exception that zero UUID is 1593 // not supported (00000000-0000-0000-0000-000000000000). 1594 string request_id = 4; 1595} 1596 1597// Update message for 'UpdateSources' request. 1598message UpdateSourceRequest { 1599 // Field mask is used to specify the fields to be overwritten in the 1600 // Source resource by the update. 1601 // The fields specified in the update_mask are relative to the resource, not 1602 // the full request. A field will be overwritten if it is in the mask. If the 1603 // user does not provide a mask then all fields will be overwritten. 1604 google.protobuf.FieldMask update_mask = 1; 1605 1606 // Required. The update request body. 1607 Source source = 2 [(google.api.field_behavior) = REQUIRED]; 1608 1609 // A request ID to identify requests. Specify a unique request ID 1610 // so that if you must retry your request, the server will know to ignore 1611 // the request if it has already been completed. The server will guarantee 1612 // that for at least 60 minutes since the first request. 1613 // 1614 // For example, consider a situation where you make an initial request and t 1615 // he request times out. If you make the request again with the same request 1616 // ID, the server can check if original operation with the same request ID 1617 // was received, and if so, will ignore the second request. This prevents 1618 // clients from accidentally creating duplicate commitments. 1619 // 1620 // The request ID must be a valid UUID with the exception that zero UUID is 1621 // not supported (00000000-0000-0000-0000-000000000000). 1622 string request_id = 3; 1623} 1624 1625// Request message for 'DeleteSource' request. 1626message DeleteSourceRequest { 1627 // Required. The Source name. 1628 string name = 1 [ 1629 (google.api.field_behavior) = REQUIRED, 1630 (google.api.resource_reference) = { 1631 type: "vmmigration.googleapis.com/Source" 1632 } 1633 ]; 1634 1635 // Optional. A request ID to identify requests. Specify a unique request ID 1636 // so that if you must retry your request, the server will know to ignore 1637 // the request if it has already been completed. The server will guarantee 1638 // that for at least 60 minutes after the first request. 1639 // 1640 // For example, consider a situation where you make an initial request and t 1641 // he request times out. If you make the request again with the same request 1642 // ID, the server can check if original operation with the same request ID 1643 // was received, and if so, will ignore the second request. This prevents 1644 // clients from accidentally creating duplicate commitments. 1645 // 1646 // The request ID must be a valid UUID with the exception that zero UUID is 1647 // not supported (00000000-0000-0000-0000-000000000000). 1648 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1649} 1650 1651// Request message for 1652// [fetchInventory][google.cloud.vmmigration.v1.VmMigration.FetchInventory]. 1653message FetchInventoryRequest { 1654 // Required. The name of the Source. 1655 string source = 1 [ 1656 (google.api.field_behavior) = REQUIRED, 1657 (google.api.resource_reference) = { 1658 type: "vmmigration.googleapis.com/Source" 1659 } 1660 ]; 1661 1662 // If this flag is set to true, the source will be queried instead of using 1663 // cached results. Using this flag will make the call slower. 1664 bool force_refresh = 2; 1665} 1666 1667// VmwareVmDetails describes a VM in vCenter. 1668message VmwareVmDetails { 1669 // Possible values for the power state of the VM. 1670 enum PowerState { 1671 // Power state is not specified. 1672 POWER_STATE_UNSPECIFIED = 0; 1673 1674 // The VM is turned ON. 1675 ON = 1; 1676 1677 // The VM is turned OFF. 1678 OFF = 2; 1679 1680 // The VM is suspended. This is similar to hibernation or sleep mode. 1681 SUSPENDED = 3; 1682 } 1683 1684 // Possible values for vm boot option. 1685 enum BootOption { 1686 // The boot option is unknown. 1687 BOOT_OPTION_UNSPECIFIED = 0; 1688 1689 // The boot option is EFI. 1690 EFI = 1; 1691 1692 // The boot option is BIOS. 1693 BIOS = 2; 1694 } 1695 1696 // The VM's id in the source (note that this is not the MigratingVm's id). 1697 // This is the moref id of the VM. 1698 string vm_id = 1; 1699 1700 // The id of the vCenter's datacenter this VM is contained in. 1701 string datacenter_id = 2; 1702 1703 // The descriptive name of the vCenter's datacenter this VM is contained in. 1704 string datacenter_description = 3; 1705 1706 // The unique identifier of the VM in vCenter. 1707 string uuid = 4; 1708 1709 // The display name of the VM. Note that this is not necessarily unique. 1710 string display_name = 5; 1711 1712 // The power state of the VM at the moment list was taken. 1713 PowerState power_state = 6; 1714 1715 // The number of cpus in the VM. 1716 int32 cpu_count = 7; 1717 1718 // The size of the memory of the VM in MB. 1719 int32 memory_mb = 8; 1720 1721 // The number of disks the VM has. 1722 int32 disk_count = 9; 1723 1724 // The total size of the storage allocated to the VM in MB. 1725 int64 committed_storage_mb = 12; 1726 1727 // The VM's OS. See for example 1728 // https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html 1729 // for types of strings this might hold. 1730 string guest_description = 11; 1731 1732 // Output only. The VM Boot Option. 1733 BootOption boot_option = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 1734} 1735 1736// AwsVmDetails describes a VM in AWS. 1737message AwsVmDetails { 1738 // Possible values for the power state of the VM. 1739 enum PowerState { 1740 // Power state is not specified. 1741 POWER_STATE_UNSPECIFIED = 0; 1742 1743 // The VM is turned on. 1744 ON = 1; 1745 1746 // The VM is turned off. 1747 OFF = 2; 1748 1749 // The VM is suspended. This is similar to hibernation or sleep 1750 // mode. 1751 SUSPENDED = 3; 1752 1753 // The VM is starting. 1754 PENDING = 4; 1755 } 1756 1757 // The possible values for the vm boot option. 1758 enum BootOption { 1759 // The boot option is unknown. 1760 BOOT_OPTION_UNSPECIFIED = 0; 1761 1762 // The boot option is UEFI. 1763 EFI = 1; 1764 1765 // The boot option is LEGACY-BIOS. 1766 BIOS = 2; 1767 } 1768 1769 // Possible values for the virtualization types of the VM. 1770 enum VmVirtualizationType { 1771 // The virtualization type is unknown. 1772 VM_VIRTUALIZATION_TYPE_UNSPECIFIED = 0; 1773 1774 // The virtualziation type is HVM. 1775 HVM = 1; 1776 1777 // The virtualziation type is PARAVIRTUAL. 1778 PARAVIRTUAL = 2; 1779 } 1780 1781 // Possible values for the architectures of the VM. 1782 enum VmArchitecture { 1783 // The architecture is unknown. 1784 VM_ARCHITECTURE_UNSPECIFIED = 0; 1785 1786 // The architecture is I386. 1787 I386 = 1; 1788 1789 // The architecture is X86_64. 1790 X86_64 = 2; 1791 1792 // The architecture is ARM64. 1793 ARM64 = 3; 1794 1795 // The architecture is X86_64_MAC. 1796 X86_64_MAC = 4; 1797 } 1798 1799 // The VM ID in AWS. 1800 string vm_id = 1; 1801 1802 // The display name of the VM. Note that this value is not necessarily unique. 1803 string display_name = 2; 1804 1805 // The id of the AWS's source this VM is connected to. 1806 string source_id = 3; 1807 1808 // The descriptive name of the AWS's source this VM is connected to. 1809 string source_description = 4; 1810 1811 // Output only. The power state of the VM at the moment list was taken. 1812 PowerState power_state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 1813 1814 // The number of cpus the VM has. 1815 int32 cpu_count = 6; 1816 1817 // The memory size of the VM in MB. 1818 int32 memory_mb = 7; 1819 1820 // The number of disks the VM has. 1821 int32 disk_count = 8; 1822 1823 // The total size of the storage allocated to the VM in MB. 1824 int64 committed_storage_mb = 9; 1825 1826 // The VM's OS. 1827 string os_description = 10; 1828 1829 // The VM Boot Option. 1830 BootOption boot_option = 11; 1831 1832 // The instance type of the VM. 1833 string instance_type = 12; 1834 1835 // The VPC ID the VM belongs to. 1836 string vpc_id = 13; 1837 1838 // The security groups the VM belongs to. 1839 repeated AwsSecurityGroup security_groups = 14; 1840 1841 // The tags of the VM. 1842 map<string, string> tags = 15; 1843 1844 // The AWS zone of the VM. 1845 string zone = 16; 1846 1847 // The virtualization type. 1848 VmVirtualizationType virtualization_type = 17; 1849 1850 // The CPU architecture. 1851 VmArchitecture architecture = 18; 1852} 1853 1854// AwsSecurityGroup describes a security group of an AWS VM. 1855message AwsSecurityGroup { 1856 // The AWS security group id. 1857 string id = 1; 1858 1859 // The AWS security group name. 1860 string name = 2; 1861} 1862 1863// VmwareVmsDetails describes VMs in vCenter. 1864message VmwareVmsDetails { 1865 // The details of the vmware VMs. 1866 repeated VmwareVmDetails details = 1; 1867} 1868 1869// AWSVmsDetails describes VMs in AWS. 1870message AwsVmsDetails { 1871 // The details of the AWS VMs. 1872 repeated AwsVmDetails details = 1; 1873} 1874 1875// Response message for 1876// [fetchInventory][google.cloud.vmmigration.v1.VmMigration.FetchInventory]. 1877message FetchInventoryResponse { 1878 oneof SourceVms { 1879 // The description of the VMs in a Source of type Vmware. 1880 VmwareVmsDetails vmware_vms = 1; 1881 1882 // The description of the VMs in a Source of type AWS. 1883 AwsVmsDetails aws_vms = 3; 1884 } 1885 1886 // Output only. The timestamp when the source was last queried (if the result 1887 // is from the cache). 1888 google.protobuf.Timestamp update_time = 2 1889 [(google.api.field_behavior) = OUTPUT_ONLY]; 1890} 1891 1892// Utilization report details the utilization (CPU, memory, etc.) of selected 1893// source VMs. 1894message UtilizationReport { 1895 option (google.api.resource) = { 1896 type: "vmmigration.googleapis.com/UtilizationReport" 1897 pattern: "projects/{project}/locations/{location}/sources/{source}/utilizationReports/{utilization_report}" 1898 }; 1899 1900 // Utilization report state. 1901 enum State { 1902 // The state is unknown. This value is not in use. 1903 STATE_UNSPECIFIED = 0; 1904 1905 // The report is in the making. 1906 CREATING = 1; 1907 1908 // Report creation completed successfully. 1909 SUCCEEDED = 2; 1910 1911 // Report creation failed. 1912 FAILED = 3; 1913 } 1914 1915 // Report time frame options. 1916 enum TimeFrame { 1917 // The time frame was not specified and will default to WEEK. 1918 TIME_FRAME_UNSPECIFIED = 0; 1919 1920 // One week. 1921 WEEK = 1; 1922 1923 // One month. 1924 MONTH = 2; 1925 1926 // One year. 1927 YEAR = 3; 1928 } 1929 1930 // Output only. The report unique name. 1931 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1932 1933 // The report display name, as assigned by the user. 1934 string display_name = 2; 1935 1936 // Output only. Current state of the report. 1937 State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1938 1939 // Output only. The time the state was last set. 1940 google.protobuf.Timestamp state_time = 4 1941 [(google.api.field_behavior) = OUTPUT_ONLY]; 1942 1943 // Output only. Provides details on the state of the report in case of an 1944 // error. 1945 google.rpc.Status error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 1946 1947 // Output only. The time the report was created (this refers to the time of 1948 // the request, not the time the report creation completed). 1949 google.protobuf.Timestamp create_time = 6 1950 [(google.api.field_behavior) = OUTPUT_ONLY]; 1951 1952 // Time frame of the report. 1953 TimeFrame time_frame = 7; 1954 1955 // Output only. The point in time when the time frame ends. Notice that the 1956 // time frame is counted backwards. For instance if the "frame_end_time" value 1957 // is 2021/01/20 and the time frame is WEEK then the report covers the week 1958 // between 2021/01/20 and 2021/01/14. 1959 google.protobuf.Timestamp frame_end_time = 8 1960 [(google.api.field_behavior) = OUTPUT_ONLY]; 1961 1962 // Output only. Total number of VMs included in the report. 1963 int32 vm_count = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 1964 1965 // List of utilization information per VM. 1966 // When sent as part of the request, the "vm_id" field is used in order to 1967 // specify which VMs to include in the report. In that case all other fields 1968 // are ignored. 1969 repeated VmUtilizationInfo vms = 10; 1970} 1971 1972// Utilization information of a single VM. 1973message VmUtilizationInfo { 1974 oneof VmDetails { 1975 // The description of the VM in a Source of type Vmware. 1976 VmwareVmDetails vmware_vm_details = 1; 1977 } 1978 1979 // The VM's ID in the source. 1980 string vm_id = 3; 1981 1982 // Utilization metrics for this VM. 1983 VmUtilizationMetrics utilization = 2; 1984} 1985 1986// Utilization metrics values for a single VM. 1987message VmUtilizationMetrics { 1988 // Max CPU usage, percent. 1989 int32 cpu_max_percent = 9; 1990 1991 // Average CPU usage, percent. 1992 int32 cpu_average_percent = 10; 1993 1994 // Max memory usage, percent. 1995 int32 memory_max_percent = 11; 1996 1997 // Average memory usage, percent. 1998 int32 memory_average_percent = 12; 1999 2000 // Max disk IO rate, in kilobytes per second. 2001 int64 disk_io_rate_max_kbps = 13; 2002 2003 // Average disk IO rate, in kilobytes per second. 2004 int64 disk_io_rate_average_kbps = 14; 2005 2006 // Max network throughput (combined transmit-rates and receive-rates), in 2007 // kilobytes per second. 2008 int64 network_throughput_max_kbps = 15; 2009 2010 // Average network throughput (combined transmit-rates and receive-rates), in 2011 // kilobytes per second. 2012 int64 network_throughput_average_kbps = 16; 2013} 2014 2015// Request message for 'ListUtilizationReports' request. 2016message ListUtilizationReportsRequest { 2017 // Required. The Utilization Reports parent. 2018 string parent = 1 [ 2019 (google.api.field_behavior) = REQUIRED, 2020 (google.api.resource_reference) = { 2021 child_type: "vmmigration.googleapis.com/UtilizationReport" 2022 } 2023 ]; 2024 2025 // Optional. The level of details of each report. 2026 // Defaults to BASIC. 2027 UtilizationReportView view = 2 [(google.api.field_behavior) = OPTIONAL]; 2028 2029 // Optional. The maximum number of reports to return. The service may return 2030 // fewer than this value. If unspecified, at most 500 reports will be 2031 // returned. The maximum value is 1000; values above 1000 will be coerced to 2032 // 1000. 2033 int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; 2034 2035 // Required. A page token, received from a previous `ListUtilizationReports` 2036 // call. Provide this to retrieve the subsequent page. 2037 // 2038 // When paginating, all other parameters provided to `ListUtilizationReports` 2039 // must match the call that provided the page token. 2040 string page_token = 4 [(google.api.field_behavior) = REQUIRED]; 2041 2042 // Optional. The filter request. 2043 string filter = 5 [(google.api.field_behavior) = OPTIONAL]; 2044 2045 // Optional. the order by fields for the result. 2046 string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; 2047} 2048 2049// Response message for 'ListUtilizationReports' request. 2050message ListUtilizationReportsResponse { 2051 // Output only. The list of reports. 2052 repeated UtilizationReport utilization_reports = 1 2053 [(google.api.field_behavior) = OUTPUT_ONLY]; 2054 2055 // Output only. A token, which can be sent as `page_token` to retrieve the 2056 // next page. If this field is omitted, there are no subsequent pages. 2057 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 2058 2059 // Output only. Locations that could not be reached. 2060 repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 2061} 2062 2063// Request message for 'GetUtilizationReport' request. 2064message GetUtilizationReportRequest { 2065 // Required. The Utilization Report name. 2066 string name = 1 [ 2067 (google.api.field_behavior) = REQUIRED, 2068 (google.api.resource_reference) = { 2069 type: "vmmigration.googleapis.com/UtilizationReport" 2070 } 2071 ]; 2072 2073 // Optional. The level of details of the report. 2074 // Defaults to FULL 2075 UtilizationReportView view = 2 [(google.api.field_behavior) = OPTIONAL]; 2076} 2077 2078// Request message for 'CreateUtilizationReport' request. 2079message CreateUtilizationReportRequest { 2080 // Required. The Utilization Report's parent. 2081 string parent = 1 [ 2082 (google.api.field_behavior) = REQUIRED, 2083 (google.api.resource_reference) = { 2084 child_type: "vmmigration.googleapis.com/UtilizationReport" 2085 } 2086 ]; 2087 2088 // Required. The report to create. 2089 UtilizationReport utilization_report = 2 2090 [(google.api.field_behavior) = REQUIRED]; 2091 2092 // Required. The ID to use for the report, which will become the final 2093 // component of the reports's resource name. 2094 // 2095 // This value maximum length is 63 characters, and valid characters 2096 // are /[a-z][0-9]-/. It must start with an english letter and must not 2097 // end with a hyphen. 2098 string utilization_report_id = 3 [(google.api.field_behavior) = REQUIRED]; 2099 2100 // A request ID to identify requests. Specify a unique request ID 2101 // so that if you must retry your request, the server will know to ignore 2102 // the request if it has already been completed. The server will guarantee 2103 // that for at least 60 minutes since the first request. 2104 // 2105 // For example, consider a situation where you make an initial request and t 2106 // he request times out. If you make the request again with the same request 2107 // ID, the server can check if original operation with the same request ID 2108 // was received, and if so, will ignore the second request. This prevents 2109 // clients from accidentally creating duplicate commitments. 2110 // 2111 // The request ID must be a valid UUID with the exception that zero UUID is 2112 // not supported (00000000-0000-0000-0000-000000000000). 2113 string request_id = 4; 2114} 2115 2116// Request message for 'DeleteUtilizationReport' request. 2117message DeleteUtilizationReportRequest { 2118 // Required. The Utilization Report name. 2119 string name = 1 [ 2120 (google.api.field_behavior) = REQUIRED, 2121 (google.api.resource_reference) = { 2122 type: "vmmigration.googleapis.com/UtilizationReport" 2123 } 2124 ]; 2125 2126 // Optional. A request ID to identify requests. Specify a unique request ID 2127 // so that if you must retry your request, the server will know to ignore 2128 // the request if it has already been completed. The server will guarantee 2129 // that for at least 60 minutes after the first request. 2130 // 2131 // For example, consider a situation where you make an initial request and t 2132 // he request times out. If you make the request again with the same request 2133 // ID, the server can check if original operation with the same request ID 2134 // was received, and if so, will ignore the second request. This prevents 2135 // clients from accidentally creating duplicate commitments. 2136 // 2137 // The request ID must be a valid UUID with the exception that zero UUID is 2138 // not supported (00000000-0000-0000-0000-000000000000). 2139 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 2140} 2141 2142// Response message for 'ListDatacenterConnectors' request. 2143message ListDatacenterConnectorsResponse { 2144 // Output only. The list of sources response. 2145 repeated DatacenterConnector datacenter_connectors = 1 2146 [(google.api.field_behavior) = OUTPUT_ONLY]; 2147 2148 // Output only. A token, which can be sent as `page_token` to retrieve the 2149 // next page. If this field is omitted, there are no subsequent pages. 2150 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 2151 2152 // Output only. Locations that could not be reached. 2153 repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 2154} 2155 2156// Request message for 'GetDatacenterConnector' request. 2157message GetDatacenterConnectorRequest { 2158 // Required. The name of the DatacenterConnector. 2159 string name = 1 [ 2160 (google.api.field_behavior) = REQUIRED, 2161 (google.api.resource_reference) = { 2162 type: "vmmigration.googleapis.com/DatacenterConnector" 2163 } 2164 ]; 2165} 2166 2167// Request message for 'CreateDatacenterConnector' request. 2168message CreateDatacenterConnectorRequest { 2169 // Required. The DatacenterConnector's parent. 2170 // Required. The Source in where the new DatacenterConnector will be created. 2171 // For example: 2172 // `projects/my-project/locations/us-central1/sources/my-source` 2173 string parent = 1 [ 2174 (google.api.field_behavior) = REQUIRED, 2175 (google.api.resource_reference) = { 2176 child_type: "vmmigration.googleapis.com/DatacenterConnector" 2177 } 2178 ]; 2179 2180 // Required. The datacenterConnector identifier. 2181 string datacenter_connector_id = 2 [(google.api.field_behavior) = REQUIRED]; 2182 2183 // Required. The create request body. 2184 DatacenterConnector datacenter_connector = 3 2185 [(google.api.field_behavior) = REQUIRED]; 2186 2187 // A request ID to identify requests. Specify a unique request ID 2188 // so that if you must retry your request, the server will know to ignore 2189 // the request if it has already been completed. The server will guarantee 2190 // that for at least 60 minutes since the first request. 2191 // 2192 // For example, consider a situation where you make an initial request and t 2193 // he request times out. If you make the request again with the same request 2194 // ID, the server can check if original operation with the same request ID 2195 // was received, and if so, will ignore the second request. This prevents 2196 // clients from accidentally creating duplicate commitments. 2197 // 2198 // The request ID must be a valid UUID with the exception that zero UUID is 2199 // not supported (00000000-0000-0000-0000-000000000000). 2200 string request_id = 4; 2201} 2202 2203// Request message for 'DeleteDatacenterConnector' request. 2204message DeleteDatacenterConnectorRequest { 2205 // Required. The DatacenterConnector name. 2206 string name = 1 [ 2207 (google.api.field_behavior) = REQUIRED, 2208 (google.api.resource_reference) = { 2209 type: "vmmigration.googleapis.com/DatacenterConnector" 2210 } 2211 ]; 2212 2213 // A request ID to identify requests. Specify a unique request ID 2214 // so that if you must retry your request, the server will know to ignore 2215 // the request if it has already been completed. The server will guarantee 2216 // that for at least 60 minutes after the first request. 2217 // 2218 // For example, consider a situation where you make an initial request and t 2219 // he request times out. If you make the request again with the same request 2220 // ID, the server can check if original operation with the same request ID 2221 // was received, and if so, will ignore the second request. This prevents 2222 // clients from accidentally creating duplicate commitments. 2223 // 2224 // The request ID must be a valid UUID with the exception that zero UUID is 2225 // not supported (00000000-0000-0000-0000-000000000000). 2226 string request_id = 2; 2227} 2228 2229// Request message for 'UpgradeAppliance' request. 2230message UpgradeApplianceRequest { 2231 // Required. The DatacenterConnector name. 2232 string datacenter_connector = 1 [ 2233 (google.api.field_behavior) = REQUIRED, 2234 (google.api.resource_reference) = { 2235 type: "vmmigration.googleapis.com/DatacenterConnector" 2236 } 2237 ]; 2238 2239 // A request ID to identify requests. Specify a unique request ID 2240 // so that if you must retry your request, the server will know to ignore 2241 // the request if it has already been completed. The server will guarantee 2242 // that for at least 60 minutes after the first request. 2243 // 2244 // For example, consider a situation where you make an initial request and t 2245 // he request times out. If you make the request again with the same request 2246 // ID, the server can check if original operation with the same request ID 2247 // was received, and if so, will ignore the second request. This prevents 2248 // clients from accidentally creating duplicate commitments. 2249 // 2250 // The request ID must be a valid UUID with the exception that zero UUID is 2251 // not supported (00000000-0000-0000-0000-000000000000). 2252 string request_id = 2; 2253} 2254 2255// Response message for 'UpgradeAppliance' request. 2256message UpgradeApplianceResponse {} 2257 2258// Request message for 'ListDatacenterConnectors' request. 2259message ListDatacenterConnectorsRequest { 2260 // Required. The parent, which owns this collection of connectors. 2261 string parent = 1 [ 2262 (google.api.field_behavior) = REQUIRED, 2263 (google.api.resource_reference) = { 2264 child_type: "vmmigration.googleapis.com/DatacenterConnector" 2265 } 2266 ]; 2267 2268 // Optional. The maximum number of connectors to return. The service may 2269 // return fewer than this value. If unspecified, at most 500 sources will be 2270 // returned. The maximum value is 1000; values above 1000 will be coerced to 2271 // 1000. 2272 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 2273 2274 // Required. A page token, received from a previous `ListDatacenterConnectors` 2275 // call. Provide this to retrieve the subsequent page. 2276 // 2277 // When paginating, all other parameters provided to 2278 // `ListDatacenterConnectors` must match the call that provided the page 2279 // token. 2280 string page_token = 3 [(google.api.field_behavior) = REQUIRED]; 2281 2282 // Optional. The filter request. 2283 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 2284 2285 // Optional. the order by fields for the result. 2286 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 2287} 2288 2289// ComputeEngineTargetDefaults is a collection of details for creating a VM in a 2290// target Compute Engine project. 2291message ComputeEngineTargetDefaults { 2292 // The name of the VM to create. 2293 string vm_name = 1; 2294 2295 // The full path of the resource of type TargetProject which represents the 2296 // Compute Engine project in which to create this VM. 2297 string target_project = 2 [(google.api.resource_reference) = { 2298 type: "vmmigration.googleapis.com/TargetProject" 2299 }]; 2300 2301 // The zone in which to create the VM. 2302 string zone = 3; 2303 2304 // The machine type series to create the VM with. 2305 string machine_type_series = 4; 2306 2307 // The machine type to create the VM with. 2308 string machine_type = 5; 2309 2310 // A map of network tags to associate with the VM. 2311 repeated string network_tags = 6; 2312 2313 // List of NICs connected to this VM. 2314 repeated NetworkInterface network_interfaces = 7; 2315 2316 // The service account to associate the VM with. 2317 string service_account = 8; 2318 2319 // The disk type to use in the VM. 2320 ComputeEngineDiskType disk_type = 9; 2321 2322 // A map of labels to associate with the VM. 2323 map<string, string> labels = 10; 2324 2325 // The license type to use in OS adaptation. 2326 ComputeEngineLicenseType license_type = 11; 2327 2328 // Output only. The OS license returned from the adaptation module report. 2329 AppliedLicense applied_license = 12 2330 [(google.api.field_behavior) = OUTPUT_ONLY]; 2331 2332 // Compute instance scheduling information (if empty default is used). 2333 ComputeScheduling compute_scheduling = 13; 2334 2335 // Defines whether the instance has Secure Boot enabled. 2336 // This can be set to true only if the vm boot option is EFI. 2337 bool secure_boot = 14; 2338 2339 // Output only. The VM Boot Option, as set in the source vm. 2340 ComputeEngineBootOption boot_option = 15 2341 [(google.api.field_behavior) = OUTPUT_ONLY]; 2342 2343 // The metadata key/value pairs to assign to the VM. 2344 map<string, string> metadata = 16; 2345 2346 // Additional licenses to assign to the VM. 2347 repeated string additional_licenses = 17; 2348 2349 // The hostname to assign to the VM. 2350 string hostname = 18; 2351} 2352 2353// ComputeEngineTargetDetails is a collection of details for creating a VM in a 2354// target Compute Engine project. 2355message ComputeEngineTargetDetails { 2356 // The name of the VM to create. 2357 string vm_name = 1; 2358 2359 // The Google Cloud target project ID or project name. 2360 string project = 2; 2361 2362 // The zone in which to create the VM. 2363 string zone = 3; 2364 2365 // The machine type series to create the VM with. 2366 string machine_type_series = 4; 2367 2368 // The machine type to create the VM with. 2369 string machine_type = 5; 2370 2371 // A map of network tags to associate with the VM. 2372 repeated string network_tags = 6; 2373 2374 // List of NICs connected to this VM. 2375 repeated NetworkInterface network_interfaces = 7; 2376 2377 // The service account to associate the VM with. 2378 string service_account = 8; 2379 2380 // The disk type to use in the VM. 2381 ComputeEngineDiskType disk_type = 9; 2382 2383 // A map of labels to associate with the VM. 2384 map<string, string> labels = 10; 2385 2386 // The license type to use in OS adaptation. 2387 ComputeEngineLicenseType license_type = 11; 2388 2389 // The OS license returned from the adaptation module report. 2390 AppliedLicense applied_license = 12; 2391 2392 // Compute instance scheduling information (if empty default is used). 2393 ComputeScheduling compute_scheduling = 13; 2394 2395 // Defines whether the instance has Secure Boot enabled. 2396 // This can be set to true only if the vm boot option is EFI. 2397 bool secure_boot = 14; 2398 2399 // The VM Boot Option, as set in the source vm. 2400 ComputeEngineBootOption boot_option = 15; 2401 2402 // The metadata key/value pairs to assign to the VM. 2403 map<string, string> metadata = 16; 2404 2405 // Additional licenses to assign to the VM. 2406 repeated string additional_licenses = 17; 2407 2408 // The hostname to assign to the VM. 2409 string hostname = 18; 2410} 2411 2412// NetworkInterface represents a NIC of a VM. 2413message NetworkInterface { 2414 // The network to connect the NIC to. 2415 string network = 1; 2416 2417 // The subnetwork to connect the NIC to. 2418 string subnetwork = 2; 2419 2420 // The internal IP to define in the NIC. 2421 // The formats accepted are: `ephemeral` \ ipv4 address \ a named address 2422 // resource full path. 2423 string internal_ip = 3; 2424 2425 // The external IP to define in the NIC. 2426 string external_ip = 4; 2427} 2428 2429// AppliedLicense holds the license data returned by adaptation module report. 2430message AppliedLicense { 2431 // License types used in OS adaptation. 2432 enum Type { 2433 // Unspecified license for the OS. 2434 TYPE_UNSPECIFIED = 0; 2435 2436 // No license available for the OS. 2437 NONE = 1; 2438 2439 // The license type is Pay As You Go license type. 2440 PAYG = 2; 2441 2442 // The license type is Bring Your Own License type. 2443 BYOL = 3; 2444 } 2445 2446 // The license type that was used in OS adaptation. 2447 Type type = 1; 2448 2449 // The OS license returned from the adaptation module's report. 2450 string os_license = 2; 2451} 2452 2453// Node Affinity: the configuration of desired nodes onto which this Instance 2454// could be scheduled. Based on 2455// https://cloud.google.com/compute/docs/reference/rest/v1/instances/setScheduling 2456message SchedulingNodeAffinity { 2457 // Possible types of node selection operators. Valid operators are IN for 2458 // affinity and NOT_IN for anti-affinity. 2459 enum Operator { 2460 // An unknown, unexpected behavior. 2461 OPERATOR_UNSPECIFIED = 0; 2462 2463 // The node resource group should be in these resources affinity. 2464 IN = 1; 2465 2466 // The node resource group should not be in these resources affinity. 2467 NOT_IN = 2; 2468 } 2469 2470 // The label key of Node resource to reference. 2471 string key = 1; 2472 2473 // The operator to use for the node resources specified in the `values` 2474 // parameter. 2475 Operator operator = 2; 2476 2477 // Corresponds to the label values of Node resource. 2478 repeated string values = 3; 2479} 2480 2481// Scheduling information for VM on maintenance/restart behaviour and 2482// node allocation in sole tenant nodes. 2483message ComputeScheduling { 2484 enum OnHostMaintenance { 2485 // An unknown, unexpected behavior. 2486 ON_HOST_MAINTENANCE_UNSPECIFIED = 0; 2487 2488 // Terminate the instance when the host machine undergoes maintenance. 2489 TERMINATE = 1; 2490 2491 // Migrate the instance when the host machine undergoes maintenance. 2492 MIGRATE = 2; 2493 } 2494 2495 // Defines whether the Instance should be automatically restarted whenever 2496 // it is terminated by Compute Engine (not terminated by user). 2497 enum RestartType { 2498 // Unspecified behavior. This will use the default. 2499 RESTART_TYPE_UNSPECIFIED = 0; 2500 2501 // The Instance should be automatically restarted whenever it is 2502 // terminated by Compute Engine. 2503 AUTOMATIC_RESTART = 1; 2504 2505 // The Instance isn't automatically restarted whenever it is 2506 // terminated by Compute Engine. 2507 NO_AUTOMATIC_RESTART = 2; 2508 } 2509 2510 // How the instance should behave when the host machine undergoes 2511 // maintenance that may temporarily impact instance performance. 2512 OnHostMaintenance on_host_maintenance = 1; 2513 2514 // Whether the Instance should be automatically restarted whenever it is 2515 // terminated by Compute Engine (not terminated by user). 2516 // This configuration is identical to `automaticRestart` field in Compute 2517 // Engine create instance under scheduling. 2518 // It was changed to an enum (instead of a boolean) to match the default 2519 // value in Compute Engine which is automatic restart. 2520 RestartType restart_type = 5; 2521 2522 // A set of node affinity and anti-affinity configurations for sole tenant 2523 // nodes. 2524 repeated SchedulingNodeAffinity node_affinities = 3; 2525 2526 // The minimum number of virtual CPUs this instance will consume when 2527 // running on a sole-tenant node. Ignored if no node_affinites are 2528 // configured. 2529 int32 min_node_cpus = 4; 2530} 2531 2532// A policy for scheduling replications. 2533message SchedulePolicy { 2534 // The idle duration between replication stages. 2535 google.protobuf.Duration idle_duration = 1; 2536 2537 // A flag to indicate whether to skip OS adaptation during the replication 2538 // sync. OS adaptation is a process where the VM's operating system undergoes 2539 // changes and adaptations to fully function on Compute Engine. 2540 bool skip_os_adaptation = 2; 2541} 2542 2543// Request message for 'CreateMigratingVm' request. 2544message CreateMigratingVmRequest { 2545 // Required. The MigratingVm's parent. 2546 string parent = 1 [ 2547 (google.api.field_behavior) = REQUIRED, 2548 (google.api.resource_reference) = { 2549 child_type: "vmmigration.googleapis.com/MigratingVm" 2550 } 2551 ]; 2552 2553 // Required. The migratingVm identifier. 2554 string migrating_vm_id = 2 [(google.api.field_behavior) = REQUIRED]; 2555 2556 // Required. The create request body. 2557 MigratingVm migrating_vm = 3 [(google.api.field_behavior) = REQUIRED]; 2558 2559 // A request ID to identify requests. Specify a unique request ID 2560 // so that if you must retry your request, the server will know to ignore 2561 // the request if it has already been completed. The server will guarantee 2562 // that for at least 60 minutes since the first request. 2563 // 2564 // For example, consider a situation where you make an initial request and t 2565 // he request times out. If you make the request again with the same request 2566 // ID, the server can check if original operation with the same request ID 2567 // was received, and if so, will ignore the second request. This prevents 2568 // clients from accidentally creating duplicate commitments. 2569 // 2570 // The request ID must be a valid UUID with the exception that zero UUID is 2571 // not supported (00000000-0000-0000-0000-000000000000). 2572 string request_id = 4; 2573} 2574 2575// Request message for 'LisMigratingVmsRequest' request. 2576message ListMigratingVmsRequest { 2577 // Required. The parent, which owns this collection of MigratingVms. 2578 string parent = 1 [ 2579 (google.api.field_behavior) = REQUIRED, 2580 (google.api.resource_reference) = { 2581 child_type: "vmmigration.googleapis.com/MigratingVm" 2582 } 2583 ]; 2584 2585 // Optional. The maximum number of migrating VMs to return. The service may 2586 // return fewer than this value. If unspecified, at most 500 migrating VMs 2587 // will be returned. The maximum value is 1000; values above 1000 will be 2588 // coerced to 1000. 2589 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 2590 2591 // Required. A page token, received from a previous `ListMigratingVms` call. 2592 // Provide this to retrieve the subsequent page. 2593 // 2594 // When paginating, all other parameters provided to `ListMigratingVms` 2595 // must match the call that provided the page token. 2596 string page_token = 3 [(google.api.field_behavior) = REQUIRED]; 2597 2598 // Optional. The filter request. 2599 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 2600 2601 // Optional. the order by fields for the result. 2602 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 2603 2604 // Optional. The level of details of each migrating VM. 2605 MigratingVmView view = 6 [(google.api.field_behavior) = OPTIONAL]; 2606} 2607 2608// Response message for 'ListMigratingVms' request. 2609message ListMigratingVmsResponse { 2610 // Output only. The list of Migrating VMs response. 2611 repeated MigratingVm migrating_vms = 1 2612 [(google.api.field_behavior) = OUTPUT_ONLY]; 2613 2614 // Output only. A token, which can be sent as `page_token` to retrieve the 2615 // next page. If this field is omitted, there are no subsequent pages. 2616 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 2617 2618 // Output only. Locations that could not be reached. 2619 repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 2620} 2621 2622// Request message for 'GetMigratingVm' request. 2623message GetMigratingVmRequest { 2624 // Required. The name of the MigratingVm. 2625 string name = 1 [ 2626 (google.api.field_behavior) = REQUIRED, 2627 (google.api.resource_reference) = { 2628 type: "vmmigration.googleapis.com/MigratingVm" 2629 } 2630 ]; 2631 2632 // Optional. The level of details of the migrating VM. 2633 MigratingVmView view = 2 [(google.api.field_behavior) = OPTIONAL]; 2634} 2635 2636// Request message for 'UpdateMigratingVm' request. 2637message UpdateMigratingVmRequest { 2638 // Field mask is used to specify the fields to be overwritten in the 2639 // MigratingVm resource by the update. 2640 // The fields specified in the update_mask are relative to the resource, not 2641 // the full request. A field will be overwritten if it is in the mask. If the 2642 // user does not provide a mask then all fields will be overwritten. 2643 google.protobuf.FieldMask update_mask = 1; 2644 2645 // Required. The update request body. 2646 MigratingVm migrating_vm = 2 [(google.api.field_behavior) = REQUIRED]; 2647 2648 // A request ID to identify requests. Specify a unique request ID 2649 // so that if you must retry your request, the server will know to ignore 2650 // the request if it has already been completed. The server will guarantee 2651 // that for at least 60 minutes since the first request. 2652 // 2653 // For example, consider a situation where you make an initial request and t 2654 // he request times out. If you make the request again with the same request 2655 // ID, the server can check if original operation with the same request ID 2656 // was received, and if so, will ignore the second request. This prevents 2657 // clients from accidentally creating duplicate commitments. 2658 // 2659 // The request ID must be a valid UUID with the exception that zero UUID is 2660 // not supported (00000000-0000-0000-0000-000000000000). 2661 string request_id = 3; 2662} 2663 2664// Request message for 'DeleteMigratingVm' request. 2665message DeleteMigratingVmRequest { 2666 // Required. The name of the MigratingVm. 2667 string name = 1 [ 2668 (google.api.field_behavior) = REQUIRED, 2669 (google.api.resource_reference) = { 2670 type: "vmmigration.googleapis.com/MigratingVm" 2671 } 2672 ]; 2673} 2674 2675// Request message for 'StartMigrationRequest' request. 2676message StartMigrationRequest { 2677 // Required. The name of the MigratingVm. 2678 string migrating_vm = 1 [ 2679 (google.api.field_behavior) = REQUIRED, 2680 (google.api.resource_reference) = { 2681 type: "vmmigration.googleapis.com/MigratingVm" 2682 } 2683 ]; 2684} 2685 2686// Response message for 'StartMigration' request. 2687message StartMigrationResponse {} 2688 2689// Request message for 'PauseMigration' request. 2690message PauseMigrationRequest { 2691 // Required. The name of the MigratingVm. 2692 string migrating_vm = 1 [ 2693 (google.api.field_behavior) = REQUIRED, 2694 (google.api.resource_reference) = { 2695 type: "vmmigration.googleapis.com/MigratingVm" 2696 } 2697 ]; 2698} 2699 2700// Response message for 'PauseMigration' request. 2701message PauseMigrationResponse {} 2702 2703// Request message for 'ResumeMigration' request. 2704message ResumeMigrationRequest { 2705 // Required. The name of the MigratingVm. 2706 string migrating_vm = 1 [ 2707 (google.api.field_behavior) = REQUIRED, 2708 (google.api.resource_reference) = { 2709 type: "vmmigration.googleapis.com/MigratingVm" 2710 } 2711 ]; 2712} 2713 2714// Response message for 'ResumeMigration' request. 2715message ResumeMigrationResponse {} 2716 2717// Request message for 'FinalizeMigration' request. 2718message FinalizeMigrationRequest { 2719 // Required. The name of the MigratingVm. 2720 string migrating_vm = 1 [ 2721 (google.api.field_behavior) = REQUIRED, 2722 (google.api.resource_reference) = { 2723 type: "vmmigration.googleapis.com/MigratingVm" 2724 } 2725 ]; 2726} 2727 2728// Response message for 'FinalizeMigration' request. 2729message FinalizeMigrationResponse {} 2730 2731// TargetProject message represents a target Compute Engine project for a 2732// migration or a clone. 2733message TargetProject { 2734 option (google.api.resource) = { 2735 type: "vmmigration.googleapis.com/TargetProject" 2736 pattern: "projects/{project}/locations/{location}/targetProjects/{target_project}" 2737 }; 2738 2739 // Output only. The name of the target project. 2740 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 2741 2742 // The target project ID (number) or project name. 2743 string project = 2; 2744 2745 // The target project's description. 2746 string description = 3; 2747 2748 // Output only. The time this target project resource was created (not related 2749 // to when the Compute Engine project it points to was created). 2750 google.protobuf.Timestamp create_time = 4 2751 [(google.api.field_behavior) = OUTPUT_ONLY]; 2752 2753 // Output only. The last time the target project resource was updated. 2754 google.protobuf.Timestamp update_time = 5 2755 [(google.api.field_behavior) = OUTPUT_ONLY]; 2756} 2757 2758// Request message for 'GetTargetProject' call. 2759message GetTargetProjectRequest { 2760 // Required. The TargetProject name. 2761 string name = 1 [ 2762 (google.api.field_behavior) = REQUIRED, 2763 (google.api.resource_reference) = { 2764 type: "vmmigration.googleapis.com/TargetProject" 2765 } 2766 ]; 2767} 2768 2769// Request message for 'ListTargetProjects' call. 2770message ListTargetProjectsRequest { 2771 // Required. The parent, which owns this collection of targets. 2772 string parent = 1 [ 2773 (google.api.field_behavior) = REQUIRED, 2774 (google.api.resource_reference) = { 2775 child_type: "vmmigration.googleapis.com/TargetProject" 2776 } 2777 ]; 2778 2779 // Optional. The maximum number of targets to return. The service may return 2780 // fewer than this value. If unspecified, at most 500 targets will be 2781 // returned. The maximum value is 1000; values above 1000 will be coerced to 2782 // 1000. 2783 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 2784 2785 // Required. A page token, received from a previous `ListTargets` call. 2786 // Provide this to retrieve the subsequent page. 2787 // 2788 // When paginating, all other parameters provided to `ListTargets` must 2789 // match the call that provided the page token. 2790 string page_token = 3 [(google.api.field_behavior) = REQUIRED]; 2791 2792 // Optional. The filter request. 2793 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 2794 2795 // Optional. the order by fields for the result. 2796 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 2797} 2798 2799// Response message for 'ListTargetProjects' call. 2800message ListTargetProjectsResponse { 2801 // Output only. The list of target response. 2802 repeated TargetProject target_projects = 1 2803 [(google.api.field_behavior) = OUTPUT_ONLY]; 2804 2805 // Output only. A token, which can be sent as `page_token` to retrieve the 2806 // next page. If this field is omitted, there are no subsequent pages. 2807 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 2808 2809 // Output only. Locations that could not be reached. 2810 repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 2811} 2812 2813// Request message for 'CreateTargetProject' request. 2814message CreateTargetProjectRequest { 2815 // Required. The TargetProject's parent. 2816 string parent = 1 [ 2817 (google.api.field_behavior) = REQUIRED, 2818 (google.api.resource_reference) = { 2819 child_type: "vmmigration.googleapis.com/TargetProject" 2820 } 2821 ]; 2822 2823 // Required. The target_project identifier. 2824 string target_project_id = 2 [(google.api.field_behavior) = REQUIRED]; 2825 2826 // Required. The create request body. 2827 TargetProject target_project = 3 [(google.api.field_behavior) = REQUIRED]; 2828 2829 // A request ID to identify requests. Specify a unique request ID 2830 // so that if you must retry your request, the server will know to ignore 2831 // the request if it has already been completed. The server will guarantee 2832 // that for at least 60 minutes since the first request. 2833 // 2834 // For example, consider a situation where you make an initial request and t 2835 // he request times out. If you make the request again with the same request 2836 // ID, the server can check if original operation with the same request ID 2837 // was received, and if so, will ignore the second request. This prevents 2838 // clients from accidentally creating duplicate commitments. 2839 // 2840 // The request ID must be a valid UUID with the exception that zero UUID is 2841 // not supported (00000000-0000-0000-0000-000000000000). 2842 string request_id = 4; 2843} 2844 2845// Update message for 'UpdateTargetProject' request. 2846message UpdateTargetProjectRequest { 2847 // Field mask is used to specify the fields to be overwritten in the 2848 // TargetProject resource by the update. 2849 // The fields specified in the update_mask are relative to the resource, not 2850 // the full request. A field will be overwritten if it is in the mask. If the 2851 // user does not provide a mask then all fields will be overwritten. 2852 google.protobuf.FieldMask update_mask = 1; 2853 2854 // Required. The update request body. 2855 TargetProject target_project = 2 [(google.api.field_behavior) = REQUIRED]; 2856 2857 // A request ID to identify requests. Specify a unique request ID 2858 // so that if you must retry your request, the server will know to ignore 2859 // the request if it has already been completed. The server will guarantee 2860 // that for at least 60 minutes since the first request. 2861 // 2862 // For example, consider a situation where you make an initial request and t 2863 // he request times out. If you make the request again with the same request 2864 // ID, the server can check if original operation with the same request ID 2865 // was received, and if so, will ignore the second request. This prevents 2866 // clients from accidentally creating duplicate commitments. 2867 // 2868 // The request ID must be a valid UUID with the exception that zero UUID is 2869 // not supported (00000000-0000-0000-0000-000000000000). 2870 string request_id = 3; 2871} 2872 2873// Request message for 'DeleteTargetProject' request. 2874message DeleteTargetProjectRequest { 2875 // Required. The TargetProject name. 2876 string name = 1 [ 2877 (google.api.field_behavior) = REQUIRED, 2878 (google.api.resource_reference) = { 2879 type: "vmmigration.googleapis.com/TargetProject" 2880 } 2881 ]; 2882 2883 // Optional. A request ID to identify requests. Specify a unique request ID 2884 // so that if you must retry your request, the server will know to ignore 2885 // the request if it has already been completed. The server will guarantee 2886 // that for at least 60 minutes after the first request. 2887 // 2888 // For example, consider a situation where you make an initial request and t 2889 // he request times out. If you make the request again with the same request 2890 // ID, the server can check if original operation with the same request ID 2891 // was received, and if so, will ignore the second request. This prevents 2892 // clients from accidentally creating duplicate commitments. 2893 // 2894 // The request ID must be a valid UUID with the exception that zero UUID is 2895 // not supported (00000000-0000-0000-0000-000000000000). 2896 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 2897} 2898 2899// Describes message for 'Group' resource. The Group is a collections of several 2900// MigratingVms. 2901message Group { 2902 option (google.api.resource) = { 2903 type: "vmmigration.googleapis.com/Group" 2904 pattern: "projects/{project}/locations/{location}/groups/{group}" 2905 }; 2906 2907 // Output only. The Group name. 2908 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 2909 2910 // Output only. The create time timestamp. 2911 google.protobuf.Timestamp create_time = 2 2912 [(google.api.field_behavior) = OUTPUT_ONLY]; 2913 2914 // Output only. The update time timestamp. 2915 google.protobuf.Timestamp update_time = 3 2916 [(google.api.field_behavior) = OUTPUT_ONLY]; 2917 2918 // User-provided description of the group. 2919 string description = 4; 2920 2921 // Display name is a user defined name for this group which can be updated. 2922 string display_name = 5; 2923} 2924 2925// Request message for 'ListGroups' request. 2926message ListGroupsRequest { 2927 // Required. The parent, which owns this collection of groups. 2928 string parent = 1 [ 2929 (google.api.field_behavior) = REQUIRED, 2930 (google.api.resource_reference) = { 2931 child_type: "vmmigration.googleapis.com/Group" 2932 } 2933 ]; 2934 2935 // Optional. The maximum number of groups to return. The service may return 2936 // fewer than this value. If unspecified, at most 500 groups will be 2937 // returned. The maximum value is 1000; values above 1000 will be coerced to 2938 // 1000. 2939 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 2940 2941 // Required. A page token, received from a previous `ListGroups` call. 2942 // Provide this to retrieve the subsequent page. 2943 // 2944 // When paginating, all other parameters provided to `ListGroups` must 2945 // match the call that provided the page token. 2946 string page_token = 3 [(google.api.field_behavior) = REQUIRED]; 2947 2948 // Optional. The filter request. 2949 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 2950 2951 // Optional. the order by fields for the result. 2952 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 2953} 2954 2955// Response message for 'ListGroups' request. 2956message ListGroupsResponse { 2957 // Output only. The list of groups response. 2958 repeated Group groups = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 2959 2960 // Output only. A token, which can be sent as `page_token` to retrieve the 2961 // next page. If this field is omitted, there are no subsequent pages. 2962 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 2963 2964 // Output only. Locations that could not be reached. 2965 repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 2966} 2967 2968// Request message for 'GetGroup' request. 2969message GetGroupRequest { 2970 // Required. The group name. 2971 string name = 1 [ 2972 (google.api.field_behavior) = REQUIRED, 2973 (google.api.resource_reference) = { 2974 type: "vmmigration.googleapis.com/Group" 2975 } 2976 ]; 2977} 2978 2979// Request message for 'CreateGroup' request. 2980message CreateGroupRequest { 2981 // Required. The Group's parent. 2982 string parent = 1 [ 2983 (google.api.field_behavior) = REQUIRED, 2984 (google.api.resource_reference) = { 2985 child_type: "vmmigration.googleapis.com/Group" 2986 } 2987 ]; 2988 2989 // Required. The group identifier. 2990 string group_id = 2 [(google.api.field_behavior) = REQUIRED]; 2991 2992 // Required. The create request body. 2993 Group group = 3 [(google.api.field_behavior) = REQUIRED]; 2994 2995 // A request ID to identify requests. Specify a unique request ID 2996 // so that if you must retry your request, the server will know to ignore 2997 // the request if it has already been completed. The server will guarantee 2998 // that for at least 60 minutes since the first request. 2999 // 3000 // For example, consider a situation where you make an initial request and t 3001 // he request times out. If you make the request again with the same request 3002 // ID, the server can check if original operation with the same request ID 3003 // was received, and if so, will ignore the second request. This prevents 3004 // clients from accidentally creating duplicate commitments. 3005 // 3006 // The request ID must be a valid UUID with the exception that zero UUID is 3007 // not supported (00000000-0000-0000-0000-000000000000). 3008 string request_id = 4; 3009} 3010 3011// Update message for 'UpdateGroups' request. 3012message UpdateGroupRequest { 3013 // Field mask is used to specify the fields to be overwritten in the 3014 // Group resource by the update. 3015 // The fields specified in the update_mask are relative to the resource, not 3016 // the full request. A field will be overwritten if it is in the mask. If the 3017 // user does not provide a mask then all fields will be overwritten. 3018 google.protobuf.FieldMask update_mask = 1; 3019 3020 // Required. The update request body. 3021 Group group = 2 [(google.api.field_behavior) = REQUIRED]; 3022 3023 // A request ID to identify requests. Specify a unique request ID 3024 // so that if you must retry your request, the server will know to ignore 3025 // the request if it has already been completed. The server will guarantee 3026 // that for at least 60 minutes since the first request. 3027 // 3028 // For example, consider a situation where you make an initial request and t 3029 // he request times out. If you make the request again with the same request 3030 // ID, the server can check if original operation with the same request ID 3031 // was received, and if so, will ignore the second request. This prevents 3032 // clients from accidentally creating duplicate commitments. 3033 // 3034 // The request ID must be a valid UUID with the exception that zero UUID is 3035 // not supported (00000000-0000-0000-0000-000000000000). 3036 string request_id = 3; 3037} 3038 3039// Request message for 'DeleteGroup' request. 3040message DeleteGroupRequest { 3041 // Required. The Group name. 3042 string name = 1 [ 3043 (google.api.field_behavior) = REQUIRED, 3044 (google.api.resource_reference) = { 3045 type: "vmmigration.googleapis.com/Group" 3046 } 3047 ]; 3048 3049 // Optional. A request ID to identify requests. Specify a unique request ID 3050 // so that if you must retry your request, the server will know to ignore 3051 // the request if it has already been completed. The server will guarantee 3052 // that for at least 60 minutes after the first request. 3053 // 3054 // For example, consider a situation where you make an initial request and t 3055 // he request times out. If you make the request again with the same request 3056 // ID, the server can check if original operation with the same request ID 3057 // was received, and if so, will ignore the second request. This prevents 3058 // clients from accidentally creating duplicate commitments. 3059 // 3060 // The request ID must be a valid UUID with the exception that zero UUID is 3061 // not supported (00000000-0000-0000-0000-000000000000). 3062 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 3063} 3064 3065// Request message for 'AddGroupMigration' request. 3066message AddGroupMigrationRequest { 3067 // Required. The full path name of the Group to add to. 3068 string group = 1 [ 3069 (google.api.field_behavior) = REQUIRED, 3070 (google.api.resource_reference) = { 3071 type: "vmmigration.googleapis.com/Group" 3072 } 3073 ]; 3074 3075 // The full path name of the MigratingVm to add. 3076 string migrating_vm = 2 [(google.api.resource_reference) = { 3077 type: "vmmigration.googleapis.com/MigratingVm" 3078 }]; 3079} 3080 3081// Response message for 'AddGroupMigration' request. 3082message AddGroupMigrationResponse {} 3083 3084// Request message for 'RemoveMigration' request. 3085message RemoveGroupMigrationRequest { 3086 // Required. The name of the Group. 3087 string group = 1 [ 3088 (google.api.field_behavior) = REQUIRED, 3089 (google.api.resource_reference) = { 3090 type: "vmmigration.googleapis.com/Group" 3091 } 3092 ]; 3093 3094 // The MigratingVm to remove. 3095 string migrating_vm = 2 [(google.api.resource_reference) = { 3096 type: "vmmigration.googleapis.com/MigratingVm" 3097 }]; 3098} 3099 3100// Response message for 'RemoveMigration' request. 3101message RemoveGroupMigrationResponse {} 3102 3103// Request message for 'CreateCutoverJob' request. 3104message CreateCutoverJobRequest { 3105 // Required. The Cutover's parent. 3106 string parent = 1 [ 3107 (google.api.field_behavior) = REQUIRED, 3108 (google.api.resource_reference) = { 3109 child_type: "vmmigration.googleapis.com/CutoverJob" 3110 } 3111 ]; 3112 3113 // Required. The cutover job identifier. 3114 string cutover_job_id = 2 [(google.api.field_behavior) = REQUIRED]; 3115 3116 // Required. The cutover request body. 3117 CutoverJob cutover_job = 3 [(google.api.field_behavior) = REQUIRED]; 3118 3119 // A request ID to identify requests. Specify a unique request ID 3120 // so that if you must retry your request, the server will know to ignore 3121 // the request if it has already been completed. The server will guarantee 3122 // that for at least 60 minutes since the first request. 3123 // 3124 // For example, consider a situation where you make an initial request and t 3125 // he request times out. If you make the request again with the same request 3126 // ID, the server can check if original operation with the same request ID 3127 // was received, and if so, will ignore the second request. This prevents 3128 // clients from accidentally creating duplicate commitments. 3129 // 3130 // The request ID must be a valid UUID with the exception that zero UUID is 3131 // not supported (00000000-0000-0000-0000-000000000000). 3132 string request_id = 4; 3133} 3134 3135// Request message for 'CancelCutoverJob' request. 3136message CancelCutoverJobRequest { 3137 // Required. The cutover job id 3138 string name = 1 [ 3139 (google.api.field_behavior) = REQUIRED, 3140 (google.api.resource_reference) = { 3141 type: "vmmigration.googleapis.com/CutoverJob" 3142 } 3143 ]; 3144} 3145 3146// Response message for 'CancelCutoverJob' request. 3147message CancelCutoverJobResponse {} 3148 3149// Request message for 'ListCutoverJobsRequest' request. 3150message ListCutoverJobsRequest { 3151 // Required. The parent, which owns this collection of migrating VMs. 3152 string parent = 1 [ 3153 (google.api.field_behavior) = REQUIRED, 3154 (google.api.resource_reference) = { 3155 child_type: "vmmigration.googleapis.com/CutoverJob" 3156 } 3157 ]; 3158 3159 // Optional. The maximum number of cutover jobs to return. The service may 3160 // return fewer than this value. If unspecified, at most 500 cutover jobs will 3161 // be returned. The maximum value is 1000; values above 1000 will be coerced 3162 // to 1000. 3163 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 3164 3165 // Required. A page token, received from a previous `ListCutoverJobs` call. 3166 // Provide this to retrieve the subsequent page. 3167 // 3168 // When paginating, all other parameters provided to `ListCutoverJobs` must 3169 // match the call that provided the page token. 3170 string page_token = 3 [(google.api.field_behavior) = REQUIRED]; 3171 3172 // Optional. The filter request. 3173 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 3174 3175 // Optional. the order by fields for the result. 3176 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 3177} 3178 3179// Response message for 'ListCutoverJobs' request. 3180message ListCutoverJobsResponse { 3181 // Output only. The list of cutover jobs response. 3182 repeated CutoverJob cutover_jobs = 1 3183 [(google.api.field_behavior) = OUTPUT_ONLY]; 3184 3185 // Output only. A token, which can be sent as `page_token` to retrieve the 3186 // next page. If this field is omitted, there are no subsequent pages. 3187 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 3188 3189 // Output only. Locations that could not be reached. 3190 repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 3191} 3192 3193// Request message for 'GetCutoverJob' request. 3194message GetCutoverJobRequest { 3195 // Required. The name of the CutoverJob. 3196 string name = 1 [ 3197 (google.api.field_behavior) = REQUIRED, 3198 (google.api.resource_reference) = { 3199 type: "vmmigration.googleapis.com/CutoverJob" 3200 } 3201 ]; 3202} 3203 3204// Represents the metadata of the long-running operation. 3205message OperationMetadata { 3206 // Output only. The time the operation was created. 3207 google.protobuf.Timestamp create_time = 1 3208 [(google.api.field_behavior) = OUTPUT_ONLY]; 3209 3210 // Output only. The time the operation finished running. 3211 google.protobuf.Timestamp end_time = 2 3212 [(google.api.field_behavior) = OUTPUT_ONLY]; 3213 3214 // Output only. Server-defined resource path for the target of the operation. 3215 string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 3216 3217 // Output only. Name of the verb executed by the operation. 3218 string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 3219 3220 // Output only. Human-readable status of the operation, if any. 3221 string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 3222 3223 // Output only. Identifies whether the user has requested cancellation 3224 // of the operation. Operations that have successfully been cancelled 3225 // have [Operation.error][] value with a 3226 // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to 3227 // `Code.CANCELLED`. 3228 bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 3229 3230 // Output only. API version used to start the operation. 3231 string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 3232} 3233 3234// Represents migration resource error information that can be used with 3235// google.rpc.Status message. MigrationError is used to present the user with 3236// error information in migration operations. 3237message MigrationError { 3238 // Represents resource error codes. 3239 enum ErrorCode { 3240 // Default value. This value is not used. 3241 ERROR_CODE_UNSPECIFIED = 0; 3242 3243 // Migrate for Compute encountered an unknown error. 3244 UNKNOWN_ERROR = 1; 3245 3246 // Migrate for Compute encountered an error while validating replication 3247 // source health. 3248 SOURCE_VALIDATION_ERROR = 2; 3249 3250 // Migrate for Compute encountered an error during source data operation. 3251 SOURCE_REPLICATION_ERROR = 3; 3252 3253 // Migrate for Compute encountered an error during target data operation. 3254 TARGET_REPLICATION_ERROR = 4; 3255 3256 // Migrate for Compute encountered an error during OS adaptation. 3257 OS_ADAPTATION_ERROR = 5; 3258 3259 // Migrate for Compute encountered an error in clone operation. 3260 CLONE_ERROR = 6; 3261 3262 // Migrate for Compute encountered an error in cutover operation. 3263 CUTOVER_ERROR = 7; 3264 3265 // Migrate for Compute encountered an error during utilization report 3266 // creation. 3267 UTILIZATION_REPORT_ERROR = 8; 3268 3269 // Migrate for Compute encountered an error during appliance upgrade. 3270 APPLIANCE_UPGRADE_ERROR = 9; 3271 } 3272 3273 // Output only. The error code. 3274 ErrorCode code = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 3275 3276 // Output only. The localized error message. 3277 google.rpc.LocalizedMessage error_message = 2 3278 [(google.api.field_behavior) = OUTPUT_ONLY]; 3279 3280 // Output only. Suggested action for solving the error. 3281 google.rpc.LocalizedMessage action_item = 3 3282 [(google.api.field_behavior) = OUTPUT_ONLY]; 3283 3284 // Output only. URL(s) pointing to additional information on handling the 3285 // current error. 3286 repeated google.rpc.Help.Link help_links = 4 3287 [(google.api.field_behavior) = OUTPUT_ONLY]; 3288 3289 // Output only. The time the error occurred. 3290 google.protobuf.Timestamp error_time = 5 3291 [(google.api.field_behavior) = OUTPUT_ONLY]; 3292} 3293 3294// Represent the source AWS VM details. 3295message AwsSourceVmDetails { 3296 // Possible values for AWS VM firmware. 3297 enum Firmware { 3298 // The firmware is unknown. 3299 FIRMWARE_UNSPECIFIED = 0; 3300 3301 // The firmware is EFI. 3302 EFI = 1; 3303 3304 // The firmware is BIOS. 3305 BIOS = 2; 3306 } 3307 3308 // The firmware type of the source VM. 3309 Firmware firmware = 1; 3310 3311 // The total size of the disks being migrated in bytes. 3312 int64 committed_storage_bytes = 2; 3313} 3314 3315// Request message for 'LisReplicationCyclesRequest' request. 3316message ListReplicationCyclesRequest { 3317 // Required. The parent, which owns this collection of ReplicationCycles. 3318 string parent = 1 [ 3319 (google.api.field_behavior) = REQUIRED, 3320 (google.api.resource_reference) = { 3321 child_type: "vmmigration.googleapis.com/ReplicationCycle" 3322 } 3323 ]; 3324 3325 // Optional. The maximum number of replication cycles to return. The service 3326 // may return fewer than this value. If unspecified, at most 100 migrating VMs 3327 // will be returned. The maximum value is 100; values above 100 will be 3328 // coerced to 100. 3329 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 3330 3331 // Required. A page token, received from a previous `ListReplicationCycles` 3332 // call. Provide this to retrieve the subsequent page. 3333 // 3334 // When paginating, all other parameters provided to `ListReplicationCycles` 3335 // must match the call that provided the page token. 3336 string page_token = 3 [(google.api.field_behavior) = REQUIRED]; 3337 3338 // Optional. The filter request. 3339 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 3340 3341 // Optional. the order by fields for the result. 3342 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 3343} 3344 3345// Response message for 'ListReplicationCycles' request. 3346message ListReplicationCyclesResponse { 3347 // Output only. The list of replication cycles response. 3348 repeated ReplicationCycle replication_cycles = 1 3349 [(google.api.field_behavior) = OUTPUT_ONLY]; 3350 3351 // Output only. A token, which can be sent as `page_token` to retrieve the 3352 // next page. If this field is omitted, there are no subsequent pages. 3353 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 3354 3355 // Output only. Locations that could not be reached. 3356 repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 3357} 3358 3359// Request message for 'GetReplicationCycle' request. 3360message GetReplicationCycleRequest { 3361 // Required. The name of the ReplicationCycle. 3362 string name = 1 [ 3363 (google.api.field_behavior) = REQUIRED, 3364 (google.api.resource_reference) = { 3365 type: "vmmigration.googleapis.com/ReplicationCycle" 3366 } 3367 ]; 3368} 3369