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.rapidmigrationassessment.v1; 18 19import "google/api/field_behavior.proto"; 20import "google/api/resource.proto"; 21import "google/protobuf/timestamp.proto"; 22 23option csharp_namespace = "Google.Cloud.RapidMigrationAssessment.V1"; 24option go_package = "cloud.google.com/go/rapidmigrationassessment/apiv1/rapidmigrationassessmentpb;rapidmigrationassessmentpb"; 25option java_multiple_files = true; 26option java_outer_classname = "ApiEntitiesProto"; 27option java_package = "com.google.cloud.rapidmigrationassessment.v1"; 28option php_namespace = "Google\\Cloud\\RapidMigrationAssessment\\V1"; 29option ruby_package = "Google::Cloud::RapidMigrationAssessment::V1"; 30 31// Message describing a MC Source of type Guest OS Scan. 32message GuestOsScan { 33 // reference to the corresponding Guest OS Scan in MC Source. 34 string core_source = 1; 35} 36 37// Message describing a MC Source of type VSphere Scan. 38message VSphereScan { 39 // reference to the corresponding VSphere Scan in MC Source. 40 string core_source = 1; 41} 42 43// Message describing Collector object. 44message Collector { 45 option (google.api.resource) = { 46 type: "rapidmigrationassessment.googleapis.com/Collector" 47 pattern: "projects/{project}/locations/{location}/collectors/{collector}" 48 }; 49 50 // -- Using suggestion from API Linter Analyzer for nesting enum -- 51 // -- https://linter.aip.dev/216/nesting -- 52 // State of a Collector (server_side). 53 // States are used for internal purposes and named to keep 54 // convention of legacy product: 55 // https://cloud.google.com/migrate/stratozone/docs/about-stratoprobe. 56 enum State { 57 // Collector state is not recognized. 58 STATE_UNSPECIFIED = 0; 59 60 // Collector started to create, but hasn't been completed MC source creation 61 // and db object creation. 62 STATE_INITIALIZING = 1; 63 64 // Collector has been created, MC source creation and db object creation 65 // completed. 66 STATE_READY_TO_USE = 2; 67 68 // Collector client has been registered with client. 69 STATE_REGISTERED = 3; 70 71 // Collector client is actively scanning. 72 STATE_ACTIVE = 4; 73 74 // Collector is not actively scanning. 75 STATE_PAUSED = 5; 76 77 // Collector is starting background job for deletion. 78 STATE_DELETING = 6; 79 80 // Collector completed all tasks for deletion. 81 STATE_DECOMMISSIONED = 7; 82 83 // Collector is in error state. 84 STATE_ERROR = 8; 85 } 86 87 // name of resource. 88 string name = 1; 89 90 // Output only. Create time stamp. 91 google.protobuf.Timestamp create_time = 2 92 [(google.api.field_behavior) = OUTPUT_ONLY]; 93 94 // Output only. Update time stamp. 95 google.protobuf.Timestamp update_time = 3 96 [(google.api.field_behavior) = OUTPUT_ONLY]; 97 98 // Labels as key value pairs. 99 map<string, string> labels = 4; 100 101 // User specified name of the Collector. 102 string display_name = 5; 103 104 // User specified description of the Collector. 105 string description = 6; 106 107 // Service Account email used to ingest data to this Collector. 108 string service_account = 7; 109 110 // Output only. Store cloud storage bucket name (which is a guid) created with 111 // this Collector. 112 string bucket = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 113 114 // User specified expected asset count. 115 int64 expected_asset_count = 9; 116 117 // Output only. State of the Collector. 118 State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 119 120 // Output only. Client version. 121 string client_version = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 122 123 // Output only. Reference to MC Source Guest Os Scan. 124 GuestOsScan guest_os_scan = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 125 126 // Output only. Reference to MC Source vsphere_scan. 127 VSphereScan vsphere_scan = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 128 129 // How many days to collect data. 130 int32 collection_days = 14; 131 132 // Uri for EULA (End User License Agreement) from customer. 133 string eula_uri = 15; 134} 135 136// Message describing an Annotation 137message Annotation { 138 option (google.api.resource) = { 139 type: "rapidmigrationassessment.googleapis.com/Annotation" 140 pattern: "projects/{project}/locations/{location}/annotations/{annotation}" 141 }; 142 143 // Types for project level setting. 144 enum Type { 145 // Unknown type 146 TYPE_UNSPECIFIED = 0; 147 148 // Indicates that this project has opted into StratoZone export. 149 TYPE_LEGACY_EXPORT_CONSENT = 1; 150 151 // Indicates that this project is created by Qwiklab. 152 TYPE_QWIKLAB = 2; 153 } 154 155 // name of resource. 156 string name = 1; 157 158 // Output only. Create time stamp. 159 google.protobuf.Timestamp create_time = 2 160 [(google.api.field_behavior) = OUTPUT_ONLY]; 161 162 // Output only. Update time stamp. 163 google.protobuf.Timestamp update_time = 3 164 [(google.api.field_behavior) = OUTPUT_ONLY]; 165 166 // Labels as key value pairs. 167 map<string, string> labels = 4; 168 169 // Type of an annotation. 170 Type type = 5; 171} 172