1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.migrationcenter.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/empty.proto"; 25import "google/protobuf/field_mask.proto"; 26import "google/protobuf/timestamp.proto"; 27import "google/type/date.proto"; 28import "google/type/money.proto"; 29 30option csharp_namespace = "Google.Cloud.MigrationCenter.V1"; 31option go_package = "cloud.google.com/go/migrationcenter/apiv1/migrationcenterpb;migrationcenterpb"; 32option java_multiple_files = true; 33option java_outer_classname = "MigrationCenterProto"; 34option java_package = "com.google.cloud.migrationcenter.v1"; 35option php_namespace = "Google\\Cloud\\MigrationCenter\\V1"; 36option ruby_package = "Google::Cloud::MigrationCenter::V1"; 37 38// Service describing handlers for resources. 39service MigrationCenter { 40 option (google.api.default_host) = "migrationcenter.googleapis.com"; 41 option (google.api.oauth_scopes) = 42 "https://www.googleapis.com/auth/cloud-platform"; 43 44 // Lists all the assets in a given project and location. 45 rpc ListAssets(ListAssetsRequest) returns (ListAssetsResponse) { 46 option (google.api.http) = { 47 get: "/v1/{parent=projects/*/locations/*}/assets" 48 }; 49 option (google.api.method_signature) = "parent"; 50 } 51 52 // Gets the details of an asset. 53 rpc GetAsset(GetAssetRequest) returns (Asset) { 54 option (google.api.http) = { 55 get: "/v1/{name=projects/*/locations/*/assets/*}" 56 }; 57 option (google.api.method_signature) = "name"; 58 } 59 60 // Updates the parameters of an asset. 61 rpc UpdateAsset(UpdateAssetRequest) returns (Asset) { 62 option (google.api.http) = { 63 patch: "/v1/{asset.name=projects/*/locations/*/assets/*}" 64 body: "asset" 65 }; 66 option (google.api.method_signature) = "asset,update_mask"; 67 } 68 69 // Updates the parameters of a list of assets. 70 rpc BatchUpdateAssets(BatchUpdateAssetsRequest) 71 returns (BatchUpdateAssetsResponse) { 72 option (google.api.http) = { 73 post: "/v1/{parent=projects/*/locations/*}/assets:batchUpdate" 74 body: "*" 75 }; 76 option (google.api.method_signature) = "parent,requests"; 77 } 78 79 // Deletes an asset. 80 rpc DeleteAsset(DeleteAssetRequest) returns (google.protobuf.Empty) { 81 option (google.api.http) = { 82 delete: "/v1/{name=projects/*/locations/*/assets/*}" 83 }; 84 option (google.api.method_signature) = "name"; 85 } 86 87 // Deletes list of Assets. 88 rpc BatchDeleteAssets(BatchDeleteAssetsRequest) 89 returns (google.protobuf.Empty) { 90 option (google.api.http) = { 91 post: "/v1/{parent=projects/*/locations/*}/assets:batchDelete" 92 body: "*" 93 }; 94 option (google.api.method_signature) = "parent,names"; 95 } 96 97 // Reports a set of frames. 98 rpc ReportAssetFrames(ReportAssetFramesRequest) 99 returns (ReportAssetFramesResponse) { 100 option (google.api.http) = { 101 post: "/v1/{parent=projects/*/locations/*}/assets:reportAssetFrames" 102 body: "frames" 103 }; 104 } 105 106 // Aggregates the requested fields based on provided function. 107 rpc AggregateAssetsValues(AggregateAssetsValuesRequest) 108 returns (AggregateAssetsValuesResponse) { 109 option (google.api.http) = { 110 post: "/v1/{parent=projects/*/locations/*}/assets:aggregateValues" 111 body: "*" 112 }; 113 } 114 115 // Creates an import job. 116 rpc CreateImportJob(CreateImportJobRequest) 117 returns (google.longrunning.Operation) { 118 option (google.api.http) = { 119 post: "/v1/{parent=projects/*/locations/*}/importJobs" 120 body: "import_job" 121 }; 122 option (google.api.method_signature) = "parent,import_job,import_job_id"; 123 option (google.longrunning.operation_info) = { 124 response_type: "ImportJob" 125 metadata_type: "OperationMetadata" 126 }; 127 } 128 129 // Lists all import jobs. 130 rpc ListImportJobs(ListImportJobsRequest) returns (ListImportJobsResponse) { 131 option (google.api.http) = { 132 get: "/v1/{parent=projects/*/locations/*}/importJobs" 133 }; 134 option (google.api.method_signature) = "parent"; 135 } 136 137 // Gets the details of an import job. 138 rpc GetImportJob(GetImportJobRequest) returns (ImportJob) { 139 option (google.api.http) = { 140 get: "/v1/{name=projects/*/locations/*/importJobs/*}" 141 }; 142 option (google.api.method_signature) = "name"; 143 } 144 145 // Deletes an import job. 146 rpc DeleteImportJob(DeleteImportJobRequest) 147 returns (google.longrunning.Operation) { 148 option (google.api.http) = { 149 delete: "/v1/{name=projects/*/locations/*/importJobs/*}" 150 }; 151 option (google.api.method_signature) = "name"; 152 option (google.longrunning.operation_info) = { 153 response_type: "google.protobuf.Empty" 154 metadata_type: "OperationMetadata" 155 }; 156 } 157 158 // Updates an import job. 159 rpc UpdateImportJob(UpdateImportJobRequest) 160 returns (google.longrunning.Operation) { 161 option (google.api.http) = { 162 patch: "/v1/{import_job.name=projects/*/locations/*/importJobs/*}" 163 body: "import_job" 164 }; 165 option (google.api.method_signature) = "import_job,update_mask"; 166 option (google.longrunning.operation_info) = { 167 response_type: "ImportJob" 168 metadata_type: "OperationMetadata" 169 }; 170 } 171 172 // Validates an import job. 173 rpc ValidateImportJob(ValidateImportJobRequest) 174 returns (google.longrunning.Operation) { 175 option (google.api.http) = { 176 post: "/v1/{name=projects/*/locations/*/importJobs/*}:validate" 177 body: "*" 178 }; 179 option (google.api.method_signature) = "name"; 180 option (google.longrunning.operation_info) = { 181 response_type: "google.protobuf.Empty" 182 metadata_type: "OperationMetadata" 183 }; 184 } 185 186 // Runs an import job. 187 rpc RunImportJob(RunImportJobRequest) returns (google.longrunning.Operation) { 188 option (google.api.http) = { 189 post: "/v1/{name=projects/*/locations/*/importJobs/*}:run" 190 body: "*" 191 }; 192 option (google.api.method_signature) = "name"; 193 option (google.longrunning.operation_info) = { 194 response_type: "google.protobuf.Empty" 195 metadata_type: "OperationMetadata" 196 }; 197 } 198 199 // Gets an import data file. 200 rpc GetImportDataFile(GetImportDataFileRequest) returns (ImportDataFile) { 201 option (google.api.http) = { 202 get: "/v1/{name=projects/*/locations/*/importJobs/*/importDataFiles/*}" 203 }; 204 option (google.api.method_signature) = "name"; 205 } 206 207 // List import data files. 208 rpc ListImportDataFiles(ListImportDataFilesRequest) 209 returns (ListImportDataFilesResponse) { 210 option (google.api.http) = { 211 get: "/v1/{parent=projects/*/locations/*/importJobs/*}/importDataFiles" 212 }; 213 option (google.api.method_signature) = "parent"; 214 } 215 216 // Creates an import data file. 217 rpc CreateImportDataFile(CreateImportDataFileRequest) 218 returns (google.longrunning.Operation) { 219 option (google.api.http) = { 220 post: "/v1/{parent=projects/*/locations/*/importJobs/*}/importDataFiles" 221 body: "import_data_file" 222 }; 223 option (google.api.method_signature) = 224 "parent,import_data_file,import_data_file_id"; 225 option (google.longrunning.operation_info) = { 226 response_type: "ImportDataFile" 227 metadata_type: "OperationMetadata" 228 }; 229 } 230 231 // Delete an import data file. 232 rpc DeleteImportDataFile(DeleteImportDataFileRequest) 233 returns (google.longrunning.Operation) { 234 option (google.api.http) = { 235 delete: "/v1/{name=projects/*/locations/*/importJobs/*/importDataFiles/*}" 236 }; 237 option (google.api.method_signature) = "name"; 238 option (google.longrunning.operation_info) = { 239 response_type: "google.protobuf.Empty" 240 metadata_type: "OperationMetadata" 241 }; 242 } 243 244 // Lists all groups in a given project and location. 245 rpc ListGroups(ListGroupsRequest) returns (ListGroupsResponse) { 246 option (google.api.http) = { 247 get: "/v1/{parent=projects/*/locations/*}/groups" 248 }; 249 option (google.api.method_signature) = "parent"; 250 } 251 252 // Gets the details of a group. 253 rpc GetGroup(GetGroupRequest) returns (Group) { 254 option (google.api.http) = { 255 get: "/v1/{name=projects/*/locations/*/groups/*}" 256 }; 257 option (google.api.method_signature) = "name"; 258 } 259 260 // Creates a new group in a given project and location. 261 rpc CreateGroup(CreateGroupRequest) returns (google.longrunning.Operation) { 262 option (google.api.http) = { 263 post: "/v1/{parent=projects/*/locations/*}/groups" 264 body: "group" 265 }; 266 option (google.api.method_signature) = "parent,group,group_id"; 267 option (google.longrunning.operation_info) = { 268 response_type: "Group" 269 metadata_type: "OperationMetadata" 270 }; 271 } 272 273 // Updates the parameters of a group. 274 rpc UpdateGroup(UpdateGroupRequest) returns (google.longrunning.Operation) { 275 option (google.api.http) = { 276 patch: "/v1/{group.name=projects/*/locations/*/groups/*}" 277 body: "group" 278 }; 279 option (google.api.method_signature) = "group,update_mask"; 280 option (google.longrunning.operation_info) = { 281 response_type: "Group" 282 metadata_type: "OperationMetadata" 283 }; 284 } 285 286 // Deletes a group. 287 rpc DeleteGroup(DeleteGroupRequest) returns (google.longrunning.Operation) { 288 option (google.api.http) = { 289 delete: "/v1/{name=projects/*/locations/*/groups/*}" 290 }; 291 option (google.api.method_signature) = "name"; 292 option (google.longrunning.operation_info) = { 293 response_type: "google.protobuf.Empty" 294 metadata_type: "OperationMetadata" 295 }; 296 } 297 298 // Adds assets to a group. 299 rpc AddAssetsToGroup(AddAssetsToGroupRequest) 300 returns (google.longrunning.Operation) { 301 option (google.api.http) = { 302 post: "/v1/{group=projects/*/locations/*/groups/*}:addAssets" 303 body: "*" 304 }; 305 option (google.api.method_signature) = "group"; 306 option (google.longrunning.operation_info) = { 307 response_type: "Group" 308 metadata_type: "OperationMetadata" 309 }; 310 } 311 312 // Removes assets from a group. 313 rpc RemoveAssetsFromGroup(RemoveAssetsFromGroupRequest) 314 returns (google.longrunning.Operation) { 315 option (google.api.http) = { 316 post: "/v1/{group=projects/*/locations/*/groups/*}:removeAssets" 317 body: "*" 318 }; 319 option (google.api.method_signature) = "group"; 320 option (google.longrunning.operation_info) = { 321 response_type: "Group" 322 metadata_type: "OperationMetadata" 323 }; 324 } 325 326 // Lists all error frames in a given source and location. 327 rpc ListErrorFrames(ListErrorFramesRequest) 328 returns (ListErrorFramesResponse) { 329 option (google.api.http) = { 330 get: "/v1/{parent=projects/*/locations/*/sources/*}/errorFrames" 331 }; 332 option (google.api.method_signature) = "parent"; 333 } 334 335 // Gets the details of an error frame. 336 rpc GetErrorFrame(GetErrorFrameRequest) returns (ErrorFrame) { 337 option (google.api.http) = { 338 get: "/v1/{name=projects/*/locations/*/sources/*/errorFrames/*}" 339 }; 340 option (google.api.method_signature) = "name"; 341 } 342 343 // Lists all the sources in a given project and location. 344 rpc ListSources(ListSourcesRequest) returns (ListSourcesResponse) { 345 option (google.api.http) = { 346 get: "/v1/{parent=projects/*/locations/*}/sources" 347 }; 348 option (google.api.method_signature) = "parent"; 349 } 350 351 // Gets the details of a source. 352 rpc GetSource(GetSourceRequest) returns (Source) { 353 option (google.api.http) = { 354 get: "/v1/{name=projects/*/locations/*/sources/*}" 355 }; 356 option (google.api.method_signature) = "name"; 357 } 358 359 // Creates a new source in a given project and location. 360 rpc CreateSource(CreateSourceRequest) returns (google.longrunning.Operation) { 361 option (google.api.http) = { 362 post: "/v1/{parent=projects/*/locations/*}/sources" 363 body: "source" 364 }; 365 option (google.api.method_signature) = "parent,source,source_id"; 366 option (google.longrunning.operation_info) = { 367 response_type: "Source" 368 metadata_type: "OperationMetadata" 369 }; 370 } 371 372 // Updates the parameters of a source. 373 rpc UpdateSource(UpdateSourceRequest) returns (google.longrunning.Operation) { 374 option (google.api.http) = { 375 patch: "/v1/{source.name=projects/*/locations/*/sources/*}" 376 body: "source" 377 }; 378 option (google.api.method_signature) = "source,update_mask"; 379 option (google.longrunning.operation_info) = { 380 response_type: "Source" 381 metadata_type: "OperationMetadata" 382 }; 383 } 384 385 // Deletes a source. 386 rpc DeleteSource(DeleteSourceRequest) returns (google.longrunning.Operation) { 387 option (google.api.http) = { 388 delete: "/v1/{name=projects/*/locations/*/sources/*}" 389 }; 390 option (google.api.method_signature) = "name"; 391 option (google.longrunning.operation_info) = { 392 response_type: "google.protobuf.Empty" 393 metadata_type: "OperationMetadata" 394 }; 395 } 396 397 // Lists all the preference sets in a given project and location. 398 rpc ListPreferenceSets(ListPreferenceSetsRequest) 399 returns (ListPreferenceSetsResponse) { 400 option (google.api.http) = { 401 get: "/v1/{parent=projects/*/locations/*}/preferenceSets" 402 }; 403 option (google.api.method_signature) = "parent"; 404 } 405 406 // Gets the details of a preference set. 407 rpc GetPreferenceSet(GetPreferenceSetRequest) returns (PreferenceSet) { 408 option (google.api.http) = { 409 get: "/v1/{name=projects/*/locations/*/preferenceSets/*}" 410 }; 411 option (google.api.method_signature) = "name"; 412 } 413 414 // Creates a new preference set in a given project and location. 415 rpc CreatePreferenceSet(CreatePreferenceSetRequest) 416 returns (google.longrunning.Operation) { 417 option (google.api.http) = { 418 post: "/v1/{parent=projects/*/locations/*}/preferenceSets" 419 body: "preference_set" 420 }; 421 option (google.api.method_signature) = 422 "parent,preference_set,preference_set_id"; 423 option (google.longrunning.operation_info) = { 424 response_type: "PreferenceSet" 425 metadata_type: "OperationMetadata" 426 }; 427 } 428 429 // Updates the parameters of a preference set. 430 rpc UpdatePreferenceSet(UpdatePreferenceSetRequest) 431 returns (google.longrunning.Operation) { 432 option (google.api.http) = { 433 patch: "/v1/{preference_set.name=projects/*/locations/*/preferenceSets/*}" 434 body: "preference_set" 435 }; 436 option (google.api.method_signature) = "preference_set,update_mask"; 437 option (google.longrunning.operation_info) = { 438 response_type: "PreferenceSet" 439 metadata_type: "OperationMetadata" 440 }; 441 } 442 443 // Deletes a preference set. 444 rpc DeletePreferenceSet(DeletePreferenceSetRequest) 445 returns (google.longrunning.Operation) { 446 option (google.api.http) = { 447 delete: "/v1/{name=projects/*/locations/*/preferenceSets/*}" 448 }; 449 option (google.api.method_signature) = "name"; 450 option (google.longrunning.operation_info) = { 451 response_type: "google.protobuf.Empty" 452 metadata_type: "OperationMetadata" 453 }; 454 } 455 456 // Gets the details of regional settings. 457 rpc GetSettings(GetSettingsRequest) returns (Settings) { 458 option (google.api.http) = { 459 get: "/v1/{name=projects/*/locations/*/settings}" 460 }; 461 option (google.api.method_signature) = "name"; 462 } 463 464 // Updates the regional-level project settings. 465 rpc UpdateSettings(UpdateSettingsRequest) 466 returns (google.longrunning.Operation) { 467 option (google.api.http) = { 468 patch: "/v1/{settings.name=projects/*/locations/*/settings}" 469 body: "settings" 470 }; 471 option (google.api.method_signature) = "settings,update_mask"; 472 option (google.longrunning.operation_info) = { 473 response_type: "Settings" 474 metadata_type: "OperationMetadata" 475 }; 476 } 477 478 // Creates a report configuration. 479 rpc CreateReportConfig(CreateReportConfigRequest) 480 returns (google.longrunning.Operation) { 481 option (google.api.http) = { 482 post: "/v1/{parent=projects/*/locations/*}/reportConfigs" 483 body: "report_config" 484 }; 485 option (google.api.method_signature) = 486 "parent,report_config,report_config_id"; 487 option (google.longrunning.operation_info) = { 488 response_type: "ReportConfig" 489 metadata_type: "OperationMetadata" 490 }; 491 } 492 493 // Gets details of a single ReportConfig. 494 rpc GetReportConfig(GetReportConfigRequest) returns (ReportConfig) { 495 option (google.api.http) = { 496 get: "/v1/{name=projects/*/locations/*/reportConfigs/*}" 497 }; 498 option (google.api.method_signature) = "name"; 499 } 500 501 // Lists ReportConfigs in a given project and location. 502 rpc ListReportConfigs(ListReportConfigsRequest) 503 returns (ListReportConfigsResponse) { 504 option (google.api.http) = { 505 get: "/v1/{parent=projects/*/locations/*}/reportConfigs" 506 }; 507 option (google.api.method_signature) = "parent"; 508 } 509 510 // Deletes a ReportConfig. 511 rpc DeleteReportConfig(DeleteReportConfigRequest) 512 returns (google.longrunning.Operation) { 513 option (google.api.http) = { 514 delete: "/v1/{name=projects/*/locations/*/reportConfigs/*}" 515 }; 516 option (google.api.method_signature) = "name"; 517 option (google.longrunning.operation_info) = { 518 response_type: "google.protobuf.Empty" 519 metadata_type: "OperationMetadata" 520 }; 521 } 522 523 // Creates a report. 524 rpc CreateReport(CreateReportRequest) returns (google.longrunning.Operation) { 525 option (google.api.http) = { 526 post: "/v1/{parent=projects/*/locations/*/reportConfigs/*}/reports" 527 body: "report" 528 }; 529 option (google.api.method_signature) = "parent,report,report_id"; 530 option (google.longrunning.operation_info) = { 531 response_type: "Report" 532 metadata_type: "OperationMetadata" 533 }; 534 } 535 536 // Gets details of a single Report. 537 rpc GetReport(GetReportRequest) returns (Report) { 538 option (google.api.http) = { 539 get: "/v1/{name=projects/*/locations/*/reportConfigs/*/reports/*}" 540 }; 541 option (google.api.method_signature) = "name"; 542 } 543 544 // Lists Reports in a given ReportConfig. 545 rpc ListReports(ListReportsRequest) returns (ListReportsResponse) { 546 option (google.api.http) = { 547 get: "/v1/{parent=projects/*/locations/*/reportConfigs/*}/reports" 548 }; 549 option (google.api.method_signature) = "parent"; 550 } 551 552 // Deletes a Report. 553 rpc DeleteReport(DeleteReportRequest) returns (google.longrunning.Operation) { 554 option (google.api.http) = { 555 delete: "/v1/{name=projects/*/locations/*/reportConfigs/*/reports/*}" 556 }; 557 option (google.api.method_signature) = "name"; 558 option (google.longrunning.operation_info) = { 559 response_type: "google.protobuf.Empty" 560 metadata_type: "OperationMetadata" 561 }; 562 } 563} 564 565// An asset represents a resource in your environment. Asset types include 566// virtual machines and databases. 567message Asset { 568 option (google.api.resource) = { 569 type: "migrationcenter.googleapis.com/Asset" 570 pattern: "projects/{project}/locations/{location}/assets/{asset}" 571 }; 572 573 // Output only. The full name of the asset. 574 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 575 576 // Output only. The timestamp when the asset was created. 577 google.protobuf.Timestamp create_time = 2 578 [(google.api.field_behavior) = OUTPUT_ONLY]; 579 580 // Output only. The timestamp when the asset was last updated. 581 google.protobuf.Timestamp update_time = 3 582 [(google.api.field_behavior) = OUTPUT_ONLY]; 583 584 // Labels as key value pairs. 585 map<string, string> labels = 4; 586 587 // Generic asset attributes. 588 map<string, string> attributes = 5; 589 590 // The internal information of an asset. Only one field can be specified 591 // with different attributes based on the type of the asset. 592 oneof AssetDetails { 593 // Output only. Asset information specific for virtual and physical 594 // machines. 595 MachineDetails machine_details = 6 596 [(google.api.field_behavior) = OUTPUT_ONLY]; 597 } 598 599 // Output only. The list of insights associated with the asset. 600 InsightList insight_list = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; 601 602 // Output only. Performance data for the asset. 603 AssetPerformanceData performance_data = 21 604 [(google.api.field_behavior) = OUTPUT_ONLY]; 605 606 // Output only. The list of sources contributing to the asset. 607 repeated string sources = 22 [ 608 (google.api.field_behavior) = OUTPUT_ONLY, 609 (google.api.resource_reference) = { 610 type: "migrationcenter.googleapis.com/Source" 611 } 612 ]; 613 614 // Output only. The list of groups that the asset is assigned to. 615 repeated string assigned_groups = 23 [ 616 (google.api.field_behavior) = OUTPUT_ONLY, 617 (google.api.resource_reference) = { 618 type: "migrationcenter.googleapis.com/Group" 619 } 620 ]; 621} 622 623// The preferences that apply to all assets in a given context. 624message PreferenceSet { 625 option (google.api.resource) = { 626 type: "migrationcenter.googleapis.com/PreferenceSet" 627 pattern: "projects/{project}/locations/{location}/preferenceSets/{preference_set}" 628 }; 629 630 // Output only. Name of the preference set. 631 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 632 633 // Output only. The timestamp when the preference set was created. 634 google.protobuf.Timestamp create_time = 2 635 [(google.api.field_behavior) = OUTPUT_ONLY]; 636 637 // Output only. The timestamp when the preference set was last updated. 638 google.protobuf.Timestamp update_time = 3 639 [(google.api.field_behavior) = OUTPUT_ONLY]; 640 641 // User-friendly display name. Maximum length is 63 characters. 642 string display_name = 4; 643 644 // A description of the preference set. 645 string description = 5; 646 647 // A set of preferences that applies to all virtual machines in the context. 648 VirtualMachinePreferences virtual_machine_preferences = 6; 649} 650 651// A resource that represents the background job that imports asset frames. 652message ImportJob { 653 option (google.api.resource) = { 654 type: "migrationcenter.googleapis.com/ImportJob" 655 pattern: "projects/{project}/locations/{location}/importJobs/{import_job}" 656 }; 657 658 // Enumerates possible states of an import job. 659 enum ImportJobState { 660 // Default value. 661 IMPORT_JOB_STATE_UNSPECIFIED = 0; 662 663 // The import job is pending. 664 IMPORT_JOB_STATE_PENDING = 1; 665 666 // The processing of the import job is ongoing. 667 IMPORT_JOB_STATE_RUNNING = 2; 668 669 // The import job processing has completed. 670 IMPORT_JOB_STATE_COMPLETED = 3; 671 672 // The import job failed to be processed. 673 IMPORT_JOB_STATE_FAILED = 4; 674 675 // The import job is being validated. 676 IMPORT_JOB_STATE_VALIDATING = 5; 677 678 // The import job contains blocking errors. 679 IMPORT_JOB_STATE_FAILED_VALIDATION = 6; 680 681 // The validation of the job completed with no blocking errors. 682 IMPORT_JOB_STATE_READY = 7; 683 } 684 685 // Output only. The full name of the import job. 686 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 687 688 // User-friendly display name. Maximum length is 63 characters. 689 string display_name = 2; 690 691 // Output only. The timestamp when the import job was created. 692 google.protobuf.Timestamp create_time = 3 693 [(google.api.field_behavior) = OUTPUT_ONLY]; 694 695 // Output only. The timestamp when the import job was last updated. 696 google.protobuf.Timestamp update_time = 4 697 [(google.api.field_behavior) = OUTPUT_ONLY]; 698 699 // Output only. The timestamp when the import job was completed. 700 google.protobuf.Timestamp complete_time = 5 701 [(google.api.field_behavior) = OUTPUT_ONLY]; 702 703 // Output only. The state of the import job. 704 ImportJobState state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 705 706 // Labels as key value pairs. 707 map<string, string> labels = 7; 708 709 // Required. Reference to a source. 710 string asset_source = 8 [ 711 (google.api.field_behavior) = REQUIRED, 712 (google.api.resource_reference) = { 713 type: "migrationcenter.googleapis.com/Source" 714 } 715 ]; 716 717 // Holds the various report types of an import job. 718 oneof report { 719 // Output only. The report with the validation results of the import job. 720 ValidationReport validation_report = 10 721 [(google.api.field_behavior) = OUTPUT_ONLY]; 722 723 // Output only. The report with the results of running the import job. 724 ExecutionReport execution_report = 11 725 [(google.api.field_behavior) = OUTPUT_ONLY]; 726 } 727} 728 729// A resource that represents a payload file in an import job. 730message ImportDataFile { 731 option (google.api.resource) = { 732 type: "migrationcenter.googleapis.com/ImportDataFile" 733 pattern: "projects/{project}/locations/{location}/importJobs/{import_job}/importDataFiles/{import_data_file}" 734 }; 735 736 // Enumerates possible states of an import data file. 737 enum State { 738 // Default value. 739 STATE_UNSPECIFIED = 0; 740 741 // The data file is being created. 742 CREATING = 1; 743 744 // The data file completed initialization. 745 ACTIVE = 2; 746 } 747 748 // Output only. The name of the file. 749 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 750 751 // User-friendly display name. Maximum length is 63 characters. 752 string display_name = 6; 753 754 // Required. The payload format. 755 ImportJobFormat format = 2 [(google.api.field_behavior) = REQUIRED]; 756 757 // Output only. The timestamp when the file was created. 758 google.protobuf.Timestamp create_time = 3 759 [(google.api.field_behavior) = OUTPUT_ONLY]; 760 761 // Output only. The state of the import data file. 762 State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 763 764 oneof file_info { 765 // Information about a file that is uploaded to a storage service. 766 UploadFileInfo upload_file_info = 5; 767 } 768} 769 770// A resource that represents an asset group. 771// The purpose of an asset group is to bundle a set of assets that have 772// something in common, while allowing users to add annotations to the group. 773// An asset can belong to multiple groups. 774message Group { 775 option (google.api.resource) = { 776 type: "migrationcenter.googleapis.com/Group" 777 pattern: "projects/{project}/locations/{location}/groups/{group}" 778 }; 779 780 // Output only. The name of the group. 781 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 782 783 // Output only. The timestamp when the group was created. 784 google.protobuf.Timestamp create_time = 2 785 [(google.api.field_behavior) = OUTPUT_ONLY]; 786 787 // Output only. The timestamp when the group was last updated. 788 google.protobuf.Timestamp update_time = 3 789 [(google.api.field_behavior) = OUTPUT_ONLY]; 790 791 // Labels as key value pairs. 792 map<string, string> labels = 4; 793 794 // User-friendly display name. 795 string display_name = 5; 796 797 // The description of the resource. 798 string description = 6; 799} 800 801// Message representing a frame which failed to be processed due to an error. 802message ErrorFrame { 803 option (google.api.resource) = { 804 type: "migrationcenter.googleapis.com/ErrorFrame" 805 pattern: "projects/{project}/locations/{location}/sources/{source}/errorFrames/{error_frame}" 806 }; 807 808 // Output only. The identifier of the ErrorFrame. 809 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 810 811 // Output only. All the violations that were detected for the frame. 812 repeated FrameViolationEntry violations = 2 813 [(google.api.field_behavior) = OUTPUT_ONLY]; 814 815 // Output only. The frame that was originally reported. 816 AssetFrame original_frame = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 817 818 // Output only. Frame ingestion time. 819 google.protobuf.Timestamp ingestion_time = 4 820 [(google.api.field_behavior) = OUTPUT_ONLY]; 821} 822 823// Source represents an object from which asset information is 824// streamed to Migration Center. 825message Source { 826 option (google.api.resource) = { 827 type: "migrationcenter.googleapis.com/Source" 828 pattern: "projects/{project}/locations/{location}/sources/{source}" 829 }; 830 831 enum SourceType { 832 // Unspecified 833 SOURCE_TYPE_UNKNOWN = 0; 834 835 // Manually uploaded file (e.g. CSV) 836 SOURCE_TYPE_UPLOAD = 1; 837 838 // Guest-level info 839 SOURCE_TYPE_GUEST_OS_SCAN = 2; 840 841 // Inventory-level scan 842 SOURCE_TYPE_INVENTORY_SCAN = 3; 843 844 // Third-party owned sources. 845 SOURCE_TYPE_CUSTOM = 4; 846 } 847 848 // Enumerates possible states of a source. 849 enum State { 850 // Unspecified. 851 STATE_UNSPECIFIED = 0; 852 853 // The source is active and ready to be used. 854 ACTIVE = 1; 855 856 // In the process of being deleted. 857 DELETING = 2; 858 859 // Source is in an invalid state. Asset frames reported to it will be 860 // ignored. 861 INVALID = 3; 862 } 863 864 // Output only. The full name of the source. 865 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 866 867 // Output only. The timestamp when the source was created. 868 google.protobuf.Timestamp create_time = 2 869 [(google.api.field_behavior) = OUTPUT_ONLY]; 870 871 // Output only. The timestamp when the source was last updated. 872 google.protobuf.Timestamp update_time = 3 873 [(google.api.field_behavior) = OUTPUT_ONLY]; 874 875 // User-friendly display name. 876 string display_name = 4; 877 878 // Free-text description. 879 string description = 5; 880 881 // Data source type. 882 SourceType type = 6; 883 884 // The information confidence of the source. 885 // The higher the value, the higher the confidence. 886 int32 priority = 7; 887 888 // If `true`, the source is managed by other service(s). 889 bool managed = 8; 890 891 // Output only. Number of frames that are still being processed. 892 int32 pending_frame_count = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 893 894 // Output only. The number of frames that were reported by the source and 895 // contained errors. 896 int32 error_frame_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 897 898 // Output only. The state of the source. 899 State state = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 900} 901 902// The groups and associated preference sets on which 903// we can generate reports. 904message ReportConfig { 905 option (google.api.resource) = { 906 type: "migrationcenter.googleapis.com/ReportConfig" 907 pattern: "projects/{project}/locations/{location}/reportConfigs/{report_config}" 908 }; 909 910 // Represents a combination of a group with a preference set. 911 message GroupPreferenceSetAssignment { 912 // Required. Name of the group. 913 string group = 1 [ 914 (google.api.field_behavior) = REQUIRED, 915 (google.api.resource_reference) = { 916 type: "migrationcenter.googleapis.com/Group" 917 } 918 ]; 919 920 // Required. Name of the Preference Set. 921 string preference_set = 2 [ 922 (google.api.field_behavior) = REQUIRED, 923 (google.api.resource_reference) = { 924 type: "migrationcenter.googleapis.com/PreferenceSet" 925 } 926 ]; 927 } 928 929 // Output only. Name of resource. 930 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 931 932 // Output only. The timestamp when the resource was created. 933 google.protobuf.Timestamp create_time = 2 934 [(google.api.field_behavior) = OUTPUT_ONLY]; 935 936 // Output only. The timestamp when the resource was last updated. 937 google.protobuf.Timestamp update_time = 3 938 [(google.api.field_behavior) = OUTPUT_ONLY]; 939 940 // User-friendly display name. Maximum length is 63 characters. 941 string display_name = 4; 942 943 // Free-text description. 944 string description = 5; 945 946 // Required. Collection of combinations of groups and preference sets. 947 repeated GroupPreferenceSetAssignment group_preferenceset_assignments = 6 948 [(google.api.field_behavior) = REQUIRED]; 949} 950 951// Report represents a point-in-time rendering of the ReportConfig results. 952message Report { 953 option (google.api.resource) = { 954 type: "migrationcenter.googleapis.com/Report" 955 pattern: "projects/{project}/locations/{location}/reportConfigs/{report_config}/reports/{report}" 956 }; 957 958 // Report type. 959 enum Type { 960 // Default Report type. 961 TYPE_UNSPECIFIED = 0; 962 963 // Total cost of ownership Report type. 964 TOTAL_COST_OF_OWNERSHIP = 1; 965 } 966 967 // Report creation state. 968 enum State { 969 // Default Report creation state. 970 STATE_UNSPECIFIED = 0; 971 972 // Creating Report. 973 PENDING = 1; 974 975 // Successfully created Report. 976 SUCCEEDED = 2; 977 978 // Failed to create Report. 979 FAILED = 3; 980 } 981 982 // Output only. Name of resource. 983 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 984 985 // Output only. Creation timestamp. 986 google.protobuf.Timestamp create_time = 2 987 [(google.api.field_behavior) = OUTPUT_ONLY]; 988 989 // Output only. Last update timestamp. 990 google.protobuf.Timestamp update_time = 3 991 [(google.api.field_behavior) = OUTPUT_ONLY]; 992 993 // User-friendly display name. Maximum length is 63 characters. 994 string display_name = 4; 995 996 // Free-text description. 997 string description = 5; 998 999 // Report type. 1000 Type type = 6; 1001 1002 // Report creation state. 1003 State state = 7; 1004 1005 // Output only. Summary view of the Report. 1006 ReportSummary summary = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 1007} 1008 1009// Represents the metadata of the long-running operation. 1010message OperationMetadata { 1011 // Output only. The time the operation was created. 1012 google.protobuf.Timestamp create_time = 1 1013 [(google.api.field_behavior) = OUTPUT_ONLY]; 1014 1015 // Output only. The time the operation finished running. 1016 google.protobuf.Timestamp end_time = 2 1017 [(google.api.field_behavior) = OUTPUT_ONLY]; 1018 1019 // Output only. Server-defined resource path for the target of the operation. 1020 string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1021 1022 // Output only. Name of the verb executed by the operation. 1023 string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 1024 1025 // Output only. Human-readable status of the operation, if any. 1026 string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 1027 1028 // Output only. Identifies whether the user has requested cancellation 1029 // of the operation. Operations that have been cancelled successfully 1030 // have [Operation.error][] value with a 1031 // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to 1032 // `Code.CANCELLED`. 1033 bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 1034 1035 // Output only. API version used to start the operation. 1036 string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 1037} 1038 1039// Message for requesting a list of assets. 1040message ListAssetsRequest { 1041 // Required. Parent value for `ListAssetsRequest`. 1042 string parent = 1 [ 1043 (google.api.field_behavior) = REQUIRED, 1044 (google.api.resource_reference) = { 1045 child_type: "migrationcenter.googleapis.com/Asset" 1046 } 1047 ]; 1048 1049 // Requested page size. Server may return fewer items than requested. 1050 // If unspecified, server will pick an appropriate default. 1051 int32 page_size = 2; 1052 1053 // A token identifying a page of results the server should return. 1054 string page_token = 3; 1055 1056 // Filtering results. 1057 string filter = 4; 1058 1059 // Field to sort by. See https://google.aip.dev/132#ordering for more details. 1060 string order_by = 5; 1061 1062 // View of the assets. Defaults to BASIC. 1063 AssetView view = 6; 1064} 1065 1066// Response message for listing assets. 1067message ListAssetsResponse { 1068 // A list of assets. 1069 repeated Asset assets = 1; 1070 1071 // A token identifying a page of results the server should return. 1072 string next_page_token = 2; 1073 1074 // Locations that could not be reached. 1075 repeated string unreachable = 3; 1076} 1077 1078// Message for getting a Asset. 1079message GetAssetRequest { 1080 // Required. Name of the resource. 1081 string name = 1 [ 1082 (google.api.field_behavior) = REQUIRED, 1083 (google.api.resource_reference) = { 1084 type: "migrationcenter.googleapis.com/Asset" 1085 } 1086 ]; 1087 1088 // View of the assets. Defaults to BASIC. 1089 AssetView view = 2; 1090} 1091 1092// A request to update an asset. 1093message UpdateAssetRequest { 1094 // Required. Field mask is used to specify the fields to be overwritten in the 1095 // `Asset` resource by the update. 1096 // The values specified in the `update_mask` field are relative to the 1097 // resource, not the full request. 1098 // A field will be overwritten if it is in the mask. 1099 // A single * value in the mask lets you to overwrite all fields. 1100 google.protobuf.FieldMask update_mask = 1 1101 [(google.api.field_behavior) = REQUIRED]; 1102 1103 // Required. The resource being updated. 1104 Asset asset = 2 [(google.api.field_behavior) = REQUIRED]; 1105 1106 // Optional. An optional request ID to identify requests. Specify a unique 1107 // request ID so that if you must retry your request, the server will know to 1108 // ignore the request if it has already been completed. The server will 1109 // guarantee that for at least 60 minutes since the first request. 1110 // 1111 // For example, consider a situation where you make an initial request and 1112 // the request times out. If you make the request again with the same request 1113 // ID, the server can check if original operation with the same request ID 1114 // was received, and if so, will ignore the second request. This prevents 1115 // clients from accidentally creating duplicate commitments. 1116 // 1117 // The request ID must be a valid UUID with the exception that zero UUID is 1118 // not supported (00000000-0000-0000-0000-000000000000). 1119 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 1120} 1121 1122// A request to update a list of assets. 1123message BatchUpdateAssetsRequest { 1124 // Required. Parent value for batch asset update. 1125 string parent = 1 [ 1126 (google.api.field_behavior) = REQUIRED, 1127 (google.api.resource_reference) = { 1128 child_type: "migrationcenter.googleapis.com/Asset" 1129 } 1130 ]; 1131 1132 // Required. The request message specifying the resources to update. 1133 // A maximum of 1000 assets can be modified in a batch. 1134 repeated UpdateAssetRequest requests = 2 1135 [(google.api.field_behavior) = REQUIRED]; 1136} 1137 1138// Response for updating a list of assets. 1139message BatchUpdateAssetsResponse { 1140 // Update asset content. 1141 // The content only includes values after field mask being applied. 1142 repeated Asset assets = 1; 1143} 1144 1145// A request to delete an asset. 1146message DeleteAssetRequest { 1147 // Required. Name of the resource. 1148 string name = 1 [ 1149 (google.api.field_behavior) = REQUIRED, 1150 (google.api.resource_reference) = { 1151 type: "migrationcenter.googleapis.com/Asset" 1152 } 1153 ]; 1154 1155 // Optional. An optional request ID to identify requests. Specify a unique 1156 // request ID so that if you must retry your request, the server will know to 1157 // ignore the request if it has already been completed. The server will 1158 // guarantee that for at least 60 minutes after the first request. 1159 // 1160 // For example, consider a situation where you make an initial request and 1161 // the request times out. If you make the request again with the same request 1162 // ID, the server can check if original operation with the same request ID 1163 // was received, and if so, will ignore the second request. This prevents 1164 // clients from accidentally creating duplicate commitments. 1165 // 1166 // The request ID must be a valid UUID with the exception that zero UUID is 1167 // not supported (00000000-0000-0000-0000-000000000000). 1168 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1169} 1170 1171// A request to delete a list of asset. 1172message BatchDeleteAssetsRequest { 1173 // Required. Parent value for batch asset delete. 1174 string parent = 1 [ 1175 (google.api.field_behavior) = REQUIRED, 1176 (google.api.resource_reference) = { 1177 child_type: "migrationcenter.googleapis.com/Asset" 1178 } 1179 ]; 1180 1181 // Required. The IDs of the assets to delete. 1182 // A maximum of 1000 assets can be deleted in a batch. 1183 // Format: projects/{project}/locations/{location}/assets/{name}. 1184 repeated string names = 2 [ 1185 (google.api.field_behavior) = REQUIRED, 1186 (google.api.resource_reference) = { 1187 type: "migrationcenter.googleapis.com/Asset" 1188 } 1189 ]; 1190 1191 // Optional. When this value is set to `true` the request is a no-op for 1192 // non-existing assets. See https://google.aip.dev/135#delete-if-existing for 1193 // additional details. Default value is `false`. 1194 bool allow_missing = 3 [(google.api.field_behavior) = OPTIONAL]; 1195} 1196 1197// A request to report a set of asset frames. 1198message ReportAssetFramesRequest { 1199 // Required. Parent of the resource. 1200 string parent = 1 [(google.api.field_behavior) = REQUIRED]; 1201 1202 // Collection of frames data. 1203 Frames frames = 2; 1204 1205 // Required. Reference to a source. 1206 string source = 3 [ 1207 (google.api.field_behavior) = REQUIRED, 1208 (google.api.resource_reference) = { 1209 type: "migrationcenter.googleapis.com/Source" 1210 } 1211 ]; 1212} 1213 1214// A response to a call to `ReportAssetFrame`. 1215message ReportAssetFramesResponse {} 1216 1217// A request to aggregate one or more values. 1218message AggregateAssetsValuesRequest { 1219 // Required. Parent value for `AggregateAssetsValuesRequest`. 1220 string parent = 1 [(google.api.field_behavior) = REQUIRED]; 1221 1222 // Array of aggregations to perform. 1223 // Up to 25 aggregations can be defined. 1224 repeated Aggregation aggregations = 2; 1225 1226 // The aggregation will be performed on assets that match the provided filter. 1227 string filter = 3; 1228} 1229 1230// A response to a request to aggregated assets values. 1231message AggregateAssetsValuesResponse { 1232 // The aggregation results. 1233 repeated AggregationResult results = 1; 1234} 1235 1236// A request to create an import job. 1237message CreateImportJobRequest { 1238 // Required. Value for parent. 1239 string parent = 1 [ 1240 (google.api.field_behavior) = REQUIRED, 1241 (google.api.resource_reference) = { 1242 child_type: "migrationcenter.googleapis.com/ImportJob" 1243 } 1244 ]; 1245 1246 // Required. ID of the import job. 1247 string import_job_id = 2 [(google.api.field_behavior) = REQUIRED]; 1248 1249 // Required. The resource being created. 1250 ImportJob import_job = 3 [(google.api.field_behavior) = REQUIRED]; 1251 1252 // Optional. An optional request ID to identify requests. Specify a unique 1253 // request ID so that if you must retry your request, the server will know to 1254 // ignore the request if it has already been completed. The server will 1255 // guarantee that for at least 60 minutes since the first request. 1256 // 1257 // For example, consider a situation where you make an initial request and 1258 // the request times out. If you make the request again with the same request 1259 // ID, the server can check if original operation with the same request ID 1260 // was received, and if so, will ignore the second request. This prevents 1261 // clients from accidentally creating duplicate commitments. 1262 // 1263 // The request ID must be a valid UUID with the exception that zero UUID is 1264 // not supported (00000000-0000-0000-0000-000000000000). 1265 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 1266} 1267 1268// A request to list import jobs. 1269message ListImportJobsRequest { 1270 // Required. Parent value for `ListImportJobsRequest`. 1271 string parent = 1 [ 1272 (google.api.field_behavior) = REQUIRED, 1273 (google.api.resource_reference) = { 1274 child_type: "migrationcenter.googleapis.com/ImportJob" 1275 } 1276 ]; 1277 1278 // Requested page size. Server may return fewer items than requested. 1279 // If unspecified, server will pick an appropriate default. 1280 int32 page_size = 2; 1281 1282 // A token identifying a page of results the server should return. 1283 string page_token = 3; 1284 1285 // Filtering results. 1286 string filter = 4; 1287 1288 // Field to sort by. See https://google.aip.dev/132#ordering for more details. 1289 string order_by = 5; 1290 1291 // Optional. The level of details of each import job. 1292 // Default value is BASIC. 1293 ImportJobView view = 6 [(google.api.field_behavior) = OPTIONAL]; 1294} 1295 1296// A response for listing import jobs. 1297message ListImportJobsResponse { 1298 // The list of import jobs. 1299 repeated ImportJob import_jobs = 1; 1300 1301 // A token identifying a page of results the server should return. 1302 string next_page_token = 2; 1303 1304 // Locations that could not be reached. 1305 repeated string unreachable = 3; 1306} 1307 1308// A request to get an import job. 1309message GetImportJobRequest { 1310 // Required. Name of the resource. 1311 string name = 1 [ 1312 (google.api.field_behavior) = REQUIRED, 1313 (google.api.resource_reference) = { 1314 type: "migrationcenter.googleapis.com/ImportJob" 1315 } 1316 ]; 1317 1318 // Optional. The level of details of the import job. 1319 // Default value is FULL. 1320 ImportJobView view = 2 [(google.api.field_behavior) = OPTIONAL]; 1321} 1322 1323// A request to delete an import job. 1324message DeleteImportJobRequest { 1325 // Required. Name of the resource. 1326 string name = 1 [ 1327 (google.api.field_behavior) = REQUIRED, 1328 (google.api.resource_reference) = { 1329 type: "migrationcenter.googleapis.com/ImportJob" 1330 } 1331 ]; 1332 1333 // Optional. An optional request ID to identify requests. Specify a unique 1334 // request ID so that if you must retry your request, the server will know to 1335 // ignore the request if it has already been completed. The server will 1336 // guarantee that for at least 60 minutes after the first request. 1337 // 1338 // For example, consider a situation where you make an initial request and 1339 // the request times out. If you make the request again with the same request 1340 // ID, the server can check if original operation with the same request ID 1341 // was received, and if so, will ignore the second request. This prevents 1342 // clients from accidentally creating duplicate commitments. 1343 // 1344 // The request ID must be a valid UUID with the exception that zero UUID is 1345 // not supported (00000000-0000-0000-0000-000000000000). 1346 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1347 1348 // Optional. If set to `true`, any `ImportDataFiles` of this job will also be 1349 // deleted If set to `false`, the request only works if the job has no data 1350 // files. 1351 bool force = 3 [(google.api.field_behavior) = OPTIONAL]; 1352} 1353 1354// A request to update an import job. 1355message UpdateImportJobRequest { 1356 // Required. Field mask is used to specify the fields to be overwritten in the 1357 // `Asset` resource by the update. 1358 // The values specified in the `update_mask` field are relative to the 1359 // resource, not the full request. 1360 // A field will be overwritten if it is in the mask. 1361 // A single * value in the mask lets you to overwrite all fields. 1362 google.protobuf.FieldMask update_mask = 1 1363 [(google.api.field_behavior) = REQUIRED]; 1364 1365 // Required. The resource being updated 1366 ImportJob import_job = 2 [(google.api.field_behavior) = REQUIRED]; 1367 1368 // Optional. An optional request ID to identify requests. Specify a unique 1369 // request ID so that if you must retry your request, the server will know to 1370 // ignore the request if it has already been completed. The server will 1371 // guarantee that for at least 60 minutes since the first request. 1372 // 1373 // For example, consider a situation where you make an initial request and 1374 // the request times out. If you make the request again with the same request 1375 // ID, the server can check if original operation with the same request ID 1376 // was received, and if so, will ignore the second request. This prevents 1377 // clients from accidentally creating duplicate commitments. 1378 // 1379 // The request ID must be a valid UUID with the exception that zero UUID is 1380 // not supported (00000000-0000-0000-0000-000000000000). 1381 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 1382} 1383 1384// A request to validate an import job. 1385message ValidateImportJobRequest { 1386 // Required. The name of the import job to validate. 1387 string name = 1 [ 1388 (google.api.field_behavior) = REQUIRED, 1389 (google.api.resource_reference) = { 1390 type: "migrationcenter.googleapis.com/ImportJob" 1391 } 1392 ]; 1393 1394 // Optional. An optional request ID to identify requests. Specify a unique 1395 // request ID so that if you must retry your request, the server will know to 1396 // ignore the request if it has already been completed. The server will 1397 // guarantee that for at least 60 minutes after the first request. 1398 // 1399 // For example, consider a situation where you make an initial request and 1400 // the request times out. If you make the request again with the same request 1401 // ID, the server can check if original operation with the same request ID 1402 // was received, and if so, will ignore the second request. This prevents 1403 // clients from accidentally creating duplicate commitments. 1404 // 1405 // The request ID must be a valid UUID with the exception that zero UUID is 1406 // not supported (00000000-0000-0000-0000-000000000000). 1407 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1408} 1409 1410// A request to run an import job. 1411message RunImportJobRequest { 1412 // Required. The name of the import job to run. 1413 string name = 1 [ 1414 (google.api.field_behavior) = REQUIRED, 1415 (google.api.resource_reference) = { 1416 type: "migrationcenter.googleapis.com/ImportJob" 1417 } 1418 ]; 1419 1420 // Optional. An optional request ID to identify requests. Specify a unique 1421 // request ID so that if you must retry your request, the server will know to 1422 // ignore the request if it has already been completed. The server will 1423 // guarantee that for at least 60 minutes after the first request. 1424 // 1425 // For example, consider a situation where you make an initial request and 1426 // the request times out. If you make the request again with the same request 1427 // ID, the server can check if original operation with the same request ID 1428 // was received, and if so, will ignore the second request. This prevents 1429 // clients from accidentally creating duplicate commitments. 1430 // 1431 // The request ID must be a valid UUID with the exception that zero UUID is 1432 // not supported (00000000-0000-0000-0000-000000000000). 1433 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1434} 1435 1436// A request to get an import data file. 1437message GetImportDataFileRequest { 1438 // Required. Name of the ImportDataFile. 1439 string name = 1 [ 1440 (google.api.field_behavior) = REQUIRED, 1441 (google.api.resource_reference) = { 1442 type: "migrationcenter.googleapis.com/ImportDataFile" 1443 } 1444 ]; 1445} 1446 1447// A request to list import data files of an import job. 1448message ListImportDataFilesRequest { 1449 // Required. Name of the parent of the `ImportDataFiles` resource. 1450 string parent = 1 [ 1451 (google.api.field_behavior) = REQUIRED, 1452 (google.api.resource_reference) = { 1453 child_type: "migrationcenter.googleapis.com/ImportDataFile" 1454 } 1455 ]; 1456 1457 // The maximum number of data files to return. The service may return 1458 // fewer than this value. If unspecified, at most 500 data files will be 1459 // returned. The maximum value is 1000; values above 1000 will be coerced to 1460 // 1000. 1461 int32 page_size = 2; 1462 1463 // A page token, received from a previous `ListImportDataFiles` call. 1464 // Provide this to retrieve the subsequent page. 1465 // 1466 // When paginating, all other parameters provided to `ListImportDataFiles` 1467 // must match the call that provided the page token. 1468 string page_token = 3; 1469 1470 // Filtering results. 1471 string filter = 4; 1472 1473 // Field to sort by. See https://google.aip.dev/132#ordering for more details. 1474 string order_by = 5; 1475} 1476 1477// Response for listing payload files of an import job. 1478message ListImportDataFilesResponse { 1479 // The list of import data files. 1480 repeated ImportDataFile import_data_files = 1; 1481 1482 // A token that can be sent as `page_token` to retrieve the next page. 1483 // If this field is omitted, there are no subsequent pages. 1484 string next_page_token = 2; 1485 1486 // Locations that could not be reached. 1487 repeated string unreachable = 3; 1488} 1489 1490// A request to create an `ImportDataFile` resource. 1491message CreateImportDataFileRequest { 1492 // Required. Name of the parent of the ImportDataFile. 1493 string parent = 1 [ 1494 (google.api.field_behavior) = REQUIRED, 1495 (google.api.resource_reference) = { 1496 child_type: "migrationcenter.googleapis.com/ImportDataFile" 1497 } 1498 ]; 1499 1500 // Required. The ID of the new data file. 1501 string import_data_file_id = 2 [(google.api.field_behavior) = REQUIRED]; 1502 1503 // Required. The resource being created. 1504 ImportDataFile import_data_file = 3 [(google.api.field_behavior) = REQUIRED]; 1505 1506 // Optional. An optional request ID to identify requests. Specify a unique 1507 // request ID so that if you must retry your request, the server will know to 1508 // ignore the request if it has already been completed. The server will 1509 // guarantee that for at least 60 minutes since the first request. 1510 // 1511 // For example, consider a situation where you make an initial request and 1512 // the request times out. If you make the request again with the same request 1513 // ID, the server can check if original operation with the same request ID 1514 // was received, and if so, will ignore the second request. This prevents 1515 // clients from accidentally creating duplicate commitments. 1516 // 1517 // The request ID must be a valid UUID with the exception that zero UUID is 1518 // not supported (00000000-0000-0000-0000-000000000000). 1519 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 1520} 1521 1522// A request to delete an `ImportDataFile` resource. 1523message DeleteImportDataFileRequest { 1524 // Required. Name of the ImportDataFile to delete. 1525 string name = 1 [ 1526 (google.api.field_behavior) = REQUIRED, 1527 (google.api.resource_reference) = { 1528 type: "migrationcenter.googleapis.com/ImportDataFile" 1529 } 1530 ]; 1531 1532 // Optional. An optional request ID to identify requests. Specify a unique 1533 // request ID so that if you must retry your request, the server will know to 1534 // ignore the request if it has already been completed. The server will 1535 // guarantee that for at least 60 minutes after the first request. 1536 // 1537 // For example, consider a situation where you make an initial request and 1538 // the request times out. If you make the request again with the same request 1539 // ID, the server can check if original operation with the same request ID 1540 // was received, and if so, will ignore the second request. This prevents 1541 // clients from accidentally creating duplicate commitments. 1542 // 1543 // The request ID must be a valid UUID with the exception that zero UUID is 1544 // not supported (00000000-0000-0000-0000-000000000000). 1545 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1546} 1547 1548// A request to list groups. 1549message ListGroupsRequest { 1550 // Required. Parent value for `ListGroupsRequest`. 1551 string parent = 1 [ 1552 (google.api.field_behavior) = REQUIRED, 1553 (google.api.resource_reference) = { 1554 child_type: "migrationcenter.googleapis.com/Group" 1555 } 1556 ]; 1557 1558 // Requested page size. Server may return fewer items than requested. 1559 // If unspecified, server will pick an appropriate default. 1560 int32 page_size = 2; 1561 1562 // A token identifying a page of results the server should return. 1563 string page_token = 3; 1564 1565 // Filtering results. 1566 string filter = 4; 1567 1568 // Field to sort by. See https://google.aip.dev/132#ordering for more details. 1569 string order_by = 5; 1570} 1571 1572// A response for listing groups. 1573message ListGroupsResponse { 1574 // The list of Group 1575 repeated Group groups = 1; 1576 1577 // A token identifying a page of results the server should return. 1578 string next_page_token = 2; 1579 1580 // Locations that could not be reached. 1581 repeated string unreachable = 3; 1582} 1583 1584// A request to get a group. 1585message GetGroupRequest { 1586 // Required. Name of the resource. 1587 string name = 1 [ 1588 (google.api.field_behavior) = REQUIRED, 1589 (google.api.resource_reference) = { 1590 type: "migrationcenter.googleapis.com/Group" 1591 } 1592 ]; 1593} 1594 1595// A request to create a group. 1596message CreateGroupRequest { 1597 // Required. Value for parent. 1598 string parent = 1 [ 1599 (google.api.field_behavior) = REQUIRED, 1600 (google.api.resource_reference) = { 1601 child_type: "migrationcenter.googleapis.com/Group" 1602 } 1603 ]; 1604 1605 // Required. User specified ID for the group. It will become the last 1606 // component of the group name. The ID must be unique within the project, must 1607 // conform with RFC-1034, is restricted to lower-cased letters, and has a 1608 // maximum length of 63 characters. The ID must match the regular expression: 1609 // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. 1610 string group_id = 2 [(google.api.field_behavior) = REQUIRED]; 1611 1612 // Required. The group resource being created. 1613 Group group = 3 [(google.api.field_behavior) = REQUIRED]; 1614 1615 // Optional. An optional request ID to identify requests. Specify a unique 1616 // request ID so that if you must retry your request, the server will know to 1617 // ignore the request if it has already been completed. The server will 1618 // guarantee that for at least 60 minutes since the first request. 1619 // 1620 // For example, consider a situation where you make an initial request and 1621 // the request times out. If you make the request again with the same request 1622 // ID, the server can check if original operation with the same request ID 1623 // was received, and if so, will ignore the second request. This prevents 1624 // clients from accidentally creating duplicate commitments. 1625 // 1626 // The request ID must be a valid UUID with the exception that zero UUID is 1627 // not supported (00000000-0000-0000-0000-000000000000). 1628 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 1629} 1630 1631// A request to update a group. 1632message UpdateGroupRequest { 1633 // Required. Field mask is used to specify the fields to be overwritten in the 1634 // `Group` resource by the update. 1635 // The values specified in the `update_mask` are relative to the resource, not 1636 // the full request. A field will be overwritten if it is in the mask. 1637 // A single * value in the mask lets you to overwrite all fields. 1638 google.protobuf.FieldMask update_mask = 1 1639 [(google.api.field_behavior) = REQUIRED]; 1640 1641 // Required. The group resource being updated. 1642 Group group = 2 [(google.api.field_behavior) = REQUIRED]; 1643 1644 // Optional. An optional request ID to identify requests. Specify a unique 1645 // request ID so that if you must retry your request, the server will know to 1646 // ignore the request if it has already been completed. The server will 1647 // guarantee that for at least 60 minutes since the first request. 1648 // 1649 // For example, consider a situation where you make an initial request and 1650 // the request times out. If you make the request again with the same request 1651 // ID, the server can check if original operation with the same request ID 1652 // was received, and if so, will ignore the second request. This prevents 1653 // clients from accidentally creating duplicate commitments. 1654 // 1655 // The request ID must be a valid UUID with the exception that zero UUID is 1656 // not supported (00000000-0000-0000-0000-000000000000). 1657 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 1658} 1659 1660// A request to delete a group. 1661message DeleteGroupRequest { 1662 // Required. Name of the group resource. 1663 string name = 1 [ 1664 (google.api.field_behavior) = REQUIRED, 1665 (google.api.resource_reference) = { 1666 type: "migrationcenter.googleapis.com/Group" 1667 } 1668 ]; 1669 1670 // Optional. An optional request ID to identify requests. Specify a unique 1671 // request ID so that if you must retry your request, the server will know to 1672 // ignore the request if it has already been completed. The server will 1673 // guarantee that for at least 60 minutes after the first request. 1674 // 1675 // For example, consider a situation where you make an initial request and 1676 // the request times out. If you make the request again with the same request 1677 // ID, the server can check if original operation with the same request ID 1678 // was received, and if so, will ignore the second request. This prevents 1679 // clients from accidentally creating duplicate commitments. 1680 // 1681 // The request ID must be a valid UUID with the exception that zero UUID is 1682 // not supported (00000000-0000-0000-0000-000000000000). 1683 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1684} 1685 1686// A request to add assets to a group. 1687message AddAssetsToGroupRequest { 1688 // Required. Group reference. 1689 string group = 1 [ 1690 (google.api.field_behavior) = REQUIRED, 1691 (google.api.resource_reference) = { 1692 type: "migrationcenter.googleapis.com/Group" 1693 } 1694 ]; 1695 1696 // Optional. An optional request ID to identify requests. Specify a unique 1697 // request ID so that if you must retry your request, the server will know to 1698 // ignore the request if it has already been completed. The server will 1699 // guarantee that for at least 60 minutes after the first request. 1700 // 1701 // For example, consider a situation where you make an initial request and 1702 // the request times out. If you make the request again with the same request 1703 // ID, the server can check if original operation with the same request ID 1704 // was received, and if so, will ignore the second request. This prevents 1705 // clients from accidentally creating duplicate commitments. 1706 // 1707 // The request ID must be a valid UUID with the exception that zero UUID is 1708 // not supported (00000000-0000-0000-0000-000000000000). 1709 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1710 1711 // Required. List of assets to be added. 1712 // The maximum number of assets that can be added in a single request is 1713 // 1000. 1714 AssetList assets = 3 [(google.api.field_behavior) = REQUIRED]; 1715 1716 // Optional. When this value is set to `false` and one of the given assets is 1717 // already an existing member of the group, the operation fails with an 1718 // `Already Exists` error. When set to `true` this situation is silently 1719 // ignored by the server. 1720 // 1721 // Default value is `false`. 1722 bool allow_existing = 4 [(google.api.field_behavior) = OPTIONAL]; 1723} 1724 1725// A request to remove assets from a group. 1726message RemoveAssetsFromGroupRequest { 1727 // Required. Group reference. 1728 string group = 1 [ 1729 (google.api.field_behavior) = REQUIRED, 1730 (google.api.resource_reference) = { 1731 type: "migrationcenter.googleapis.com/Group" 1732 } 1733 ]; 1734 1735 // Optional. An optional request ID to identify requests. Specify a unique 1736 // request ID so that if you must retry your request, the server will know to 1737 // ignore the request if it has already been completed. The server will 1738 // guarantee that for at least 60 minutes after the first request. 1739 // 1740 // For example, consider a situation where you make an initial request and 1741 // the request times out. If you make the request again with the same request 1742 // ID, the server can check if original operation with the same request ID 1743 // was received, and if so, will ignore the second request. This prevents 1744 // clients from accidentally creating duplicate commitments. 1745 // 1746 // The request ID must be a valid UUID with the exception that zero UUID is 1747 // not supported (00000000-0000-0000-0000-000000000000). 1748 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1749 1750 // Required. List of assets to be removed. 1751 // The maximum number of assets that can be removed in a single request is 1752 // 1000. 1753 AssetList assets = 3 [(google.api.field_behavior) = REQUIRED]; 1754 1755 // Optional. When this value is set to `false` and one of the given assets is 1756 // not an existing member of the group, the operation fails with a `Not Found` 1757 // error. When set to `true` this situation is silently ignored by the server. 1758 // 1759 // Default value is `false`. 1760 bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; 1761} 1762 1763// A request to list error frames for a source. 1764message ListErrorFramesRequest { 1765 // Required. Parent value (the source) for `ListErrorFramesRequest`. 1766 string parent = 1 [ 1767 (google.api.field_behavior) = REQUIRED, 1768 (google.api.resource_reference) = { 1769 child_type: "migrationcenter.googleapis.com/ErrorFrame" 1770 } 1771 ]; 1772 1773 // Requested page size. Server may return fewer items than requested. 1774 // If unspecified, server will pick an appropriate default. 1775 int32 page_size = 2; 1776 1777 // A token identifying a page of results the server should return. 1778 string page_token = 3; 1779 1780 // Optional. An optional view mode to control the level of details of each 1781 // error frame. The default is a BASIC frame view. 1782 ErrorFrameView view = 4 [(google.api.field_behavior) = OPTIONAL]; 1783} 1784 1785// A response for listing error frames. 1786message ListErrorFramesResponse { 1787 // The list of error frames. 1788 repeated ErrorFrame error_frames = 1; 1789 1790 // A token identifying a page of results the server should return. 1791 string next_page_token = 2; 1792 1793 // Locations that could not be reached. 1794 repeated string unreachable = 3; 1795} 1796 1797message GetErrorFrameRequest { 1798 // Required. The name of the frame to retrieve. 1799 // Format: 1800 // projects/{project}/locations/{location}/sources/{source}/errorFrames/{error_frame} 1801 string name = 1 [ 1802 (google.api.field_behavior) = REQUIRED, 1803 (google.api.resource_reference) = { 1804 type: "migrationcenter.googleapis.com/ErrorFrame" 1805 } 1806 ]; 1807 1808 // Optional. An optional view mode to control the level of details for the 1809 // frame. The default is a basic frame view. 1810 ErrorFrameView view = 2 [(google.api.field_behavior) = OPTIONAL]; 1811} 1812 1813// A request for a list of sources. 1814message ListSourcesRequest { 1815 // Required. Parent value for `ListSourcesRequest`. 1816 string parent = 1 [ 1817 (google.api.field_behavior) = REQUIRED, 1818 (google.api.resource_reference) = { 1819 child_type: "migrationcenter.googleapis.com/Source" 1820 } 1821 ]; 1822 1823 // Requested page size. The server may return fewer items than requested. 1824 // If unspecified, the server will pick an appropriate default value. 1825 int32 page_size = 2; 1826 1827 // A token identifying a page of results that the server should return. 1828 string page_token = 3; 1829 1830 // Filtering results. 1831 string filter = 4; 1832 1833 // Field to sort by. See https://google.aip.dev/132#ordering for more details. 1834 string order_by = 5; 1835} 1836 1837// Response message for listing sources. 1838message ListSourcesResponse { 1839 // The list of sources. 1840 repeated Source sources = 1; 1841 1842 // A token identifying a page of results the server should return. 1843 string next_page_token = 2; 1844 1845 // Locations that could not be reached. 1846 repeated string unreachable = 3; 1847} 1848 1849// A request to get a source. 1850message GetSourceRequest { 1851 // Required. Name of the resource. 1852 string name = 1 [ 1853 (google.api.field_behavior) = REQUIRED, 1854 (google.api.resource_reference) = { 1855 type: "migrationcenter.googleapis.com/Source" 1856 } 1857 ]; 1858} 1859 1860// A request to create a source. 1861message CreateSourceRequest { 1862 // Required. Value for parent. 1863 string parent = 1 [ 1864 (google.api.field_behavior) = REQUIRED, 1865 (google.api.resource_reference) = { 1866 child_type: "migrationcenter.googleapis.com/Source" 1867 } 1868 ]; 1869 1870 // Required. User specified ID for the source. It will become the last 1871 // component of the source name. The ID must be unique within the project, 1872 // must conform with RFC-1034, is restricted to lower-cased letters, and has a 1873 // maximum length of 63 characters. The ID must match the regular expression: 1874 // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. 1875 string source_id = 2 [(google.api.field_behavior) = REQUIRED]; 1876 1877 // Required. The resource being created. 1878 Source source = 3 [(google.api.field_behavior) = REQUIRED]; 1879 1880 // Optional. An optional request ID to identify requests. Specify a unique 1881 // request ID so that if you must retry your request, the server will know to 1882 // ignore the request if it has already been completed. The server will 1883 // guarantee that for at least 60 minutes since the first request. 1884 // 1885 // For example, consider a situation where you make an initial request and 1886 // the request times out. If you make the request again with the same request 1887 // ID, the server can check if original operation with the same request ID 1888 // was received, and if so, will ignore the second request. This prevents 1889 // clients from accidentally creating duplicate commitments. 1890 // 1891 // The request ID must be a valid UUID with the exception that zero UUID is 1892 // not supported (00000000-0000-0000-0000-000000000000). 1893 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 1894} 1895 1896// A request to update a source. 1897message UpdateSourceRequest { 1898 // Required. Field mask is used to specify the fields to be overwritten in the 1899 // `Source` resource by the update. 1900 // The values specified in the `update_mask` field are relative to the 1901 // resource, not the full request. 1902 // A field will be overwritten if it is in the mask. 1903 // A single * value in the mask lets you to overwrite all fields. 1904 google.protobuf.FieldMask update_mask = 1 1905 [(google.api.field_behavior) = REQUIRED]; 1906 1907 // Required. The resource being updated 1908 Source source = 2 [(google.api.field_behavior) = REQUIRED]; 1909 1910 // Optional. An optional request ID to identify requests. Specify a unique 1911 // request ID so that if you must retry your request, the server will know to 1912 // ignore the request if it has already been completed. The server will 1913 // guarantee that for at least 60 minutes since the first request. 1914 // 1915 // For example, consider a situation where you make an initial request and 1916 // the request times out. If you make the request again with the same request 1917 // ID, the server can check if original operation with the same request ID 1918 // was received, and if so, will ignore the second request. This prevents 1919 // clients from accidentally creating duplicate commitments. 1920 // 1921 // The request ID must be a valid UUID with the exception that zero UUID is 1922 // not supported (00000000-0000-0000-0000-000000000000). 1923 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 1924} 1925 1926// A request to delete a source. 1927message DeleteSourceRequest { 1928 // Required. Name of the resource. 1929 string name = 1 [ 1930 (google.api.field_behavior) = REQUIRED, 1931 (google.api.resource_reference) = { 1932 type: "migrationcenter.googleapis.com/Source" 1933 } 1934 ]; 1935 1936 // Optional. An optional request ID to identify requests. Specify a unique 1937 // request ID so that if you must retry your request, the server will know to 1938 // ignore the request if it has already been completed. The server will 1939 // guarantee that for at least 60 minutes after the first request. 1940 // 1941 // For example, consider a situation where you make an initial request and 1942 // the request times out. If you make the request again with the same request 1943 // ID, the server can check if original operation with the same request ID 1944 // was received, and if so, will ignore the second request. This prevents 1945 // clients from accidentally creating duplicate commitments. 1946 // 1947 // The request ID must be a valid UUID with the exception that zero UUID is 1948 // not supported (00000000-0000-0000-0000-000000000000). 1949 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1950} 1951 1952// Request for listing preference sets. 1953message ListPreferenceSetsRequest { 1954 // Required. Parent value for `ListPreferenceSetsRequest`. 1955 string parent = 1 [ 1956 (google.api.field_behavior) = REQUIRED, 1957 (google.api.resource_reference) = { 1958 child_type: "migrationcenter.googleapis.com/PreferenceSet" 1959 } 1960 ]; 1961 1962 // Requested page size. Server may return fewer items than requested. 1963 // If unspecified, at most 500 preference sets will be returned. 1964 // The maximum value is 1000; values above 1000 will be coerced to 1000. 1965 int32 page_size = 2; 1966 1967 // A token identifying a page of results the server should return. 1968 string page_token = 3; 1969 1970 // Field to sort by. See https://google.aip.dev/132#ordering for more details. 1971 string order_by = 5; 1972} 1973 1974// Response message for listing preference sets. 1975message ListPreferenceSetsResponse { 1976 // The list of PreferenceSets 1977 repeated PreferenceSet preference_sets = 1; 1978 1979 // A token identifying a page of results the server should return. 1980 string next_page_token = 2; 1981 1982 // Locations that could not be reached. 1983 repeated string unreachable = 3; 1984} 1985 1986// A request to get a preference set. 1987message GetPreferenceSetRequest { 1988 // Required. Name of the resource. 1989 string name = 1 [ 1990 (google.api.field_behavior) = REQUIRED, 1991 (google.api.resource_reference) = { 1992 type: "migrationcenter.googleapis.com/PreferenceSet" 1993 } 1994 ]; 1995} 1996 1997// A request to create a preference set. 1998message CreatePreferenceSetRequest { 1999 // Required. Value for parent. 2000 string parent = 1 [ 2001 (google.api.field_behavior) = REQUIRED, 2002 (google.api.resource_reference) = { 2003 child_type: "migrationcenter.googleapis.com/PreferenceSet" 2004 } 2005 ]; 2006 2007 // Required. User specified ID for the preference set. It will become the last 2008 // component of the preference set name. The ID must be unique within the 2009 // project, must conform with RFC-1034, is restricted to lower-cased letters, 2010 // and has a maximum length of 63 characters. The ID must match the regular 2011 // expression 2012 // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. 2013 string preference_set_id = 2 [(google.api.field_behavior) = REQUIRED]; 2014 2015 // Required. The preference set resource being created. 2016 PreferenceSet preference_set = 3 [(google.api.field_behavior) = REQUIRED]; 2017 2018 // Optional. An optional request ID to identify requests. Specify a unique 2019 // request ID so that if you must retry your request, the server will know to 2020 // ignore the request if it has already been completed. The server will 2021 // guarantee that for at least 60 minutes since the first request. 2022 // 2023 // For example, consider a situation where you make an initial request and 2024 // the request times out. If you make the request again with the same request 2025 // ID, the server can check if original operation with the same request ID 2026 // was received, and if so, will ignore the second request. This prevents 2027 // clients from accidentally creating duplicate commitments. 2028 // 2029 // The request ID must be a valid UUID with the exception that zero UUID is 2030 // not supported (00000000-0000-0000-0000-000000000000). 2031 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 2032} 2033 2034// A request to update a preference set. 2035message UpdatePreferenceSetRequest { 2036 // Required. Field mask is used to specify the fields to be overwritten in the 2037 // `PreferenceSet` resource by the update. 2038 // The values specified in the `update_mask` field are relative to the 2039 // resource, not the full request. 2040 // A field will be overwritten if it is in the mask. 2041 // A single * value in the mask lets you to overwrite all fields. 2042 google.protobuf.FieldMask update_mask = 1 2043 [(google.api.field_behavior) = REQUIRED]; 2044 2045 // Required. The preference set resource being updated. 2046 PreferenceSet preference_set = 2 [(google.api.field_behavior) = REQUIRED]; 2047 2048 // Optional. An optional request ID to identify requests. Specify a unique 2049 // request ID so that if you must retry your request, the server will know to 2050 // ignore the request if it has already been completed. The server will 2051 // guarantee that for at least 60 minutes since the first request. 2052 // 2053 // For example, consider a situation where you make an initial request and 2054 // the request times out. If you make the request again with the same request 2055 // ID, the server can check if original operation with the same request ID 2056 // was received, and if so, will ignore the second request. This prevents 2057 // clients from accidentally creating duplicate commitments. 2058 // 2059 // The request ID must be a valid UUID with the exception that zero UUID is 2060 // not supported (00000000-0000-0000-0000-000000000000). 2061 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 2062} 2063 2064// A request to delete a preference set. 2065message DeletePreferenceSetRequest { 2066 // Required. Name of the group resource. 2067 string name = 1 [ 2068 (google.api.field_behavior) = REQUIRED, 2069 (google.api.resource_reference) = { 2070 type: "migrationcenter.googleapis.com/PreferenceSet" 2071 } 2072 ]; 2073 2074 // Optional. An optional request ID to identify requests. Specify a unique 2075 // request ID so that if you must retry your request, the server will know to 2076 // ignore the request if it has already been completed. The server will 2077 // guarantee that for at least 60 minutes after the first request. 2078 // 2079 // For example, consider a situation where you make an initial request and 2080 // the request times out. If you make the request again with the same request 2081 // ID, the server can check if original operation with the same request ID 2082 // was received, and if so, will ignore the second request. This prevents 2083 // clients from accidentally creating duplicate commitments. 2084 // 2085 // The request ID must be a valid UUID with the exception that zero UUID is 2086 // not supported (00000000-0000-0000-0000-000000000000). 2087 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 2088} 2089 2090// A request to get the settings. 2091message GetSettingsRequest { 2092 // Required. Name of the resource. 2093 string name = 1 [ 2094 (google.api.field_behavior) = REQUIRED, 2095 (google.api.resource_reference) = { 2096 type: "migrationcenter.googleapis.com/Settings" 2097 } 2098 ]; 2099} 2100 2101// A request to update the settings. 2102message UpdateSettingsRequest { 2103 // Required. Field mask is used to specify the fields to be overwritten in the 2104 // `Settings` resource by the update. 2105 // The values specified in the `update_mask` field are relative to the 2106 // resource, not the full request. 2107 // A field will be overwritten if it is in the mask. 2108 // A single * value in the mask lets you to overwrite all fields. 2109 google.protobuf.FieldMask update_mask = 1 2110 [(google.api.field_behavior) = REQUIRED]; 2111 2112 // Required. The project settings resource being updated. 2113 Settings settings = 2 [(google.api.field_behavior) = REQUIRED]; 2114 2115 // Optional. An optional request ID to identify requests. Specify a unique 2116 // request ID so that if you must retry your request, the server will know to 2117 // ignore the request if it has already been completed. The server will 2118 // guarantee that for at least 60 minutes since the first request. 2119 // 2120 // For example, consider a situation where you make an initial request and 2121 // the request times out. If you make the request again with the same request 2122 // ID, the server can check if original operation with the same request ID 2123 // was received, and if so, will ignore the second request. This prevents 2124 // clients from accidentally creating duplicate commitments. 2125 // 2126 // The request ID must be a valid UUID with the exception that zero UUID is 2127 // not supported (00000000-0000-0000-0000-000000000000). 2128 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 2129} 2130 2131// A request to create a `ReportConfig` resource. 2132message CreateReportConfigRequest { 2133 // Required. Value for parent. 2134 string parent = 1 [ 2135 (google.api.field_behavior) = REQUIRED, 2136 (google.api.resource_reference) = { 2137 child_type: "migrationcenter.googleapis.com/ReportConfig" 2138 } 2139 ]; 2140 2141 // Required. User specified ID for the report config. It will become the last 2142 // component of the report config name. The ID must be unique within the 2143 // project, must conform with RFC-1034, is restricted to lower-cased letters, 2144 // and has a maximum length of 63 characters. The ID must match the regular 2145 // expression: [a-z]([a-z0-9-]{0,61}[a-z0-9])?. 2146 string report_config_id = 2 [(google.api.field_behavior) = REQUIRED]; 2147 2148 // Required. The report config set resource being created. 2149 ReportConfig report_config = 3 [(google.api.field_behavior) = REQUIRED]; 2150 2151 // Optional. An optional request ID to identify requests. Specify a unique 2152 // request ID so that if you must retry your request, the server will know to 2153 // ignore the request if it has already been completed. The server will 2154 // guarantee that for at least 60 minutes since the first request. 2155 // 2156 // For example, consider a situation where you make an initial request and 2157 // the request times out. If you make the request again with the same request 2158 // ID, the server can check if original operation with the same request ID 2159 // was received, and if so, will ignore the second request. This prevents 2160 // clients from accidentally creating duplicate commitments. 2161 // 2162 // The request ID must be a valid UUID with the exception that zero UUID is 2163 // not supported (00000000-0000-0000-0000-000000000000). 2164 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 2165} 2166 2167// A request to delete a ReportConfig. 2168message DeleteReportConfigRequest { 2169 // Required. Name of the resource. 2170 string name = 1 [ 2171 (google.api.field_behavior) = REQUIRED, 2172 (google.api.resource_reference) = { 2173 type: "migrationcenter.googleapis.com/ReportConfig" 2174 } 2175 ]; 2176 2177 // Optional. An optional request ID to identify requests. Specify a unique 2178 // request ID so that if you must retry your request, the server will know to 2179 // ignore the request if it has already been completed. The server will 2180 // guarantee that for at least 60 minutes after the first request. 2181 // 2182 // For example, consider a situation where you make an initial request and 2183 // the request times out. If you make the request again with the same request 2184 // ID, the server can check if original operation with the same request ID 2185 // was received, and if so, will ignore the second request. This prevents 2186 // clients from accidentally creating duplicate commitments. 2187 // 2188 // The request ID must be a valid UUID with the exception that zero UUID is 2189 // not supported (00000000-0000-0000-0000-000000000000). 2190 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 2191 2192 // Optional. If set to `true`, any child `Reports` of this entity will also be 2193 // deleted. If set to `false`, the request only works if the resource has no 2194 // children. 2195 bool force = 3 [(google.api.field_behavior) = OPTIONAL]; 2196} 2197 2198// A request to get a Report. 2199message GetReportRequest { 2200 // Required. Name of the resource. 2201 string name = 1 [ 2202 (google.api.field_behavior) = REQUIRED, 2203 (google.api.resource_reference) = { 2204 type: "migrationcenter.googleapis.com/Report" 2205 } 2206 ]; 2207 2208 // Determines what information to retrieve for the Report. 2209 ReportView view = 6; 2210} 2211 2212// A request for a list of Reports. 2213message ListReportsRequest { 2214 // Required. Parent value for `ListReportsRequest`. 2215 string parent = 1 [ 2216 (google.api.field_behavior) = REQUIRED, 2217 (google.api.resource_reference) = { 2218 child_type: "migrationcenter.googleapis.com/Report" 2219 } 2220 ]; 2221 2222 // Requested page size. The server may return fewer items than requested. 2223 // If unspecified, the server will pick an appropriate default value. 2224 int32 page_size = 2; 2225 2226 // A token identifying a page of results that the server should return. 2227 string page_token = 3; 2228 2229 // Filtering results. 2230 string filter = 4; 2231 2232 // Field to sort by. See https://google.aip.dev/132#ordering for more details. 2233 string order_by = 5; 2234 2235 // Determines what information to retrieve for each Report. 2236 ReportView view = 6; 2237} 2238 2239// Response message for listing Reports. 2240message ListReportsResponse { 2241 // The list of Reports. 2242 repeated Report reports = 1; 2243 2244 // A token identifying a page of results the server should return. 2245 string next_page_token = 2; 2246 2247 // Locations that could not be reached. 2248 repeated string unreachable = 3; 2249} 2250 2251// A request to delete a Report. 2252message DeleteReportRequest { 2253 // Required. Name of the resource. 2254 string name = 1 [ 2255 (google.api.field_behavior) = REQUIRED, 2256 (google.api.resource_reference) = { 2257 type: "migrationcenter.googleapis.com/Report" 2258 } 2259 ]; 2260 2261 // Optional. An optional request ID to identify requests. Specify a unique 2262 // request ID so that if you must retry your request, the server will know to 2263 // ignore the request if it has already been completed. The server will 2264 // guarantee that for at least 60 minutes after the first request. 2265 // 2266 // For example, consider a situation where you make an initial request and 2267 // the request times out. If you make the request again with the same request 2268 // ID, the server can check if original operation with the same request ID 2269 // was received, and if so, will ignore the second request. This prevents 2270 // clients from accidentally creating duplicate commitments. 2271 // 2272 // The request ID must be a valid UUID with the exception that zero UUID is 2273 // not supported (00000000-0000-0000-0000-000000000000). 2274 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 2275} 2276 2277// A request to get a `ReportConfig` resource. 2278message GetReportConfigRequest { 2279 // Required. Name of the resource. 2280 string name = 1 [ 2281 (google.api.field_behavior) = REQUIRED, 2282 (google.api.resource_reference) = { 2283 type: "migrationcenter.googleapis.com/ReportConfig" 2284 } 2285 ]; 2286} 2287 2288// A request to get a list of `ReportConfig` resources. 2289message ListReportConfigsRequest { 2290 // Required. Parent value for `ListReportConfigsRequest`. 2291 string parent = 1 [ 2292 (google.api.field_behavior) = REQUIRED, 2293 (google.api.resource_reference) = { 2294 child_type: "migrationcenter.googleapis.com/ReportConfig" 2295 } 2296 ]; 2297 2298 // Requested page size. Server may return fewer items than requested. 2299 // If unspecified, server will pick an appropriate default. 2300 int32 page_size = 2; 2301 2302 // A token identifying a page of results the server should return. 2303 string page_token = 3; 2304 2305 // Filtering results. 2306 string filter = 4; 2307 2308 // Field to sort by. See https://google.aip.dev/132#ordering for more details. 2309 string order_by = 5; 2310} 2311 2312// Response message for listing report configs. 2313message ListReportConfigsResponse { 2314 // A list of report configs. 2315 repeated ReportConfig report_configs = 1; 2316 2317 // A token identifying a page of results the server should return. 2318 string next_page_token = 2; 2319 2320 // Locations that could not be reached. 2321 repeated string unreachable = 3; 2322} 2323 2324// Message for creating a Report. 2325message CreateReportRequest { 2326 // Required. Value for parent. 2327 string parent = 1 [ 2328 (google.api.field_behavior) = REQUIRED, 2329 (google.api.resource_reference) = { 2330 child_type: "migrationcenter.googleapis.com/Report" 2331 } 2332 ]; 2333 2334 // Required. User specified id for the report. It will become the last 2335 // component of the report name. The id must be unique within the project, 2336 // must conform with RFC-1034, is restricted to lower-cased letters, and has a 2337 // maximum length of 63 characters. The id must match the regular expression: 2338 // [a-z]([a-z0-9-]{0,61}[a-z0-9])?. 2339 string report_id = 2 [(google.api.field_behavior) = REQUIRED]; 2340 2341 // Required. The report resource being created. 2342 Report report = 3 [(google.api.field_behavior) = REQUIRED]; 2343 2344 // Optional. An optional request ID to identify requests. Specify a unique 2345 // request ID so that if you must retry your request, the server will know to 2346 // ignore the request if it has already been completed. The server will 2347 // guarantee that for at least 60 minutes since the first request. 2348 // 2349 // For example, consider a situation where you make an initial request and 2350 // the request times out. If you make the request again with the same request 2351 // ID, the server can check if original operation with the same request ID 2352 // was received, and if so, will ignore the second request. This prevents 2353 // clients from accidentally creating duplicate commitments. 2354 // 2355 // The request ID must be a valid UUID with the exception that zero UUID is 2356 // not supported (00000000-0000-0000-0000-000000000000). 2357 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 2358} 2359 2360// Collection of frame data. 2361message Frames { 2362 // A repeated field of asset data. 2363 repeated AssetFrame frames_data = 1; 2364} 2365 2366// Contains data reported from an inventory source on an asset. 2367message AssetFrame { 2368 // The internal data of the frame is a oneof field depending on the type 2369 // of asset information in the frame. 2370 oneof FrameData { 2371 // Asset information specific for virtual machines. 2372 MachineDetails machine_details = 1; 2373 } 2374 2375 // The time the data was reported. 2376 google.protobuf.Timestamp report_time = 10; 2377 2378 // Labels as key value pairs. 2379 map<string, string> labels = 11; 2380 2381 // Generic asset attributes. 2382 map<string, string> attributes = 12; 2383 2384 // Asset performance data samples. 2385 // Samples that are from more than 40 days ago or after tomorrow are ignored. 2386 repeated PerformanceSample performance_samples = 13; 2387 2388 // Optional. Trace token is optionally provided to assist with debugging and 2389 // traceability. 2390 string trace_token = 14 [(google.api.field_behavior) = OPTIONAL]; 2391} 2392 2393// Details of a machine. 2394message MachineDetails { 2395 // Machine power state. 2396 enum PowerState { 2397 // Power state is unknown. 2398 POWER_STATE_UNSPECIFIED = 0; 2399 2400 // The machine is preparing to enter the ACTIVE state. An instance may enter 2401 // the PENDING state when it launches for the first time, or when it is 2402 // started after being in the SUSPENDED state. 2403 PENDING = 1; 2404 2405 // The machine is active. 2406 ACTIVE = 2; 2407 2408 // The machine is being turned off. 2409 SUSPENDING = 3; 2410 2411 // The machine is off. 2412 SUSPENDED = 4; 2413 2414 // The machine is being deleted from the hosting platform. 2415 DELETING = 5; 2416 2417 // The machine is deleted from the hosting platform. 2418 DELETED = 6; 2419 } 2420 2421 // Machine unique identifier. 2422 string uuid = 1; 2423 2424 // Machine name. 2425 string machine_name = 2; 2426 2427 // Machine creation time. 2428 google.protobuf.Timestamp create_time = 3; 2429 2430 // Number of CPU cores in the machine. Must be non-negative. 2431 int32 core_count = 4; 2432 2433 // The amount of memory in the machine. Must be non-negative. 2434 int32 memory_mb = 5; 2435 2436 // Power state of the machine. 2437 PowerState power_state = 6; 2438 2439 // Architecture details (vendor, CPU architecture). 2440 MachineArchitectureDetails architecture = 7; 2441 2442 // Guest OS information. 2443 GuestOsDetails guest_os = 8; 2444 2445 // Network details. 2446 MachineNetworkDetails network = 9; 2447 2448 // Disk details. 2449 MachineDiskDetails disks = 10; 2450 2451 // Platform specific information. 2452 PlatformDetails platform = 11; 2453} 2454 2455// Details of the machine architecture. 2456message MachineArchitectureDetails { 2457 // Firmware type. 2458 enum FirmwareType { 2459 // Unspecified or unknown. 2460 FIRMWARE_TYPE_UNSPECIFIED = 0; 2461 2462 // BIOS firmware. 2463 BIOS = 1; 2464 2465 // EFI firmware. 2466 EFI = 2; 2467 } 2468 2469 // CPU hyper-threading support. 2470 enum CpuHyperThreading { 2471 // Unspecified or unknown. 2472 CPU_HYPER_THREADING_UNSPECIFIED = 0; 2473 2474 // Hyper-threading is disabled. 2475 DISABLED = 1; 2476 2477 // Hyper-threading is enabled. 2478 ENABLED = 2; 2479 } 2480 2481 // CPU architecture, e.g., "x64-based PC", "x86_64", "i686" etc. 2482 string cpu_architecture = 1; 2483 2484 // CPU name, e.g., "Intel Xeon E5-2690", "AMD EPYC 7571" etc. 2485 string cpu_name = 2; 2486 2487 // Hardware vendor. 2488 string vendor = 3; 2489 2490 // Number of CPU threads allocated to the machine. 2491 int32 cpu_thread_count = 4; 2492 2493 // Number of processor sockets allocated to the machine. 2494 int32 cpu_socket_count = 5; 2495 2496 // BIOS Details. 2497 BiosDetails bios = 6; 2498 2499 // Firmware type. 2500 FirmwareType firmware_type = 7; 2501 2502 // CPU hyper-threading support. 2503 CpuHyperThreading hyperthreading = 8; 2504} 2505 2506// Details about the BIOS. 2507message BiosDetails { 2508 // BIOS name. 2509 // This fields is deprecated. Please use the `id` field instead. 2510 string bios_name = 1 [deprecated = true]; 2511 2512 // BIOS ID. 2513 string id = 2; 2514 2515 // BIOS manufacturer. 2516 string manufacturer = 3; 2517 2518 // BIOS version. 2519 string version = 4; 2520 2521 // BIOS release date. 2522 google.type.Date release_date = 5; 2523 2524 // SMBIOS UUID. 2525 string smbios_uuid = 6; 2526} 2527 2528// Details of network adapters and settings. 2529message MachineNetworkDetails { 2530 // The primary IP address of the machine. 2531 string primary_ip_address = 1; 2532 2533 // The public IP address of the machine. 2534 string public_ip_address = 2; 2535 2536 // MAC address of the machine. 2537 // This property is used to uniqly identify the machine. 2538 string primary_mac_address = 3; 2539 2540 // List of network adapters. 2541 NetworkAdapterList adapters = 4; 2542} 2543 2544// List of network adapters. 2545message NetworkAdapterList { 2546 // Network adapter entries. 2547 repeated NetworkAdapterDetails entries = 1; 2548} 2549 2550// Details of network adapter. 2551message NetworkAdapterDetails { 2552 // Network adapter type (e.g. VMXNET3). 2553 string adapter_type = 1; 2554 2555 // MAC address. 2556 string mac_address = 2; 2557 2558 // NetworkAddressList 2559 NetworkAddressList addresses = 3; 2560} 2561 2562// List of allocated/assigned network addresses. 2563message NetworkAddressList { 2564 // Network address entries. 2565 repeated NetworkAddress entries = 1; 2566} 2567 2568// Details of network address. 2569message NetworkAddress { 2570 // Network address assignment. 2571 enum AddressAssignment { 2572 // Unknown (default value). 2573 ADDRESS_ASSIGNMENT_UNSPECIFIED = 0; 2574 2575 // Staticly assigned IP. 2576 ADDRESS_ASSIGNMENT_STATIC = 1; 2577 2578 // Dynamically assigned IP (DHCP). 2579 ADDRESS_ASSIGNMENT_DHCP = 2; 2580 } 2581 2582 // Assigned or configured IP Address. 2583 string ip_address = 1; 2584 2585 // Subnet mask. 2586 string subnet_mask = 2; 2587 2588 // Broadcast address. 2589 string bcast = 3; 2590 2591 // Fully qualified domain name. 2592 string fqdn = 4; 2593 2594 // Whether DHCP is used to assign addresses. 2595 AddressAssignment assignment = 5; 2596} 2597 2598// Details of machine disks. 2599message MachineDiskDetails { 2600 // Disk total Capacity. 2601 int64 total_capacity_bytes = 1; 2602 2603 // Total disk free space. 2604 int64 total_free_bytes = 2; 2605 2606 // List of disks. 2607 DiskEntryList disks = 3; 2608} 2609 2610// VM disks. 2611message DiskEntryList { 2612 // Disk entries. 2613 repeated DiskEntry entries = 1; 2614} 2615 2616// Single disk entry. 2617message DiskEntry { 2618 // Disks interface type. 2619 enum InterfaceType { 2620 // Interface type unknown or unspecified. 2621 INTERFACE_TYPE_UNSPECIFIED = 0; 2622 2623 // IDE interface type. 2624 IDE = 1; 2625 2626 // SATA interface type. 2627 SATA = 2; 2628 2629 // SAS interface type. 2630 SAS = 3; 2631 2632 // SCSI interface type. 2633 SCSI = 4; 2634 2635 // NVME interface type. 2636 NVME = 5; 2637 2638 // FC interface type. 2639 FC = 6; 2640 2641 // iSCSI interface type. 2642 ISCSI = 7; 2643 } 2644 2645 // Disk capacity. 2646 int64 capacity_bytes = 1; 2647 2648 // Disk free space. 2649 int64 free_bytes = 2; 2650 2651 // Disk label. 2652 string disk_label = 3; 2653 2654 // Disk label type (e.g. BIOS/GPT) 2655 string disk_label_type = 4; 2656 2657 // Disks interface type. 2658 InterfaceType interface_type = 5; 2659 2660 // Partition layout. 2661 DiskPartitionList partitions = 6; 2662 2663 // Disk hardware address (e.g. 0:1 for SCSI). 2664 string hw_address = 7; 2665 2666 // Additional details for specific platforms. 2667 oneof platform_specific { 2668 // VMware disk details. 2669 VmwareDiskConfig vmware = 20; 2670 } 2671} 2672 2673// Disk partition list. 2674message DiskPartitionList { 2675 // Partition entries. 2676 repeated DiskPartition entries = 1; 2677} 2678 2679// Disk Partition details. 2680message DiskPartition { 2681 // Partition type. 2682 string type = 1; 2683 2684 // Partition file system. 2685 string file_system = 2; 2686 2687 // Mount pount (Linux/Windows) or drive letter (Windows). 2688 string mount_point = 3; 2689 2690 // Partition capacity. 2691 int64 capacity_bytes = 4; 2692 2693 // Partition free space. 2694 int64 free_bytes = 5; 2695 2696 // Partition UUID. 2697 string uuid = 6; 2698 2699 // Sub-partitions. 2700 DiskPartitionList sub_partitions = 7; 2701} 2702 2703// VMware disk config details. 2704message VmwareDiskConfig { 2705 // VMDK backing type possible values. 2706 enum BackingType { 2707 // Default value. 2708 BACKING_TYPE_UNSPECIFIED = 0; 2709 2710 // Flat v1. 2711 BACKING_TYPE_FLAT_V1 = 1; 2712 2713 // Flat v2. 2714 BACKING_TYPE_FLAT_V2 = 2; 2715 2716 // Persistent memory, also known as Non-Volatile Memory (NVM). 2717 BACKING_TYPE_PMEM = 3; 2718 2719 // Raw Disk Memory v1. 2720 BACKING_TYPE_RDM_V1 = 4; 2721 2722 // Raw Disk Memory v2. 2723 BACKING_TYPE_RDM_V2 = 5; 2724 2725 // SEsparse is a snapshot format introduced in vSphere 5.5 for large disks. 2726 BACKING_TYPE_SESPARSE = 6; 2727 2728 // SEsparse v1. 2729 BACKING_TYPE_SESPARSE_V1 = 7; 2730 2731 // SEsparse v1. 2732 BACKING_TYPE_SESPARSE_V2 = 8; 2733 } 2734 2735 // VMDK disk mode. 2736 enum VmdkMode { 2737 // VMDK disk mode unspecified or unknown. 2738 VMDK_MODE_UNSPECIFIED = 0; 2739 2740 // Dependent disk mode. 2741 DEPENDENT = 1; 2742 2743 // Independent - Persistent disk mode. 2744 INDEPENDENT_PERSISTENT = 2; 2745 2746 // Independent - Nonpersistent disk mode. 2747 INDEPENDENT_NONPERSISTENT = 3; 2748 } 2749 2750 // RDM compatibility mode. 2751 enum RdmCompatibility { 2752 // Compatibility mode unspecified or unknown. 2753 RDM_COMPATIBILITY_UNSPECIFIED = 0; 2754 2755 // Physical compatibility mode. 2756 PHYSICAL_COMPATIBILITY = 1; 2757 2758 // Virtual compatibility mode. 2759 VIRTUAL_COMPATIBILITY = 2; 2760 } 2761 2762 // VMDK backing type. 2763 BackingType backing_type = 1; 2764 2765 // Is VMDK shared with other VMs. 2766 bool shared = 2; 2767 2768 // VMDK disk mode. 2769 VmdkMode vmdk_mode = 3; 2770 2771 // RDM compatibility mode. 2772 RdmCompatibility rdm_compatibility = 4; 2773} 2774 2775// Information from Guest-level collections. 2776message GuestOsDetails { 2777 // The name of the operating system. 2778 string os_name = 1; 2779 2780 // What family the OS belong to, if known. 2781 OperatingSystemFamily family = 2; 2782 2783 // The version of the operating system. 2784 string version = 3; 2785 2786 // OS and app configuration. 2787 GuestConfigDetails config = 4; 2788 2789 // Runtime information. 2790 GuestRuntimeDetails runtime = 5; 2791} 2792 2793// Guest OS config information. 2794message GuestConfigDetails { 2795 // Security-Enhanced Linux (SELinux) mode. 2796 enum SeLinuxMode { 2797 // SELinux mode unknown or unspecified. 2798 SE_LINUX_MODE_UNSPECIFIED = 0; 2799 2800 // SELinux is disabled. 2801 SE_LINUX_MODE_DISABLED = 1; 2802 2803 // SELinux permissive mode. 2804 SE_LINUX_MODE_PERMISSIVE = 2; 2805 2806 // SELinux enforcing mode. 2807 SE_LINUX_MODE_ENFORCING = 3; 2808 } 2809 2810 // OS issue (typically /etc/issue in Linux). 2811 string issue = 1; 2812 2813 // Mount list (Linux fstab). 2814 FstabEntryList fstab = 2; 2815 2816 // Hosts file (/etc/hosts). 2817 HostsEntryList hosts = 3; 2818 2819 // NFS exports. 2820 NfsExportList nfs_exports = 4; 2821 2822 // Security-Enhanced Linux (SELinux) mode. 2823 SeLinuxMode selinux_mode = 5; 2824} 2825 2826// Fstab content. 2827message FstabEntryList { 2828 // Fstab entries. 2829 repeated FstabEntry entries = 1; 2830} 2831 2832// Single fstab entry. 2833message FstabEntry { 2834 // The block special device or remote filesystem to be mounted. 2835 string spec = 1; 2836 2837 // The mount point for the filesystem. 2838 string file = 2; 2839 2840 // The type of the filesystem. 2841 string vfstype = 3; 2842 2843 // Mount options associated with the filesystem. 2844 string mntops = 4; 2845 2846 // Used by dump to determine which filesystems need to be dumped. 2847 int32 freq = 5; 2848 2849 // Used by the fsck(8) program to determine the order in which filesystem 2850 // checks are done at reboot time. 2851 int32 passno = 6; 2852} 2853 2854// Hosts content. 2855message HostsEntryList { 2856 // Hosts entries. 2857 repeated HostsEntry entries = 1; 2858} 2859 2860// Single /etc/hosts entry. 2861message HostsEntry { 2862 // IP (raw, IPv4/6 agnostic). 2863 string ip = 1; 2864 2865 // List of host names / aliases. 2866 repeated string host_names = 2; 2867} 2868 2869// NFS exports. 2870message NfsExportList { 2871 // NFS export entries. 2872 repeated NfsExport entries = 1; 2873} 2874 2875// NFS export. 2876message NfsExport { 2877 // The directory being exported. 2878 string export_directory = 1; 2879 2880 // The hosts or networks to which the export is being shared. 2881 repeated string hosts = 2; 2882} 2883 2884// Guest OS runtime information. 2885message GuestRuntimeDetails { 2886 // Running background services. 2887 RunningServiceList services = 1; 2888 2889 // Running processes. 2890 RunningProcessList processes = 2; 2891 2892 // Runtime network information (connections, ports). 2893 RuntimeNetworkInfo network = 3; 2894 2895 // Last time the OS was booted. 2896 google.protobuf.Timestamp last_boot_time = 4; 2897 2898 // Domain, e.g. c.stratozone-development.internal. 2899 string domain = 5; 2900 2901 // Machine name. 2902 string machine_name = 6; 2903 2904 // Installed applications information. 2905 GuestInstalledApplicationList installed_apps = 7; 2906 2907 // Open files information. 2908 OpenFileList open_file_list = 8; 2909} 2910 2911// List of running guest OS services. 2912message RunningServiceList { 2913 // Running service entries. 2914 repeated RunningService entries = 1; 2915} 2916 2917// Guest OS running service details. 2918message RunningService { 2919 // Service state (OS-agnostic). 2920 enum State { 2921 // Service state unspecified. 2922 STATE_UNSPECIFIED = 0; 2923 2924 // Service is active. 2925 ACTIVE = 1; 2926 2927 // Service is paused. 2928 PAUSED = 2; 2929 2930 // Service is stopped. 2931 STOPPED = 3; 2932 } 2933 2934 // Service start mode (OS-agnostic). 2935 enum StartMode { 2936 // Start mode unspecified. 2937 START_MODE_UNSPECIFIED = 0; 2938 2939 // The service is a device driver started by the system loader. 2940 BOOT = 1; 2941 2942 // The service is a device driver started by the IOInitSystem function. 2943 SYSTEM = 2; 2944 2945 // The service is started by the operating system, at system start-up 2946 AUTO = 3; 2947 2948 // The service is started only manually, by a user. 2949 MANUAL = 4; 2950 2951 // The service is disabled. 2952 DISABLED = 5; 2953 } 2954 2955 // Service name. 2956 string service_name = 1; 2957 2958 // Service state (OS-agnostic). 2959 State state = 2; 2960 2961 // Service start mode (OS-agnostic). 2962 StartMode start_mode = 3; 2963 2964 // Service binary path. 2965 string exe_path = 4; 2966 2967 // Service command line. 2968 string cmdline = 5; 2969 2970 // Service pid. 2971 int64 pid = 6; 2972} 2973 2974// List of running guest OS processes. 2975message RunningProcessList { 2976 // Running process entries. 2977 repeated RunningProcess entries = 1; 2978} 2979 2980// Guest OS running process details. 2981message RunningProcess { 2982 // Process ID. 2983 int64 pid = 1; 2984 2985 // Process binary path. 2986 string exe_path = 2; 2987 2988 // Process full command line. 2989 string cmdline = 3; 2990 2991 // User running the process. 2992 string user = 4; 2993 2994 // Process extended attributes. 2995 map<string, string> attributes = 100; 2996} 2997 2998// Runtime networking information. 2999message RuntimeNetworkInfo { 3000 // Time of the last network scan. 3001 google.protobuf.Timestamp scan_time = 1; 3002 3003 // Network connections. 3004 NetworkConnectionList connections = 2; 3005} 3006 3007// Network connection list. 3008message NetworkConnectionList { 3009 // Network connection entries. 3010 repeated NetworkConnection entries = 1; 3011} 3012 3013message NetworkConnection { 3014 // Network connection state. 3015 enum State { 3016 // Connection state is unknown or unspecified. 3017 STATE_UNSPECIFIED = 0; 3018 3019 // The connection is being opened. 3020 OPENING = 1; 3021 3022 // The connection is open. 3023 OPEN = 2; 3024 3025 // Listening for incoming connections. 3026 LISTEN = 3; 3027 3028 // The connection is being closed. 3029 CLOSING = 4; 3030 3031 // The connection is closed. 3032 CLOSED = 5; 3033 } 3034 3035 // Connection protocol (e.g. TCP/UDP). 3036 string protocol = 1; 3037 3038 // Local IP address. 3039 string local_ip_address = 2; 3040 3041 // Local port. 3042 int32 local_port = 3; 3043 3044 // Remote IP address. 3045 string remote_ip_address = 4; 3046 3047 // Remote port. 3048 int32 remote_port = 5; 3049 3050 // Network connection state. 3051 State state = 6; 3052 3053 // Process ID. 3054 int64 pid = 7; 3055 3056 // Process or service name. 3057 string process_name = 8; 3058} 3059 3060// Guest installed application list. 3061message GuestInstalledApplicationList { 3062 // Application entries. 3063 repeated GuestInstalledApplication entries = 1; 3064} 3065 3066// Guest installed application information. 3067message GuestInstalledApplication { 3068 // Installed application name. 3069 string application_name = 1; 3070 3071 // Installed application vendor. 3072 string vendor = 2; 3073 3074 // The time when the application was installed. 3075 google.protobuf.Timestamp install_time = 3; 3076 3077 // Source path. 3078 string path = 4; 3079 3080 // Installed application version. 3081 string version = 5; 3082} 3083 3084// Open file list. 3085message OpenFileList { 3086 // Open file details entries. 3087 repeated OpenFileDetails entries = 1; 3088} 3089 3090// Open file Information. 3091message OpenFileDetails { 3092 // Opened file command. 3093 string command = 1; 3094 3095 // Opened file user. 3096 string user = 2; 3097 3098 // Opened file file type. 3099 string file_type = 3; 3100 3101 // Opened file file path. 3102 string file_path = 4; 3103} 3104 3105// Information about the platform. 3106message PlatformDetails { 3107 oneof vendor_details { 3108 // VMware specific details. 3109 VmwarePlatformDetails vmware_details = 1; 3110 3111 // AWS EC2 specific details. 3112 AwsEc2PlatformDetails aws_ec2_details = 2; 3113 3114 // Azure VM specific details. 3115 AzureVmPlatformDetails azure_vm_details = 3; 3116 3117 // Generic platform details. 3118 GenericPlatformDetails generic_details = 4; 3119 3120 // Physical machines platform details. 3121 PhysicalPlatformDetails physical_details = 5; 3122 } 3123} 3124 3125// VMware specific details. 3126message VmwarePlatformDetails { 3127 // vCenter version. 3128 string vcenter_version = 1; 3129 3130 // ESX version. 3131 string esx_version = 2; 3132 3133 // VMware os enum - 3134 // 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. 3135 string osid = 3; 3136 3137 // Folder name in vCenter where asset resides. 3138 string vcenter_folder = 4; 3139 3140 // vCenter URI used in collection. 3141 string vcenter_uri = 5; 3142 3143 // vCenter VM ID. 3144 string vcenter_vm_id = 6; 3145} 3146 3147// AWS EC2 specific details. 3148message AwsEc2PlatformDetails { 3149 // AWS platform's machine type label. 3150 string machine_type_label = 1; 3151 3152 // The location of the machine in the AWS format. 3153 string location = 2; 3154} 3155 3156// Azure VM specific details. 3157message AzureVmPlatformDetails { 3158 // Azure platform's machine type label. 3159 string machine_type_label = 1; 3160 3161 // The location of the machine in the Azure format. 3162 string location = 2; 3163 3164 // Azure platform's provisioning state. 3165 string provisioning_state = 3; 3166} 3167 3168// Generic platform details. 3169message GenericPlatformDetails { 3170 // Free text representation of the machine location. 3171 // The format of this field should not be relied on. Different VMs in the same 3172 // location may have different string values for this field. 3173 string location = 1; 3174} 3175 3176// Platform specific details for Physical Machines. 3177message PhysicalPlatformDetails { 3178 // Free text representation of the machine location. 3179 // The format of this field should not be relied on. Different machines in the 3180 // same location may have different string values for this field. 3181 string location = 1; 3182} 3183 3184// Memory usage sample. 3185message MemoryUsageSample { 3186 // Percentage of system memory utilized. Must be in the interval [0, 100]. 3187 float utilized_percentage = 1; 3188} 3189 3190// CPU usage sample. 3191message CpuUsageSample { 3192 // Percentage of total CPU capacity utilized. Must be in the interval [0, 3193 // 100]. On most systems can be calculated using 100 - idle percentage. 3194 float utilized_percentage = 1; 3195} 3196 3197// Network usage sample. Values are across all network interfaces. 3198message NetworkUsageSample { 3199 // Average network ingress in B/s sampled over a short window. 3200 // Must be non-negative. 3201 float average_ingress_bps = 1; 3202 3203 // Average network egress in B/s sampled over a short window. 3204 // Must be non-negative. 3205 float average_egress_bps = 2; 3206} 3207 3208// Disk usage sample. Values are across all disks. 3209message DiskUsageSample { 3210 // Average IOPS sampled over a short window. Must be non-negative. 3211 float average_iops = 1; 3212} 3213 3214// Performance data sample. 3215message PerformanceSample { 3216 // Time the sample was collected. 3217 // If omitted, the frame report time will be used. 3218 google.protobuf.Timestamp sample_time = 1; 3219 3220 // Memory usage sample. 3221 MemoryUsageSample memory = 2; 3222 3223 // CPU usage sample. 3224 CpuUsageSample cpu = 3; 3225 3226 // Network usage sample. 3227 NetworkUsageSample network = 4; 3228 3229 // Disk usage sample. 3230 DiskUsageSample disk = 5; 3231} 3232 3233// Performance data for an asset. 3234message AssetPerformanceData { 3235 // Daily resource usage aggregations. 3236 // Contains all of the data available for an asset, up to the last 420 days. 3237 // Aggregations are sorted from oldest to most recent. 3238 repeated DailyResourceUsageAggregation daily_resource_usage_aggregations = 1; 3239} 3240 3241// Usage data aggregation for a single day. 3242message DailyResourceUsageAggregation { 3243 // Statistical aggregation of samples for a single resource usage. 3244 message Stats { 3245 // Average usage value. 3246 float average = 1; 3247 3248 // Median usage value. 3249 float median = 2; 3250 3251 // 95th percentile usage value. 3252 float nintey_fifth_percentile = 3; 3253 3254 // Peak usage value. 3255 float peak = 4; 3256 } 3257 3258 // Statistical aggregation of CPU usage. 3259 message CPU { 3260 // CPU utilization percentage. 3261 Stats utilization_percentage = 1; 3262 } 3263 3264 // Statistical aggregation of memory usage. 3265 message Memory { 3266 // Memory utilization percentage. 3267 Stats utilization_percentage = 1; 3268 } 3269 3270 // Statistical aggregation of network usage. 3271 message Network { 3272 // Network ingress in B/s. 3273 Stats ingress_bps = 1; 3274 3275 // Network egress in B/s. 3276 Stats egress_bps = 2; 3277 } 3278 3279 // Statistical aggregation of disk usage. 3280 message Disk { 3281 // Disk I/O operations per second. 3282 Stats iops = 1; 3283 } 3284 3285 // Aggregation date. Day boundaries are at midnight UTC. 3286 google.type.Date date = 1; 3287 3288 // CPU usage. 3289 CPU cpu = 2; 3290 3291 // Memory usage. 3292 Memory memory = 3; 3293 3294 // Network usage. 3295 Network network = 4; 3296 3297 // Disk usage. 3298 Disk disk = 5; 3299} 3300 3301// Message containing insights list. 3302message InsightList { 3303 // Output only. Insights of the list. 3304 repeated Insight insights = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 3305 3306 // Output only. Update timestamp. 3307 google.protobuf.Timestamp update_time = 2 3308 [(google.api.field_behavior) = OUTPUT_ONLY]; 3309} 3310 3311// An insight about an asset. 3312message Insight { 3313 oneof insight { 3314 // Output only. An insight about potential migrations for an asset. 3315 MigrationInsight migration_insight = 1 3316 [(google.api.field_behavior) = OUTPUT_ONLY]; 3317 3318 // Output only. A generic insight about an asset 3319 GenericInsight generic_insight = 2 3320 [(google.api.field_behavior) = OUTPUT_ONLY]; 3321 } 3322} 3323 3324// A generic insight about an asset. 3325message GenericInsight { 3326 // Output only. Represents a globally unique message id for 3327 // this insight, can be used for localization purposes, in case message_code 3328 // is not yet known by the client use default_message instead. 3329 int64 message_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 3330 3331 // Output only. In case message_code is not yet known by the client 3332 // default_message will be the message to be used instead. 3333 string default_message = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 3334 3335 // Output only. Additional information about the insight, each entry can be a 3336 // logical entry and must make sense if it is displayed with line breaks 3337 // between each entry. Text can contain md style links. 3338 repeated string additional_information = 3 3339 [(google.api.field_behavior) = OUTPUT_ONLY]; 3340} 3341 3342// An insight about potential migrations for an asset. 3343message MigrationInsight { 3344 // Output only. Description of how well the asset this insight is associated 3345 // with fits the proposed migration. 3346 FitDescriptor fit = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 3347 3348 // A target for the migration. 3349 oneof migration_target { 3350 // Output only. A Google Compute Engine target. 3351 ComputeEngineMigrationTarget compute_engine_target = 10 3352 [(google.api.field_behavior) = OUTPUT_ONLY]; 3353 } 3354} 3355 3356// Compute engine migration target. 3357message ComputeEngineMigrationTarget { 3358 // Description of the suggested shape for the migration target. 3359 ComputeEngineShapeDescriptor shape = 1; 3360} 3361 3362// Compute Engine target shape descriptor. 3363message ComputeEngineShapeDescriptor { 3364 // Memory in mebibytes. 3365 int32 memory_mb = 1; 3366 3367 // Number of physical cores. 3368 int32 physical_core_count = 2; 3369 3370 // Number of logical cores. 3371 int32 logical_core_count = 3; 3372 3373 // Compute Engine machine series. 3374 string series = 4; 3375 3376 // Compute Engine machine type. 3377 string machine_type = 5; 3378 3379 // Compute Engine storage. Never empty. 3380 repeated ComputeStorageDescriptor storage = 6; 3381} 3382 3383// Compute Engine storage option descriptor. 3384message ComputeStorageDescriptor { 3385 // Disk type backing the storage. 3386 PersistentDiskType type = 1; 3387 3388 // Disk size in GiB. 3389 int32 size_gb = 2; 3390} 3391 3392// Describes the fit level of an asset for migration to a specific target. 3393message FitDescriptor { 3394 // Fit level. 3395 enum FitLevel { 3396 // Not enough information. 3397 FIT_LEVEL_UNSPECIFIED = 0; 3398 3399 // Fit. 3400 FIT = 1; 3401 3402 // No Fit. 3403 NO_FIT = 2; 3404 3405 // Fit with effort. 3406 REQUIRES_EFFORT = 3; 3407 } 3408 3409 // Fit level. 3410 FitLevel fit_level = 1; 3411} 3412 3413// Message describing an aggregation. The message includes the aggregation type, 3414// parameters, and the field on which to perform the aggregation. 3415message Aggregation { 3416 // Object count. 3417 message Count {} 3418 3419 // Sum of field values. 3420 message Sum {} 3421 3422 // Histogram of bucketed assets counts by field value. 3423 message Histogram { 3424 // Lower bounds of buckets. 3425 // The response will contain `n+1` buckets for `n` bounds. 3426 // The first bucket will count all assets for which the field value is 3427 // smaller than the first bound. 3428 // Subsequent buckets will count assets for which the field value is 3429 // greater or equal to a lower bound and smaller than the next one. 3430 // The last bucket will count assets for which the field value is greater or 3431 // equal to the final lower bound. 3432 // You can define up to 20 lower bounds. 3433 repeated double lower_bounds = 1; 3434 } 3435 3436 // Frequency distribution of all field values. 3437 message Frequency {} 3438 3439 // The name of the field on which to aggregate. 3440 string field = 1; 3441 3442 oneof aggregation_function { 3443 // Count the number of matching objects. 3444 Count count = 2; 3445 3446 // Sum over a numeric field. 3447 Sum sum = 3; 3448 3449 // Creates a bucketed histogram of field values. 3450 Histogram histogram = 4; 3451 3452 // Creates a frequency distribution of all field values. 3453 Frequency frequency = 5; 3454 } 3455} 3456 3457// Message describing a result of an aggregation. 3458message AggregationResult { 3459 // The result of a count aggregation. 3460 message Count { 3461 int64 value = 1; 3462 } 3463 3464 // The result of a sum aggregation. 3465 message Sum { 3466 double value = 1; 3467 } 3468 3469 // The result of a bucketed histogram aggregation. 3470 message Histogram { 3471 // A histogram bucket with a lower and upper bound, and a count of items 3472 // with a field value between those bounds. 3473 // The lower bound is inclusive and the upper bound is exclusive. 3474 // Lower bound may be -infinity and upper bound may be infinity. 3475 message Bucket { 3476 // Lower bound - inclusive. 3477 double lower_bound = 1; 3478 3479 // Upper bound - exclusive. 3480 double upper_bound = 2; 3481 3482 // Count of items in the bucket. 3483 int64 count = 3; 3484 } 3485 3486 // Buckets in the histogram. 3487 // There will be `n+1` buckets matching `n` lower bounds in the request. 3488 // The first bucket will be from -infinity to the first bound. 3489 // Subsequent buckets will be between one bound and the next. 3490 // The final bucket will be from the final bound to infinity. 3491 repeated Bucket buckets = 1; 3492 } 3493 3494 // The result of a frequency distribution aggregation. 3495 message Frequency { 3496 map<string, int64> values = 1; 3497 } 3498 3499 string field = 1; 3500 3501 oneof result { 3502 Count count = 2; 3503 3504 Sum sum = 3; 3505 3506 Histogram histogram = 4; 3507 3508 Frequency frequency = 5; 3509 } 3510} 3511 3512// A resource that aggregates the validation errors found in an import job file. 3513message FileValidationReport { 3514 // The name of the file. 3515 string file_name = 1; 3516 3517 // Partial list of rows that encountered validation error. 3518 repeated ImportRowError row_errors = 2; 3519 3520 // Flag indicating that processing was aborted due to maximum number of 3521 // errors. 3522 bool partial_report = 3; 3523 3524 // List of file level errors. 3525 repeated ImportError file_errors = 4; 3526} 3527 3528// A resource that aggregates errors across import job files. 3529message ValidationReport { 3530 // List of errors found in files. 3531 repeated FileValidationReport file_validations = 1; 3532 3533 // List of job level errors. 3534 repeated ImportError job_errors = 2; 3535} 3536 3537// A resource that reports result of the import job execution. 3538message ExecutionReport { 3539 // Total number of asset frames reported for the import job. 3540 int32 frames_reported = 1; 3541 3542 // Validation errors encountered during the execution of the import job. 3543 ValidationReport execution_errors = 2; 3544 3545 // Output only. Total number of rows in the import job. 3546 int32 total_rows_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 3547} 3548 3549// A resource that reports the errors encountered while processing an 3550// import job. 3551message ImportError { 3552 // Enumerate possible error severity. 3553 enum Severity { 3554 SEVERITY_UNSPECIFIED = 0; 3555 3556 ERROR = 1; 3557 3558 WARNING = 2; 3559 3560 INFO = 3; 3561 } 3562 3563 // The error information. 3564 string error_details = 1; 3565 3566 // The severity of the error. 3567 Severity severity = 2; 3568} 3569 3570// A resource that reports the import job errors at row level. 3571message ImportRowError { 3572 // The row number where the error was detected. 3573 int32 row_number = 1 [deprecated = true]; 3574 3575 // The name of the VM in the row. 3576 string vm_name = 2; 3577 3578 // The VM UUID. 3579 string vm_uuid = 3; 3580 3581 // The list of errors detected in the row. 3582 repeated ImportError errors = 4; 3583} 3584 3585// A resource that contains a URI to which a data file can be uploaded. 3586message UploadFileInfo { 3587 // Output only. Upload URI for the file. 3588 string signed_uri = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 3589 3590 // Output only. The headers that were used to sign the URI. 3591 map<string, string> headers = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 3592 3593 // Output only. Expiration time of the upload URI. 3594 google.protobuf.Timestamp uri_expiration_time = 3 3595 [(google.api.field_behavior) = OUTPUT_ONLY]; 3596} 3597 3598// Lists the asset IDs of all assets. 3599message AssetList { 3600 // Required. A list of asset IDs 3601 repeated string asset_ids = 1 [ 3602 (google.api.field_behavior) = REQUIRED, 3603 (google.api.resource_reference) = { 3604 type: "migrationcenter.googleapis.com/Asset" 3605 } 3606 ]; 3607} 3608 3609// A resource that contains a single violation of a reported `AssetFrame` 3610// resource. 3611message FrameViolationEntry { 3612 // The field of the original frame where the violation occurred. 3613 string field = 1; 3614 3615 // A message describing the violation. 3616 string violation = 2; 3617} 3618 3619// VirtualMachinePreferences enables you to create sets of assumptions, for 3620// example, a geographical location and pricing track, for your migrated virtual 3621// machines. The set of preferences influence recommendations for migrating 3622// virtual machine assets. 3623message VirtualMachinePreferences { 3624 // Target product for assets using this preference set. 3625 // Specify either target product or business goal, but 3626 // not both. 3627 ComputeMigrationTargetProduct target_product = 2; 3628 3629 // Region preferences for assets using this preference set. 3630 // If you are unsure which value to set, the migration service API region is 3631 // often a good value to start with. 3632 RegionPreferences region_preferences = 3; 3633 3634 // Commitment plan to consider when calculating costs for virtual machine 3635 // insights and recommendations. 3636 // If you are unsure which value to set, a 3 year commitment plan is often a 3637 // good value to start with. 3638 CommitmentPlan commitment_plan = 4; 3639 3640 // Sizing optimization strategy specifies the preferred strategy used when 3641 // extrapolating usage data to calculate insights and recommendations for a 3642 // virtual machine. 3643 // If you are unsure which value to set, a moderate sizing optimization 3644 // strategy is often a good value to start with. 3645 SizingOptimizationStrategy sizing_optimization_strategy = 5; 3646 3647 // Compute Engine preferences concern insights and recommendations for Compute 3648 // Engine target. 3649 ComputeEnginePreferences compute_engine_preferences = 6; 3650 3651 // Preferences concerning insights and recommendations for 3652 // Google Cloud VMware Engine. 3653 VmwareEnginePreferences vmware_engine_preferences = 7; 3654 3655 // Preferences concerning Sole Tenant nodes and virtual machines. 3656 SoleTenancyPreferences sole_tenancy_preferences = 8; 3657} 3658 3659// The user preferences relating to Compute Engine target platform. 3660message ComputeEnginePreferences { 3661 // Preferences concerning the machine types to consider on Compute Engine. 3662 MachinePreferences machine_preferences = 2; 3663 3664 // License type to consider when calculating costs for virtual machine 3665 // insights and recommendations. If unspecified, costs are calculated 3666 // based on the default licensing plan. 3667 LicenseType license_type = 3; 3668} 3669 3670// The type of machines to consider when calculating virtual machine migration 3671// insights and recommendations. 3672// Not all machine types are available in all zones and regions. 3673message MachinePreferences { 3674 // Compute Engine machine series to consider for insights and recommendations. 3675 // If empty, no restriction is applied on the machine series. 3676 repeated MachineSeries allowed_machine_series = 1; 3677} 3678 3679// A Compute Engine machine series. 3680message MachineSeries { 3681 // Code to identify a Compute Engine machine series. Consult 3682 // https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison 3683 // for more details on the available series. 3684 string code = 1; 3685} 3686 3687// The user preferences relating to Google Cloud VMware Engine target platform. 3688message VmwareEnginePreferences { 3689 // Type of committed use discount. 3690 enum CommitmentPlan { 3691 // Unspecified commitment plan. 3692 COMMITMENT_PLAN_UNSPECIFIED = 0; 3693 3694 // No commitment plan (on-demand usage). 3695 ON_DEMAND = 1; 3696 3697 // 1 year commitment (monthly payments). 3698 COMMITMENT_1_YEAR_MONTHLY_PAYMENTS = 2; 3699 3700 // 3 year commitment (monthly payments). 3701 COMMITMENT_3_YEAR_MONTHLY_PAYMENTS = 3; 3702 3703 // 1 year commitment (upfront payment). 3704 COMMITMENT_1_YEAR_UPFRONT_PAYMENT = 4; 3705 3706 // 3 years commitment (upfront payment). 3707 COMMITMENT_3_YEAR_UPFRONT_PAYMENT = 5; 3708 } 3709 3710 // CPU overcommit ratio. 3711 // Acceptable values are between 1.0 and 8.0, with 0.1 increment. 3712 double cpu_overcommit_ratio = 1; 3713 3714 // Memory overcommit ratio. 3715 // Acceptable values are 1.0, 1.25, 1.5, 1.75 and 2.0. 3716 double memory_overcommit_ratio = 2; 3717 3718 // The Deduplication and Compression ratio is based on the logical (Used 3719 // Before) space required to store data before applying deduplication and 3720 // compression, in relation to the physical (Used After) space required after 3721 // applying deduplication and compression. Specifically, the ratio is the Used 3722 // Before space divided by the Used After space. For example, if the Used 3723 // Before space is 3 GB, but the physical Used After space is 1 GB, the 3724 // deduplication and compression ratio is 3x. Acceptable values are 3725 // between 1.0 and 4.0. 3726 double storage_deduplication_compression_ratio = 3; 3727 3728 // Commitment plan to consider when calculating costs for virtual machine 3729 // insights and recommendations. 3730 // If you are unsure which value to set, a 3 year commitment plan is often a 3731 // good value to start with. 3732 CommitmentPlan commitment_plan = 4; 3733} 3734 3735// Preferences concerning Sole Tenancy nodes and VMs. 3736message SoleTenancyPreferences { 3737 // Sole Tenancy nodes maintenance policy. 3738 enum HostMaintenancePolicy { 3739 // Unspecified host maintenance policy. 3740 HOST_MAINTENANCE_POLICY_UNSPECIFIED = 0; 3741 3742 // Default host maintenance policy. 3743 HOST_MAINTENANCE_POLICY_DEFAULT = 1; 3744 3745 // Restart in place host maintenance policy. 3746 HOST_MAINTENANCE_POLICY_RESTART_IN_PLACE = 2; 3747 3748 // Migrate within node group host maintenance policy. 3749 HOST_MAINTENANCE_POLICY_MIGRATE_WITHIN_NODE_GROUP = 3; 3750 } 3751 3752 // Type of committed use discount. 3753 enum CommitmentPlan { 3754 // Unspecified commitment plan. 3755 COMMITMENT_PLAN_UNSPECIFIED = 0; 3756 3757 // No commitment plan (on-demand usage). 3758 ON_DEMAND = 1; 3759 3760 // 1 year commitment. 3761 COMMITMENT_1_YEAR = 2; 3762 3763 // 3 years commitment. 3764 COMMITMENT_3_YEAR = 3; 3765 } 3766 3767 // CPU overcommit ratio. 3768 // Acceptable values are between 1.0 and 2.0 inclusive. 3769 double cpu_overcommit_ratio = 1; 3770 3771 // Sole Tenancy nodes maintenance policy. 3772 HostMaintenancePolicy host_maintenance_policy = 2; 3773 3774 // Commitment plan to consider when calculating costs for virtual machine 3775 // insights and recommendations. 3776 // If you are unsure which value to set, a 3 year commitment plan is often a 3777 // good value to start with. 3778 CommitmentPlan commitment_plan = 3; 3779 3780 // A list of sole tenant node types. 3781 // An empty list means that all possible node types will be considered. 3782 repeated SoleTenantNodeType node_types = 4; 3783} 3784 3785// A Sole Tenant node type. 3786message SoleTenantNodeType { 3787 // Name of the Sole Tenant node. Consult 3788 // https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes 3789 string node_name = 1; 3790} 3791 3792// The user preferences relating to target regions. 3793message RegionPreferences { 3794 // A list of preferred regions, 3795 // ordered by the most preferred region first. 3796 // Set only valid Google Cloud region names. 3797 // See https://cloud.google.com/compute/docs/regions-zones 3798 // for available regions. 3799 repeated string preferred_regions = 1; 3800} 3801 3802// Describes the Migration Center settings related to the project. 3803message Settings { 3804 option (google.api.resource) = { 3805 type: "migrationcenter.googleapis.com/Settings" 3806 pattern: "projects/{project}/locations/{location}/settings" 3807 }; 3808 3809 // Output only. The name of the resource. 3810 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 3811 3812 // The preference set used by default for a project. 3813 string preference_set = 2 [(google.api.resource_reference) = { 3814 type: "migrationcenter.googleapis.com/PreferenceSet" 3815 }]; 3816} 3817 3818// Describes the Summary view of a Report, which contains aggregated values 3819// for all the groups and preference sets included in this Report. 3820message ReportSummary { 3821 // Describes a collection of data points rendered as a Chart. 3822 message ChartData { 3823 // Describes a single data point in the Chart. 3824 message DataPoint { 3825 // The X-axis label for this data point. 3826 string label = 1; 3827 3828 // The Y-axis value for this data point. 3829 double value = 2; 3830 } 3831 3832 // Each data point in the chart is represented as a name-value pair 3833 // with the name being the x-axis label, and the value being the y-axis 3834 // value. 3835 repeated DataPoint data_points = 1; 3836 } 3837 3838 // Utilization Chart is a specific type of visualization which displays 3839 // a metric classified into "Used" and "Free" buckets. 3840 message UtilizationChartData { 3841 // Aggregate value which falls into the "Used" bucket. 3842 int64 used = 1; 3843 3844 // Aggregate value which falls into the "Free" bucket. 3845 int64 free = 2; 3846 } 3847 3848 // A Histogram Chart shows a distribution of values into buckets, showing 3849 // a count of values which fall into a bucket. 3850 message HistogramChartData { 3851 // A histogram bucket with a lower and upper bound, and a count of items 3852 // with a field value between those bounds. 3853 // The lower bound is inclusive and the upper bound is exclusive. 3854 // Lower bound may be -infinity and upper bound may be infinity. 3855 message Bucket { 3856 // Lower bound - inclusive. 3857 int64 lower_bound = 1; 3858 3859 // Upper bound - exclusive. 3860 int64 upper_bound = 2; 3861 3862 // Count of items in the bucket. 3863 int64 count = 3; 3864 } 3865 3866 // Buckets in the histogram. 3867 // There will be `n+1` buckets matching `n` lower bounds in the request. 3868 // The first bucket will be from -infinity to the first bound. 3869 // Subsequent buckets will be between one bound and the next. 3870 // The final bucket will be from the final bound to infinity. 3871 repeated Bucket buckets = 1; 3872 } 3873 3874 // Aggregate statistics for a collection of assets. 3875 message AssetAggregateStats { 3876 // Sum of the memory in bytes of all the assets in this collection. 3877 int64 total_memory_bytes = 1; 3878 3879 // Sum of persistent storage in bytes of all the assets in this collection. 3880 int64 total_storage_bytes = 2; 3881 3882 // Sum of the CPU core count of all the assets in this collection. 3883 int64 total_cores = 3; 3884 3885 // Count of the number of unique assets in this collection. 3886 int64 total_assets = 4; 3887 3888 // Total memory split into Used/Free buckets. 3889 UtilizationChartData memory_utilization_chart = 5; 3890 3891 // Total memory split into Used/Free buckets. 3892 UtilizationChartData storage_utilization_chart = 6; 3893 3894 // Count of assets grouped by Operating System families. 3895 ChartData operating_system = 7; 3896 3897 // Histogram showing a distribution of CPU core counts. 3898 HistogramChartData core_count_histogram = 8; 3899 3900 // Histogram showing a distribution of memory sizes. 3901 HistogramChartData memory_bytes_histogram = 9; 3902 3903 // Histogram showing a distribution of memory sizes. 3904 HistogramChartData storage_bytes_histogram = 10; 3905 } 3906 3907 // Represents a data point tracking the count of assets allocated for a 3908 // specific Machine Series. 3909 message MachineSeriesAllocation { 3910 // The Machine Series (e.g. "E2", "N2") 3911 MachineSeries machine_series = 1; 3912 3913 // Count of assets allocated to this machine series. 3914 int64 allocated_asset_count = 2; 3915 } 3916 3917 // A set of findings that applies to assets destined for Compute Engine. 3918 message ComputeEngineFinding { 3919 // Set of regions in which the assets were allocated. 3920 repeated string allocated_regions = 1; 3921 3922 // Count of assets which were allocated. 3923 int64 allocated_asset_count = 2; 3924 3925 // Distribution of assets based on the Machine Series. 3926 repeated MachineSeriesAllocation machine_series_allocations = 3; 3927 3928 // Set of disk types allocated to assets. 3929 repeated PersistentDiskType allocated_disk_types = 4; 3930 } 3931 3932 // A set of findings that applies to assets destined for VMWare Engine. 3933 message VmwareEngineFinding { 3934 // Set of regions in which the assets were allocated 3935 repeated string allocated_regions = 1; 3936 3937 // Count of assets which are allocated 3938 int64 allocated_asset_count = 2; 3939 3940 // Set of per-nodetype allocation records 3941 repeated VmwareNodeAllocation node_allocations = 3; 3942 } 3943 3944 // Represents assets allocated to a specific VMWare Node type. 3945 message VmwareNodeAllocation { 3946 // VMWare node type, e.g. "ve1-standard-72" 3947 VmwareNode vmware_node = 1; 3948 3949 // Count of this node type to be provisioned 3950 int64 node_count = 2; 3951 3952 // Count of assets allocated to these nodes 3953 int64 allocated_asset_count = 3; 3954 } 3955 3956 // A VMWare Engine Node 3957 message VmwareNode { 3958 // Code to identify VMware Engine node series, e.g. "ve1-standard-72". Based 3959 // on the displayName of 3960 // cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.nodeTypes 3961 string code = 1; 3962 } 3963 3964 // A set of findings that applies to assets destined for Sole-Tenant nodes. 3965 message SoleTenantFinding { 3966 // Set of regions in which the assets are allocated 3967 repeated string allocated_regions = 1; 3968 3969 // Count of assets which are allocated 3970 int64 allocated_asset_count = 2; 3971 3972 // Set of per-nodetype allocation records 3973 repeated SoleTenantNodeAllocation node_allocations = 3; 3974 } 3975 3976 // Represents the assets allocated to a specific Sole-Tenant node type. 3977 message SoleTenantNodeAllocation { 3978 // Sole Tenant node type, e.g. "m3-node-128-3904" 3979 SoleTenantNodeType node = 1; 3980 3981 // Count of this node type to be provisioned 3982 int64 node_count = 2; 3983 3984 // Count of assets allocated to these nodes 3985 int64 allocated_asset_count = 3; 3986 } 3987 3988 // Summary Findings for a specific Group/PreferenceSet combination. 3989 message GroupPreferenceSetFinding { 3990 // Display Name of the Preference Set 3991 string display_name = 1; 3992 3993 // Description for the Preference Set. 3994 string description = 2; 3995 3996 // A set of preferences that applies to all machines in the context. 3997 VirtualMachinePreferences machine_preferences = 3; 3998 3999 // Total monthly cost for this preference set. 4000 google.type.Money monthly_cost_total = 4; 4001 4002 // Compute monthly cost for this preference set. 4003 google.type.Money monthly_cost_compute = 5; 4004 4005 // Licensing monthly cost for this preference set. 4006 google.type.Money monthly_cost_os_license = 6; 4007 4008 // Network Egress monthly cost for this preference set. 4009 google.type.Money monthly_cost_network_egress = 7; 4010 4011 // Storage monthly cost for this preference set. 4012 google.type.Money monthly_cost_storage = 8; 4013 4014 // Miscellaneous monthly cost for this preference set. 4015 google.type.Money monthly_cost_other = 9; 4016 4017 // A set of findings that applies to Compute Engine machines in the input. 4018 ComputeEngineFinding compute_engine_finding = 10; 4019 4020 // A set of findings that applies to VMWare machines in the input. 4021 VmwareEngineFinding vmware_engine_finding = 11; 4022 4023 // A set of findings that applies to Sole-Tenant machines in the input. 4024 SoleTenantFinding sole_tenant_finding = 12; 4025 } 4026 4027 // Summary Findings for a specific Group. 4028 message GroupFinding { 4029 // Display Name for the Group. 4030 string display_name = 1; 4031 4032 // Description for the Group. 4033 string description = 2; 4034 4035 // Summary statistics for all the assets in this group. 4036 AssetAggregateStats asset_aggregate_stats = 3; 4037 4038 // This field is deprecated, do not rely on it having a value. 4039 int64 overlapping_asset_count = 4 [deprecated = true]; 4040 4041 // Findings for each of the PreferenceSets for this group. 4042 repeated GroupPreferenceSetFinding preference_set_findings = 5; 4043 } 4044 4045 // Aggregate statistics for all the assets across all the groups. 4046 AssetAggregateStats all_assets_stats = 1; 4047 4048 // Findings for each Group included in this report. 4049 repeated GroupFinding group_findings = 2; 4050} 4051 4052// Specifies the types of asset views that provide complete or partial details 4053// of an asset. 4054enum AssetView { 4055 // The asset view is not specified. The API displays the basic view by 4056 // default. 4057 ASSET_VIEW_UNSPECIFIED = 0; 4058 4059 // The asset view includes only basic metadata of the asset. 4060 ASSET_VIEW_BASIC = 1; 4061 4062 // The asset view includes all the metadata of an asset and performance data. 4063 ASSET_VIEW_FULL = 2; 4064} 4065 4066// Known categories of operating systems. 4067enum OperatingSystemFamily { 4068 OS_FAMILY_UNKNOWN = 0; 4069 4070 // Microsoft Windows Server and Desktop. 4071 OS_FAMILY_WINDOWS = 1; 4072 4073 // Various Linux flavors. 4074 OS_FAMILY_LINUX = 2; 4075 4076 // Non-Linux Unix flavors. 4077 OS_FAMILY_UNIX = 3; 4078} 4079 4080// Specifies the data formats supported by Migration Center. 4081enum ImportJobFormat { 4082 // Default value. 4083 IMPORT_JOB_FORMAT_UNSPECIFIED = 0; 4084 4085 // RVTools format (XLSX). 4086 IMPORT_JOB_FORMAT_RVTOOLS_XLSX = 1; 4087 4088 // RVTools format (CSV). 4089 IMPORT_JOB_FORMAT_RVTOOLS_CSV = 2; 4090 4091 // CSV format exported from AWS using the 4092 // [AWS collection 4093 // script][https://github.com/GoogleCloudPlatform/aws-to-stratozone-export]. 4094 IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV = 4; 4095 4096 // CSV format exported from Azure using the 4097 // [Azure collection 4098 // script][https://github.com/GoogleCloudPlatform/azure-to-stratozone-export]. 4099 IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV = 5; 4100 4101 // CSV format created manually and following the StratoZone format. For more 4102 // information, see [Manually create and upload data 4103 // tables][https://cloud.google.com/migrate/stratozone/docs/import-data-portal]. 4104 IMPORT_JOB_FORMAT_STRATOZONE_CSV = 6; 4105} 4106 4107// Specifies the types of import job views that provide complete or partial 4108// details of an import job. 4109enum ImportJobView { 4110 // The import job view is not specified. The API displays the basic view by 4111 // default. 4112 IMPORT_JOB_VIEW_UNSPECIFIED = 0; 4113 4114 // The import job view includes basic metadata of an import job. 4115 // This view does not include payload information. 4116 IMPORT_JOB_VIEW_BASIC = 1; 4117 4118 // The import job view includes all metadata of an import job. 4119 IMPORT_JOB_VIEW_FULL = 2; 4120} 4121 4122// ErrorFrameView can be specified in ErrorFrames List and Get requests to 4123// control the level of details that is returned for the original frame. 4124enum ErrorFrameView { 4125 // Value is unset. The system will fallback to the default value. 4126 ERROR_FRAME_VIEW_UNSPECIFIED = 0; 4127 4128 // Include basic frame data, but not the full contents. 4129 ERROR_FRAME_VIEW_BASIC = 1; 4130 4131 // Include everything. 4132 ERROR_FRAME_VIEW_FULL = 2; 4133} 4134 4135// The persistent disk (PD) types of Compute Engine virtual machines. 4136enum PersistentDiskType { 4137 // Unspecified (default value). 4138 // Selecting this value allows the system to use any disk type according 4139 // to reported usage. This a good value to start with. 4140 PERSISTENT_DISK_TYPE_UNSPECIFIED = 0; 4141 4142 // Standard HDD Persistent Disk. 4143 PERSISTENT_DISK_TYPE_STANDARD = 1; 4144 4145 // Balanced Persistent Disk. 4146 PERSISTENT_DISK_TYPE_BALANCED = 2; 4147 4148 // SSD Persistent Disk. 4149 PERSISTENT_DISK_TYPE_SSD = 3; 4150} 4151 4152// The License type for premium images (RHEL, RHEL for SAP, SLES, SLES for SAP, 4153// Windows Server). 4154enum LicenseType { 4155 // Unspecified (default value). 4156 LICENSE_TYPE_UNSPECIFIED = 0; 4157 4158 // Default Google Cloud licensing plan. Licensing is charged per usage. 4159 // This a good value to start with. 4160 LICENSE_TYPE_DEFAULT = 1; 4161 4162 // Bring-your-own-license (BYOL) plan. User provides the OS license. 4163 LICENSE_TYPE_BRING_YOUR_OWN_LICENSE = 2; 4164} 4165 4166// The sizing optimization strategy preferences of a virtual machine. This 4167// strategy, in addition to actual usage data of the virtual machine, can help 4168// determine the recommended shape on the target platform. 4169enum SizingOptimizationStrategy { 4170 // Unspecified (default value). 4171 SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED = 0; 4172 4173 // No optimization applied. Virtual machine sizing matches as closely as 4174 // possible the machine shape on the source site, not considering any actual 4175 // performance data. 4176 SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE = 1; 4177 4178 // Virtual machine sizing will match the reported usage and shape, with some 4179 // slack. This a good value to start with. 4180 SIZING_OPTIMIZATION_STRATEGY_MODERATE = 2; 4181 4182 // Virtual machine sizing will match the reported usage, with little slack. 4183 // Using this option can help reduce costs. 4184 SIZING_OPTIMIZATION_STRATEGY_AGGRESSIVE = 3; 4185} 4186 4187// The plan of commitments for VM resource-based committed use discount (CUD). 4188enum CommitmentPlan { 4189 // Unspecified commitment plan. 4190 COMMITMENT_PLAN_UNSPECIFIED = 0; 4191 4192 // No commitment plan. 4193 COMMITMENT_PLAN_NONE = 1; 4194 4195 // 1 year commitment. 4196 COMMITMENT_PLAN_ONE_YEAR = 2; 4197 4198 // 3 years commitment. 4199 COMMITMENT_PLAN_THREE_YEARS = 3; 4200} 4201 4202// The preference for a specific Google Cloud product platform. 4203enum ComputeMigrationTargetProduct { 4204 // Unspecified (default value). 4205 COMPUTE_MIGRATION_TARGET_PRODUCT_UNSPECIFIED = 0; 4206 4207 // Prefer to migrate to Google Cloud Compute Engine. 4208 COMPUTE_MIGRATION_TARGET_PRODUCT_COMPUTE_ENGINE = 1; 4209 4210 // Prefer to migrate to Google Cloud VMware Engine. 4211 COMPUTE_MIGRATION_TARGET_PRODUCT_VMWARE_ENGINE = 2; 4212 4213 // Prefer to migrate to Google Cloud Sole Tenant Nodes. 4214 COMPUTE_MIGRATION_TARGET_PRODUCT_SOLE_TENANCY = 3; 4215} 4216 4217// Specifies the types of views that provide complete or partial details 4218// of a Report. 4219enum ReportView { 4220 // The report view is not specified. The API displays the basic view by 4221 // default. 4222 REPORT_VIEW_UNSPECIFIED = 0; 4223 4224 // The report view includes only basic metadata of the Report. Useful for 4225 // list views. 4226 REPORT_VIEW_BASIC = 1; 4227 4228 // The report view includes all the metadata of the Report. Useful for 4229 // preview. 4230 REPORT_VIEW_FULL = 2; 4231 4232 // The report view includes the standard metadata of an report. Useful for 4233 // detail view. 4234 REPORT_VIEW_STANDARD = 3; 4235} 4236