xref: /aosp_15_r20/external/googleapis/google/cloud/rapidmigrationassessment/v1/api_entities.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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