xref: /aosp_15_r20/external/googleapis/google/cloud/visionai/v1/warehouse.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.visionai.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/visionai/v1/common.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/longrunning/operations.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/any.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
27*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
28*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
29*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/struct.proto";
30*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
31*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto";
32*d5c09012SAndroid Build Coastguard Workerimport "google/type/datetime.proto";
33*d5c09012SAndroid Build Coastguard Worker
34*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.VisionAI.V1";
35*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/visionai/apiv1/visionaipb;visionaipb";
36*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
37*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "WarehouseProto";
38*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.visionai.v1";
39*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\VisionAI\\V1";
40*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::VisionAI::V1";
41*d5c09012SAndroid Build Coastguard Worker
42*d5c09012SAndroid Build Coastguard Worker// Service that manages media content + metadata for streaming.
43*d5c09012SAndroid Build Coastguard Workerservice Warehouse {
44*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "visionai.googleapis.com";
45*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
46*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform";
47*d5c09012SAndroid Build Coastguard Worker
48*d5c09012SAndroid Build Coastguard Worker  // Creates an asset inside corpus.
49*d5c09012SAndroid Build Coastguard Worker  rpc CreateAsset(CreateAssetRequest) returns (Asset) {
50*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
51*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/corpora/*}/assets"
52*d5c09012SAndroid Build Coastguard Worker      body: "asset"
53*d5c09012SAndroid Build Coastguard Worker    };
54*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,asset,asset_id";
55*d5c09012SAndroid Build Coastguard Worker  }
56*d5c09012SAndroid Build Coastguard Worker
57*d5c09012SAndroid Build Coastguard Worker  // Updates an asset inside corpus.
58*d5c09012SAndroid Build Coastguard Worker  rpc UpdateAsset(UpdateAssetRequest) returns (Asset) {
59*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
60*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{asset.name=projects/*/locations/*/corpora/*/assets/*}"
61*d5c09012SAndroid Build Coastguard Worker      body: "asset"
62*d5c09012SAndroid Build Coastguard Worker    };
63*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "asset,update_mask";
64*d5c09012SAndroid Build Coastguard Worker  }
65*d5c09012SAndroid Build Coastguard Worker
66*d5c09012SAndroid Build Coastguard Worker  // Reads an asset inside corpus.
67*d5c09012SAndroid Build Coastguard Worker  rpc GetAsset(GetAssetRequest) returns (Asset) {
68*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
69*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/corpora/*/assets/*}"
70*d5c09012SAndroid Build Coastguard Worker    };
71*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
72*d5c09012SAndroid Build Coastguard Worker  }
73*d5c09012SAndroid Build Coastguard Worker
74*d5c09012SAndroid Build Coastguard Worker  // Lists an list of assets inside corpus.
75*d5c09012SAndroid Build Coastguard Worker  rpc ListAssets(ListAssetsRequest) returns (ListAssetsResponse) {
76*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
77*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/corpora/*}/assets"
78*d5c09012SAndroid Build Coastguard Worker    };
79*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
80*d5c09012SAndroid Build Coastguard Worker  }
81*d5c09012SAndroid Build Coastguard Worker
82*d5c09012SAndroid Build Coastguard Worker  // Deletes asset inside corpus.
83*d5c09012SAndroid Build Coastguard Worker  rpc DeleteAsset(DeleteAssetRequest) returns (google.longrunning.Operation) {
84*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
85*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/corpora/*/assets/*}"
86*d5c09012SAndroid Build Coastguard Worker    };
87*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
88*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
89*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
90*d5c09012SAndroid Build Coastguard Worker      metadata_type: "DeleteAssetMetadata"
91*d5c09012SAndroid Build Coastguard Worker    };
92*d5c09012SAndroid Build Coastguard Worker  }
93*d5c09012SAndroid Build Coastguard Worker
94*d5c09012SAndroid Build Coastguard Worker  // Upload asset by specifing the asset Cloud Storage uri.
95*d5c09012SAndroid Build Coastguard Worker  // For video warehouse, it requires users who call this API have read access
96*d5c09012SAndroid Build Coastguard Worker  // to the cloud storage file. Once it is uploaded, it can be retrieved by
97*d5c09012SAndroid Build Coastguard Worker  // GenerateRetrievalUrl API which by default, only can retrieve cloud storage
98*d5c09012SAndroid Build Coastguard Worker  // files from the same project of the warehouse. To allow retrieval cloud
99*d5c09012SAndroid Build Coastguard Worker  // storage files that are in a separate project, it requires to find the
100*d5c09012SAndroid Build Coastguard Worker  // vision ai service account (Go to IAM, check checkbox to show "Include
101*d5c09012SAndroid Build Coastguard Worker  // Google-provided role grants", search for "Cloud Vision AI Service Agent")
102*d5c09012SAndroid Build Coastguard Worker  // and grant the read access of the cloud storage files to that service
103*d5c09012SAndroid Build Coastguard Worker  // account.
104*d5c09012SAndroid Build Coastguard Worker  rpc UploadAsset(UploadAssetRequest) returns (google.longrunning.Operation) {
105*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
106*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/corpora/*/assets/*}:upload"
107*d5c09012SAndroid Build Coastguard Worker      body: "*"
108*d5c09012SAndroid Build Coastguard Worker    };
109*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
110*d5c09012SAndroid Build Coastguard Worker      response_type: "UploadAssetResponse"
111*d5c09012SAndroid Build Coastguard Worker      metadata_type: "UploadAssetMetadata"
112*d5c09012SAndroid Build Coastguard Worker    };
113*d5c09012SAndroid Build Coastguard Worker  }
114*d5c09012SAndroid Build Coastguard Worker
115*d5c09012SAndroid Build Coastguard Worker  // Generates a signed url for downloading the asset.
116*d5c09012SAndroid Build Coastguard Worker  // For video warehouse, please see comment of UploadAsset about how to allow
117*d5c09012SAndroid Build Coastguard Worker  // retrieval of cloud storage files in a different project.
118*d5c09012SAndroid Build Coastguard Worker  rpc GenerateRetrievalUrl(GenerateRetrievalUrlRequest)
119*d5c09012SAndroid Build Coastguard Worker      returns (GenerateRetrievalUrlResponse) {
120*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
121*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/corpora/*/assets/*}:generateRetrievalUrl"
122*d5c09012SAndroid Build Coastguard Worker      body: "*"
123*d5c09012SAndroid Build Coastguard Worker    };
124*d5c09012SAndroid Build Coastguard Worker  }
125*d5c09012SAndroid Build Coastguard Worker
126*d5c09012SAndroid Build Coastguard Worker  // Analyze asset to power search capability.
127*d5c09012SAndroid Build Coastguard Worker  rpc AnalyzeAsset(AnalyzeAssetRequest) returns (google.longrunning.Operation) {
128*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
129*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/corpora/*/assets/*}:analyze"
130*d5c09012SAndroid Build Coastguard Worker      body: "*"
131*d5c09012SAndroid Build Coastguard Worker    };
132*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
133*d5c09012SAndroid Build Coastguard Worker      response_type: "AnalyzeAssetResponse"
134*d5c09012SAndroid Build Coastguard Worker      metadata_type: "AnalyzeAssetMetadata"
135*d5c09012SAndroid Build Coastguard Worker    };
136*d5c09012SAndroid Build Coastguard Worker  }
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker  // Index one asset for search.
139*d5c09012SAndroid Build Coastguard Worker  // Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND
140*d5c09012SAndroid Build Coastguard Worker  rpc IndexAsset(IndexAssetRequest) returns (google.longrunning.Operation) {
141*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
142*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/corpora/*/assets/*}:index"
143*d5c09012SAndroid Build Coastguard Worker      body: "*"
144*d5c09012SAndroid Build Coastguard Worker    };
145*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
146*d5c09012SAndroid Build Coastguard Worker      response_type: "IndexAssetResponse"
147*d5c09012SAndroid Build Coastguard Worker      metadata_type: "IndexAssetMetadata"
148*d5c09012SAndroid Build Coastguard Worker    };
149*d5c09012SAndroid Build Coastguard Worker  }
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Remove one asset's index data for search.
152*d5c09012SAndroid Build Coastguard Worker  // Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND
153*d5c09012SAndroid Build Coastguard Worker  rpc RemoveIndexAsset(RemoveIndexAssetRequest)
154*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
155*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
156*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/corpora/*/assets/*}:removeIndex"
157*d5c09012SAndroid Build Coastguard Worker      body: "*"
158*d5c09012SAndroid Build Coastguard Worker    };
159*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
160*d5c09012SAndroid Build Coastguard Worker      response_type: "RemoveIndexAssetResponse"
161*d5c09012SAndroid Build Coastguard Worker      metadata_type: "RemoveIndexAssetMetadata"
162*d5c09012SAndroid Build Coastguard Worker    };
163*d5c09012SAndroid Build Coastguard Worker  }
164*d5c09012SAndroid Build Coastguard Worker
165*d5c09012SAndroid Build Coastguard Worker  // Lists assets inside an index.
166*d5c09012SAndroid Build Coastguard Worker  rpc ViewIndexedAssets(ViewIndexedAssetsRequest)
167*d5c09012SAndroid Build Coastguard Worker      returns (ViewIndexedAssetsResponse) {
168*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
169*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{index=projects/*/locations/*/corpora/*/indexes/*}:viewAssets"
170*d5c09012SAndroid Build Coastguard Worker    };
171*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "index";
172*d5c09012SAndroid Build Coastguard Worker  }
173*d5c09012SAndroid Build Coastguard Worker
174*d5c09012SAndroid Build Coastguard Worker  // Creates an Index under the corpus.
175*d5c09012SAndroid Build Coastguard Worker  rpc CreateIndex(CreateIndexRequest) returns (google.longrunning.Operation) {
176*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
177*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/corpora/*}/indexes"
178*d5c09012SAndroid Build Coastguard Worker      body: "index"
179*d5c09012SAndroid Build Coastguard Worker    };
180*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,index,index_id";
181*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
182*d5c09012SAndroid Build Coastguard Worker      response_type: "Index"
183*d5c09012SAndroid Build Coastguard Worker      metadata_type: "CreateIndexMetadata"
184*d5c09012SAndroid Build Coastguard Worker    };
185*d5c09012SAndroid Build Coastguard Worker  }
186*d5c09012SAndroid Build Coastguard Worker
187*d5c09012SAndroid Build Coastguard Worker  // Updates an Index under the corpus.
188*d5c09012SAndroid Build Coastguard Worker  // Users can perform a metadata-only update or trigger a full index rebuild
189*d5c09012SAndroid Build Coastguard Worker  // with different update_mask values.
190*d5c09012SAndroid Build Coastguard Worker  rpc UpdateIndex(UpdateIndexRequest) returns (google.longrunning.Operation) {
191*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
192*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{index.name=projects/*/locations/*/corpora/*/indexes/*}"
193*d5c09012SAndroid Build Coastguard Worker      body: "index"
194*d5c09012SAndroid Build Coastguard Worker    };
195*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "index,update_mask";
196*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
197*d5c09012SAndroid Build Coastguard Worker      response_type: "Index"
198*d5c09012SAndroid Build Coastguard Worker      metadata_type: "UpdateIndexMetadata"
199*d5c09012SAndroid Build Coastguard Worker    };
200*d5c09012SAndroid Build Coastguard Worker  }
201*d5c09012SAndroid Build Coastguard Worker
202*d5c09012SAndroid Build Coastguard Worker  // Gets the details of a single Index under a Corpus.
203*d5c09012SAndroid Build Coastguard Worker  rpc GetIndex(GetIndexRequest) returns (Index) {
204*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
205*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/corpora/*/indexes/*}"
206*d5c09012SAndroid Build Coastguard Worker    };
207*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
208*d5c09012SAndroid Build Coastguard Worker  }
209*d5c09012SAndroid Build Coastguard Worker
210*d5c09012SAndroid Build Coastguard Worker  // List all Indexes in a given Corpus.
211*d5c09012SAndroid Build Coastguard Worker  rpc ListIndexes(ListIndexesRequest) returns (ListIndexesResponse) {
212*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
213*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/corpora/*}/indexes"
214*d5c09012SAndroid Build Coastguard Worker    };
215*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
216*d5c09012SAndroid Build Coastguard Worker  }
217*d5c09012SAndroid Build Coastguard Worker
218*d5c09012SAndroid Build Coastguard Worker  // Delete a single Index. In order to delete an index, the caller must
219*d5c09012SAndroid Build Coastguard Worker  // make sure that it is not deployed to any index endpoint.
220*d5c09012SAndroid Build Coastguard Worker  rpc DeleteIndex(DeleteIndexRequest) returns (google.longrunning.Operation) {
221*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
222*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/corpora/*/indexes/*}"
223*d5c09012SAndroid Build Coastguard Worker    };
224*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
225*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
226*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
227*d5c09012SAndroid Build Coastguard Worker      metadata_type: "DeleteIndexMetadata"
228*d5c09012SAndroid Build Coastguard Worker    };
229*d5c09012SAndroid Build Coastguard Worker  }
230*d5c09012SAndroid Build Coastguard Worker
231*d5c09012SAndroid Build Coastguard Worker  // Creates a corpus inside a project.
232*d5c09012SAndroid Build Coastguard Worker  rpc CreateCorpus(CreateCorpusRequest) returns (google.longrunning.Operation) {
233*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
234*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*}/corpora"
235*d5c09012SAndroid Build Coastguard Worker      body: "corpus"
236*d5c09012SAndroid Build Coastguard Worker    };
237*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,corpus";
238*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
239*d5c09012SAndroid Build Coastguard Worker      response_type: "Corpus"
240*d5c09012SAndroid Build Coastguard Worker      metadata_type: "CreateCorpusMetadata"
241*d5c09012SAndroid Build Coastguard Worker    };
242*d5c09012SAndroid Build Coastguard Worker  }
243*d5c09012SAndroid Build Coastguard Worker
244*d5c09012SAndroid Build Coastguard Worker  // Gets corpus details inside a project.
245*d5c09012SAndroid Build Coastguard Worker  rpc GetCorpus(GetCorpusRequest) returns (Corpus) {
246*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
247*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/corpora/*}"
248*d5c09012SAndroid Build Coastguard Worker    };
249*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
250*d5c09012SAndroid Build Coastguard Worker  }
251*d5c09012SAndroid Build Coastguard Worker
252*d5c09012SAndroid Build Coastguard Worker  // Updates a corpus in a project.
253*d5c09012SAndroid Build Coastguard Worker  rpc UpdateCorpus(UpdateCorpusRequest) returns (Corpus) {
254*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
255*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{corpus.name=projects/*/locations/*/corpora/*}"
256*d5c09012SAndroid Build Coastguard Worker      body: "corpus"
257*d5c09012SAndroid Build Coastguard Worker    };
258*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "corpus,update_mask";
259*d5c09012SAndroid Build Coastguard Worker  }
260*d5c09012SAndroid Build Coastguard Worker
261*d5c09012SAndroid Build Coastguard Worker  // Lists all corpora in a project.
262*d5c09012SAndroid Build Coastguard Worker  rpc ListCorpora(ListCorporaRequest) returns (ListCorporaResponse) {
263*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
264*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*}/corpora"
265*d5c09012SAndroid Build Coastguard Worker    };
266*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
267*d5c09012SAndroid Build Coastguard Worker  }
268*d5c09012SAndroid Build Coastguard Worker
269*d5c09012SAndroid Build Coastguard Worker  // Deletes a corpus only if its empty.
270*d5c09012SAndroid Build Coastguard Worker  // Returns empty response.
271*d5c09012SAndroid Build Coastguard Worker  rpc DeleteCorpus(DeleteCorpusRequest) returns (google.protobuf.Empty) {
272*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
273*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/corpora/*}"
274*d5c09012SAndroid Build Coastguard Worker    };
275*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
276*d5c09012SAndroid Build Coastguard Worker  }
277*d5c09012SAndroid Build Coastguard Worker
278*d5c09012SAndroid Build Coastguard Worker  // Analyzes a corpus.
279*d5c09012SAndroid Build Coastguard Worker  rpc AnalyzeCorpus(AnalyzeCorpusRequest)
280*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
281*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
282*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/corpora/*}:analyze"
283*d5c09012SAndroid Build Coastguard Worker      body: "*"
284*d5c09012SAndroid Build Coastguard Worker    };
285*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
286*d5c09012SAndroid Build Coastguard Worker      response_type: "AnalyzeCorpusResponse"
287*d5c09012SAndroid Build Coastguard Worker      metadata_type: "AnalyzeCorpusMetadata"
288*d5c09012SAndroid Build Coastguard Worker    };
289*d5c09012SAndroid Build Coastguard Worker  }
290*d5c09012SAndroid Build Coastguard Worker
291*d5c09012SAndroid Build Coastguard Worker  // Creates data schema inside corpus.
292*d5c09012SAndroid Build Coastguard Worker  rpc CreateDataSchema(CreateDataSchemaRequest) returns (DataSchema) {
293*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
294*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/corpora/*}/dataSchemas"
295*d5c09012SAndroid Build Coastguard Worker      body: "data_schema"
296*d5c09012SAndroid Build Coastguard Worker    };
297*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,data_schema";
298*d5c09012SAndroid Build Coastguard Worker  }
299*d5c09012SAndroid Build Coastguard Worker
300*d5c09012SAndroid Build Coastguard Worker  // Updates data schema inside corpus.
301*d5c09012SAndroid Build Coastguard Worker  rpc UpdateDataSchema(UpdateDataSchemaRequest) returns (DataSchema) {
302*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
303*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{data_schema.name=projects/*/locations/*/corpora/*/dataSchemas/*}"
304*d5c09012SAndroid Build Coastguard Worker      body: "data_schema"
305*d5c09012SAndroid Build Coastguard Worker    };
306*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "data_schema,update_mask";
307*d5c09012SAndroid Build Coastguard Worker  }
308*d5c09012SAndroid Build Coastguard Worker
309*d5c09012SAndroid Build Coastguard Worker  // Gets data schema inside corpus.
310*d5c09012SAndroid Build Coastguard Worker  rpc GetDataSchema(GetDataSchemaRequest) returns (DataSchema) {
311*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
312*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/corpora/*/dataSchemas/*}"
313*d5c09012SAndroid Build Coastguard Worker    };
314*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
315*d5c09012SAndroid Build Coastguard Worker  }
316*d5c09012SAndroid Build Coastguard Worker
317*d5c09012SAndroid Build Coastguard Worker  // Deletes data schema inside corpus.
318*d5c09012SAndroid Build Coastguard Worker  rpc DeleteDataSchema(DeleteDataSchemaRequest)
319*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
320*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
321*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/corpora/*/dataSchemas/*}"
322*d5c09012SAndroid Build Coastguard Worker    };
323*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
324*d5c09012SAndroid Build Coastguard Worker  }
325*d5c09012SAndroid Build Coastguard Worker
326*d5c09012SAndroid Build Coastguard Worker  // Lists a list of data schemas inside corpus.
327*d5c09012SAndroid Build Coastguard Worker  rpc ListDataSchemas(ListDataSchemasRequest)
328*d5c09012SAndroid Build Coastguard Worker      returns (ListDataSchemasResponse) {
329*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
330*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/corpora/*}/dataSchemas"
331*d5c09012SAndroid Build Coastguard Worker    };
332*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
333*d5c09012SAndroid Build Coastguard Worker  }
334*d5c09012SAndroid Build Coastguard Worker
335*d5c09012SAndroid Build Coastguard Worker  // Creates annotation inside asset.
336*d5c09012SAndroid Build Coastguard Worker  rpc CreateAnnotation(CreateAnnotationRequest) returns (Annotation) {
337*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
338*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/corpora/*/assets/*}/annotations"
339*d5c09012SAndroid Build Coastguard Worker      body: "annotation"
340*d5c09012SAndroid Build Coastguard Worker    };
341*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,annotation,annotation_id";
342*d5c09012SAndroid Build Coastguard Worker  }
343*d5c09012SAndroid Build Coastguard Worker
344*d5c09012SAndroid Build Coastguard Worker  // Reads annotation inside asset.
345*d5c09012SAndroid Build Coastguard Worker  rpc GetAnnotation(GetAnnotationRequest) returns (Annotation) {
346*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
347*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/corpora/*/assets/*/annotations/*}"
348*d5c09012SAndroid Build Coastguard Worker    };
349*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
350*d5c09012SAndroid Build Coastguard Worker  }
351*d5c09012SAndroid Build Coastguard Worker
352*d5c09012SAndroid Build Coastguard Worker  // Lists a list of annotations inside asset.
353*d5c09012SAndroid Build Coastguard Worker  rpc ListAnnotations(ListAnnotationsRequest)
354*d5c09012SAndroid Build Coastguard Worker      returns (ListAnnotationsResponse) {
355*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
356*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/corpora/*/assets/*}/annotations"
357*d5c09012SAndroid Build Coastguard Worker    };
358*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
359*d5c09012SAndroid Build Coastguard Worker  }
360*d5c09012SAndroid Build Coastguard Worker
361*d5c09012SAndroid Build Coastguard Worker  // Updates annotation inside asset.
362*d5c09012SAndroid Build Coastguard Worker  rpc UpdateAnnotation(UpdateAnnotationRequest) returns (Annotation) {
363*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
364*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{annotation.name=projects/*/locations/*/corpora/*/assets/*/annotations/*}"
365*d5c09012SAndroid Build Coastguard Worker      body: "annotation"
366*d5c09012SAndroid Build Coastguard Worker    };
367*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "annotation,update_mask";
368*d5c09012SAndroid Build Coastguard Worker  }
369*d5c09012SAndroid Build Coastguard Worker
370*d5c09012SAndroid Build Coastguard Worker  // Deletes annotation inside asset.
371*d5c09012SAndroid Build Coastguard Worker  rpc DeleteAnnotation(DeleteAnnotationRequest)
372*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
373*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
374*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/corpora/*/assets/*/annotations/*}"
375*d5c09012SAndroid Build Coastguard Worker    };
376*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
377*d5c09012SAndroid Build Coastguard Worker  }
378*d5c09012SAndroid Build Coastguard Worker
379*d5c09012SAndroid Build Coastguard Worker  // Ingests data for the asset. It is not allowed to ingest a data chunk which
380*d5c09012SAndroid Build Coastguard Worker  // is already expired according to TTL.
381*d5c09012SAndroid Build Coastguard Worker  // This method is only available via the gRPC API (not HTTP since
382*d5c09012SAndroid Build Coastguard Worker  // bi-directional streaming is not supported via HTTP).
383*d5c09012SAndroid Build Coastguard Worker  rpc IngestAsset(stream IngestAssetRequest)
384*d5c09012SAndroid Build Coastguard Worker      returns (stream IngestAssetResponse) {}
385*d5c09012SAndroid Build Coastguard Worker
386*d5c09012SAndroid Build Coastguard Worker  // Generates clips for downloading. The api takes in a time range, and
387*d5c09012SAndroid Build Coastguard Worker  // generates a clip of the first content available after start_time and
388*d5c09012SAndroid Build Coastguard Worker  // before end_time, which may overflow beyond these bounds.
389*d5c09012SAndroid Build Coastguard Worker  // Returned clips are truncated if the total size of the clips are larger
390*d5c09012SAndroid Build Coastguard Worker  // than 100MB.
391*d5c09012SAndroid Build Coastguard Worker  rpc ClipAsset(ClipAssetRequest) returns (ClipAssetResponse) {
392*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
393*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/corpora/*/assets/*}:clip"
394*d5c09012SAndroid Build Coastguard Worker      body: "*"
395*d5c09012SAndroid Build Coastguard Worker    };
396*d5c09012SAndroid Build Coastguard Worker  }
397*d5c09012SAndroid Build Coastguard Worker
398*d5c09012SAndroid Build Coastguard Worker  // Generates a uri for an HLS manifest. The api takes in a collection of time
399*d5c09012SAndroid Build Coastguard Worker  // ranges, and generates a URI for an HLS manifest that covers all the
400*d5c09012SAndroid Build Coastguard Worker  // requested time ranges.
401*d5c09012SAndroid Build Coastguard Worker  rpc GenerateHlsUri(GenerateHlsUriRequest) returns (GenerateHlsUriResponse) {
402*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
403*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/corpora/*/assets/*}:generateHlsUri"
404*d5c09012SAndroid Build Coastguard Worker      body: "*"
405*d5c09012SAndroid Build Coastguard Worker    };
406*d5c09012SAndroid Build Coastguard Worker  }
407*d5c09012SAndroid Build Coastguard Worker
408*d5c09012SAndroid Build Coastguard Worker  // Imports assets (images plus annotations) from a meta file on cloud storage.
409*d5c09012SAndroid Build Coastguard Worker  // Each row in the meta file is corresponding to an image (specified by a
410*d5c09012SAndroid Build Coastguard Worker  // cloud storage uri) and its annotations.
411*d5c09012SAndroid Build Coastguard Worker  rpc ImportAssets(ImportAssetsRequest) returns (google.longrunning.Operation) {
412*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
413*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/corpora/*}/assets:import"
414*d5c09012SAndroid Build Coastguard Worker      body: "*"
415*d5c09012SAndroid Build Coastguard Worker    };
416*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
417*d5c09012SAndroid Build Coastguard Worker      response_type: "ImportAssetsResponse"
418*d5c09012SAndroid Build Coastguard Worker      metadata_type: "ImportAssetsMetadata"
419*d5c09012SAndroid Build Coastguard Worker    };
420*d5c09012SAndroid Build Coastguard Worker  }
421*d5c09012SAndroid Build Coastguard Worker
422*d5c09012SAndroid Build Coastguard Worker  // Creates a search configuration inside a corpus.
423*d5c09012SAndroid Build Coastguard Worker  //
424*d5c09012SAndroid Build Coastguard Worker  // Please follow the rules below to create a valid CreateSearchConfigRequest.
425*d5c09012SAndroid Build Coastguard Worker  // --- General Rules ---
426*d5c09012SAndroid Build Coastguard Worker  // 1. Request.search_config_id must not be associated with an existing
427*d5c09012SAndroid Build Coastguard Worker  //    SearchConfig.
428*d5c09012SAndroid Build Coastguard Worker  // 2. Request must contain at least one non-empty search_criteria_property or
429*d5c09012SAndroid Build Coastguard Worker  //    facet_property.
430*d5c09012SAndroid Build Coastguard Worker  // 3. mapped_fields must not be empty, and must map to existing UGA keys.
431*d5c09012SAndroid Build Coastguard Worker  // 4. All mapped_fields must be of the same type.
432*d5c09012SAndroid Build Coastguard Worker  // 5. All mapped_fields must share the same granularity.
433*d5c09012SAndroid Build Coastguard Worker  // 6. All mapped_fields must share the same semantic SearchConfig match
434*d5c09012SAndroid Build Coastguard Worker  //    options.
435*d5c09012SAndroid Build Coastguard Worker  // For property-specific rules, please reference the comments for
436*d5c09012SAndroid Build Coastguard Worker  // FacetProperty and SearchCriteriaProperty.
437*d5c09012SAndroid Build Coastguard Worker  rpc CreateSearchConfig(CreateSearchConfigRequest) returns (SearchConfig) {
438*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
439*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/corpora/*}/searchConfigs"
440*d5c09012SAndroid Build Coastguard Worker      body: "search_config"
441*d5c09012SAndroid Build Coastguard Worker    };
442*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) =
443*d5c09012SAndroid Build Coastguard Worker        "parent,search_config,search_config_id";
444*d5c09012SAndroid Build Coastguard Worker  }
445*d5c09012SAndroid Build Coastguard Worker
446*d5c09012SAndroid Build Coastguard Worker  // Updates a search configuration inside a corpus.
447*d5c09012SAndroid Build Coastguard Worker  //
448*d5c09012SAndroid Build Coastguard Worker  // Please follow the rules below to create a valid UpdateSearchConfigRequest.
449*d5c09012SAndroid Build Coastguard Worker  // --- General Rules ---
450*d5c09012SAndroid Build Coastguard Worker  // 1. Request.search_configuration.name must already exist.
451*d5c09012SAndroid Build Coastguard Worker  // 2. Request must contain at least one non-empty search_criteria_property or
452*d5c09012SAndroid Build Coastguard Worker  // facet_property.
453*d5c09012SAndroid Build Coastguard Worker  // 3. mapped_fields must not be empty, and must map to existing UGA keys.
454*d5c09012SAndroid Build Coastguard Worker  // 4. All mapped_fields must be of the same type.
455*d5c09012SAndroid Build Coastguard Worker  // 5. All mapped_fields must share the same granularity.
456*d5c09012SAndroid Build Coastguard Worker  // 6. All mapped_fields must share the same semantic SearchConfig match
457*d5c09012SAndroid Build Coastguard Worker  //    options.
458*d5c09012SAndroid Build Coastguard Worker  // For property-specific rules, please reference the comments for
459*d5c09012SAndroid Build Coastguard Worker  // FacetProperty and SearchCriteriaProperty.
460*d5c09012SAndroid Build Coastguard Worker  rpc UpdateSearchConfig(UpdateSearchConfigRequest) returns (SearchConfig) {
461*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
462*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{search_config.name=projects/*/locations/*/corpora/*/searchConfigs/*}"
463*d5c09012SAndroid Build Coastguard Worker      body: "search_config"
464*d5c09012SAndroid Build Coastguard Worker    };
465*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "search_config,update_mask";
466*d5c09012SAndroid Build Coastguard Worker  }
467*d5c09012SAndroid Build Coastguard Worker
468*d5c09012SAndroid Build Coastguard Worker  // Gets a search configuration inside a corpus.
469*d5c09012SAndroid Build Coastguard Worker  rpc GetSearchConfig(GetSearchConfigRequest) returns (SearchConfig) {
470*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
471*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/corpora/*/searchConfigs/*}"
472*d5c09012SAndroid Build Coastguard Worker    };
473*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
474*d5c09012SAndroid Build Coastguard Worker  }
475*d5c09012SAndroid Build Coastguard Worker
476*d5c09012SAndroid Build Coastguard Worker  // Deletes a search configuration inside a corpus.
477*d5c09012SAndroid Build Coastguard Worker  //
478*d5c09012SAndroid Build Coastguard Worker  // For a DeleteSearchConfigRequest to be valid,
479*d5c09012SAndroid Build Coastguard Worker  // Request.search_configuration.name must already exist.
480*d5c09012SAndroid Build Coastguard Worker  rpc DeleteSearchConfig(DeleteSearchConfigRequest)
481*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
482*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
483*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/corpora/*/searchConfigs/*}"
484*d5c09012SAndroid Build Coastguard Worker    };
485*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
486*d5c09012SAndroid Build Coastguard Worker  }
487*d5c09012SAndroid Build Coastguard Worker
488*d5c09012SAndroid Build Coastguard Worker  // Lists all search configurations inside a corpus.
489*d5c09012SAndroid Build Coastguard Worker  rpc ListSearchConfigs(ListSearchConfigsRequest)
490*d5c09012SAndroid Build Coastguard Worker      returns (ListSearchConfigsResponse) {
491*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
492*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/corpora/*}/searchConfigs"
493*d5c09012SAndroid Build Coastguard Worker    };
494*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
495*d5c09012SAndroid Build Coastguard Worker  }
496*d5c09012SAndroid Build Coastguard Worker
497*d5c09012SAndroid Build Coastguard Worker  // Creates a SearchHypernym inside a corpus.
498*d5c09012SAndroid Build Coastguard Worker  rpc CreateSearchHypernym(CreateSearchHypernymRequest)
499*d5c09012SAndroid Build Coastguard Worker      returns (SearchHypernym) {
500*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
501*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/corpora/*}/searchHypernyms"
502*d5c09012SAndroid Build Coastguard Worker      body: "search_hypernym"
503*d5c09012SAndroid Build Coastguard Worker    };
504*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) =
505*d5c09012SAndroid Build Coastguard Worker        "parent,search_hypernym,search_hypernym_id";
506*d5c09012SAndroid Build Coastguard Worker  }
507*d5c09012SAndroid Build Coastguard Worker
508*d5c09012SAndroid Build Coastguard Worker  // Updates a SearchHypernym inside a corpus.
509*d5c09012SAndroid Build Coastguard Worker  rpc UpdateSearchHypernym(UpdateSearchHypernymRequest)
510*d5c09012SAndroid Build Coastguard Worker      returns (SearchHypernym) {
511*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
512*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{search_hypernym.name=projects/*/locations/*/corpora/*/searchHypernyms/*}"
513*d5c09012SAndroid Build Coastguard Worker      body: "search_hypernym"
514*d5c09012SAndroid Build Coastguard Worker    };
515*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "search_hypernym,update_mask";
516*d5c09012SAndroid Build Coastguard Worker  }
517*d5c09012SAndroid Build Coastguard Worker
518*d5c09012SAndroid Build Coastguard Worker  // Gets a SearchHypernym inside a corpus.
519*d5c09012SAndroid Build Coastguard Worker  rpc GetSearchHypernym(GetSearchHypernymRequest) returns (SearchHypernym) {
520*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
521*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/corpora/*/searchHypernyms/*}"
522*d5c09012SAndroid Build Coastguard Worker    };
523*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
524*d5c09012SAndroid Build Coastguard Worker  }
525*d5c09012SAndroid Build Coastguard Worker
526*d5c09012SAndroid Build Coastguard Worker  // Deletes a SearchHypernym inside a corpus.
527*d5c09012SAndroid Build Coastguard Worker  rpc DeleteSearchHypernym(DeleteSearchHypernymRequest)
528*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
529*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
530*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/corpora/*/searchHypernyms/*}"
531*d5c09012SAndroid Build Coastguard Worker    };
532*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
533*d5c09012SAndroid Build Coastguard Worker  }
534*d5c09012SAndroid Build Coastguard Worker
535*d5c09012SAndroid Build Coastguard Worker  // Lists SearchHypernyms inside a corpus.
536*d5c09012SAndroid Build Coastguard Worker  rpc ListSearchHypernyms(ListSearchHypernymsRequest)
537*d5c09012SAndroid Build Coastguard Worker      returns (ListSearchHypernymsResponse) {
538*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
539*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/corpora/*}/searchHypernyms"
540*d5c09012SAndroid Build Coastguard Worker    };
541*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
542*d5c09012SAndroid Build Coastguard Worker  }
543*d5c09012SAndroid Build Coastguard Worker
544*d5c09012SAndroid Build Coastguard Worker  // Search media asset.
545*d5c09012SAndroid Build Coastguard Worker  rpc SearchAssets(SearchAssetsRequest) returns (SearchAssetsResponse) {
546*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
547*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{corpus=projects/*/locations/*/corpora/*}:searchAssets"
548*d5c09012SAndroid Build Coastguard Worker      body: "*"
549*d5c09012SAndroid Build Coastguard Worker    };
550*d5c09012SAndroid Build Coastguard Worker  }
551*d5c09012SAndroid Build Coastguard Worker
552*d5c09012SAndroid Build Coastguard Worker  // Search a deployed index endpoint (IMAGE corpus type only).
553*d5c09012SAndroid Build Coastguard Worker  rpc SearchIndexEndpoint(SearchIndexEndpointRequest)
554*d5c09012SAndroid Build Coastguard Worker      returns (SearchIndexEndpointResponse) {
555*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
556*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:searchIndexEndpoint"
557*d5c09012SAndroid Build Coastguard Worker      body: "*"
558*d5c09012SAndroid Build Coastguard Worker    };
559*d5c09012SAndroid Build Coastguard Worker  }
560*d5c09012SAndroid Build Coastguard Worker
561*d5c09012SAndroid Build Coastguard Worker  // Creates an IndexEndpoint.
562*d5c09012SAndroid Build Coastguard Worker  rpc CreateIndexEndpoint(CreateIndexEndpointRequest)
563*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
564*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
565*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*}/indexEndpoints"
566*d5c09012SAndroid Build Coastguard Worker      body: "index_endpoint"
567*d5c09012SAndroid Build Coastguard Worker    };
568*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) =
569*d5c09012SAndroid Build Coastguard Worker        "parent,index_endpoint,index_endpoint_id";
570*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
571*d5c09012SAndroid Build Coastguard Worker      response_type: "IndexEndpoint"
572*d5c09012SAndroid Build Coastguard Worker      metadata_type: "CreateIndexEndpointMetadata"
573*d5c09012SAndroid Build Coastguard Worker    };
574*d5c09012SAndroid Build Coastguard Worker  }
575*d5c09012SAndroid Build Coastguard Worker
576*d5c09012SAndroid Build Coastguard Worker  // Gets an IndexEndpoint.
577*d5c09012SAndroid Build Coastguard Worker  rpc GetIndexEndpoint(GetIndexEndpointRequest) returns (IndexEndpoint) {
578*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
579*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/indexEndpoints/*}"
580*d5c09012SAndroid Build Coastguard Worker    };
581*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
582*d5c09012SAndroid Build Coastguard Worker  }
583*d5c09012SAndroid Build Coastguard Worker
584*d5c09012SAndroid Build Coastguard Worker  // Lists all IndexEndpoints in a project.
585*d5c09012SAndroid Build Coastguard Worker  rpc ListIndexEndpoints(ListIndexEndpointsRequest)
586*d5c09012SAndroid Build Coastguard Worker      returns (ListIndexEndpointsResponse) {
587*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
588*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*}/indexEndpoints"
589*d5c09012SAndroid Build Coastguard Worker    };
590*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
591*d5c09012SAndroid Build Coastguard Worker  }
592*d5c09012SAndroid Build Coastguard Worker
593*d5c09012SAndroid Build Coastguard Worker  // Updates an IndexEndpoint.
594*d5c09012SAndroid Build Coastguard Worker  rpc UpdateIndexEndpoint(UpdateIndexEndpointRequest)
595*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
596*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
597*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{index_endpoint.name=projects/*/locations/*/indexEndpoints/*}"
598*d5c09012SAndroid Build Coastguard Worker      body: "index_endpoint"
599*d5c09012SAndroid Build Coastguard Worker    };
600*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "index_endpoint,update_mask";
601*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
602*d5c09012SAndroid Build Coastguard Worker      response_type: "IndexEndpoint"
603*d5c09012SAndroid Build Coastguard Worker      metadata_type: "UpdateIndexEndpointMetadata"
604*d5c09012SAndroid Build Coastguard Worker    };
605*d5c09012SAndroid Build Coastguard Worker  }
606*d5c09012SAndroid Build Coastguard Worker
607*d5c09012SAndroid Build Coastguard Worker  // Deletes an IndexEndpoint.
608*d5c09012SAndroid Build Coastguard Worker  rpc DeleteIndexEndpoint(DeleteIndexEndpointRequest)
609*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
610*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
611*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/indexEndpoints/*}"
612*d5c09012SAndroid Build Coastguard Worker    };
613*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
614*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
615*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
616*d5c09012SAndroid Build Coastguard Worker      metadata_type: "DeleteIndexEndpointMetadata"
617*d5c09012SAndroid Build Coastguard Worker    };
618*d5c09012SAndroid Build Coastguard Worker  }
619*d5c09012SAndroid Build Coastguard Worker
620*d5c09012SAndroid Build Coastguard Worker  // Deploys an Index to IndexEndpoint.
621*d5c09012SAndroid Build Coastguard Worker  rpc DeployIndex(DeployIndexRequest) returns (google.longrunning.Operation) {
622*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
623*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:deployIndex"
624*d5c09012SAndroid Build Coastguard Worker      body: "*"
625*d5c09012SAndroid Build Coastguard Worker    };
626*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
627*d5c09012SAndroid Build Coastguard Worker      response_type: "DeployIndexResponse"
628*d5c09012SAndroid Build Coastguard Worker      metadata_type: "DeployIndexMetadata"
629*d5c09012SAndroid Build Coastguard Worker    };
630*d5c09012SAndroid Build Coastguard Worker  }
631*d5c09012SAndroid Build Coastguard Worker
632*d5c09012SAndroid Build Coastguard Worker  // Undeploys an Index from IndexEndpoint.
633*d5c09012SAndroid Build Coastguard Worker  rpc UndeployIndex(UndeployIndexRequest)
634*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
635*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
636*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:undeployIndex"
637*d5c09012SAndroid Build Coastguard Worker      body: "*"
638*d5c09012SAndroid Build Coastguard Worker    };
639*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
640*d5c09012SAndroid Build Coastguard Worker      response_type: "UndeployIndexResponse"
641*d5c09012SAndroid Build Coastguard Worker      metadata_type: "UndeployIndexMetadata"
642*d5c09012SAndroid Build Coastguard Worker    };
643*d5c09012SAndroid Build Coastguard Worker  }
644*d5c09012SAndroid Build Coastguard Worker
645*d5c09012SAndroid Build Coastguard Worker  // Creates a collection.
646*d5c09012SAndroid Build Coastguard Worker  rpc CreateCollection(CreateCollectionRequest)
647*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
648*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
649*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/corpora/*}/collections"
650*d5c09012SAndroid Build Coastguard Worker      body: "collection"
651*d5c09012SAndroid Build Coastguard Worker    };
652*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,collection,collection_id";
653*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
654*d5c09012SAndroid Build Coastguard Worker      response_type: "Collection"
655*d5c09012SAndroid Build Coastguard Worker      metadata_type: "CreateCollectionMetadata"
656*d5c09012SAndroid Build Coastguard Worker    };
657*d5c09012SAndroid Build Coastguard Worker  }
658*d5c09012SAndroid Build Coastguard Worker
659*d5c09012SAndroid Build Coastguard Worker  // Deletes a collection.
660*d5c09012SAndroid Build Coastguard Worker  rpc DeleteCollection(DeleteCollectionRequest)
661*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
662*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
663*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/corpora/*/collections/*}"
664*d5c09012SAndroid Build Coastguard Worker    };
665*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
666*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
667*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
668*d5c09012SAndroid Build Coastguard Worker      metadata_type: "DeleteCollectionMetadata"
669*d5c09012SAndroid Build Coastguard Worker    };
670*d5c09012SAndroid Build Coastguard Worker  }
671*d5c09012SAndroid Build Coastguard Worker
672*d5c09012SAndroid Build Coastguard Worker  // Gets a collection.
673*d5c09012SAndroid Build Coastguard Worker  rpc GetCollection(GetCollectionRequest) returns (Collection) {
674*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
675*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/corpora/*/collections/*}"
676*d5c09012SAndroid Build Coastguard Worker    };
677*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
678*d5c09012SAndroid Build Coastguard Worker  }
679*d5c09012SAndroid Build Coastguard Worker
680*d5c09012SAndroid Build Coastguard Worker  // Updates a collection.
681*d5c09012SAndroid Build Coastguard Worker  rpc UpdateCollection(UpdateCollectionRequest) returns (Collection) {
682*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
683*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{collection.name=projects/*/locations/*/corpora/*/collections/*}"
684*d5c09012SAndroid Build Coastguard Worker      body: "collection"
685*d5c09012SAndroid Build Coastguard Worker    };
686*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "collection,update_mask";
687*d5c09012SAndroid Build Coastguard Worker  }
688*d5c09012SAndroid Build Coastguard Worker
689*d5c09012SAndroid Build Coastguard Worker  // Lists collections inside a corpus.
690*d5c09012SAndroid Build Coastguard Worker  rpc ListCollections(ListCollectionsRequest)
691*d5c09012SAndroid Build Coastguard Worker      returns (ListCollectionsResponse) {
692*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
693*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/corpora/*}/collections"
694*d5c09012SAndroid Build Coastguard Worker    };
695*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
696*d5c09012SAndroid Build Coastguard Worker  }
697*d5c09012SAndroid Build Coastguard Worker
698*d5c09012SAndroid Build Coastguard Worker  // Adds an item into a Collection.
699*d5c09012SAndroid Build Coastguard Worker  rpc AddCollectionItem(AddCollectionItemRequest)
700*d5c09012SAndroid Build Coastguard Worker      returns (AddCollectionItemResponse) {
701*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
702*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{item.collection=projects/*/locations/*/corpora/*/collections/*}:addCollectionItem"
703*d5c09012SAndroid Build Coastguard Worker      body: "*"
704*d5c09012SAndroid Build Coastguard Worker    };
705*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "item";
706*d5c09012SAndroid Build Coastguard Worker  }
707*d5c09012SAndroid Build Coastguard Worker
708*d5c09012SAndroid Build Coastguard Worker  // Removes an item from a collection.
709*d5c09012SAndroid Build Coastguard Worker  rpc RemoveCollectionItem(RemoveCollectionItemRequest)
710*d5c09012SAndroid Build Coastguard Worker      returns (RemoveCollectionItemResponse) {
711*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
712*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{item.collection=projects/*/locations/*/corpora/*/collections/*}:removeCollectionItem"
713*d5c09012SAndroid Build Coastguard Worker      body: "*"
714*d5c09012SAndroid Build Coastguard Worker    };
715*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "item";
716*d5c09012SAndroid Build Coastguard Worker  }
717*d5c09012SAndroid Build Coastguard Worker
718*d5c09012SAndroid Build Coastguard Worker  // View items inside a collection.
719*d5c09012SAndroid Build Coastguard Worker  rpc ViewCollectionItems(ViewCollectionItemsRequest)
720*d5c09012SAndroid Build Coastguard Worker      returns (ViewCollectionItemsResponse) {
721*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
722*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{collection=projects/*/locations/*/corpora/*/collections/*}:viewCollectionItems"
723*d5c09012SAndroid Build Coastguard Worker    };
724*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "collection";
725*d5c09012SAndroid Build Coastguard Worker  }
726*d5c09012SAndroid Build Coastguard Worker}
727*d5c09012SAndroid Build Coastguard Worker
728*d5c09012SAndroid Build Coastguard Worker// Different types for a facet bucket.
729*d5c09012SAndroid Build Coastguard Workerenum FacetBucketType {
730*d5c09012SAndroid Build Coastguard Worker  // Unspecified type.
731*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_UNSPECIFIED = 0;
732*d5c09012SAndroid Build Coastguard Worker
733*d5c09012SAndroid Build Coastguard Worker  // Value type.
734*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_VALUE = 1;
735*d5c09012SAndroid Build Coastguard Worker
736*d5c09012SAndroid Build Coastguard Worker  // Datetime type.
737*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_DATETIME = 2;
738*d5c09012SAndroid Build Coastguard Worker
739*d5c09012SAndroid Build Coastguard Worker  // Fixed Range type.
740*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_FIXED_RANGE = 3;
741*d5c09012SAndroid Build Coastguard Worker
742*d5c09012SAndroid Build Coastguard Worker  // Custom Range type.
743*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_CUSTOM_RANGE = 4;
744*d5c09012SAndroid Build Coastguard Worker}
745*d5c09012SAndroid Build Coastguard Worker
746*d5c09012SAndroid Build Coastguard Worker// Request message for CreateAssetRequest.
747*d5c09012SAndroid Build Coastguard Workermessage CreateAssetRequest {
748*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this asset will be created.
749*d5c09012SAndroid Build Coastguard Worker  // Format:
750*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
751*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
752*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
753*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
754*d5c09012SAndroid Build Coastguard Worker  ];
755*d5c09012SAndroid Build Coastguard Worker
756*d5c09012SAndroid Build Coastguard Worker  // Required. The asset to create.
757*d5c09012SAndroid Build Coastguard Worker  Asset asset = 2 [(google.api.field_behavior) = REQUIRED];
758*d5c09012SAndroid Build Coastguard Worker
759*d5c09012SAndroid Build Coastguard Worker  // Optional. The ID to use for the asset, which will become the final
760*d5c09012SAndroid Build Coastguard Worker  // component of the asset's resource name if user choose to specify.
761*d5c09012SAndroid Build Coastguard Worker  // Otherwise, asset id will be generated by system.
762*d5c09012SAndroid Build Coastguard Worker  //
763*d5c09012SAndroid Build Coastguard Worker  // This value should be up to 63 characters, and valid characters
764*d5c09012SAndroid Build Coastguard Worker  // are /[a-z][0-9]-/. The first character must be a letter, the last could be
765*d5c09012SAndroid Build Coastguard Worker  // a letter or a number.
766*d5c09012SAndroid Build Coastguard Worker  optional string asset_id = 3 [(google.api.field_behavior) = OPTIONAL];
767*d5c09012SAndroid Build Coastguard Worker}
768*d5c09012SAndroid Build Coastguard Worker
769*d5c09012SAndroid Build Coastguard Worker// Request message for GetAsset.
770*d5c09012SAndroid Build Coastguard Workermessage GetAssetRequest {
771*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the asset to retrieve.
772*d5c09012SAndroid Build Coastguard Worker  // Format:
773*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}
774*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
775*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
776*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
777*d5c09012SAndroid Build Coastguard Worker  ];
778*d5c09012SAndroid Build Coastguard Worker}
779*d5c09012SAndroid Build Coastguard Worker
780*d5c09012SAndroid Build Coastguard Worker// Request message for ListAssets.
781*d5c09012SAndroid Build Coastguard Workermessage ListAssetsRequest {
782*d5c09012SAndroid Build Coastguard Worker  // Required. The parent, which owns this collection of assets.
783*d5c09012SAndroid Build Coastguard Worker  // Format:
784*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}`
785*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
786*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
787*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
788*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/Asset"
789*d5c09012SAndroid Build Coastguard Worker    }
790*d5c09012SAndroid Build Coastguard Worker  ];
791*d5c09012SAndroid Build Coastguard Worker
792*d5c09012SAndroid Build Coastguard Worker  // The maximum number of assets to return. The service may return fewer than
793*d5c09012SAndroid Build Coastguard Worker  // this value.
794*d5c09012SAndroid Build Coastguard Worker  // If unspecified, at most 50 assets will be returned.
795*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
796*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
797*d5c09012SAndroid Build Coastguard Worker
798*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListAssets` call.
799*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
800*d5c09012SAndroid Build Coastguard Worker  //
801*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to `ListAssets` must match
802*d5c09012SAndroid Build Coastguard Worker  // the call that provided the page token.
803*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
804*d5c09012SAndroid Build Coastguard Worker
805*d5c09012SAndroid Build Coastguard Worker  // The filter applied to the returned list.
806*d5c09012SAndroid Build Coastguard Worker  // Only the following filterings are supported:
807*d5c09012SAndroid Build Coastguard Worker  // "assets_with_contents = true", which returns assets with contents uploaded;
808*d5c09012SAndroid Build Coastguard Worker  // "assets_with_contents = false", which returns assets without contents.
809*d5c09012SAndroid Build Coastguard Worker  string filter = 5;
810*d5c09012SAndroid Build Coastguard Worker}
811*d5c09012SAndroid Build Coastguard Worker
812*d5c09012SAndroid Build Coastguard Worker// Response message for ListAssets.
813*d5c09012SAndroid Build Coastguard Workermessage ListAssetsResponse {
814*d5c09012SAndroid Build Coastguard Worker  // The assets from the specified corpus.
815*d5c09012SAndroid Build Coastguard Worker  repeated Asset assets = 1;
816*d5c09012SAndroid Build Coastguard Worker
817*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
818*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
819*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
820*d5c09012SAndroid Build Coastguard Worker}
821*d5c09012SAndroid Build Coastguard Worker
822*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateAsset.
823*d5c09012SAndroid Build Coastguard Workermessage UpdateAssetRequest {
824*d5c09012SAndroid Build Coastguard Worker  // Required. The asset to update.
825*d5c09012SAndroid Build Coastguard Worker  //
826*d5c09012SAndroid Build Coastguard Worker  // The asset's `name` field is used to identify the asset to be updated.
827*d5c09012SAndroid Build Coastguard Worker  // Format:
828*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}`
829*d5c09012SAndroid Build Coastguard Worker  Asset asset = 1 [(google.api.field_behavior) = REQUIRED];
830*d5c09012SAndroid Build Coastguard Worker
831*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated.
832*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
833*d5c09012SAndroid Build Coastguard Worker}
834*d5c09012SAndroid Build Coastguard Worker
835*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteAsset.
836*d5c09012SAndroid Build Coastguard Workermessage DeleteAssetRequest {
837*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the asset to delete.
838*d5c09012SAndroid Build Coastguard Worker  // Format:
839*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}`
840*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
841*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
842*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
843*d5c09012SAndroid Build Coastguard Worker  ];
844*d5c09012SAndroid Build Coastguard Worker}
845*d5c09012SAndroid Build Coastguard Worker
846*d5c09012SAndroid Build Coastguard Worker// The source of the asset.
847*d5c09012SAndroid Build Coastguard Workermessage AssetSource {
848*d5c09012SAndroid Build Coastguard Worker  // The asset source is from Cloud Storage.
849*d5c09012SAndroid Build Coastguard Worker  message AssetGcsSource {
850*d5c09012SAndroid Build Coastguard Worker    // Cloud storage uri.
851*d5c09012SAndroid Build Coastguard Worker    string gcs_uri = 1;
852*d5c09012SAndroid Build Coastguard Worker  }
853*d5c09012SAndroid Build Coastguard Worker
854*d5c09012SAndroid Build Coastguard Worker  // The content of the asset.
855*d5c09012SAndroid Build Coastguard Worker  message AssetContentData {
856*d5c09012SAndroid Build Coastguard Worker    bytes asset_content_data = 1;
857*d5c09012SAndroid Build Coastguard Worker  }
858*d5c09012SAndroid Build Coastguard Worker
859*d5c09012SAndroid Build Coastguard Worker  oneof source_form {
860*d5c09012SAndroid Build Coastguard Worker    // The source of the asset is from Cloud Storage.
861*d5c09012SAndroid Build Coastguard Worker    AssetGcsSource asset_gcs_source = 1;
862*d5c09012SAndroid Build Coastguard Worker
863*d5c09012SAndroid Build Coastguard Worker    // The source of the asset is from content bytes.
864*d5c09012SAndroid Build Coastguard Worker    AssetContentData asset_content_data = 2;
865*d5c09012SAndroid Build Coastguard Worker  }
866*d5c09012SAndroid Build Coastguard Worker}
867*d5c09012SAndroid Build Coastguard Worker
868*d5c09012SAndroid Build Coastguard Worker// Request message for UploadAsset.
869*d5c09012SAndroid Build Coastguard Workermessage UploadAssetRequest {
870*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset to upload.
871*d5c09012SAndroid Build Coastguard Worker  // Format:
872*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
873*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
874*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
875*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
876*d5c09012SAndroid Build Coastguard Worker  ];
877*d5c09012SAndroid Build Coastguard Worker
878*d5c09012SAndroid Build Coastguard Worker  // The source of the asset.
879*d5c09012SAndroid Build Coastguard Worker  AssetSource asset_source = 2;
880*d5c09012SAndroid Build Coastguard Worker}
881*d5c09012SAndroid Build Coastguard Worker
882*d5c09012SAndroid Build Coastguard Worker// Response message for UploadAsset.
883*d5c09012SAndroid Build Coastguard Workermessage UploadAssetResponse {}
884*d5c09012SAndroid Build Coastguard Worker
885*d5c09012SAndroid Build Coastguard Worker// Metadata for UploadAsset.
886*d5c09012SAndroid Build Coastguard Workermessage UploadAssetMetadata {
887*d5c09012SAndroid Build Coastguard Worker  // The start time of the operation.
888*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 1;
889*d5c09012SAndroid Build Coastguard Worker
890*d5c09012SAndroid Build Coastguard Worker  // The update time of the operation.
891*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 2;
892*d5c09012SAndroid Build Coastguard Worker}
893*d5c09012SAndroid Build Coastguard Worker
894*d5c09012SAndroid Build Coastguard Worker// Request message for GenerateRetrievalUrl API.
895*d5c09012SAndroid Build Coastguard Workermessage GenerateRetrievalUrlRequest {
896*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset to request signed url for.
897*d5c09012SAndroid Build Coastguard Worker  // Format:
898*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
899*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
900*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
901*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
902*d5c09012SAndroid Build Coastguard Worker  ];
903*d5c09012SAndroid Build Coastguard Worker}
904*d5c09012SAndroid Build Coastguard Worker
905*d5c09012SAndroid Build Coastguard Worker// Response message for GenerateRetrievalUrl API.
906*d5c09012SAndroid Build Coastguard Workermessage GenerateRetrievalUrlResponse {
907*d5c09012SAndroid Build Coastguard Worker  // A signed url to download the content of the asset.
908*d5c09012SAndroid Build Coastguard Worker  string signed_uri = 1;
909*d5c09012SAndroid Build Coastguard Worker}
910*d5c09012SAndroid Build Coastguard Worker
911*d5c09012SAndroid Build Coastguard Worker// An asset is a resource in corpus. It represents a media object inside corpus,
912*d5c09012SAndroid Build Coastguard Worker// contains metadata and another resource annotation. Different feature could be
913*d5c09012SAndroid Build Coastguard Worker// applied to the asset to generate annotations. User could specified annotation
914*d5c09012SAndroid Build Coastguard Worker// related to the target asset.
915*d5c09012SAndroid Build Coastguard Workermessage Asset {
916*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
917*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/Asset"
918*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}"
919*d5c09012SAndroid Build Coastguard Worker  };
920*d5c09012SAndroid Build Coastguard Worker
921*d5c09012SAndroid Build Coastguard Worker  // Resource name of the asset.
922*d5c09012SAndroid Build Coastguard Worker  // Format:
923*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
924*d5c09012SAndroid Build Coastguard Worker  string name = 1;
925*d5c09012SAndroid Build Coastguard Worker
926*d5c09012SAndroid Build Coastguard Worker  // The duration for which all media assets, associated metadata, and search
927*d5c09012SAndroid Build Coastguard Worker  // documents can exist. If not set, then it will using the default ttl in the
928*d5c09012SAndroid Build Coastguard Worker  // parent corpus resource.
929*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration ttl = 2;
930*d5c09012SAndroid Build Coastguard Worker
931*d5c09012SAndroid Build Coastguard Worker  // Output only. The original cloud storage source uri that is associated with
932*d5c09012SAndroid Build Coastguard Worker  // this asset.
933*d5c09012SAndroid Build Coastguard Worker  AssetSource.AssetGcsSource asset_gcs_source = 4
934*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
935*d5c09012SAndroid Build Coastguard Worker}
936*d5c09012SAndroid Build Coastguard Worker
937*d5c09012SAndroid Build Coastguard Worker// Request message for AnalyzeAsset.
938*d5c09012SAndroid Build Coastguard Workermessage AnalyzeAssetRequest {
939*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset to analyze.
940*d5c09012SAndroid Build Coastguard Worker  // Format:
941*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
942*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
943*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
944*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
945*d5c09012SAndroid Build Coastguard Worker  ];
946*d5c09012SAndroid Build Coastguard Worker}
947*d5c09012SAndroid Build Coastguard Worker
948*d5c09012SAndroid Build Coastguard Worker// Metadata for AnalyzeAsset.
949*d5c09012SAndroid Build Coastguard Workermessage AnalyzeAssetMetadata {
950*d5c09012SAndroid Build Coastguard Worker  // The status of analysis on each search capability.
951*d5c09012SAndroid Build Coastguard Worker  message AnalysisStatus {
952*d5c09012SAndroid Build Coastguard Worker    // The state of the search capability.
953*d5c09012SAndroid Build Coastguard Worker    enum State {
954*d5c09012SAndroid Build Coastguard Worker      // The default process state should never happen.
955*d5c09012SAndroid Build Coastguard Worker      STATE_UNSPECIFIED = 0;
956*d5c09012SAndroid Build Coastguard Worker
957*d5c09012SAndroid Build Coastguard Worker      // The feature is in progress.
958*d5c09012SAndroid Build Coastguard Worker      IN_PROGRESS = 1;
959*d5c09012SAndroid Build Coastguard Worker
960*d5c09012SAndroid Build Coastguard Worker      // The process is successfully done.
961*d5c09012SAndroid Build Coastguard Worker      SUCCEEDED = 2;
962*d5c09012SAndroid Build Coastguard Worker
963*d5c09012SAndroid Build Coastguard Worker      // The process failed.
964*d5c09012SAndroid Build Coastguard Worker      FAILED = 3;
965*d5c09012SAndroid Build Coastguard Worker    }
966*d5c09012SAndroid Build Coastguard Worker
967*d5c09012SAndroid Build Coastguard Worker    State state = 2;
968*d5c09012SAndroid Build Coastguard Worker
969*d5c09012SAndroid Build Coastguard Worker    string status_message = 3;
970*d5c09012SAndroid Build Coastguard Worker
971*d5c09012SAndroid Build Coastguard Worker    // The search capability requested.
972*d5c09012SAndroid Build Coastguard Worker    SearchCapability search_capability = 4;
973*d5c09012SAndroid Build Coastguard Worker  }
974*d5c09012SAndroid Build Coastguard Worker
975*d5c09012SAndroid Build Coastguard Worker  // The status of analysis on all search capabilities.
976*d5c09012SAndroid Build Coastguard Worker  repeated AnalysisStatus analysis_status = 1;
977*d5c09012SAndroid Build Coastguard Worker
978*d5c09012SAndroid Build Coastguard Worker  // The start time of the operation.
979*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 2;
980*d5c09012SAndroid Build Coastguard Worker
981*d5c09012SAndroid Build Coastguard Worker  // The update time of the operation.
982*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 3;
983*d5c09012SAndroid Build Coastguard Worker}
984*d5c09012SAndroid Build Coastguard Worker
985*d5c09012SAndroid Build Coastguard Worker// Response message for AnalyzeAsset.
986*d5c09012SAndroid Build Coastguard Workermessage AnalyzeAssetResponse {}
987*d5c09012SAndroid Build Coastguard Worker
988*d5c09012SAndroid Build Coastguard Worker// The status of indexing for the asset.
989*d5c09012SAndroid Build Coastguard Workermessage IndexingStatus {
990*d5c09012SAndroid Build Coastguard Worker  // State enum for this asset's indexing.
991*d5c09012SAndroid Build Coastguard Worker  enum State {
992*d5c09012SAndroid Build Coastguard Worker    // The default process state should never happen.
993*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
994*d5c09012SAndroid Build Coastguard Worker
995*d5c09012SAndroid Build Coastguard Worker    // The indexing is in progress.
996*d5c09012SAndroid Build Coastguard Worker    IN_PROGRESS = 1;
997*d5c09012SAndroid Build Coastguard Worker
998*d5c09012SAndroid Build Coastguard Worker    // The process is successfully done.
999*d5c09012SAndroid Build Coastguard Worker    SUCCEEDED = 2;
1000*d5c09012SAndroid Build Coastguard Worker
1001*d5c09012SAndroid Build Coastguard Worker    // The process failed.
1002*d5c09012SAndroid Build Coastguard Worker    FAILED = 3;
1003*d5c09012SAndroid Build Coastguard Worker  }
1004*d5c09012SAndroid Build Coastguard Worker
1005*d5c09012SAndroid Build Coastguard Worker  // Output only. State of this asset's indexing.
1006*d5c09012SAndroid Build Coastguard Worker  State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
1007*d5c09012SAndroid Build Coastguard Worker
1008*d5c09012SAndroid Build Coastguard Worker  // Detailed message describing the state.
1009*d5c09012SAndroid Build Coastguard Worker  string status_message = 3;
1010*d5c09012SAndroid Build Coastguard Worker}
1011*d5c09012SAndroid Build Coastguard Worker
1012*d5c09012SAndroid Build Coastguard Worker// Request message for IndexAsset.
1013*d5c09012SAndroid Build Coastguard Workermessage IndexAssetRequest {
1014*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset to index.
1015*d5c09012SAndroid Build Coastguard Worker  // Format:
1016*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
1017*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1018*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1019*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
1020*d5c09012SAndroid Build Coastguard Worker  ];
1021*d5c09012SAndroid Build Coastguard Worker
1022*d5c09012SAndroid Build Coastguard Worker  // Optional. The name of the index.
1023*d5c09012SAndroid Build Coastguard Worker  // Format:
1024*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}`
1025*d5c09012SAndroid Build Coastguard Worker  string index = 2 [
1026*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OPTIONAL,
1027*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Index" }
1028*d5c09012SAndroid Build Coastguard Worker  ];
1029*d5c09012SAndroid Build Coastguard Worker}
1030*d5c09012SAndroid Build Coastguard Worker
1031*d5c09012SAndroid Build Coastguard Worker// Metadata for IndexAsset.
1032*d5c09012SAndroid Build Coastguard Workermessage IndexAssetMetadata {
1033*d5c09012SAndroid Build Coastguard Worker  // The status of indexing this asset.
1034*d5c09012SAndroid Build Coastguard Worker  IndexingStatus status = 4;
1035*d5c09012SAndroid Build Coastguard Worker
1036*d5c09012SAndroid Build Coastguard Worker  // The start time of the operation.
1037*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 2;
1038*d5c09012SAndroid Build Coastguard Worker
1039*d5c09012SAndroid Build Coastguard Worker  // The update time of the operation.
1040*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 3;
1041*d5c09012SAndroid Build Coastguard Worker}
1042*d5c09012SAndroid Build Coastguard Worker
1043*d5c09012SAndroid Build Coastguard Worker// Response message for IndexAsset.
1044*d5c09012SAndroid Build Coastguard Workermessage IndexAssetResponse {}
1045*d5c09012SAndroid Build Coastguard Worker
1046*d5c09012SAndroid Build Coastguard Worker// Request message for RemoveIndexAsset.
1047*d5c09012SAndroid Build Coastguard Workermessage RemoveIndexAssetRequest {
1048*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset to index.
1049*d5c09012SAndroid Build Coastguard Worker  // Format:
1050*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
1051*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1052*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1053*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
1054*d5c09012SAndroid Build Coastguard Worker  ];
1055*d5c09012SAndroid Build Coastguard Worker
1056*d5c09012SAndroid Build Coastguard Worker  // Optional. The name of the index.
1057*d5c09012SAndroid Build Coastguard Worker  // Format:
1058*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}`
1059*d5c09012SAndroid Build Coastguard Worker  string index = 2 [
1060*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OPTIONAL,
1061*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Index" }
1062*d5c09012SAndroid Build Coastguard Worker  ];
1063*d5c09012SAndroid Build Coastguard Worker}
1064*d5c09012SAndroid Build Coastguard Worker
1065*d5c09012SAndroid Build Coastguard Worker// Metadata for RemoveIndexAsset.
1066*d5c09012SAndroid Build Coastguard Workermessage RemoveIndexAssetMetadata {
1067*d5c09012SAndroid Build Coastguard Worker  // The status of indexing this asset.
1068*d5c09012SAndroid Build Coastguard Worker  IndexingStatus indexing_status = 1;
1069*d5c09012SAndroid Build Coastguard Worker
1070*d5c09012SAndroid Build Coastguard Worker  // The start time of the operation.
1071*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 2;
1072*d5c09012SAndroid Build Coastguard Worker
1073*d5c09012SAndroid Build Coastguard Worker  // The update time of the operation.
1074*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 3;
1075*d5c09012SAndroid Build Coastguard Worker}
1076*d5c09012SAndroid Build Coastguard Worker
1077*d5c09012SAndroid Build Coastguard Worker// Response message for RemoveIndexAsset.
1078*d5c09012SAndroid Build Coastguard Workermessage RemoveIndexAssetResponse {}
1079*d5c09012SAndroid Build Coastguard Worker
1080*d5c09012SAndroid Build Coastguard Worker// An IndexedAsset is an asset that the index is built upon.
1081*d5c09012SAndroid Build Coastguard Workermessage IndexedAsset {
1082*d5c09012SAndroid Build Coastguard Worker  // Required. The index that this indexed asset belongs to.
1083*d5c09012SAndroid Build Coastguard Worker  // Format:
1084*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}`
1085*d5c09012SAndroid Build Coastguard Worker  string index = 1 [
1086*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1087*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Index" }
1088*d5c09012SAndroid Build Coastguard Worker  ];
1089*d5c09012SAndroid Build Coastguard Worker
1090*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset.
1091*d5c09012SAndroid Build Coastguard Worker  // Format:
1092*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
1093*d5c09012SAndroid Build Coastguard Worker  string asset = 2 [
1094*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1095*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
1096*d5c09012SAndroid Build Coastguard Worker  ];
1097*d5c09012SAndroid Build Coastguard Worker
1098*d5c09012SAndroid Build Coastguard Worker  // Output only. The create timestamp.
1099*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 3
1100*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1101*d5c09012SAndroid Build Coastguard Worker
1102*d5c09012SAndroid Build Coastguard Worker  // Output only. The update timestamp.
1103*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 4
1104*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1105*d5c09012SAndroid Build Coastguard Worker}
1106*d5c09012SAndroid Build Coastguard Worker
1107*d5c09012SAndroid Build Coastguard Worker// Request message for ViewIndexedAssets.
1108*d5c09012SAndroid Build Coastguard Workermessage ViewIndexedAssetsRequest {
1109*d5c09012SAndroid Build Coastguard Worker  // Required. The index that owns this collection of assets.
1110*d5c09012SAndroid Build Coastguard Worker  // Format:
1111*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}`
1112*d5c09012SAndroid Build Coastguard Worker  string index = 1 [
1113*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1114*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Index" }
1115*d5c09012SAndroid Build Coastguard Worker  ];
1116*d5c09012SAndroid Build Coastguard Worker
1117*d5c09012SAndroid Build Coastguard Worker  // The maximum number of assets to return. The service may return fewer than
1118*d5c09012SAndroid Build Coastguard Worker  // this value.
1119*d5c09012SAndroid Build Coastguard Worker  // If unspecified, at most 50 assets will be returned.
1120*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
1121*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
1122*d5c09012SAndroid Build Coastguard Worker
1123*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ViewIndexedAssets` call.
1124*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
1125*d5c09012SAndroid Build Coastguard Worker  //
1126*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to `ViewIndexedAssets` must
1127*d5c09012SAndroid Build Coastguard Worker  // match the call that provided the page token.
1128*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
1129*d5c09012SAndroid Build Coastguard Worker
1130*d5c09012SAndroid Build Coastguard Worker  // The filter applied to the returned list.
1131*d5c09012SAndroid Build Coastguard Worker  // Only the following filterings are supported:
1132*d5c09012SAndroid Build Coastguard Worker  // "asset_id = xxxx", which returns asset with specified id.
1133*d5c09012SAndroid Build Coastguard Worker  // "asset_id = xxxx, yyyy, zzzz", which returns assets with specified ids.
1134*d5c09012SAndroid Build Coastguard Worker  string filter = 4;
1135*d5c09012SAndroid Build Coastguard Worker}
1136*d5c09012SAndroid Build Coastguard Worker
1137*d5c09012SAndroid Build Coastguard Worker// Response message for ViewIndexedAssets.
1138*d5c09012SAndroid Build Coastguard Workermessage ViewIndexedAssetsResponse {
1139*d5c09012SAndroid Build Coastguard Worker  // The assets from the specified index.
1140*d5c09012SAndroid Build Coastguard Worker  repeated IndexedAsset indexed_assets = 1;
1141*d5c09012SAndroid Build Coastguard Worker
1142*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
1143*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
1144*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1145*d5c09012SAndroid Build Coastguard Worker}
1146*d5c09012SAndroid Build Coastguard Worker
1147*d5c09012SAndroid Build Coastguard Worker// Request message of CreateCorpus API.
1148*d5c09012SAndroid Build Coastguard Workermessage CreateCorpusRequest {
1149*d5c09012SAndroid Build Coastguard Worker  // Required. Form: `projects/{project_number}/locations/{location_id}`
1150*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1151*d5c09012SAndroid Build Coastguard Worker
1152*d5c09012SAndroid Build Coastguard Worker  // Required. The corpus to be created.
1153*d5c09012SAndroid Build Coastguard Worker  Corpus corpus = 2 [(google.api.field_behavior) = REQUIRED];
1154*d5c09012SAndroid Build Coastguard Worker}
1155*d5c09012SAndroid Build Coastguard Worker
1156*d5c09012SAndroid Build Coastguard Worker// Metadata for CreateCorpus API.
1157*d5c09012SAndroid Build Coastguard Workermessage CreateCorpusMetadata {
1158*d5c09012SAndroid Build Coastguard Worker  // The create time of the create corpus operation.
1159*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 2;
1160*d5c09012SAndroid Build Coastguard Worker
1161*d5c09012SAndroid Build Coastguard Worker  // The update time of the create corpus operation.
1162*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 3;
1163*d5c09012SAndroid Build Coastguard Worker}
1164*d5c09012SAndroid Build Coastguard Worker
1165*d5c09012SAndroid Build Coastguard Worker// The capability and metadata of search capability.
1166*d5c09012SAndroid Build Coastguard Workermessage SearchCapability {
1167*d5c09012SAndroid Build Coastguard Worker  // Capability to perform different search on assets.
1168*d5c09012SAndroid Build Coastguard Worker  enum Type {
1169*d5c09012SAndroid Build Coastguard Worker    // Unspecified search capability, should never be used.
1170*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
1171*d5c09012SAndroid Build Coastguard Worker
1172*d5c09012SAndroid Build Coastguard Worker    // Embedding search.
1173*d5c09012SAndroid Build Coastguard Worker    EMBEDDING_SEARCH = 1;
1174*d5c09012SAndroid Build Coastguard Worker  }
1175*d5c09012SAndroid Build Coastguard Worker
1176*d5c09012SAndroid Build Coastguard Worker  // The search capability to enable.
1177*d5c09012SAndroid Build Coastguard Worker  Type type = 1;
1178*d5c09012SAndroid Build Coastguard Worker}
1179*d5c09012SAndroid Build Coastguard Worker
1180*d5c09012SAndroid Build Coastguard Worker// Setting for search capability to enable.
1181*d5c09012SAndroid Build Coastguard Workermessage SearchCapabilitySetting {
1182*d5c09012SAndroid Build Coastguard Worker  // The metadata of search capability to enable.
1183*d5c09012SAndroid Build Coastguard Worker  repeated SearchCapability search_capabilities = 1;
1184*d5c09012SAndroid Build Coastguard Worker}
1185*d5c09012SAndroid Build Coastguard Worker
1186*d5c09012SAndroid Build Coastguard Worker// Metadata message for CreateCollectionRequest
1187*d5c09012SAndroid Build Coastguard Workermessage CreateCollectionMetadata {
1188*d5c09012SAndroid Build Coastguard Worker  // Common metadata of the long-running operation.
1189*d5c09012SAndroid Build Coastguard Worker  OperationMetadata operation_metadata = 1;
1190*d5c09012SAndroid Build Coastguard Worker}
1191*d5c09012SAndroid Build Coastguard Worker
1192*d5c09012SAndroid Build Coastguard Worker// Request message for CreateCollection.
1193*d5c09012SAndroid Build Coastguard Workermessage CreateCollectionRequest {
1194*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this collection will be created.
1195*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project_number}/locations/{location}/corpora/{corpus}`
1196*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1197*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1198*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
1199*d5c09012SAndroid Build Coastguard Worker  ];
1200*d5c09012SAndroid Build Coastguard Worker
1201*d5c09012SAndroid Build Coastguard Worker  // Required. The collection resource to be created.
1202*d5c09012SAndroid Build Coastguard Worker  Collection collection = 2 [(google.api.field_behavior) = REQUIRED];
1203*d5c09012SAndroid Build Coastguard Worker
1204*d5c09012SAndroid Build Coastguard Worker  // Optional. The ID to use for the collection, which will become the final
1205*d5c09012SAndroid Build Coastguard Worker  // component of the resource name if user choose to specify. Otherwise,
1206*d5c09012SAndroid Build Coastguard Worker  // collection id will be generated by system.
1207*d5c09012SAndroid Build Coastguard Worker  //
1208*d5c09012SAndroid Build Coastguard Worker  // This value should be up to 55 characters, and valid characters
1209*d5c09012SAndroid Build Coastguard Worker  // are /[a-z][0-9]-/. The first character must be a letter, the last could be
1210*d5c09012SAndroid Build Coastguard Worker  // a letter or a number.
1211*d5c09012SAndroid Build Coastguard Worker  optional string collection_id = 3 [(google.api.field_behavior) = OPTIONAL];
1212*d5c09012SAndroid Build Coastguard Worker}
1213*d5c09012SAndroid Build Coastguard Worker
1214*d5c09012SAndroid Build Coastguard Worker// Metadata message for DeleteCollectionRequest
1215*d5c09012SAndroid Build Coastguard Workermessage DeleteCollectionMetadata {
1216*d5c09012SAndroid Build Coastguard Worker  // Common metadata of the long-running operation.
1217*d5c09012SAndroid Build Coastguard Worker  OperationMetadata operation_metadata = 1;
1218*d5c09012SAndroid Build Coastguard Worker}
1219*d5c09012SAndroid Build Coastguard Worker
1220*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteCollectionRequest.
1221*d5c09012SAndroid Build Coastguard Workermessage DeleteCollectionRequest {
1222*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the collection to delete. Format:
1223*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}`
1224*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1225*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1226*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1227*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Collection"
1228*d5c09012SAndroid Build Coastguard Worker    }
1229*d5c09012SAndroid Build Coastguard Worker  ];
1230*d5c09012SAndroid Build Coastguard Worker}
1231*d5c09012SAndroid Build Coastguard Worker
1232*d5c09012SAndroid Build Coastguard Worker// Request message for GetCollectionRequest.
1233*d5c09012SAndroid Build Coastguard Workermessage GetCollectionRequest {
1234*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the collection to retrieve. Format:
1235*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}`
1236*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1237*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1238*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1239*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Collection"
1240*d5c09012SAndroid Build Coastguard Worker    }
1241*d5c09012SAndroid Build Coastguard Worker  ];
1242*d5c09012SAndroid Build Coastguard Worker}
1243*d5c09012SAndroid Build Coastguard Worker
1244*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateCollectionRequest.
1245*d5c09012SAndroid Build Coastguard Workermessage UpdateCollectionRequest {
1246*d5c09012SAndroid Build Coastguard Worker  // Required. The collection to update.
1247*d5c09012SAndroid Build Coastguard Worker  //
1248*d5c09012SAndroid Build Coastguard Worker  // The collection's `name` field is used to identify the collection to be
1249*d5c09012SAndroid Build Coastguard Worker  // updated. Format:
1250*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}`
1251*d5c09012SAndroid Build Coastguard Worker  Collection collection = 1 [(google.api.field_behavior) = REQUIRED];
1252*d5c09012SAndroid Build Coastguard Worker
1253*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated.
1254*d5c09012SAndroid Build Coastguard Worker  // - Unset `update_mask` or set `update_mask` to be a single "*" only will
1255*d5c09012SAndroid Build Coastguard Worker  //   update all updatable fields with the value provided in `collection`.
1256*d5c09012SAndroid Build Coastguard Worker  // - To update `display_name` value to empty string, set it in the
1257*d5c09012SAndroid Build Coastguard Worker  // `collection`
1258*d5c09012SAndroid Build Coastguard Worker  //   to empty string, and set `update_mask` with "display_name". Same applies
1259*d5c09012SAndroid Build Coastguard Worker  //   to other updatable string fields in the `collection`.
1260*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
1261*d5c09012SAndroid Build Coastguard Worker}
1262*d5c09012SAndroid Build Coastguard Worker
1263*d5c09012SAndroid Build Coastguard Worker// Request message for ListCollections.
1264*d5c09012SAndroid Build Coastguard Workermessage ListCollectionsRequest {
1265*d5c09012SAndroid Build Coastguard Worker  // Required. The parent corpus. Format:
1266*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}`
1267*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1268*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1269*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1270*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/Collection"
1271*d5c09012SAndroid Build Coastguard Worker    }
1272*d5c09012SAndroid Build Coastguard Worker  ];
1273*d5c09012SAndroid Build Coastguard Worker
1274*d5c09012SAndroid Build Coastguard Worker  // The maximum number of collections to return. The service may return fewer
1275*d5c09012SAndroid Build Coastguard Worker  // than this value. If unspecified, at most 50 collections will be returned.
1276*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
1277*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
1278*d5c09012SAndroid Build Coastguard Worker
1279*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListCollectionsRequest` call.
1280*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
1281*d5c09012SAndroid Build Coastguard Worker  //
1282*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to `ListCollectionsRequest`
1283*d5c09012SAndroid Build Coastguard Worker  // must match the call that provided the page token.
1284*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
1285*d5c09012SAndroid Build Coastguard Worker}
1286*d5c09012SAndroid Build Coastguard Worker
1287*d5c09012SAndroid Build Coastguard Worker// Response message for ListCollections.
1288*d5c09012SAndroid Build Coastguard Workermessage ListCollectionsResponse {
1289*d5c09012SAndroid Build Coastguard Worker  // The collections from the specified corpus.
1290*d5c09012SAndroid Build Coastguard Worker  repeated Collection collections = 1;
1291*d5c09012SAndroid Build Coastguard Worker
1292*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
1293*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
1294*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1295*d5c09012SAndroid Build Coastguard Worker}
1296*d5c09012SAndroid Build Coastguard Worker
1297*d5c09012SAndroid Build Coastguard Worker// Request message for AddCollectionItem.
1298*d5c09012SAndroid Build Coastguard Workermessage AddCollectionItemRequest {
1299*d5c09012SAndroid Build Coastguard Worker  // Required. The item to be added.
1300*d5c09012SAndroid Build Coastguard Worker  CollectionItem item = 1 [(google.api.field_behavior) = REQUIRED];
1301*d5c09012SAndroid Build Coastguard Worker}
1302*d5c09012SAndroid Build Coastguard Worker
1303*d5c09012SAndroid Build Coastguard Worker// Response message for AddCollectionItem.
1304*d5c09012SAndroid Build Coastguard Workermessage AddCollectionItemResponse {
1305*d5c09012SAndroid Build Coastguard Worker  // The item that has already been added.
1306*d5c09012SAndroid Build Coastguard Worker  CollectionItem item = 1;
1307*d5c09012SAndroid Build Coastguard Worker}
1308*d5c09012SAndroid Build Coastguard Worker
1309*d5c09012SAndroid Build Coastguard Worker// Request message for RemoveCollectionItem.
1310*d5c09012SAndroid Build Coastguard Workermessage RemoveCollectionItemRequest {
1311*d5c09012SAndroid Build Coastguard Worker  // Required. The item to be removed.
1312*d5c09012SAndroid Build Coastguard Worker  CollectionItem item = 1 [(google.api.field_behavior) = REQUIRED];
1313*d5c09012SAndroid Build Coastguard Worker}
1314*d5c09012SAndroid Build Coastguard Worker
1315*d5c09012SAndroid Build Coastguard Worker// Request message for RemoveCollectionItem.
1316*d5c09012SAndroid Build Coastguard Workermessage RemoveCollectionItemResponse {
1317*d5c09012SAndroid Build Coastguard Worker  // The item that has already been removed.
1318*d5c09012SAndroid Build Coastguard Worker  CollectionItem item = 1;
1319*d5c09012SAndroid Build Coastguard Worker}
1320*d5c09012SAndroid Build Coastguard Worker
1321*d5c09012SAndroid Build Coastguard Worker// Request message for ViewCollectionItems.
1322*d5c09012SAndroid Build Coastguard Workermessage ViewCollectionItemsRequest {
1323*d5c09012SAndroid Build Coastguard Worker  // Required. The collection to view. Format:
1324*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}`
1325*d5c09012SAndroid Build Coastguard Worker  string collection = 1 [
1326*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1327*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1328*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Collection"
1329*d5c09012SAndroid Build Coastguard Worker    }
1330*d5c09012SAndroid Build Coastguard Worker  ];
1331*d5c09012SAndroid Build Coastguard Worker
1332*d5c09012SAndroid Build Coastguard Worker  // The maximum number of collections to return. The service may return fewer
1333*d5c09012SAndroid Build Coastguard Worker  // than this value. If unspecified, at most 50 collections will be returned.
1334*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
1335*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
1336*d5c09012SAndroid Build Coastguard Worker
1337*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ViewCollectionItemsRequest` call.
1338*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
1339*d5c09012SAndroid Build Coastguard Worker  //
1340*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to
1341*d5c09012SAndroid Build Coastguard Worker  // `ViewCollectionItemsRequest` must match the call that provided the page
1342*d5c09012SAndroid Build Coastguard Worker  // token.
1343*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
1344*d5c09012SAndroid Build Coastguard Worker}
1345*d5c09012SAndroid Build Coastguard Worker
1346*d5c09012SAndroid Build Coastguard Worker// Response message for ViewCollectionItems.
1347*d5c09012SAndroid Build Coastguard Workermessage ViewCollectionItemsResponse {
1348*d5c09012SAndroid Build Coastguard Worker  // The items from the specified collection.
1349*d5c09012SAndroid Build Coastguard Worker  repeated CollectionItem items = 1;
1350*d5c09012SAndroid Build Coastguard Worker
1351*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
1352*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
1353*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1354*d5c09012SAndroid Build Coastguard Worker}
1355*d5c09012SAndroid Build Coastguard Worker
1356*d5c09012SAndroid Build Coastguard Worker// A collection is a resource in a corpus. It serves as a container of
1357*d5c09012SAndroid Build Coastguard Worker// references to original resources.
1358*d5c09012SAndroid Build Coastguard Workermessage Collection {
1359*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1360*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/Collection"
1361*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}"
1362*d5c09012SAndroid Build Coastguard Worker  };
1363*d5c09012SAndroid Build Coastguard Worker
1364*d5c09012SAndroid Build Coastguard Worker  // Output only. Resource name of the collection. Format:
1365*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}`
1366*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1367*d5c09012SAndroid Build Coastguard Worker
1368*d5c09012SAndroid Build Coastguard Worker  // Optional. The collection name for displaying.
1369*d5c09012SAndroid Build Coastguard Worker  // The name can be up to 256 characters long.
1370*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
1371*d5c09012SAndroid Build Coastguard Worker
1372*d5c09012SAndroid Build Coastguard Worker  // Optional. Description of the collection. Can be up to 25000 characters
1373*d5c09012SAndroid Build Coastguard Worker  // long.
1374*d5c09012SAndroid Build Coastguard Worker  string description = 3 [(google.api.field_behavior) = OPTIONAL];
1375*d5c09012SAndroid Build Coastguard Worker}
1376*d5c09012SAndroid Build Coastguard Worker
1377*d5c09012SAndroid Build Coastguard Worker// A CollectionItem is an item in a collection.
1378*d5c09012SAndroid Build Coastguard Worker// Each item is a reference to the original resource in a collection.
1379*d5c09012SAndroid Build Coastguard Workermessage CollectionItem {
1380*d5c09012SAndroid Build Coastguard Worker  // CollectionItem types.
1381*d5c09012SAndroid Build Coastguard Worker  enum Type {
1382*d5c09012SAndroid Build Coastguard Worker    // The default type of item should never happen.
1383*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
1384*d5c09012SAndroid Build Coastguard Worker
1385*d5c09012SAndroid Build Coastguard Worker    // Asset type item.
1386*d5c09012SAndroid Build Coastguard Worker    ASSET = 1;
1387*d5c09012SAndroid Build Coastguard Worker  }
1388*d5c09012SAndroid Build Coastguard Worker
1389*d5c09012SAndroid Build Coastguard Worker  // Required. The collection name that this item belongs to. Format:
1390*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}`
1391*d5c09012SAndroid Build Coastguard Worker  string collection = 1 [
1392*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1393*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1394*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Collection"
1395*d5c09012SAndroid Build Coastguard Worker    }
1396*d5c09012SAndroid Build Coastguard Worker  ];
1397*d5c09012SAndroid Build Coastguard Worker
1398*d5c09012SAndroid Build Coastguard Worker  // Required. The type of item.
1399*d5c09012SAndroid Build Coastguard Worker  Type type = 2 [(google.api.field_behavior) = REQUIRED];
1400*d5c09012SAndroid Build Coastguard Worker
1401*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the CollectionItem. Its format depends on the `type`
1402*d5c09012SAndroid Build Coastguard Worker  // above. For ASSET:
1403*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}`
1404*d5c09012SAndroid Build Coastguard Worker  string item_resource = 3 [(google.api.field_behavior) = REQUIRED];
1405*d5c09012SAndroid Build Coastguard Worker}
1406*d5c09012SAndroid Build Coastguard Worker
1407*d5c09012SAndroid Build Coastguard Worker// Message for creating an Index.
1408*d5c09012SAndroid Build Coastguard Workermessage CreateIndexRequest {
1409*d5c09012SAndroid Build Coastguard Worker  // Required. Value for the parent. The resource name of the Corpus under which
1410*d5c09012SAndroid Build Coastguard Worker  // this index is created. Format:
1411*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
1412*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1413*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1414*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
1415*d5c09012SAndroid Build Coastguard Worker  ];
1416*d5c09012SAndroid Build Coastguard Worker
1417*d5c09012SAndroid Build Coastguard Worker  // Optional. The ID for the index. This will become the final resource name
1418*d5c09012SAndroid Build Coastguard Worker  // for the index. If the user does not specify this value, it will be
1419*d5c09012SAndroid Build Coastguard Worker  // generated by system.
1420*d5c09012SAndroid Build Coastguard Worker  //
1421*d5c09012SAndroid Build Coastguard Worker  // This value should be up to 63 characters, and valid characters
1422*d5c09012SAndroid Build Coastguard Worker  // are /[a-z][0-9]-/. The first character must be a letter, the last could be
1423*d5c09012SAndroid Build Coastguard Worker  // a letter or a number.
1424*d5c09012SAndroid Build Coastguard Worker  string index_id = 2 [(google.api.field_behavior) = OPTIONAL];
1425*d5c09012SAndroid Build Coastguard Worker
1426*d5c09012SAndroid Build Coastguard Worker  // Required. The index being created.
1427*d5c09012SAndroid Build Coastguard Worker  Index index = 3 [(google.api.field_behavior) = REQUIRED];
1428*d5c09012SAndroid Build Coastguard Worker}
1429*d5c09012SAndroid Build Coastguard Worker
1430*d5c09012SAndroid Build Coastguard Worker// Metadata message for CreateIndexRequest
1431*d5c09012SAndroid Build Coastguard Workermessage CreateIndexMetadata {
1432*d5c09012SAndroid Build Coastguard Worker  // Common metadata of the long-running operation.
1433*d5c09012SAndroid Build Coastguard Worker  OperationMetadata operation_metadata = 1;
1434*d5c09012SAndroid Build Coastguard Worker}
1435*d5c09012SAndroid Build Coastguard Worker
1436*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateIndex.
1437*d5c09012SAndroid Build Coastguard Workermessage UpdateIndexRequest {
1438*d5c09012SAndroid Build Coastguard Worker  // Required. The resource being updated.
1439*d5c09012SAndroid Build Coastguard Worker  Index index = 1 [(google.api.field_behavior) = REQUIRED];
1440*d5c09012SAndroid Build Coastguard Worker
1441*d5c09012SAndroid Build Coastguard Worker  // Required. Field mask is used to specify the fields to be overwritten in the
1442*d5c09012SAndroid Build Coastguard Worker  // Index resource by the update. The fields specified in the update_mask are
1443*d5c09012SAndroid Build Coastguard Worker  // relative to the resource, not the full request. A field of the resource
1444*d5c09012SAndroid Build Coastguard Worker  // will be overwritten if it is in the mask. Empty field mask is not allowed.
1445*d5c09012SAndroid Build Coastguard Worker  // If the mask is "*", it triggers a full update of the index, and also a
1446*d5c09012SAndroid Build Coastguard Worker  // whole rebuild of index data.
1447*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2
1448*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
1449*d5c09012SAndroid Build Coastguard Worker}
1450*d5c09012SAndroid Build Coastguard Worker
1451*d5c09012SAndroid Build Coastguard Worker// Metadata message for UpdateIndexRequest
1452*d5c09012SAndroid Build Coastguard Workermessage UpdateIndexMetadata {
1453*d5c09012SAndroid Build Coastguard Worker  // Common metadata of the long-running operation.
1454*d5c09012SAndroid Build Coastguard Worker  OperationMetadata operation_metadata = 1;
1455*d5c09012SAndroid Build Coastguard Worker}
1456*d5c09012SAndroid Build Coastguard Worker
1457*d5c09012SAndroid Build Coastguard Worker// Request message for getting an Index.
1458*d5c09012SAndroid Build Coastguard Workermessage GetIndexRequest {
1459*d5c09012SAndroid Build Coastguard Worker  // Required. Name of the Index resource.
1460*d5c09012SAndroid Build Coastguard Worker  // Format:
1461*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}`
1462*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1463*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1464*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Index" }
1465*d5c09012SAndroid Build Coastguard Worker  ];
1466*d5c09012SAndroid Build Coastguard Worker}
1467*d5c09012SAndroid Build Coastguard Worker
1468*d5c09012SAndroid Build Coastguard Worker// Request message for listing Indexes.
1469*d5c09012SAndroid Build Coastguard Workermessage ListIndexesRequest {
1470*d5c09012SAndroid Build Coastguard Worker  // Required. The parent corpus that owns this collection of indexes.
1471*d5c09012SAndroid Build Coastguard Worker  // Format:
1472*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}`
1473*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1474*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1475*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1476*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/Index"
1477*d5c09012SAndroid Build Coastguard Worker    }
1478*d5c09012SAndroid Build Coastguard Worker  ];
1479*d5c09012SAndroid Build Coastguard Worker
1480*d5c09012SAndroid Build Coastguard Worker  // The maximum number of indexes to return. The service may return fewer than
1481*d5c09012SAndroid Build Coastguard Worker  // this value.
1482*d5c09012SAndroid Build Coastguard Worker  // If unspecified, at most 50 indexes will be returned.
1483*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
1484*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
1485*d5c09012SAndroid Build Coastguard Worker
1486*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListIndexes` call.
1487*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
1488*d5c09012SAndroid Build Coastguard Worker  //
1489*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to `ListIndexes` must match
1490*d5c09012SAndroid Build Coastguard Worker  // the call that provided the page token.
1491*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
1492*d5c09012SAndroid Build Coastguard Worker}
1493*d5c09012SAndroid Build Coastguard Worker
1494*d5c09012SAndroid Build Coastguard Worker// Response message for ListIndexes.
1495*d5c09012SAndroid Build Coastguard Workermessage ListIndexesResponse {
1496*d5c09012SAndroid Build Coastguard Worker  // The indexes under the specified corpus.
1497*d5c09012SAndroid Build Coastguard Worker  repeated Index indexes = 1;
1498*d5c09012SAndroid Build Coastguard Worker
1499*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
1500*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
1501*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1502*d5c09012SAndroid Build Coastguard Worker}
1503*d5c09012SAndroid Build Coastguard Worker
1504*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteIndex.
1505*d5c09012SAndroid Build Coastguard Workermessage DeleteIndexRequest {
1506*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the index to delete.
1507*d5c09012SAndroid Build Coastguard Worker  // Format:
1508*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}`
1509*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1510*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1511*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Index" }
1512*d5c09012SAndroid Build Coastguard Worker  ];
1513*d5c09012SAndroid Build Coastguard Worker}
1514*d5c09012SAndroid Build Coastguard Worker
1515*d5c09012SAndroid Build Coastguard Worker// Metadata message for DeleteIndexRequest
1516*d5c09012SAndroid Build Coastguard Workermessage DeleteIndexMetadata {}
1517*d5c09012SAndroid Build Coastguard Worker
1518*d5c09012SAndroid Build Coastguard Worker// An Index is a resource in Corpus. It contains an indexed version of the
1519*d5c09012SAndroid Build Coastguard Worker// assets and annotations. When deployed to an endpoint, it will allow users to
1520*d5c09012SAndroid Build Coastguard Worker// search the Index.
1521*d5c09012SAndroid Build Coastguard Workermessage Index {
1522*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1523*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/Index"
1524*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}"
1525*d5c09012SAndroid Build Coastguard Worker  };
1526*d5c09012SAndroid Build Coastguard Worker
1527*d5c09012SAndroid Build Coastguard Worker  // Enum representing the different states through which an Index might cycle
1528*d5c09012SAndroid Build Coastguard Worker  // during its lifetime.
1529*d5c09012SAndroid Build Coastguard Worker  enum State {
1530*d5c09012SAndroid Build Coastguard Worker    // The default value. Should not be used.
1531*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
1532*d5c09012SAndroid Build Coastguard Worker
1533*d5c09012SAndroid Build Coastguard Worker    // State CREATING.
1534*d5c09012SAndroid Build Coastguard Worker    CREATING = 1;
1535*d5c09012SAndroid Build Coastguard Worker
1536*d5c09012SAndroid Build Coastguard Worker    // State CREATED.
1537*d5c09012SAndroid Build Coastguard Worker    CREATED = 2;
1538*d5c09012SAndroid Build Coastguard Worker
1539*d5c09012SAndroid Build Coastguard Worker    // State UPDATING.
1540*d5c09012SAndroid Build Coastguard Worker    UPDATING = 3;
1541*d5c09012SAndroid Build Coastguard Worker  }
1542*d5c09012SAndroid Build Coastguard Worker
1543*d5c09012SAndroid Build Coastguard Worker  // Specifies how assets are selected for this index. Default to
1544*d5c09012SAndroid Build Coastguard Worker  // entire_corpus if unspecified. Behavior in UpdateIndex: if update_mask
1545*d5c09012SAndroid Build Coastguard Worker  // includes one of the asset_filter field paths, the index will be rebuilt
1546*d5c09012SAndroid Build Coastguard Worker  // with latest assets, including their analyzed data and annotations.
1547*d5c09012SAndroid Build Coastguard Worker  oneof asset_filter {
1548*d5c09012SAndroid Build Coastguard Worker    // Include all assets under the corpus.
1549*d5c09012SAndroid Build Coastguard Worker    bool entire_corpus = 9;
1550*d5c09012SAndroid Build Coastguard Worker  }
1551*d5c09012SAndroid Build Coastguard Worker
1552*d5c09012SAndroid Build Coastguard Worker  // Output only. Resource name of the Index resource.
1553*d5c09012SAndroid Build Coastguard Worker  // Format:
1554*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/indexes/{index_id}`
1555*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1556*d5c09012SAndroid Build Coastguard Worker
1557*d5c09012SAndroid Build Coastguard Worker  // Optional. Optional user-specified display name of the index.
1558*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
1559*d5c09012SAndroid Build Coastguard Worker
1560*d5c09012SAndroid Build Coastguard Worker  // Optional. Optional description of the index.
1561*d5c09012SAndroid Build Coastguard Worker  string description = 3 [(google.api.field_behavior) = OPTIONAL];
1562*d5c09012SAndroid Build Coastguard Worker
1563*d5c09012SAndroid Build Coastguard Worker  // Output only. State of the index.
1564*d5c09012SAndroid Build Coastguard Worker  State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
1565*d5c09012SAndroid Build Coastguard Worker
1566*d5c09012SAndroid Build Coastguard Worker  // Output only. The create timestamp.
1567*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 5
1568*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1569*d5c09012SAndroid Build Coastguard Worker
1570*d5c09012SAndroid Build Coastguard Worker  // Output only. The update timestamp.
1571*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 6
1572*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1573*d5c09012SAndroid Build Coastguard Worker
1574*d5c09012SAndroid Build Coastguard Worker  // Output only. References to the deployed index instance.
1575*d5c09012SAndroid Build Coastguard Worker  // Index of VIDEO_ON_DEMAND corpus can have at most one deployed index.
1576*d5c09012SAndroid Build Coastguard Worker  // Index of IMAGE corpus can have multiple deployed indexes.
1577*d5c09012SAndroid Build Coastguard Worker  repeated DeployedIndexReference deployed_indexes = 8
1578*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1579*d5c09012SAndroid Build Coastguard Worker}
1580*d5c09012SAndroid Build Coastguard Worker
1581*d5c09012SAndroid Build Coastguard Worker// Points to a DeployedIndex.
1582*d5c09012SAndroid Build Coastguard Workermessage DeployedIndexReference {
1583*d5c09012SAndroid Build Coastguard Worker  // Immutable. A resource name of the IndexEndpoint.
1584*d5c09012SAndroid Build Coastguard Worker  string index_endpoint = 1 [
1585*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE,
1586*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1587*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/IndexEndpoint"
1588*d5c09012SAndroid Build Coastguard Worker    }
1589*d5c09012SAndroid Build Coastguard Worker  ];
1590*d5c09012SAndroid Build Coastguard Worker}
1591*d5c09012SAndroid Build Coastguard Worker
1592*d5c09012SAndroid Build Coastguard Worker// Corpus is a set of media contents for management.
1593*d5c09012SAndroid Build Coastguard Worker// Within a corpus, media shares the same data schema. Search is also restricted
1594*d5c09012SAndroid Build Coastguard Worker// within a single corpus.
1595*d5c09012SAndroid Build Coastguard Workermessage Corpus {
1596*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1597*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/Corpus"
1598*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}"
1599*d5c09012SAndroid Build Coastguard Worker  };
1600*d5c09012SAndroid Build Coastguard Worker
1601*d5c09012SAndroid Build Coastguard Worker  // Type of the asset inside the corpus.
1602*d5c09012SAndroid Build Coastguard Worker  enum Type {
1603*d5c09012SAndroid Build Coastguard Worker    // The default type, not supposed to be used. If this default type is used,
1604*d5c09012SAndroid Build Coastguard Worker    // the corpus will be created as STREAM_VIDEO corpus.
1605*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
1606*d5c09012SAndroid Build Coastguard Worker
1607*d5c09012SAndroid Build Coastguard Worker    // Asset is a live streaming video.
1608*d5c09012SAndroid Build Coastguard Worker    STREAM_VIDEO = 1;
1609*d5c09012SAndroid Build Coastguard Worker
1610*d5c09012SAndroid Build Coastguard Worker    // Asset is an image.
1611*d5c09012SAndroid Build Coastguard Worker    IMAGE = 2;
1612*d5c09012SAndroid Build Coastguard Worker
1613*d5c09012SAndroid Build Coastguard Worker    // Asset is a batch video.
1614*d5c09012SAndroid Build Coastguard Worker    VIDEO_ON_DEMAND = 3;
1615*d5c09012SAndroid Build Coastguard Worker  }
1616*d5c09012SAndroid Build Coastguard Worker
1617*d5c09012SAndroid Build Coastguard Worker  // Resource name of the corpus.
1618*d5c09012SAndroid Build Coastguard Worker  // Format:
1619*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
1620*d5c09012SAndroid Build Coastguard Worker  string name = 1;
1621*d5c09012SAndroid Build Coastguard Worker
1622*d5c09012SAndroid Build Coastguard Worker  // Required. The corpus name to shown in the UI. The name can be up to 32
1623*d5c09012SAndroid Build Coastguard Worker  // characters long.
1624*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = REQUIRED];
1625*d5c09012SAndroid Build Coastguard Worker
1626*d5c09012SAndroid Build Coastguard Worker  // Optional. Description of the corpus. Can be up to 25000 characters long.
1627*d5c09012SAndroid Build Coastguard Worker  string description = 3 [(google.api.field_behavior) = OPTIONAL];
1628*d5c09012SAndroid Build Coastguard Worker
1629*d5c09012SAndroid Build Coastguard Worker  // Optional. The default TTL value for all assets under the corpus without a
1630*d5c09012SAndroid Build Coastguard Worker  // asset level user-defined TTL. For STREAM_VIDEO type corpora, this is
1631*d5c09012SAndroid Build Coastguard Worker  // required and the maximum allowed
1632*d5c09012SAndroid Build Coastguard Worker  //   default_ttl is 10 years.
1633*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration default_ttl = 5
1634*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1635*d5c09012SAndroid Build Coastguard Worker
1636*d5c09012SAndroid Build Coastguard Worker  // Optional. Type of the asset inside corpus.
1637*d5c09012SAndroid Build Coastguard Worker  Type type = 7 [(google.api.field_behavior) = OPTIONAL];
1638*d5c09012SAndroid Build Coastguard Worker
1639*d5c09012SAndroid Build Coastguard Worker  // Default search capability setting on corpus level.
1640*d5c09012SAndroid Build Coastguard Worker  SearchCapabilitySetting search_capability_setting = 8;
1641*d5c09012SAndroid Build Coastguard Worker}
1642*d5c09012SAndroid Build Coastguard Worker
1643*d5c09012SAndroid Build Coastguard Worker// Request message for GetCorpus.
1644*d5c09012SAndroid Build Coastguard Workermessage GetCorpusRequest {
1645*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the corpus to retrieve.
1646*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1647*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1648*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
1649*d5c09012SAndroid Build Coastguard Worker  ];
1650*d5c09012SAndroid Build Coastguard Worker}
1651*d5c09012SAndroid Build Coastguard Worker
1652*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateCorpus.
1653*d5c09012SAndroid Build Coastguard Workermessage UpdateCorpusRequest {
1654*d5c09012SAndroid Build Coastguard Worker  // Required. The corpus which replaces the resource on the server.
1655*d5c09012SAndroid Build Coastguard Worker  Corpus corpus = 1 [(google.api.field_behavior) = REQUIRED];
1656*d5c09012SAndroid Build Coastguard Worker
1657*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated.
1658*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
1659*d5c09012SAndroid Build Coastguard Worker}
1660*d5c09012SAndroid Build Coastguard Worker
1661*d5c09012SAndroid Build Coastguard Worker// Request message for ListCorpora.
1662*d5c09012SAndroid Build Coastguard Workermessage ListCorporaRequest {
1663*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the project from which to list corpora.
1664*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1665*d5c09012SAndroid Build Coastguard Worker
1666*d5c09012SAndroid Build Coastguard Worker  // Requested page size. API may return fewer results than requested.
1667*d5c09012SAndroid Build Coastguard Worker  // If negative, INVALID_ARGUMENT error will be returned.
1668*d5c09012SAndroid Build Coastguard Worker  // If unspecified or 0, API will pick a default size, which is 10.
1669*d5c09012SAndroid Build Coastguard Worker  // If the requested page size is larger than the maximum size, API will pick
1670*d5c09012SAndroid Build Coastguard Worker  // use the maximum size, which is 20.
1671*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
1672*d5c09012SAndroid Build Coastguard Worker
1673*d5c09012SAndroid Build Coastguard Worker  // A token identifying a page of results for the server to return.
1674*d5c09012SAndroid Build Coastguard Worker  // Typically obtained via
1675*d5c09012SAndroid Build Coastguard Worker  // [ListCorporaResponse.next_page_token][google.cloud.visionai.v1.ListCorporaResponse.next_page_token]
1676*d5c09012SAndroid Build Coastguard Worker  // of the previous
1677*d5c09012SAndroid Build Coastguard Worker  // [Warehouse.ListCorpora][google.cloud.visionai.v1.Warehouse.ListCorpora]
1678*d5c09012SAndroid Build Coastguard Worker  // call.
1679*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
1680*d5c09012SAndroid Build Coastguard Worker
1681*d5c09012SAndroid Build Coastguard Worker  // The filter applied to the returned corpora list.
1682*d5c09012SAndroid Build Coastguard Worker  // Only the following restrictions are supported:
1683*d5c09012SAndroid Build Coastguard Worker  // `type=<Corpus.Type>`,
1684*d5c09012SAndroid Build Coastguard Worker  // `type!=<Corpus.Type>`.
1685*d5c09012SAndroid Build Coastguard Worker  string filter = 5;
1686*d5c09012SAndroid Build Coastguard Worker}
1687*d5c09012SAndroid Build Coastguard Worker
1688*d5c09012SAndroid Build Coastguard Worker// Response message for ListCorpora.
1689*d5c09012SAndroid Build Coastguard Workermessage ListCorporaResponse {
1690*d5c09012SAndroid Build Coastguard Worker  // The corpora in the project.
1691*d5c09012SAndroid Build Coastguard Worker  repeated Corpus corpora = 1;
1692*d5c09012SAndroid Build Coastguard Worker
1693*d5c09012SAndroid Build Coastguard Worker  // A token to retrieve next page of results.
1694*d5c09012SAndroid Build Coastguard Worker  // Pass to
1695*d5c09012SAndroid Build Coastguard Worker  // [ListCorporaRequest.page_token][google.cloud.visionai.v1.ListCorporaRequest.page_token]
1696*d5c09012SAndroid Build Coastguard Worker  // to obtain that page.
1697*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1698*d5c09012SAndroid Build Coastguard Worker}
1699*d5c09012SAndroid Build Coastguard Worker
1700*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteCorpus.
1701*d5c09012SAndroid Build Coastguard Workermessage DeleteCorpusRequest {
1702*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the corpus to delete.
1703*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1704*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1705*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
1706*d5c09012SAndroid Build Coastguard Worker  ];
1707*d5c09012SAndroid Build Coastguard Worker}
1708*d5c09012SAndroid Build Coastguard Worker
1709*d5c09012SAndroid Build Coastguard Worker// Request message for AnalyzeCorpus.
1710*d5c09012SAndroid Build Coastguard Workermessage AnalyzeCorpusRequest {
1711*d5c09012SAndroid Build Coastguard Worker  // Required. The parent corpus resource where the assets will be analyzed.
1712*d5c09012SAndroid Build Coastguard Worker  // Format:
1713*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
1714*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1715*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1716*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
1717*d5c09012SAndroid Build Coastguard Worker  ];
1718*d5c09012SAndroid Build Coastguard Worker}
1719*d5c09012SAndroid Build Coastguard Worker
1720*d5c09012SAndroid Build Coastguard Worker// The metadata message for AnalyzeCorpus LRO.
1721*d5c09012SAndroid Build Coastguard Workermessage AnalyzeCorpusMetadata {
1722*d5c09012SAndroid Build Coastguard Worker  // The metadata of the operation.
1723*d5c09012SAndroid Build Coastguard Worker  OperationMetadata metadata = 1;
1724*d5c09012SAndroid Build Coastguard Worker}
1725*d5c09012SAndroid Build Coastguard Worker
1726*d5c09012SAndroid Build Coastguard Worker// The response message for AnalyzeCorpus LRO.
1727*d5c09012SAndroid Build Coastguard Workermessage AnalyzeCorpusResponse {}
1728*d5c09012SAndroid Build Coastguard Worker
1729*d5c09012SAndroid Build Coastguard Worker// Request message for CreateDataSchema.
1730*d5c09012SAndroid Build Coastguard Workermessage CreateDataSchemaRequest {
1731*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this data schema will be created.
1732*d5c09012SAndroid Build Coastguard Worker  // Format:
1733*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
1734*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1735*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1736*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
1737*d5c09012SAndroid Build Coastguard Worker  ];
1738*d5c09012SAndroid Build Coastguard Worker
1739*d5c09012SAndroid Build Coastguard Worker  // Required. The data schema to create.
1740*d5c09012SAndroid Build Coastguard Worker  DataSchema data_schema = 2 [(google.api.field_behavior) = REQUIRED];
1741*d5c09012SAndroid Build Coastguard Worker}
1742*d5c09012SAndroid Build Coastguard Worker
1743*d5c09012SAndroid Build Coastguard Worker// Data schema indicates how the user specified annotation is interpreted in the
1744*d5c09012SAndroid Build Coastguard Worker// system.
1745*d5c09012SAndroid Build Coastguard Workermessage DataSchema {
1746*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1747*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/DataSchema"
1748*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/dataSchemas/{data_schema}"
1749*d5c09012SAndroid Build Coastguard Worker  };
1750*d5c09012SAndroid Build Coastguard Worker
1751*d5c09012SAndroid Build Coastguard Worker  // Resource name of the data schema in the form of:
1752*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/dataSchemas/{data_schema}`
1753*d5c09012SAndroid Build Coastguard Worker  // where {data_schema} part should be the same as the `key` field below.
1754*d5c09012SAndroid Build Coastguard Worker  string name = 1;
1755*d5c09012SAndroid Build Coastguard Worker
1756*d5c09012SAndroid Build Coastguard Worker  // Required. The key of this data schema. This key should be matching the key
1757*d5c09012SAndroid Build Coastguard Worker  // of user specified annotation and unique inside corpus. This value can be up
1758*d5c09012SAndroid Build Coastguard Worker  // to 63 characters, and valid characters are /[a-z][0-9]-/. The first
1759*d5c09012SAndroid Build Coastguard Worker  // character must be a letter, the last could be a letter or a number.
1760*d5c09012SAndroid Build Coastguard Worker  string key = 2 [(google.api.field_behavior) = REQUIRED];
1761*d5c09012SAndroid Build Coastguard Worker
1762*d5c09012SAndroid Build Coastguard Worker  // The schema details mapping to the key.
1763*d5c09012SAndroid Build Coastguard Worker  DataSchemaDetails schema_details = 3;
1764*d5c09012SAndroid Build Coastguard Worker}
1765*d5c09012SAndroid Build Coastguard Worker
1766*d5c09012SAndroid Build Coastguard Worker// Data schema details indicates the data type and the data struct corresponding
1767*d5c09012SAndroid Build Coastguard Worker// to the key of user specified annotation.
1768*d5c09012SAndroid Build Coastguard Workermessage DataSchemaDetails {
1769*d5c09012SAndroid Build Coastguard Worker  // The configuration for `PROTO_ANY` data type.
1770*d5c09012SAndroid Build Coastguard Worker  message ProtoAnyConfig {
1771*d5c09012SAndroid Build Coastguard Worker    // The type URI of the proto message.
1772*d5c09012SAndroid Build Coastguard Worker    string type_uri = 1;
1773*d5c09012SAndroid Build Coastguard Worker  }
1774*d5c09012SAndroid Build Coastguard Worker
1775*d5c09012SAndroid Build Coastguard Worker  // The configuration for `LIST` data type.
1776*d5c09012SAndroid Build Coastguard Worker  message ListConfig {
1777*d5c09012SAndroid Build Coastguard Worker    // The value's data schema in the list.
1778*d5c09012SAndroid Build Coastguard Worker    DataSchemaDetails value_schema = 1;
1779*d5c09012SAndroid Build Coastguard Worker  }
1780*d5c09012SAndroid Build Coastguard Worker
1781*d5c09012SAndroid Build Coastguard Worker  // The configuration for `CUSTOMIZED_STRUCT` data type.
1782*d5c09012SAndroid Build Coastguard Worker  message CustomizedStructConfig {
1783*d5c09012SAndroid Build Coastguard Worker    // Direct child elements data schemas.
1784*d5c09012SAndroid Build Coastguard Worker    map<string, DataSchemaDetails> field_schemas = 1;
1785*d5c09012SAndroid Build Coastguard Worker  }
1786*d5c09012SAndroid Build Coastguard Worker
1787*d5c09012SAndroid Build Coastguard Worker  // The search strategy for annotations value of the `key`.
1788*d5c09012SAndroid Build Coastguard Worker  message SearchStrategy {
1789*d5c09012SAndroid Build Coastguard Worker    // The types of search strategies to be applied on the annotation key.
1790*d5c09012SAndroid Build Coastguard Worker    enum SearchStrategyType {
1791*d5c09012SAndroid Build Coastguard Worker      // Annotatation values of the `key` above will not be searchable.
1792*d5c09012SAndroid Build Coastguard Worker      NO_SEARCH = 0;
1793*d5c09012SAndroid Build Coastguard Worker
1794*d5c09012SAndroid Build Coastguard Worker      // When searching with `key`, the value must be exactly as the annotation
1795*d5c09012SAndroid Build Coastguard Worker      // value that has been ingested.
1796*d5c09012SAndroid Build Coastguard Worker      EXACT_SEARCH = 1;
1797*d5c09012SAndroid Build Coastguard Worker
1798*d5c09012SAndroid Build Coastguard Worker      // When searching with `key`, Warehouse will perform broad search based on
1799*d5c09012SAndroid Build Coastguard Worker      // semantic of the annotation value.
1800*d5c09012SAndroid Build Coastguard Worker      SMART_SEARCH = 2;
1801*d5c09012SAndroid Build Coastguard Worker    }
1802*d5c09012SAndroid Build Coastguard Worker
1803*d5c09012SAndroid Build Coastguard Worker    // The type of search strategy to be applied on the `key` above.
1804*d5c09012SAndroid Build Coastguard Worker    // The allowed `search_strategy_type` is different for different data types,
1805*d5c09012SAndroid Build Coastguard Worker    // which is documented in the DataSchemaDetails.DataType. Specifying
1806*d5c09012SAndroid Build Coastguard Worker    // unsupported `search_strategy_type` for data types will result in
1807*d5c09012SAndroid Build Coastguard Worker    // INVALID_ARGUMENT error.
1808*d5c09012SAndroid Build Coastguard Worker    SearchStrategyType search_strategy_type = 1;
1809*d5c09012SAndroid Build Coastguard Worker  }
1810*d5c09012SAndroid Build Coastguard Worker
1811*d5c09012SAndroid Build Coastguard Worker  // Data type of the annotation.
1812*d5c09012SAndroid Build Coastguard Worker  enum DataType {
1813*d5c09012SAndroid Build Coastguard Worker    // Unspecified type.
1814*d5c09012SAndroid Build Coastguard Worker    DATA_TYPE_UNSPECIFIED = 0;
1815*d5c09012SAndroid Build Coastguard Worker
1816*d5c09012SAndroid Build Coastguard Worker    // Integer type.
1817*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
1818*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
1819*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
1820*d5c09012SAndroid Build Coastguard Worker    //   Supports query by IntRangeArray.
1821*d5c09012SAndroid Build Coastguard Worker    INTEGER = 1;
1822*d5c09012SAndroid Build Coastguard Worker
1823*d5c09012SAndroid Build Coastguard Worker    // Float type.
1824*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
1825*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
1826*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
1827*d5c09012SAndroid Build Coastguard Worker    //   Supports query by FloatRangeArray.
1828*d5c09012SAndroid Build Coastguard Worker    FLOAT = 2;
1829*d5c09012SAndroid Build Coastguard Worker
1830*d5c09012SAndroid Build Coastguard Worker    // String type.
1831*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
1832*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
1833*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH,
1834*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.SMART_SEARCH.
1835*d5c09012SAndroid Build Coastguard Worker    STRING = 3;
1836*d5c09012SAndroid Build Coastguard Worker
1837*d5c09012SAndroid Build Coastguard Worker    // Supported formats:
1838*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H:%M:%E*S%E*z (absl::RFC3339_full)
1839*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H:%M:%E*S
1840*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H:%M%E*z
1841*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H:%M
1842*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H%E*z
1843*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H
1844*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%d%E*z
1845*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%d
1846*d5c09012SAndroid Build Coastguard Worker    // %Y-%m
1847*d5c09012SAndroid Build Coastguard Worker    // %Y
1848*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
1849*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
1850*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
1851*d5c09012SAndroid Build Coastguard Worker    //   Supports query by DateTimeRangeArray.
1852*d5c09012SAndroid Build Coastguard Worker    DATETIME = 5;
1853*d5c09012SAndroid Build Coastguard Worker
1854*d5c09012SAndroid Build Coastguard Worker    // Geo coordinate type.
1855*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
1856*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
1857*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
1858*d5c09012SAndroid Build Coastguard Worker    //   Supports query by GeoLocationArray.
1859*d5c09012SAndroid Build Coastguard Worker    GEO_COORDINATE = 7;
1860*d5c09012SAndroid Build Coastguard Worker
1861*d5c09012SAndroid Build Coastguard Worker    // Type to pass any proto as available in annotations.proto. Only use
1862*d5c09012SAndroid Build Coastguard Worker    // internally.
1863*d5c09012SAndroid Build Coastguard Worker    // Available proto types and its corresponding search behavior:
1864*d5c09012SAndroid Build Coastguard Worker    // - ImageObjectDetectionPredictionResult, allows SMART_SEARCH on
1865*d5c09012SAndroid Build Coastguard Worker    //   display_names and NO_SEARCH.
1866*d5c09012SAndroid Build Coastguard Worker    // - ClassificationPredictionResult, allows SMART_SEARCH on display_names
1867*d5c09012SAndroid Build Coastguard Worker    //   and NO_SEARCH.
1868*d5c09012SAndroid Build Coastguard Worker    // - ImageSegmentationPredictionResult, allows NO_SEARCH.
1869*d5c09012SAndroid Build Coastguard Worker    // - VideoActionRecognitionPredictionResult, allows SMART_SEARCH on
1870*d5c09012SAndroid Build Coastguard Worker    //   display_name and NO_SEARCH.
1871*d5c09012SAndroid Build Coastguard Worker    // - VideoObjectTrackingPredictionResult, allows SMART_SEARCH on
1872*d5c09012SAndroid Build Coastguard Worker    //   display_name and NO_SEARCH.
1873*d5c09012SAndroid Build Coastguard Worker    // - VideoClassificationPredictionResult, allows SMART_SEARCH on
1874*d5c09012SAndroid Build Coastguard Worker    //   display_name and NO_SEARCH.
1875*d5c09012SAndroid Build Coastguard Worker    // - OccupancyCountingPredictionResult, allows EXACT_SEARCH on
1876*d5c09012SAndroid Build Coastguard Worker    //   stats.full_frame_count.count and NO_SEARCH.
1877*d5c09012SAndroid Build Coastguard Worker    // - ObjectDetectionPredictionResult, allows SMART_SEARCH on
1878*d5c09012SAndroid Build Coastguard Worker    //   identified_boxes.entity.label_string and NO_SEARCH.
1879*d5c09012SAndroid Build Coastguard Worker    PROTO_ANY = 8;
1880*d5c09012SAndroid Build Coastguard Worker
1881*d5c09012SAndroid Build Coastguard Worker    // Boolean type.
1882*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
1883*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
1884*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
1885*d5c09012SAndroid Build Coastguard Worker    BOOLEAN = 9;
1886*d5c09012SAndroid Build Coastguard Worker
1887*d5c09012SAndroid Build Coastguard Worker    // List type.
1888*d5c09012SAndroid Build Coastguard Worker    //  - Each element in the list must be of the exact same data schema;
1889*d5c09012SAndroid Build Coastguard Worker    //    otherwise, they are invalid arguments.
1890*d5c09012SAndroid Build Coastguard Worker    //  - List level cannot set search strategy. Leaf node level can do.
1891*d5c09012SAndroid Build Coastguard Worker    //  - Elements cannot be another list (no list of list).
1892*d5c09012SAndroid Build Coastguard Worker    //  - Elements can be CUSTOMIZED_STRUCT, and max number of layers is 10.
1893*d5c09012SAndroid Build Coastguard Worker    LIST = 10;
1894*d5c09012SAndroid Build Coastguard Worker
1895*d5c09012SAndroid Build Coastguard Worker    // Struct type.
1896*d5c09012SAndroid Build Coastguard Worker    // - SearchStrategy:
1897*d5c09012SAndroid Build Coastguard Worker    //   * Data Schema that's CUSTOMIZED_STRUCT cannot set search strategy.
1898*d5c09012SAndroid Build Coastguard Worker    //   * Leaf-node elements allow setting search strategy based on element's
1899*d5c09012SAndroid Build Coastguard Worker    //     SearchStrategy restriction.
1900*d5c09012SAndroid Build Coastguard Worker    // - Nested layer restrictions:
1901*d5c09012SAndroid Build Coastguard Worker    //   * Data Schema that's CUSTOMIZED_STRUCT allows its fields to be of
1902*d5c09012SAndroid Build Coastguard Worker    //     CUSTOMIZED_STRUCT as well, but the overall layers restriction is 10.
1903*d5c09012SAndroid Build Coastguard Worker    CUSTOMIZED_STRUCT = 6;
1904*d5c09012SAndroid Build Coastguard Worker  }
1905*d5c09012SAndroid Build Coastguard Worker
1906*d5c09012SAndroid Build Coastguard Worker  // The granularity of annotations under this DataSchema.
1907*d5c09012SAndroid Build Coastguard Worker  enum Granularity {
1908*d5c09012SAndroid Build Coastguard Worker    // Unspecified granularity.
1909*d5c09012SAndroid Build Coastguard Worker    GRANULARITY_UNSPECIFIED = 0;
1910*d5c09012SAndroid Build Coastguard Worker
1911*d5c09012SAndroid Build Coastguard Worker    // Asset-level granularity (annotations must not contain partition info).
1912*d5c09012SAndroid Build Coastguard Worker    GRANULARITY_ASSET_LEVEL = 1;
1913*d5c09012SAndroid Build Coastguard Worker
1914*d5c09012SAndroid Build Coastguard Worker    // Partition-level granularity (annotations must contain partition info).
1915*d5c09012SAndroid Build Coastguard Worker    GRANULARITY_PARTITION_LEVEL = 2;
1916*d5c09012SAndroid Build Coastguard Worker  }
1917*d5c09012SAndroid Build Coastguard Worker
1918*d5c09012SAndroid Build Coastguard Worker  // Type of the annotation.
1919*d5c09012SAndroid Build Coastguard Worker  DataType type = 1;
1920*d5c09012SAndroid Build Coastguard Worker
1921*d5c09012SAndroid Build Coastguard Worker  // Config for protobuf any type.
1922*d5c09012SAndroid Build Coastguard Worker  ProtoAnyConfig proto_any_config = 6;
1923*d5c09012SAndroid Build Coastguard Worker
1924*d5c09012SAndroid Build Coastguard Worker  // Config for List data type.
1925*d5c09012SAndroid Build Coastguard Worker  ListConfig list_config = 8;
1926*d5c09012SAndroid Build Coastguard Worker
1927*d5c09012SAndroid Build Coastguard Worker  // Config for CustomizedStruct data type.
1928*d5c09012SAndroid Build Coastguard Worker  CustomizedStructConfig customized_struct_config = 9;
1929*d5c09012SAndroid Build Coastguard Worker
1930*d5c09012SAndroid Build Coastguard Worker  // The granularity associated with this DataSchema.
1931*d5c09012SAndroid Build Coastguard Worker  Granularity granularity = 5;
1932*d5c09012SAndroid Build Coastguard Worker
1933*d5c09012SAndroid Build Coastguard Worker  // The search strategy to be applied on the `key` above.
1934*d5c09012SAndroid Build Coastguard Worker  SearchStrategy search_strategy = 7;
1935*d5c09012SAndroid Build Coastguard Worker}
1936*d5c09012SAndroid Build Coastguard Worker
1937*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateDataSchema.
1938*d5c09012SAndroid Build Coastguard Workermessage UpdateDataSchemaRequest {
1939*d5c09012SAndroid Build Coastguard Worker  // Required. The data schema's `name` field is used to identify the data
1940*d5c09012SAndroid Build Coastguard Worker  // schema to be updated. Format:
1941*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/dataSchemas/{data_schema}`
1942*d5c09012SAndroid Build Coastguard Worker  DataSchema data_schema = 1 [(google.api.field_behavior) = REQUIRED];
1943*d5c09012SAndroid Build Coastguard Worker
1944*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated.
1945*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
1946*d5c09012SAndroid Build Coastguard Worker}
1947*d5c09012SAndroid Build Coastguard Worker
1948*d5c09012SAndroid Build Coastguard Worker// Request message for GetDataSchema.
1949*d5c09012SAndroid Build Coastguard Workermessage GetDataSchemaRequest {
1950*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the data schema to retrieve.
1951*d5c09012SAndroid Build Coastguard Worker  // Format:
1952*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/dataSchemas/{data_schema_id}`
1953*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1954*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1955*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1956*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/DataSchema"
1957*d5c09012SAndroid Build Coastguard Worker    }
1958*d5c09012SAndroid Build Coastguard Worker  ];
1959*d5c09012SAndroid Build Coastguard Worker}
1960*d5c09012SAndroid Build Coastguard Worker
1961*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteDataSchema.
1962*d5c09012SAndroid Build Coastguard Workermessage DeleteDataSchemaRequest {
1963*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the data schema to delete.
1964*d5c09012SAndroid Build Coastguard Worker  // Format:
1965*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/dataSchemas/{data_schema_id}`
1966*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1967*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1968*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1969*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/DataSchema"
1970*d5c09012SAndroid Build Coastguard Worker    }
1971*d5c09012SAndroid Build Coastguard Worker  ];
1972*d5c09012SAndroid Build Coastguard Worker}
1973*d5c09012SAndroid Build Coastguard Worker
1974*d5c09012SAndroid Build Coastguard Worker// Request message for ListDataSchemas.
1975*d5c09012SAndroid Build Coastguard Workermessage ListDataSchemasRequest {
1976*d5c09012SAndroid Build Coastguard Worker  // Required. The parent, which owns this collection of data schemas.
1977*d5c09012SAndroid Build Coastguard Worker  // Format:
1978*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
1979*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1980*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1981*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1982*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/DataSchema"
1983*d5c09012SAndroid Build Coastguard Worker    }
1984*d5c09012SAndroid Build Coastguard Worker  ];
1985*d5c09012SAndroid Build Coastguard Worker
1986*d5c09012SAndroid Build Coastguard Worker  // The maximum number of data schemas to return. The service may return fewer
1987*d5c09012SAndroid Build Coastguard Worker  // than this value. If unspecified, at most 50 data schemas will be returned.
1988*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
1989*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
1990*d5c09012SAndroid Build Coastguard Worker
1991*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListDataSchemas` call.
1992*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
1993*d5c09012SAndroid Build Coastguard Worker  //
1994*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to `ListDataSchemas` must
1995*d5c09012SAndroid Build Coastguard Worker  // match the call that provided the page token.
1996*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
1997*d5c09012SAndroid Build Coastguard Worker}
1998*d5c09012SAndroid Build Coastguard Worker
1999*d5c09012SAndroid Build Coastguard Worker// Response message for ListDataSchemas.
2000*d5c09012SAndroid Build Coastguard Workermessage ListDataSchemasResponse {
2001*d5c09012SAndroid Build Coastguard Worker  // The data schemas from the specified corpus.
2002*d5c09012SAndroid Build Coastguard Worker  repeated DataSchema data_schemas = 1;
2003*d5c09012SAndroid Build Coastguard Worker
2004*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
2005*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
2006*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
2007*d5c09012SAndroid Build Coastguard Worker}
2008*d5c09012SAndroid Build Coastguard Worker
2009*d5c09012SAndroid Build Coastguard Worker// Request message for CreateAnnotation.
2010*d5c09012SAndroid Build Coastguard Workermessage CreateAnnotationRequest {
2011*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this annotation will be created.
2012*d5c09012SAndroid Build Coastguard Worker  // Format:
2013*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
2014*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2015*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2016*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
2017*d5c09012SAndroid Build Coastguard Worker  ];
2018*d5c09012SAndroid Build Coastguard Worker
2019*d5c09012SAndroid Build Coastguard Worker  // Required. The annotation to create.
2020*d5c09012SAndroid Build Coastguard Worker  Annotation annotation = 2 [(google.api.field_behavior) = REQUIRED];
2021*d5c09012SAndroid Build Coastguard Worker
2022*d5c09012SAndroid Build Coastguard Worker  // Optional. The ID to use for the annotation, which will become the final
2023*d5c09012SAndroid Build Coastguard Worker  // component of the annotation's resource name if user choose to specify.
2024*d5c09012SAndroid Build Coastguard Worker  // Otherwise, annotation id will be generated by system.
2025*d5c09012SAndroid Build Coastguard Worker  //
2026*d5c09012SAndroid Build Coastguard Worker  // This value should be up to 63 characters, and valid characters
2027*d5c09012SAndroid Build Coastguard Worker  // are /[a-z][0-9]-/. The first character must be a letter, the last could be
2028*d5c09012SAndroid Build Coastguard Worker  // a letter or a number.
2029*d5c09012SAndroid Build Coastguard Worker  optional string annotation_id = 3 [(google.api.field_behavior) = OPTIONAL];
2030*d5c09012SAndroid Build Coastguard Worker}
2031*d5c09012SAndroid Build Coastguard Worker
2032*d5c09012SAndroid Build Coastguard Worker// An annotation is a resource in asset. It represents a key-value mapping of
2033*d5c09012SAndroid Build Coastguard Worker// content in asset.
2034*d5c09012SAndroid Build Coastguard Workermessage Annotation {
2035*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
2036*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/Annotation"
2037*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}"
2038*d5c09012SAndroid Build Coastguard Worker  };
2039*d5c09012SAndroid Build Coastguard Worker
2040*d5c09012SAndroid Build Coastguard Worker  // Resource name of the annotation.
2041*d5c09012SAndroid Build Coastguard Worker  // Format:
2042*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}`
2043*d5c09012SAndroid Build Coastguard Worker  string name = 1;
2044*d5c09012SAndroid Build Coastguard Worker
2045*d5c09012SAndroid Build Coastguard Worker  // User provided annotation.
2046*d5c09012SAndroid Build Coastguard Worker  UserSpecifiedAnnotation user_specified_annotation = 2;
2047*d5c09012SAndroid Build Coastguard Worker}
2048*d5c09012SAndroid Build Coastguard Worker
2049*d5c09012SAndroid Build Coastguard Worker// Annotation provided by users.
2050*d5c09012SAndroid Build Coastguard Workermessage UserSpecifiedAnnotation {
2051*d5c09012SAndroid Build Coastguard Worker  // Required. Key of the annotation. The key must be set with type by
2052*d5c09012SAndroid Build Coastguard Worker  // CreateDataSchema.
2053*d5c09012SAndroid Build Coastguard Worker  string key = 1 [(google.api.field_behavior) = REQUIRED];
2054*d5c09012SAndroid Build Coastguard Worker
2055*d5c09012SAndroid Build Coastguard Worker  // Value of the annotation. The value must be able to convert
2056*d5c09012SAndroid Build Coastguard Worker  // to the type according to the data schema.
2057*d5c09012SAndroid Build Coastguard Worker  AnnotationValue value = 2;
2058*d5c09012SAndroid Build Coastguard Worker
2059*d5c09012SAndroid Build Coastguard Worker  // Partition information in time and space for the sub-asset level annotation.
2060*d5c09012SAndroid Build Coastguard Worker  Partition partition = 3;
2061*d5c09012SAndroid Build Coastguard Worker}
2062*d5c09012SAndroid Build Coastguard Worker
2063*d5c09012SAndroid Build Coastguard Worker// Location Coordinate Representation
2064*d5c09012SAndroid Build Coastguard Workermessage GeoCoordinate {
2065*d5c09012SAndroid Build Coastguard Worker  // Latitude Coordinate. Degrees [-90 .. 90]
2066*d5c09012SAndroid Build Coastguard Worker  double latitude = 1;
2067*d5c09012SAndroid Build Coastguard Worker
2068*d5c09012SAndroid Build Coastguard Worker  // Longitude Coordinate. Degrees [-180 .. 180]
2069*d5c09012SAndroid Build Coastguard Worker  double longitude = 2;
2070*d5c09012SAndroid Build Coastguard Worker}
2071*d5c09012SAndroid Build Coastguard Worker
2072*d5c09012SAndroid Build Coastguard Worker// Value of annotation, including all types available in data schema.
2073*d5c09012SAndroid Build Coastguard Workermessage AnnotationValue {
2074*d5c09012SAndroid Build Coastguard Worker  oneof value {
2075*d5c09012SAndroid Build Coastguard Worker    // Value of int type annotation.
2076*d5c09012SAndroid Build Coastguard Worker    int64 int_value = 1;
2077*d5c09012SAndroid Build Coastguard Worker
2078*d5c09012SAndroid Build Coastguard Worker    // Value of float type annotation.
2079*d5c09012SAndroid Build Coastguard Worker    float float_value = 2;
2080*d5c09012SAndroid Build Coastguard Worker
2081*d5c09012SAndroid Build Coastguard Worker    // Value of string type annotation.
2082*d5c09012SAndroid Build Coastguard Worker    string str_value = 3;
2083*d5c09012SAndroid Build Coastguard Worker
2084*d5c09012SAndroid Build Coastguard Worker    // Value of date time type annotation.
2085*d5c09012SAndroid Build Coastguard Worker    string datetime_value = 5;
2086*d5c09012SAndroid Build Coastguard Worker
2087*d5c09012SAndroid Build Coastguard Worker    // Value of geo coordinate type annotation.
2088*d5c09012SAndroid Build Coastguard Worker    GeoCoordinate geo_coordinate = 7;
2089*d5c09012SAndroid Build Coastguard Worker
2090*d5c09012SAndroid Build Coastguard Worker    // Value of any proto value.
2091*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Any proto_any_value = 8;
2092*d5c09012SAndroid Build Coastguard Worker
2093*d5c09012SAndroid Build Coastguard Worker    // Value of boolean type annotation.
2094*d5c09012SAndroid Build Coastguard Worker    bool bool_value = 9;
2095*d5c09012SAndroid Build Coastguard Worker
2096*d5c09012SAndroid Build Coastguard Worker    // Value of customized struct annotation. This field does not have effects.
2097*d5c09012SAndroid Build Coastguard Worker    // Use customized_struct_value instead for customized struct annotation.
2098*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Struct customized_struct_data_value = 10;
2099*d5c09012SAndroid Build Coastguard Worker
2100*d5c09012SAndroid Build Coastguard Worker    // Value of list type annotation.
2101*d5c09012SAndroid Build Coastguard Worker    AnnotationList list_value = 11;
2102*d5c09012SAndroid Build Coastguard Worker
2103*d5c09012SAndroid Build Coastguard Worker    // Value of custom struct type annotation.
2104*d5c09012SAndroid Build Coastguard Worker    AnnotationCustomizedStruct customized_struct_value = 6;
2105*d5c09012SAndroid Build Coastguard Worker  }
2106*d5c09012SAndroid Build Coastguard Worker}
2107*d5c09012SAndroid Build Coastguard Worker
2108*d5c09012SAndroid Build Coastguard Worker// List representation in annotation.
2109*d5c09012SAndroid Build Coastguard Workermessage AnnotationList {
2110*d5c09012SAndroid Build Coastguard Worker  // The values of `LIST` data type annotation.
2111*d5c09012SAndroid Build Coastguard Worker  repeated AnnotationValue values = 1;
2112*d5c09012SAndroid Build Coastguard Worker}
2113*d5c09012SAndroid Build Coastguard Worker
2114*d5c09012SAndroid Build Coastguard Worker// Customized struct represnation in annotation.
2115*d5c09012SAndroid Build Coastguard Workermessage AnnotationCustomizedStruct {
2116*d5c09012SAndroid Build Coastguard Worker  // A map from elements' keys to element's annotation value.
2117*d5c09012SAndroid Build Coastguard Worker  map<string, AnnotationValue> elements = 2;
2118*d5c09012SAndroid Build Coastguard Worker}
2119*d5c09012SAndroid Build Coastguard Worker
2120*d5c09012SAndroid Build Coastguard Worker// Request message for GetAnnotation API.
2121*d5c09012SAndroid Build Coastguard Workermessage ListAnnotationsRequest {
2122*d5c09012SAndroid Build Coastguard Worker  // The parent, which owns this collection of annotations.
2123*d5c09012SAndroid Build Coastguard Worker  // Format:
2124*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}`
2125*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2126*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
2127*d5c09012SAndroid Build Coastguard Worker  ];
2128*d5c09012SAndroid Build Coastguard Worker
2129*d5c09012SAndroid Build Coastguard Worker  // The maximum number of annotations to return. The service may return fewer
2130*d5c09012SAndroid Build Coastguard Worker  // than this value. If unspecified, at most 50 annotations will be returned.
2131*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
2132*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
2133*d5c09012SAndroid Build Coastguard Worker
2134*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListAnnotations` call.
2135*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
2136*d5c09012SAndroid Build Coastguard Worker  //
2137*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to `ListAnnotations` must
2138*d5c09012SAndroid Build Coastguard Worker  // match the call that provided the page token.
2139*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
2140*d5c09012SAndroid Build Coastguard Worker
2141*d5c09012SAndroid Build Coastguard Worker  // The filter applied to the returned list.
2142*d5c09012SAndroid Build Coastguard Worker  // We only support filtering for the following fields:
2143*d5c09012SAndroid Build Coastguard Worker  // `partition.temporal_partition.start_time`,
2144*d5c09012SAndroid Build Coastguard Worker  // `partition.temporal_partition.end_time`, and `key`.
2145*d5c09012SAndroid Build Coastguard Worker  // For corpus of IMAGE type, only `key` is supported.
2146*d5c09012SAndroid Build Coastguard Worker  // Timestamps are specified in the RFC-3339 format, and only one restriction
2147*d5c09012SAndroid Build Coastguard Worker  // may be applied per field, joined by conjunctions.
2148*d5c09012SAndroid Build Coastguard Worker  // Format:
2149*d5c09012SAndroid Build Coastguard Worker  // "partition.temporal_partition.start_time > "2012-04-21T11:30:00-04:00" AND
2150*d5c09012SAndroid Build Coastguard Worker  // partition.temporal_partition.end_time < "2012-04-22T11:30:00-04:00" AND
2151*d5c09012SAndroid Build Coastguard Worker  // key = "example_key""
2152*d5c09012SAndroid Build Coastguard Worker  string filter = 4;
2153*d5c09012SAndroid Build Coastguard Worker}
2154*d5c09012SAndroid Build Coastguard Worker
2155*d5c09012SAndroid Build Coastguard Worker// Request message for ListAnnotations API.
2156*d5c09012SAndroid Build Coastguard Workermessage ListAnnotationsResponse {
2157*d5c09012SAndroid Build Coastguard Worker  // The annotations from the specified asset.
2158*d5c09012SAndroid Build Coastguard Worker  repeated Annotation annotations = 1;
2159*d5c09012SAndroid Build Coastguard Worker
2160*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
2161*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
2162*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
2163*d5c09012SAndroid Build Coastguard Worker}
2164*d5c09012SAndroid Build Coastguard Worker
2165*d5c09012SAndroid Build Coastguard Worker// Request message for GetAnnotation API.
2166*d5c09012SAndroid Build Coastguard Workermessage GetAnnotationRequest {
2167*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the annotation to retrieve.
2168*d5c09012SAndroid Build Coastguard Worker  // Format:
2169*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}`
2170*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2171*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2172*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2173*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Annotation"
2174*d5c09012SAndroid Build Coastguard Worker    }
2175*d5c09012SAndroid Build Coastguard Worker  ];
2176*d5c09012SAndroid Build Coastguard Worker}
2177*d5c09012SAndroid Build Coastguard Worker
2178*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateAnnotation API.
2179*d5c09012SAndroid Build Coastguard Workermessage UpdateAnnotationRequest {
2180*d5c09012SAndroid Build Coastguard Worker  // Required. The annotation to update.
2181*d5c09012SAndroid Build Coastguard Worker  // The annotation's `name` field is used to identify the annotation to be
2182*d5c09012SAndroid Build Coastguard Worker  // updated. Format:
2183*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}`
2184*d5c09012SAndroid Build Coastguard Worker  Annotation annotation = 1 [(google.api.field_behavior) = REQUIRED];
2185*d5c09012SAndroid Build Coastguard Worker
2186*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated.
2187*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
2188*d5c09012SAndroid Build Coastguard Worker}
2189*d5c09012SAndroid Build Coastguard Worker
2190*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteAnnotation API.
2191*d5c09012SAndroid Build Coastguard Workermessage DeleteAnnotationRequest {
2192*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the annotation to delete.
2193*d5c09012SAndroid Build Coastguard Worker  // Format:
2194*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}`
2195*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2196*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2197*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2198*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Annotation"
2199*d5c09012SAndroid Build Coastguard Worker    }
2200*d5c09012SAndroid Build Coastguard Worker  ];
2201*d5c09012SAndroid Build Coastguard Worker}
2202*d5c09012SAndroid Build Coastguard Worker
2203*d5c09012SAndroid Build Coastguard Worker// The request message for ImportAssets.
2204*d5c09012SAndroid Build Coastguard Workermessage ImportAssetsRequest {
2205*d5c09012SAndroid Build Coastguard Worker  // The source.
2206*d5c09012SAndroid Build Coastguard Worker  oneof source {
2207*d5c09012SAndroid Build Coastguard Worker    // The file contains all assets information to be imported.
2208*d5c09012SAndroid Build Coastguard Worker    // * The file is in JSONL format.
2209*d5c09012SAndroid Build Coastguard Worker    // * Each line corresponding to one asset.
2210*d5c09012SAndroid Build Coastguard Worker    // * Each line will be converted into InputImageAsset proto.
2211*d5c09012SAndroid Build Coastguard Worker    string assets_gcs_uri = 2;
2212*d5c09012SAndroid Build Coastguard Worker  }
2213*d5c09012SAndroid Build Coastguard Worker
2214*d5c09012SAndroid Build Coastguard Worker  // Required. The parent corpus resource where the assets will be imported.
2215*d5c09012SAndroid Build Coastguard Worker  // Format:
2216*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
2217*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2218*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2219*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
2220*d5c09012SAndroid Build Coastguard Worker  ];
2221*d5c09012SAndroid Build Coastguard Worker}
2222*d5c09012SAndroid Build Coastguard Worker
2223*d5c09012SAndroid Build Coastguard Worker// The metadata message for ImportAssets LRO.
2224*d5c09012SAndroid Build Coastguard Workermessage ImportAssetsMetadata {
2225*d5c09012SAndroid Build Coastguard Worker  // The metadata of the operation.
2226*d5c09012SAndroid Build Coastguard Worker  OperationMetadata metadata = 1;
2227*d5c09012SAndroid Build Coastguard Worker}
2228*d5c09012SAndroid Build Coastguard Worker
2229*d5c09012SAndroid Build Coastguard Worker// The response message for ImportAssets LRO.
2230*d5c09012SAndroid Build Coastguard Workermessage ImportAssetsResponse {}
2231*d5c09012SAndroid Build Coastguard Worker
2232*d5c09012SAndroid Build Coastguard Worker// Request message for CreateSearchConfig.
2233*d5c09012SAndroid Build Coastguard Workermessage CreateSearchConfigRequest {
2234*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this search configuration will be
2235*d5c09012SAndroid Build Coastguard Worker  // created. Format:
2236*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
2237*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2238*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2239*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2240*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/SearchConfig"
2241*d5c09012SAndroid Build Coastguard Worker    }
2242*d5c09012SAndroid Build Coastguard Worker  ];
2243*d5c09012SAndroid Build Coastguard Worker
2244*d5c09012SAndroid Build Coastguard Worker  // Required. The search config to create.
2245*d5c09012SAndroid Build Coastguard Worker  SearchConfig search_config = 2 [(google.api.field_behavior) = REQUIRED];
2246*d5c09012SAndroid Build Coastguard Worker
2247*d5c09012SAndroid Build Coastguard Worker  // Required. ID to use for the new search config. Will become the final
2248*d5c09012SAndroid Build Coastguard Worker  // component of the SearchConfig's resource name. This value should be up to
2249*d5c09012SAndroid Build Coastguard Worker  // 63 characters, and valid characters are /[a-z][0-9]-_/. The first character
2250*d5c09012SAndroid Build Coastguard Worker  // must be a letter, the last could be a letter or a number.
2251*d5c09012SAndroid Build Coastguard Worker  string search_config_id = 3 [(google.api.field_behavior) = REQUIRED];
2252*d5c09012SAndroid Build Coastguard Worker}
2253*d5c09012SAndroid Build Coastguard Worker
2254*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateSearchConfig.
2255*d5c09012SAndroid Build Coastguard Workermessage UpdateSearchConfigRequest {
2256*d5c09012SAndroid Build Coastguard Worker  // Required. The search configuration to update.
2257*d5c09012SAndroid Build Coastguard Worker  //
2258*d5c09012SAndroid Build Coastguard Worker  // The search configuration's `name` field is used to identify the resource to
2259*d5c09012SAndroid Build Coastguard Worker  // be updated. Format:
2260*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}`
2261*d5c09012SAndroid Build Coastguard Worker  SearchConfig search_config = 1 [(google.api.field_behavior) = REQUIRED];
2262*d5c09012SAndroid Build Coastguard Worker
2263*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated. If left unset, all field paths will be
2264*d5c09012SAndroid Build Coastguard Worker  // updated/overwritten.
2265*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
2266*d5c09012SAndroid Build Coastguard Worker}
2267*d5c09012SAndroid Build Coastguard Worker
2268*d5c09012SAndroid Build Coastguard Worker// Request message for GetSearchConfig.
2269*d5c09012SAndroid Build Coastguard Workermessage GetSearchConfigRequest {
2270*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the search configuration to retrieve.
2271*d5c09012SAndroid Build Coastguard Worker  // Format:
2272*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}`
2273*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2274*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2275*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2276*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/SearchConfig"
2277*d5c09012SAndroid Build Coastguard Worker    }
2278*d5c09012SAndroid Build Coastguard Worker  ];
2279*d5c09012SAndroid Build Coastguard Worker}
2280*d5c09012SAndroid Build Coastguard Worker
2281*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteSearchConfig.
2282*d5c09012SAndroid Build Coastguard Workermessage DeleteSearchConfigRequest {
2283*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the search configuration to delete.
2284*d5c09012SAndroid Build Coastguard Worker  // Format:
2285*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}`
2286*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2287*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2288*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2289*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/SearchConfig"
2290*d5c09012SAndroid Build Coastguard Worker    }
2291*d5c09012SAndroid Build Coastguard Worker  ];
2292*d5c09012SAndroid Build Coastguard Worker}
2293*d5c09012SAndroid Build Coastguard Worker
2294*d5c09012SAndroid Build Coastguard Worker// Request message for ListSearchConfigs.
2295*d5c09012SAndroid Build Coastguard Workermessage ListSearchConfigsRequest {
2296*d5c09012SAndroid Build Coastguard Worker  // Required. The parent, which owns this collection of search configurations.
2297*d5c09012SAndroid Build Coastguard Worker  // Format:
2298*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}`
2299*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2300*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2301*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2302*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/SearchConfig"
2303*d5c09012SAndroid Build Coastguard Worker    }
2304*d5c09012SAndroid Build Coastguard Worker  ];
2305*d5c09012SAndroid Build Coastguard Worker
2306*d5c09012SAndroid Build Coastguard Worker  // The maximum number of search configurations to return. The service may
2307*d5c09012SAndroid Build Coastguard Worker  // return fewer than this value. If unspecified, a page size of 50 will be
2308*d5c09012SAndroid Build Coastguard Worker  // used. The maximum value is 1000; values above 1000 will be coerced to 1000.
2309*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
2310*d5c09012SAndroid Build Coastguard Worker
2311*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListSearchConfigs` call.
2312*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
2313*d5c09012SAndroid Build Coastguard Worker  //
2314*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to
2315*d5c09012SAndroid Build Coastguard Worker  // `ListSearchConfigs` must match the call that provided the page
2316*d5c09012SAndroid Build Coastguard Worker  // token.
2317*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
2318*d5c09012SAndroid Build Coastguard Worker}
2319*d5c09012SAndroid Build Coastguard Worker
2320*d5c09012SAndroid Build Coastguard Worker// Response message for ListSearchConfigs.
2321*d5c09012SAndroid Build Coastguard Workermessage ListSearchConfigsResponse {
2322*d5c09012SAndroid Build Coastguard Worker  // The search configurations from the specified corpus.
2323*d5c09012SAndroid Build Coastguard Worker  repeated SearchConfig search_configs = 1;
2324*d5c09012SAndroid Build Coastguard Worker
2325*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
2326*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
2327*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
2328*d5c09012SAndroid Build Coastguard Worker}
2329*d5c09012SAndroid Build Coastguard Worker
2330*d5c09012SAndroid Build Coastguard Worker// SearchConfig stores different properties that will affect search
2331*d5c09012SAndroid Build Coastguard Worker// behaviors and search results.
2332*d5c09012SAndroid Build Coastguard Workermessage SearchConfig {
2333*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
2334*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/SearchConfig"
2335*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}"
2336*d5c09012SAndroid Build Coastguard Worker  };
2337*d5c09012SAndroid Build Coastguard Worker
2338*d5c09012SAndroid Build Coastguard Worker  // Resource name of the search configuration.
2339*d5c09012SAndroid Build Coastguard Worker  // For CustomSearchCriteria, search_config would be the search
2340*d5c09012SAndroid Build Coastguard Worker  // operator name. For Facets, search_config would be the facet
2341*d5c09012SAndroid Build Coastguard Worker  // dimension name.
2342*d5c09012SAndroid Build Coastguard Worker  // Format:
2343*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}`
2344*d5c09012SAndroid Build Coastguard Worker  string name = 1;
2345*d5c09012SAndroid Build Coastguard Worker
2346*d5c09012SAndroid Build Coastguard Worker  // Establishes a FacetDimension and associated specifications.
2347*d5c09012SAndroid Build Coastguard Worker  FacetProperty facet_property = 2;
2348*d5c09012SAndroid Build Coastguard Worker
2349*d5c09012SAndroid Build Coastguard Worker  // Creates a mapping between a custom SearchCriteria and one or more UGA keys.
2350*d5c09012SAndroid Build Coastguard Worker  SearchCriteriaProperty search_criteria_property = 3;
2351*d5c09012SAndroid Build Coastguard Worker}
2352*d5c09012SAndroid Build Coastguard Worker
2353*d5c09012SAndroid Build Coastguard Worker// Message representing IndexEndpoint resource. Indexes are deployed into it.
2354*d5c09012SAndroid Build Coastguard Workermessage IndexEndpoint {
2355*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
2356*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/IndexEndpoint"
2357*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}"
2358*d5c09012SAndroid Build Coastguard Worker  };
2359*d5c09012SAndroid Build Coastguard Worker
2360*d5c09012SAndroid Build Coastguard Worker  // IndexEndpoint stage.
2361*d5c09012SAndroid Build Coastguard Worker  enum State {
2362*d5c09012SAndroid Build Coastguard Worker    // The default value. Should not be used.
2363*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
2364*d5c09012SAndroid Build Coastguard Worker
2365*d5c09012SAndroid Build Coastguard Worker    // State CREATING.
2366*d5c09012SAndroid Build Coastguard Worker    CREATING = 1;
2367*d5c09012SAndroid Build Coastguard Worker
2368*d5c09012SAndroid Build Coastguard Worker    // State CREATED.
2369*d5c09012SAndroid Build Coastguard Worker    CREATED = 2;
2370*d5c09012SAndroid Build Coastguard Worker
2371*d5c09012SAndroid Build Coastguard Worker    // State UPDATING.
2372*d5c09012SAndroid Build Coastguard Worker    UPDATING = 3;
2373*d5c09012SAndroid Build Coastguard Worker
2374*d5c09012SAndroid Build Coastguard Worker    // State FAILED.
2375*d5c09012SAndroid Build Coastguard Worker    FAILED = 4;
2376*d5c09012SAndroid Build Coastguard Worker  }
2377*d5c09012SAndroid Build Coastguard Worker
2378*d5c09012SAndroid Build Coastguard Worker  // Output only. Resource name of the IndexEndpoint.
2379*d5c09012SAndroid Build Coastguard Worker  // Format:
2380*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint_id}`
2381*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
2382*d5c09012SAndroid Build Coastguard Worker
2383*d5c09012SAndroid Build Coastguard Worker  // Optional. Display name of the IndexEndpoint. Can be up to 32 characters
2384*d5c09012SAndroid Build Coastguard Worker  // long.
2385*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
2386*d5c09012SAndroid Build Coastguard Worker
2387*d5c09012SAndroid Build Coastguard Worker  // Optional. Description of the IndexEndpoint. Can be up to 25000 characters
2388*d5c09012SAndroid Build Coastguard Worker  // long.
2389*d5c09012SAndroid Build Coastguard Worker  string description = 3 [(google.api.field_behavior) = OPTIONAL];
2390*d5c09012SAndroid Build Coastguard Worker
2391*d5c09012SAndroid Build Coastguard Worker  // Output only. The Index deployed in this IndexEndpoint.
2392*d5c09012SAndroid Build Coastguard Worker  DeployedIndex deployed_index = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
2393*d5c09012SAndroid Build Coastguard Worker
2394*d5c09012SAndroid Build Coastguard Worker  // Output only. IndexEndpoint state.
2395*d5c09012SAndroid Build Coastguard Worker  State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
2396*d5c09012SAndroid Build Coastguard Worker
2397*d5c09012SAndroid Build Coastguard Worker  // Optional. The labels applied to a resource must meet the following
2398*d5c09012SAndroid Build Coastguard Worker  // requirements:
2399*d5c09012SAndroid Build Coastguard Worker  //
2400*d5c09012SAndroid Build Coastguard Worker  // * Each resource can have multiple labels, up to a maximum of 64.
2401*d5c09012SAndroid Build Coastguard Worker  // * Each label must be a key-value pair.
2402*d5c09012SAndroid Build Coastguard Worker  // * Keys have a minimum length of 1 character and a maximum length of 63
2403*d5c09012SAndroid Build Coastguard Worker  //   characters and cannot be empty. Values can be empty and have a maximum
2404*d5c09012SAndroid Build Coastguard Worker  //   length of 63 characters.
2405*d5c09012SAndroid Build Coastguard Worker  // * Keys and values can contain only lowercase letters, numeric characters,
2406*d5c09012SAndroid Build Coastguard Worker  //   underscores, and dashes. All characters must use UTF-8 encoding, and
2407*d5c09012SAndroid Build Coastguard Worker  //   international characters are allowed.
2408*d5c09012SAndroid Build Coastguard Worker  // * The key portion of a label must be unique. However, you can use the same
2409*d5c09012SAndroid Build Coastguard Worker  //   key with multiple resources.
2410*d5c09012SAndroid Build Coastguard Worker  // * Keys must start with a lowercase letter or international character.
2411*d5c09012SAndroid Build Coastguard Worker  //
2412*d5c09012SAndroid Build Coastguard Worker  // See [Google Cloud
2413*d5c09012SAndroid Build Coastguard Worker  // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
2414*d5c09012SAndroid Build Coastguard Worker  // for more details.
2415*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
2416*d5c09012SAndroid Build Coastguard Worker
2417*d5c09012SAndroid Build Coastguard Worker  // Output only. Create timestamp.
2418*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 7
2419*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
2420*d5c09012SAndroid Build Coastguard Worker
2421*d5c09012SAndroid Build Coastguard Worker  // Output only. Update timestamp.
2422*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 8
2423*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
2424*d5c09012SAndroid Build Coastguard Worker}
2425*d5c09012SAndroid Build Coastguard Worker
2426*d5c09012SAndroid Build Coastguard Worker// Request message for CreateIndexEndpoint.
2427*d5c09012SAndroid Build Coastguard Workermessage CreateIndexEndpointRequest {
2428*d5c09012SAndroid Build Coastguard Worker  // Required. Format: `projects/{project}/locations/{location}`
2429*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2430*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2431*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2432*d5c09012SAndroid Build Coastguard Worker      type: "locations.googleapis.com/Location"
2433*d5c09012SAndroid Build Coastguard Worker    }
2434*d5c09012SAndroid Build Coastguard Worker  ];
2435*d5c09012SAndroid Build Coastguard Worker
2436*d5c09012SAndroid Build Coastguard Worker  // Optional. The ID to use for the IndexEndpoint, which will become the final
2437*d5c09012SAndroid Build Coastguard Worker  // component of the IndexEndpoint's resource name if the user specifies it.
2438*d5c09012SAndroid Build Coastguard Worker  // Otherwise, IndexEndpoint id will be autogenerated.
2439*d5c09012SAndroid Build Coastguard Worker  //
2440*d5c09012SAndroid Build Coastguard Worker  // This value should be up to 63 characters, and valid characters
2441*d5c09012SAndroid Build Coastguard Worker  // are a-z, 0-9 and dash (-). The first character must be a letter, the last
2442*d5c09012SAndroid Build Coastguard Worker  // must be a letter or a number.
2443*d5c09012SAndroid Build Coastguard Worker  string index_endpoint_id = 2 [(google.api.field_behavior) = OPTIONAL];
2444*d5c09012SAndroid Build Coastguard Worker
2445*d5c09012SAndroid Build Coastguard Worker  // Required. The resource being created.
2446*d5c09012SAndroid Build Coastguard Worker  IndexEndpoint index_endpoint = 3 [(google.api.field_behavior) = REQUIRED];
2447*d5c09012SAndroid Build Coastguard Worker}
2448*d5c09012SAndroid Build Coastguard Worker
2449*d5c09012SAndroid Build Coastguard Worker// Metadata message for CreateIndexEndpoint.
2450*d5c09012SAndroid Build Coastguard Workermessage CreateIndexEndpointMetadata {
2451*d5c09012SAndroid Build Coastguard Worker  // Common metadata of the long-running operation.
2452*d5c09012SAndroid Build Coastguard Worker  OperationMetadata operation_metadata = 1;
2453*d5c09012SAndroid Build Coastguard Worker}
2454*d5c09012SAndroid Build Coastguard Worker
2455*d5c09012SAndroid Build Coastguard Worker// Request message for GetIndexEndpoint.
2456*d5c09012SAndroid Build Coastguard Workermessage GetIndexEndpointRequest {
2457*d5c09012SAndroid Build Coastguard Worker  // Required. Name of the IndexEndpoint resource.
2458*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2459*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2460*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2461*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/IndexEndpoint"
2462*d5c09012SAndroid Build Coastguard Worker    }
2463*d5c09012SAndroid Build Coastguard Worker  ];
2464*d5c09012SAndroid Build Coastguard Worker}
2465*d5c09012SAndroid Build Coastguard Worker
2466*d5c09012SAndroid Build Coastguard Worker// Request message for ListIndexEndpoints.
2467*d5c09012SAndroid Build Coastguard Workermessage ListIndexEndpointsRequest {
2468*d5c09012SAndroid Build Coastguard Worker  // Required. Format: `projects/{project}/locations/{location}`
2469*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2470*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2471*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2472*d5c09012SAndroid Build Coastguard Worker      type: "locations.googleapis.com/Location"
2473*d5c09012SAndroid Build Coastguard Worker    }
2474*d5c09012SAndroid Build Coastguard Worker  ];
2475*d5c09012SAndroid Build Coastguard Worker
2476*d5c09012SAndroid Build Coastguard Worker  // Optional. Requested page size. Server may return fewer items than
2477*d5c09012SAndroid Build Coastguard Worker  // requested. The service may return fewer than this value. If unspecified, a
2478*d5c09012SAndroid Build Coastguard Worker  // page size of 50 will be used. The maximum value is 1000; values above 1000
2479*d5c09012SAndroid Build Coastguard Worker  // will be coerced to 1000.
2480*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
2481*d5c09012SAndroid Build Coastguard Worker
2482*d5c09012SAndroid Build Coastguard Worker  // Optional. A token identifying a page of results the server should return.
2483*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
2484*d5c09012SAndroid Build Coastguard Worker
2485*d5c09012SAndroid Build Coastguard Worker  // Optional. The filter applied to the returned list.
2486*d5c09012SAndroid Build Coastguard Worker  // We only support filtering for the `deployed_image_index.image_index` field.
2487*d5c09012SAndroid Build Coastguard Worker  // However, to filter by a corpus instead of an image index, simply use
2488*d5c09012SAndroid Build Coastguard Worker  // `deployed_image_index.corpus`, which will return all endpoints with
2489*d5c09012SAndroid Build Coastguard Worker  // `deployed_image_index.image_index` inside of the given corpus.
2490*d5c09012SAndroid Build Coastguard Worker  // A basic filter on image index would look like:
2491*d5c09012SAndroid Build Coastguard Worker  //   deployed_image_index.image_index =
2492*d5c09012SAndroid Build Coastguard Worker  //     "projects/123/locations/us-central1/corpora/my_corpus/imageIndexes/my_image_index"
2493*d5c09012SAndroid Build Coastguard Worker  // A basic filter on corpus would look like:
2494*d5c09012SAndroid Build Coastguard Worker  //   deployed_image_index.corpus =
2495*d5c09012SAndroid Build Coastguard Worker  //     "projects/123/locations/us-central1/corpora/my_corpus"
2496*d5c09012SAndroid Build Coastguard Worker  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
2497*d5c09012SAndroid Build Coastguard Worker}
2498*d5c09012SAndroid Build Coastguard Worker
2499*d5c09012SAndroid Build Coastguard Worker// Response message for ListIndexEndpoints.
2500*d5c09012SAndroid Build Coastguard Workermessage ListIndexEndpointsResponse {
2501*d5c09012SAndroid Build Coastguard Worker  // The list of IndexEndpoints.
2502*d5c09012SAndroid Build Coastguard Worker  repeated IndexEndpoint index_endpoints = 1;
2503*d5c09012SAndroid Build Coastguard Worker
2504*d5c09012SAndroid Build Coastguard Worker  // A token identifying a page of results the server should return.
2505*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
2506*d5c09012SAndroid Build Coastguard Worker}
2507*d5c09012SAndroid Build Coastguard Worker
2508*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateIndexEndpoint.
2509*d5c09012SAndroid Build Coastguard Workermessage UpdateIndexEndpointRequest {
2510*d5c09012SAndroid Build Coastguard Worker  // Required. The resource being updated.
2511*d5c09012SAndroid Build Coastguard Worker  IndexEndpoint index_endpoint = 1 [(google.api.field_behavior) = REQUIRED];
2512*d5c09012SAndroid Build Coastguard Worker
2513*d5c09012SAndroid Build Coastguard Worker  // Required. Field mask is used to specify the fields to be overwritten in the
2514*d5c09012SAndroid Build Coastguard Worker  // IndexEndpoint resource by the update.
2515*d5c09012SAndroid Build Coastguard Worker  // The fields specified in the update_mask are relative to the resource, not
2516*d5c09012SAndroid Build Coastguard Worker  // the full request.
2517*d5c09012SAndroid Build Coastguard Worker  // A field of the resource will be overwritten if it is in the mask.
2518*d5c09012SAndroid Build Coastguard Worker  // Empty field mask is not allowed.
2519*d5c09012SAndroid Build Coastguard Worker  // If the mask is "*", then this is a full replacement of the resource.
2520*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2
2521*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
2522*d5c09012SAndroid Build Coastguard Worker}
2523*d5c09012SAndroid Build Coastguard Worker
2524*d5c09012SAndroid Build Coastguard Worker// Metadata message for UpdateIndexEndpoint.
2525*d5c09012SAndroid Build Coastguard Workermessage UpdateIndexEndpointMetadata {
2526*d5c09012SAndroid Build Coastguard Worker  // Common metadata of the long-running operation.
2527*d5c09012SAndroid Build Coastguard Worker  OperationMetadata operation_metadata = 1;
2528*d5c09012SAndroid Build Coastguard Worker}
2529*d5c09012SAndroid Build Coastguard Worker
2530*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteIndexEndpoint.
2531*d5c09012SAndroid Build Coastguard Workermessage DeleteIndexEndpointRequest {
2532*d5c09012SAndroid Build Coastguard Worker  // Required. Name of the resource.
2533*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2534*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2535*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2536*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/IndexEndpoint"
2537*d5c09012SAndroid Build Coastguard Worker    }
2538*d5c09012SAndroid Build Coastguard Worker  ];
2539*d5c09012SAndroid Build Coastguard Worker}
2540*d5c09012SAndroid Build Coastguard Worker
2541*d5c09012SAndroid Build Coastguard Worker// Metadata message for DeleteIndexEndpoint.
2542*d5c09012SAndroid Build Coastguard Workermessage DeleteIndexEndpointMetadata {
2543*d5c09012SAndroid Build Coastguard Worker  // Common metadata of the long-running operation.
2544*d5c09012SAndroid Build Coastguard Worker  OperationMetadata operation_metadata = 1;
2545*d5c09012SAndroid Build Coastguard Worker}
2546*d5c09012SAndroid Build Coastguard Worker
2547*d5c09012SAndroid Build Coastguard Worker// Request message for DeployIndex.
2548*d5c09012SAndroid Build Coastguard Workermessage DeployIndexRequest {
2549*d5c09012SAndroid Build Coastguard Worker  // Required. IndexEndpoint the index is deployed to.
2550*d5c09012SAndroid Build Coastguard Worker  // Format:
2551*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}`
2552*d5c09012SAndroid Build Coastguard Worker  string index_endpoint = 1 [
2553*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2554*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2555*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/IndexEndpoint"
2556*d5c09012SAndroid Build Coastguard Worker    }
2557*d5c09012SAndroid Build Coastguard Worker  ];
2558*d5c09012SAndroid Build Coastguard Worker
2559*d5c09012SAndroid Build Coastguard Worker  // Required. Index to deploy.
2560*d5c09012SAndroid Build Coastguard Worker  DeployedIndex deployed_index = 3 [(google.api.field_behavior) = REQUIRED];
2561*d5c09012SAndroid Build Coastguard Worker}
2562*d5c09012SAndroid Build Coastguard Worker
2563*d5c09012SAndroid Build Coastguard Worker// DeployIndex response once the operation is done.
2564*d5c09012SAndroid Build Coastguard Workermessage DeployIndexResponse {}
2565*d5c09012SAndroid Build Coastguard Worker
2566*d5c09012SAndroid Build Coastguard Worker// Metadata message for DeployIndex.
2567*d5c09012SAndroid Build Coastguard Workermessage DeployIndexMetadata {
2568*d5c09012SAndroid Build Coastguard Worker  // Common metadata of the long-running operation.
2569*d5c09012SAndroid Build Coastguard Worker  OperationMetadata operation_metadata = 1;
2570*d5c09012SAndroid Build Coastguard Worker
2571*d5c09012SAndroid Build Coastguard Worker  // Output only. The index being deployed.
2572*d5c09012SAndroid Build Coastguard Worker  string deployed_index = 2 [
2573*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
2574*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Index" }
2575*d5c09012SAndroid Build Coastguard Worker  ];
2576*d5c09012SAndroid Build Coastguard Worker}
2577*d5c09012SAndroid Build Coastguard Worker
2578*d5c09012SAndroid Build Coastguard Worker// Metadata message for UndeployIndex.
2579*d5c09012SAndroid Build Coastguard Workermessage UndeployIndexMetadata {
2580*d5c09012SAndroid Build Coastguard Worker  // Common metadata of the long-running operation.
2581*d5c09012SAndroid Build Coastguard Worker  OperationMetadata operation_metadata = 1;
2582*d5c09012SAndroid Build Coastguard Worker
2583*d5c09012SAndroid Build Coastguard Worker  // Output only. The index being undeployed.
2584*d5c09012SAndroid Build Coastguard Worker  string deployed_index = 2 [
2585*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
2586*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Index" }
2587*d5c09012SAndroid Build Coastguard Worker  ];
2588*d5c09012SAndroid Build Coastguard Worker}
2589*d5c09012SAndroid Build Coastguard Worker
2590*d5c09012SAndroid Build Coastguard Worker// Request message for UndeployIndexEndpoint.
2591*d5c09012SAndroid Build Coastguard Workermessage UndeployIndexRequest {
2592*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the IndexEndpoint resource on which the
2593*d5c09012SAndroid Build Coastguard Worker  // undeployment will act. Format:
2594*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}`
2595*d5c09012SAndroid Build Coastguard Worker  string index_endpoint = 1 [
2596*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2597*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2598*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/IndexEndpoint"
2599*d5c09012SAndroid Build Coastguard Worker    }
2600*d5c09012SAndroid Build Coastguard Worker  ];
2601*d5c09012SAndroid Build Coastguard Worker}
2602*d5c09012SAndroid Build Coastguard Worker
2603*d5c09012SAndroid Build Coastguard Worker// UndeployIndex response once the operation is done.
2604*d5c09012SAndroid Build Coastguard Workermessage UndeployIndexResponse {}
2605*d5c09012SAndroid Build Coastguard Worker
2606*d5c09012SAndroid Build Coastguard Worker// A deployment of an Index.
2607*d5c09012SAndroid Build Coastguard Workermessage DeployedIndex {
2608*d5c09012SAndroid Build Coastguard Worker  // Required. Name of the deployed Index.
2609*d5c09012SAndroid Build Coastguard Worker  // Format:
2610*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/indexes/{index_id}`
2611*d5c09012SAndroid Build Coastguard Worker  string index = 1 [
2612*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2613*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Index" }
2614*d5c09012SAndroid Build Coastguard Worker  ];
2615*d5c09012SAndroid Build Coastguard Worker}
2616*d5c09012SAndroid Build Coastguard Worker
2617*d5c09012SAndroid Build Coastguard Worker// Central configuration for a facet.
2618*d5c09012SAndroid Build Coastguard Workermessage FacetProperty {
2619*d5c09012SAndroid Build Coastguard Worker  // If bucket type is FIXED_RANGE, specify how values are bucketized. Use
2620*d5c09012SAndroid Build Coastguard Worker  // FixedRangeBucketSpec when you want to create multiple buckets with equal
2621*d5c09012SAndroid Build Coastguard Worker  // granularities. Using integer bucket value as an example, when
2622*d5c09012SAndroid Build Coastguard Worker  // bucket_start = 0, bucket_granularity = 10, bucket_count = 5, this facet
2623*d5c09012SAndroid Build Coastguard Worker  // will be aggregated via the following buckets:
2624*d5c09012SAndroid Build Coastguard Worker  // [-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf).
2625*d5c09012SAndroid Build Coastguard Worker  // Notably, bucket_count <= 1 is an invalid spec.
2626*d5c09012SAndroid Build Coastguard Worker  message FixedRangeBucketSpec {
2627*d5c09012SAndroid Build Coastguard Worker    // Lower bound of the bucket. NOTE: Only integer type is currently supported
2628*d5c09012SAndroid Build Coastguard Worker    // for this field.
2629*d5c09012SAndroid Build Coastguard Worker    FacetValue bucket_start = 1;
2630*d5c09012SAndroid Build Coastguard Worker
2631*d5c09012SAndroid Build Coastguard Worker    // Bucket granularity. NOTE: Only integer type is currently supported for
2632*d5c09012SAndroid Build Coastguard Worker    // this field.
2633*d5c09012SAndroid Build Coastguard Worker    FacetValue bucket_granularity = 2;
2634*d5c09012SAndroid Build Coastguard Worker
2635*d5c09012SAndroid Build Coastguard Worker    // Total number of buckets.
2636*d5c09012SAndroid Build Coastguard Worker    int32 bucket_count = 3;
2637*d5c09012SAndroid Build Coastguard Worker  }
2638*d5c09012SAndroid Build Coastguard Worker
2639*d5c09012SAndroid Build Coastguard Worker  // If bucket type is CUSTOM_RANGE, specify how values are bucketized. Use
2640*d5c09012SAndroid Build Coastguard Worker  // integer bucket value as an example, when the endpoints are 0, 10, 100, and
2641*d5c09012SAndroid Build Coastguard Worker  // 1000, we will generate the following facets:
2642*d5c09012SAndroid Build Coastguard Worker  // [-inf, 0), [0, 10), [10, 100), [100, 1000), [1000, inf).
2643*d5c09012SAndroid Build Coastguard Worker  // Notably:
2644*d5c09012SAndroid Build Coastguard Worker  // - endpoints must be listed in ascending order. Otherwise, the SearchConfig
2645*d5c09012SAndroid Build Coastguard Worker  //   API will reject the facet config.
2646*d5c09012SAndroid Build Coastguard Worker  // - < 1 endpoints is an invalid spec.
2647*d5c09012SAndroid Build Coastguard Worker  message CustomRangeBucketSpec {
2648*d5c09012SAndroid Build Coastguard Worker    // Currently, only integer type is supported for this field.
2649*d5c09012SAndroid Build Coastguard Worker    repeated FacetValue endpoints = 1;
2650*d5c09012SAndroid Build Coastguard Worker  }
2651*d5c09012SAndroid Build Coastguard Worker
2652*d5c09012SAndroid Build Coastguard Worker  // If bucket type is DATE, specify how date values are bucketized.
2653*d5c09012SAndroid Build Coastguard Worker  message DateTimeBucketSpec {
2654*d5c09012SAndroid Build Coastguard Worker    // Granularity enum for the datetime bucket.
2655*d5c09012SAndroid Build Coastguard Worker    enum Granularity {
2656*d5c09012SAndroid Build Coastguard Worker      // Unspecified granularity.
2657*d5c09012SAndroid Build Coastguard Worker      GRANULARITY_UNSPECIFIED = 0;
2658*d5c09012SAndroid Build Coastguard Worker
2659*d5c09012SAndroid Build Coastguard Worker      // Granularity is year.
2660*d5c09012SAndroid Build Coastguard Worker      YEAR = 1;
2661*d5c09012SAndroid Build Coastguard Worker
2662*d5c09012SAndroid Build Coastguard Worker      // Granularity is month.
2663*d5c09012SAndroid Build Coastguard Worker      MONTH = 2;
2664*d5c09012SAndroid Build Coastguard Worker
2665*d5c09012SAndroid Build Coastguard Worker      // Granularity is day.
2666*d5c09012SAndroid Build Coastguard Worker      DAY = 3;
2667*d5c09012SAndroid Build Coastguard Worker    }
2668*d5c09012SAndroid Build Coastguard Worker
2669*d5c09012SAndroid Build Coastguard Worker    // Granularity of date type facet.
2670*d5c09012SAndroid Build Coastguard Worker    Granularity granularity = 1;
2671*d5c09012SAndroid Build Coastguard Worker  }
2672*d5c09012SAndroid Build Coastguard Worker
2673*d5c09012SAndroid Build Coastguard Worker  oneof range_facet_config {
2674*d5c09012SAndroid Build Coastguard Worker    // Fixed range facet bucket config.
2675*d5c09012SAndroid Build Coastguard Worker    FixedRangeBucketSpec fixed_range_bucket_spec = 5;
2676*d5c09012SAndroid Build Coastguard Worker
2677*d5c09012SAndroid Build Coastguard Worker    // Custom range facet bucket config.
2678*d5c09012SAndroid Build Coastguard Worker    CustomRangeBucketSpec custom_range_bucket_spec = 6;
2679*d5c09012SAndroid Build Coastguard Worker
2680*d5c09012SAndroid Build Coastguard Worker    // Datetime range facet bucket config.
2681*d5c09012SAndroid Build Coastguard Worker    DateTimeBucketSpec datetime_bucket_spec = 7;
2682*d5c09012SAndroid Build Coastguard Worker  }
2683*d5c09012SAndroid Build Coastguard Worker
2684*d5c09012SAndroid Build Coastguard Worker  // Name of the facets, which are the dimensions users want to use to refine
2685*d5c09012SAndroid Build Coastguard Worker  // search results. `mapped_fields` will match UserSpecifiedDataSchema keys.
2686*d5c09012SAndroid Build Coastguard Worker  //
2687*d5c09012SAndroid Build Coastguard Worker  // For example, user can add a bunch of UGAs with the same key, such as
2688*d5c09012SAndroid Build Coastguard Worker  // player:adam, player:bob, player:charles. When multiple mapped_fields are
2689*d5c09012SAndroid Build Coastguard Worker  // specified, will merge their value together as final facet value. E.g.
2690*d5c09012SAndroid Build Coastguard Worker  // home_team: a, home_team:b, away_team:a, away_team:c, when facet_field =
2691*d5c09012SAndroid Build Coastguard Worker  // [home_team, away_team], facet_value will be [a, b, c].
2692*d5c09012SAndroid Build Coastguard Worker  //
2693*d5c09012SAndroid Build Coastguard Worker  // UNLESS this is a 1:1 facet dimension (mapped_fields.size() == 1) AND the
2694*d5c09012SAndroid Build Coastguard Worker  // mapped_field equals the parent SearchConfig.name, the parent must
2695*d5c09012SAndroid Build Coastguard Worker  // also contain a SearchCriteriaProperty that maps to the same fields.
2696*d5c09012SAndroid Build Coastguard Worker  // mapped_fields must not be empty.
2697*d5c09012SAndroid Build Coastguard Worker  repeated string mapped_fields = 1;
2698*d5c09012SAndroid Build Coastguard Worker
2699*d5c09012SAndroid Build Coastguard Worker  // Display name of the facet. To be used by UI for facet rendering.
2700*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
2701*d5c09012SAndroid Build Coastguard Worker
2702*d5c09012SAndroid Build Coastguard Worker  // Maximum number of unique bucket to return for one facet. Bucket number can
2703*d5c09012SAndroid Build Coastguard Worker  // be large for high-cardinality facet such as "player". We only return top-n
2704*d5c09012SAndroid Build Coastguard Worker  // most related ones to user. If it's <= 0, the server will decide the
2705*d5c09012SAndroid Build Coastguard Worker  // appropriate result_size.
2706*d5c09012SAndroid Build Coastguard Worker  int64 result_size = 3;
2707*d5c09012SAndroid Build Coastguard Worker
2708*d5c09012SAndroid Build Coastguard Worker  // Facet bucket type e.g. value, range.
2709*d5c09012SAndroid Build Coastguard Worker  FacetBucketType bucket_type = 4;
2710*d5c09012SAndroid Build Coastguard Worker}
2711*d5c09012SAndroid Build Coastguard Worker
2712*d5c09012SAndroid Build Coastguard Worker// Search resource: SearchHypernym.
2713*d5c09012SAndroid Build Coastguard Worker// For example,
2714*d5c09012SAndroid Build Coastguard Worker// { hypernym: "vehicle"
2715*d5c09012SAndroid Build Coastguard Worker//   hyponyms: ["sedan", "truck"] }
2716*d5c09012SAndroid Build Coastguard Worker// This means in SMART_SEARCH mode, searching for "vehicle" will also return
2717*d5c09012SAndroid Build Coastguard Worker// results with "sedan" or "truck" as annotations.
2718*d5c09012SAndroid Build Coastguard Workermessage SearchHypernym {
2719*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
2720*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/SearchHypernym"
2721*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}"
2722*d5c09012SAndroid Build Coastguard Worker  };
2723*d5c09012SAndroid Build Coastguard Worker
2724*d5c09012SAndroid Build Coastguard Worker  // Resource name of the SearchHypernym.
2725*d5c09012SAndroid Build Coastguard Worker  // Format:
2726*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}`
2727*d5c09012SAndroid Build Coastguard Worker  string name = 1;
2728*d5c09012SAndroid Build Coastguard Worker
2729*d5c09012SAndroid Build Coastguard Worker  // The hypernym.
2730*d5c09012SAndroid Build Coastguard Worker  string hypernym = 2;
2731*d5c09012SAndroid Build Coastguard Worker
2732*d5c09012SAndroid Build Coastguard Worker  // Hyponyms that the hypernym is mapped to.
2733*d5c09012SAndroid Build Coastguard Worker  repeated string hyponyms = 3;
2734*d5c09012SAndroid Build Coastguard Worker}
2735*d5c09012SAndroid Build Coastguard Worker
2736*d5c09012SAndroid Build Coastguard Worker// Request message for creating SearchHypernym.
2737*d5c09012SAndroid Build Coastguard Workermessage CreateSearchHypernymRequest {
2738*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this SearchHypernym will be created.
2739*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project_number}/locations/{location}/corpora/{corpus}`
2740*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2741*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2742*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
2743*d5c09012SAndroid Build Coastguard Worker  ];
2744*d5c09012SAndroid Build Coastguard Worker
2745*d5c09012SAndroid Build Coastguard Worker  // Required. The SearchHypernym to create.
2746*d5c09012SAndroid Build Coastguard Worker  SearchHypernym search_hypernym = 2 [(google.api.field_behavior) = REQUIRED];
2747*d5c09012SAndroid Build Coastguard Worker
2748*d5c09012SAndroid Build Coastguard Worker  // Optional. The search hypernym id.
2749*d5c09012SAndroid Build Coastguard Worker  // If omitted, a random UUID will be generated.
2750*d5c09012SAndroid Build Coastguard Worker  optional string search_hypernym_id = 3
2751*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
2752*d5c09012SAndroid Build Coastguard Worker}
2753*d5c09012SAndroid Build Coastguard Worker
2754*d5c09012SAndroid Build Coastguard Worker// Request message for updating SearchHypernym.
2755*d5c09012SAndroid Build Coastguard Workermessage UpdateSearchHypernymRequest {
2756*d5c09012SAndroid Build Coastguard Worker  // Required. The SearchHypernym to update.
2757*d5c09012SAndroid Build Coastguard Worker  // The search hypernym's `name` field is used to identify the search hypernym
2758*d5c09012SAndroid Build Coastguard Worker  // to be updated. Format:
2759*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}`
2760*d5c09012SAndroid Build Coastguard Worker  SearchHypernym search_hypernym = 1 [(google.api.field_behavior) = REQUIRED];
2761*d5c09012SAndroid Build Coastguard Worker
2762*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated. If left unset, all field paths will be
2763*d5c09012SAndroid Build Coastguard Worker  // updated/overwritten.
2764*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
2765*d5c09012SAndroid Build Coastguard Worker}
2766*d5c09012SAndroid Build Coastguard Worker
2767*d5c09012SAndroid Build Coastguard Worker// Request message for getting SearchHypernym.
2768*d5c09012SAndroid Build Coastguard Workermessage GetSearchHypernymRequest {
2769*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the SearchHypernym to retrieve.
2770*d5c09012SAndroid Build Coastguard Worker  // Format:
2771*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}`
2772*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2773*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2774*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2775*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/SearchHypernym"
2776*d5c09012SAndroid Build Coastguard Worker    }
2777*d5c09012SAndroid Build Coastguard Worker  ];
2778*d5c09012SAndroid Build Coastguard Worker}
2779*d5c09012SAndroid Build Coastguard Worker
2780*d5c09012SAndroid Build Coastguard Worker// Request message for deleting SearchHypernym.
2781*d5c09012SAndroid Build Coastguard Workermessage DeleteSearchHypernymRequest {
2782*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the SearchHypernym to delete.
2783*d5c09012SAndroid Build Coastguard Worker  // Format:
2784*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}`
2785*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2786*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2787*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2788*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/SearchHypernym"
2789*d5c09012SAndroid Build Coastguard Worker    }
2790*d5c09012SAndroid Build Coastguard Worker  ];
2791*d5c09012SAndroid Build Coastguard Worker}
2792*d5c09012SAndroid Build Coastguard Worker
2793*d5c09012SAndroid Build Coastguard Worker// Request message for listing SearchHypernyms.
2794*d5c09012SAndroid Build Coastguard Workermessage ListSearchHypernymsRequest {
2795*d5c09012SAndroid Build Coastguard Worker  // Required. The parent, which owns this collection of SearchHypernyms.
2796*d5c09012SAndroid Build Coastguard Worker  // Format:
2797*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}`
2798*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2799*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2800*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2801*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/SearchHypernym"
2802*d5c09012SAndroid Build Coastguard Worker    }
2803*d5c09012SAndroid Build Coastguard Worker  ];
2804*d5c09012SAndroid Build Coastguard Worker
2805*d5c09012SAndroid Build Coastguard Worker  // The maximum number of SearchHypernyms returned. The service may
2806*d5c09012SAndroid Build Coastguard Worker  // return fewer than this value. If unspecified, a page size of 50 will be
2807*d5c09012SAndroid Build Coastguard Worker  // used. The maximum value is 1000; values above 1000 will be coerced to 1000.
2808*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
2809*d5c09012SAndroid Build Coastguard Worker
2810*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `SearchHypernym` call.
2811*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
2812*d5c09012SAndroid Build Coastguard Worker  //
2813*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to
2814*d5c09012SAndroid Build Coastguard Worker  // `SearchHypernym` must match the call that provided the page
2815*d5c09012SAndroid Build Coastguard Worker  // token.
2816*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
2817*d5c09012SAndroid Build Coastguard Worker}
2818*d5c09012SAndroid Build Coastguard Worker
2819*d5c09012SAndroid Build Coastguard Worker// Response message for listing SearchHypernyms.
2820*d5c09012SAndroid Build Coastguard Workermessage ListSearchHypernymsResponse {
2821*d5c09012SAndroid Build Coastguard Worker  // The SearchHypernyms from the specified corpus.
2822*d5c09012SAndroid Build Coastguard Worker  repeated SearchHypernym search_hypernyms = 1;
2823*d5c09012SAndroid Build Coastguard Worker
2824*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
2825*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
2826*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
2827*d5c09012SAndroid Build Coastguard Worker}
2828*d5c09012SAndroid Build Coastguard Worker
2829*d5c09012SAndroid Build Coastguard Worker// Central configuration for custom search criteria.
2830*d5c09012SAndroid Build Coastguard Workermessage SearchCriteriaProperty {
2831*d5c09012SAndroid Build Coastguard Worker  // Each mapped_field corresponds to a UGA key. To understand how this property
2832*d5c09012SAndroid Build Coastguard Worker  // works, take the following example. In the SearchConfig table, the
2833*d5c09012SAndroid Build Coastguard Worker  // user adds this entry:
2834*d5c09012SAndroid Build Coastguard Worker  //   search_config {
2835*d5c09012SAndroid Build Coastguard Worker  //     name: "person"
2836*d5c09012SAndroid Build Coastguard Worker  //     search_criteria_property {
2837*d5c09012SAndroid Build Coastguard Worker  //       mapped_fields: "player"
2838*d5c09012SAndroid Build Coastguard Worker  //       mapped_fields: "coach"
2839*d5c09012SAndroid Build Coastguard Worker  //     }
2840*d5c09012SAndroid Build Coastguard Worker  //   }
2841*d5c09012SAndroid Build Coastguard Worker  //
2842*d5c09012SAndroid Build Coastguard Worker  // Now, when a user issues a query like:
2843*d5c09012SAndroid Build Coastguard Worker  //   criteria {
2844*d5c09012SAndroid Build Coastguard Worker  //     field: "person"
2845*d5c09012SAndroid Build Coastguard Worker  //     text_array {
2846*d5c09012SAndroid Build Coastguard Worker  //       txt_values: "Tom Brady"
2847*d5c09012SAndroid Build Coastguard Worker  //       txt_values: "Bill Belichick"
2848*d5c09012SAndroid Build Coastguard Worker  //     }
2849*d5c09012SAndroid Build Coastguard Worker  //   }
2850*d5c09012SAndroid Build Coastguard Worker  //
2851*d5c09012SAndroid Build Coastguard Worker  // MWH search will return search documents where (player=Tom Brady ||
2852*d5c09012SAndroid Build Coastguard Worker  // coach=Tom Brady || player=Bill Belichick || coach=Bill Belichick).
2853*d5c09012SAndroid Build Coastguard Worker  repeated string mapped_fields = 1;
2854*d5c09012SAndroid Build Coastguard Worker}
2855*d5c09012SAndroid Build Coastguard Worker
2856*d5c09012SAndroid Build Coastguard Worker// Definition of a single value with generic type.
2857*d5c09012SAndroid Build Coastguard Workermessage FacetValue {
2858*d5c09012SAndroid Build Coastguard Worker  oneof value {
2859*d5c09012SAndroid Build Coastguard Worker    // String type value.
2860*d5c09012SAndroid Build Coastguard Worker    string string_value = 1;
2861*d5c09012SAndroid Build Coastguard Worker
2862*d5c09012SAndroid Build Coastguard Worker    // Integer type value.
2863*d5c09012SAndroid Build Coastguard Worker    int64 integer_value = 2;
2864*d5c09012SAndroid Build Coastguard Worker
2865*d5c09012SAndroid Build Coastguard Worker    // Datetime type value.
2866*d5c09012SAndroid Build Coastguard Worker    google.type.DateTime datetime_value = 3;
2867*d5c09012SAndroid Build Coastguard Worker  }
2868*d5c09012SAndroid Build Coastguard Worker}
2869*d5c09012SAndroid Build Coastguard Worker
2870*d5c09012SAndroid Build Coastguard Worker// Holds the facet value, selections state, and metadata.
2871*d5c09012SAndroid Build Coastguard Workermessage FacetBucket {
2872*d5c09012SAndroid Build Coastguard Worker  // The range of values [start, end) for which faceting is applied.
2873*d5c09012SAndroid Build Coastguard Worker  message Range {
2874*d5c09012SAndroid Build Coastguard Worker    // Start of the range. Non-existence indicates some bound (e.g. -inf).
2875*d5c09012SAndroid Build Coastguard Worker    FacetValue start = 1;
2876*d5c09012SAndroid Build Coastguard Worker
2877*d5c09012SAndroid Build Coastguard Worker    // End of the range. Non-existence indicates some bound (e.g. inf).
2878*d5c09012SAndroid Build Coastguard Worker    FacetValue end = 2;
2879*d5c09012SAndroid Build Coastguard Worker  }
2880*d5c09012SAndroid Build Coastguard Worker
2881*d5c09012SAndroid Build Coastguard Worker  // Bucket associated with a facet. For example, bucket of facet “team”
2882*d5c09012SAndroid Build Coastguard Worker  // can be "49ers", "patriots", etc; bucket of facet "player" can be "tom
2883*d5c09012SAndroid Build Coastguard Worker  // brady", "drew brees", etc.
2884*d5c09012SAndroid Build Coastguard Worker  oneof bucket_value {
2885*d5c09012SAndroid Build Coastguard Worker    // Singular value.
2886*d5c09012SAndroid Build Coastguard Worker    FacetValue value = 2;
2887*d5c09012SAndroid Build Coastguard Worker
2888*d5c09012SAndroid Build Coastguard Worker    // Range value.
2889*d5c09012SAndroid Build Coastguard Worker    Range range = 4;
2890*d5c09012SAndroid Build Coastguard Worker  }
2891*d5c09012SAndroid Build Coastguard Worker
2892*d5c09012SAndroid Build Coastguard Worker  // Whether one facet bucket is selected. This field represents user's facet
2893*d5c09012SAndroid Build Coastguard Worker  // selection. It is set by frontend in SearchVideosRequest.
2894*d5c09012SAndroid Build Coastguard Worker  bool selected = 3;
2895*d5c09012SAndroid Build Coastguard Worker}
2896*d5c09012SAndroid Build Coastguard Worker
2897*d5c09012SAndroid Build Coastguard Worker// A group of facet buckets to be passed back and forth between backend &
2898*d5c09012SAndroid Build Coastguard Worker// frontend.
2899*d5c09012SAndroid Build Coastguard Workermessage FacetGroup {
2900*d5c09012SAndroid Build Coastguard Worker  // Unique id of the facet group.
2901*d5c09012SAndroid Build Coastguard Worker  string facet_id = 1;
2902*d5c09012SAndroid Build Coastguard Worker
2903*d5c09012SAndroid Build Coastguard Worker  // Display name of the facet. To be used by UI for facet rendering.
2904*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
2905*d5c09012SAndroid Build Coastguard Worker
2906*d5c09012SAndroid Build Coastguard Worker  // Buckets associated with the facet. E.g. for "Team" facet, the bucket
2907*d5c09012SAndroid Build Coastguard Worker  // can be 49ers, patriots, etc.
2908*d5c09012SAndroid Build Coastguard Worker  repeated FacetBucket buckets = 3;
2909*d5c09012SAndroid Build Coastguard Worker
2910*d5c09012SAndroid Build Coastguard Worker  // Facet bucket type.
2911*d5c09012SAndroid Build Coastguard Worker  FacetBucketType bucket_type = 4;
2912*d5c09012SAndroid Build Coastguard Worker
2913*d5c09012SAndroid Build Coastguard Worker  // If true, return query matched annotations for this facet group's selection.
2914*d5c09012SAndroid Build Coastguard Worker  // This option is only applicable for facets based on partition level
2915*d5c09012SAndroid Build Coastguard Worker  // annotations. It supports the following facet values:
2916*d5c09012SAndroid Build Coastguard Worker  //  - INTEGER
2917*d5c09012SAndroid Build Coastguard Worker  //  - STRING (DataSchema.SearchStrategy.EXACT_SEARCH only)
2918*d5c09012SAndroid Build Coastguard Worker  bool fetch_matched_annotations = 5;
2919*d5c09012SAndroid Build Coastguard Worker}
2920*d5c09012SAndroid Build Coastguard Worker
2921*d5c09012SAndroid Build Coastguard Worker// Request message for IngestAsset API.
2922*d5c09012SAndroid Build Coastguard Workermessage IngestAssetRequest {
2923*d5c09012SAndroid Build Coastguard Worker  // Configuration for the data.
2924*d5c09012SAndroid Build Coastguard Worker  message Config {
2925*d5c09012SAndroid Build Coastguard Worker    // Type information for video data.
2926*d5c09012SAndroid Build Coastguard Worker    message VideoType {
2927*d5c09012SAndroid Build Coastguard Worker      // Container format of the video.
2928*d5c09012SAndroid Build Coastguard Worker      enum ContainerFormat {
2929*d5c09012SAndroid Build Coastguard Worker        // The default type, not supposed to be used.
2930*d5c09012SAndroid Build Coastguard Worker        CONTAINER_FORMAT_UNSPECIFIED = 0;
2931*d5c09012SAndroid Build Coastguard Worker
2932*d5c09012SAndroid Build Coastguard Worker        // Mp4 container format.
2933*d5c09012SAndroid Build Coastguard Worker        CONTAINER_FORMAT_MP4 = 1;
2934*d5c09012SAndroid Build Coastguard Worker      }
2935*d5c09012SAndroid Build Coastguard Worker
2936*d5c09012SAndroid Build Coastguard Worker      // Container format of the video data.
2937*d5c09012SAndroid Build Coastguard Worker      ContainerFormat container_format = 1;
2938*d5c09012SAndroid Build Coastguard Worker    }
2939*d5c09012SAndroid Build Coastguard Worker
2940*d5c09012SAndroid Build Coastguard Worker    oneof data_type {
2941*d5c09012SAndroid Build Coastguard Worker      // Type information for video data.
2942*d5c09012SAndroid Build Coastguard Worker      VideoType video_type = 2;
2943*d5c09012SAndroid Build Coastguard Worker    }
2944*d5c09012SAndroid Build Coastguard Worker
2945*d5c09012SAndroid Build Coastguard Worker    // Required. The resource name of the asset that the ingested data belongs
2946*d5c09012SAndroid Build Coastguard Worker    // to.
2947*d5c09012SAndroid Build Coastguard Worker    string asset = 1 [
2948*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
2949*d5c09012SAndroid Build Coastguard Worker      (google.api.resource_reference) = {
2950*d5c09012SAndroid Build Coastguard Worker        type: "visionai.googleapis.com/Asset"
2951*d5c09012SAndroid Build Coastguard Worker      }
2952*d5c09012SAndroid Build Coastguard Worker    ];
2953*d5c09012SAndroid Build Coastguard Worker  }
2954*d5c09012SAndroid Build Coastguard Worker
2955*d5c09012SAndroid Build Coastguard Worker  // Contains the data and the corresponding time range this data is for.
2956*d5c09012SAndroid Build Coastguard Worker  message TimeIndexedData {
2957*d5c09012SAndroid Build Coastguard Worker    // Data to be ingested.
2958*d5c09012SAndroid Build Coastguard Worker    bytes data = 1;
2959*d5c09012SAndroid Build Coastguard Worker
2960*d5c09012SAndroid Build Coastguard Worker    // Time range of the data.
2961*d5c09012SAndroid Build Coastguard Worker    Partition.TemporalPartition temporal_partition = 2;
2962*d5c09012SAndroid Build Coastguard Worker  }
2963*d5c09012SAndroid Build Coastguard Worker
2964*d5c09012SAndroid Build Coastguard Worker  oneof streaming_request {
2965*d5c09012SAndroid Build Coastguard Worker    // Provides information for the data and the asset resource name that the
2966*d5c09012SAndroid Build Coastguard Worker    // data belongs to. The first `IngestAssetRequest` message must only contain
2967*d5c09012SAndroid Build Coastguard Worker    // a `Config` message.
2968*d5c09012SAndroid Build Coastguard Worker    Config config = 1;
2969*d5c09012SAndroid Build Coastguard Worker
2970*d5c09012SAndroid Build Coastguard Worker    // Data to be ingested.
2971*d5c09012SAndroid Build Coastguard Worker    TimeIndexedData time_indexed_data = 2;
2972*d5c09012SAndroid Build Coastguard Worker  }
2973*d5c09012SAndroid Build Coastguard Worker}
2974*d5c09012SAndroid Build Coastguard Worker
2975*d5c09012SAndroid Build Coastguard Worker// Response message for IngestAsset API.
2976*d5c09012SAndroid Build Coastguard Workermessage IngestAssetResponse {
2977*d5c09012SAndroid Build Coastguard Worker  // Time range of the data that has been successfully ingested.
2978*d5c09012SAndroid Build Coastguard Worker  Partition.TemporalPartition successfully_ingested_partition = 1;
2979*d5c09012SAndroid Build Coastguard Worker}
2980*d5c09012SAndroid Build Coastguard Worker
2981*d5c09012SAndroid Build Coastguard Worker// Request message for ClipAsset API.
2982*d5c09012SAndroid Build Coastguard Workermessage ClipAssetRequest {
2983*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset to request clips for.
2984*d5c09012SAndroid Build Coastguard Worker  // Format:
2985*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
2986*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2987*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2988*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
2989*d5c09012SAndroid Build Coastguard Worker  ];
2990*d5c09012SAndroid Build Coastguard Worker
2991*d5c09012SAndroid Build Coastguard Worker  // Required. The time range to request clips for.
2992*d5c09012SAndroid Build Coastguard Worker  Partition.TemporalPartition temporal_partition = 2
2993*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
2994*d5c09012SAndroid Build Coastguard Worker}
2995*d5c09012SAndroid Build Coastguard Worker
2996*d5c09012SAndroid Build Coastguard Worker// Response message for ClipAsset API.
2997*d5c09012SAndroid Build Coastguard Workermessage ClipAssetResponse {
2998*d5c09012SAndroid Build Coastguard Worker  // Signed uri with corresponding time range.
2999*d5c09012SAndroid Build Coastguard Worker  message TimeIndexedUri {
3000*d5c09012SAndroid Build Coastguard Worker    // Time range of the video that the uri is for.
3001*d5c09012SAndroid Build Coastguard Worker    Partition.TemporalPartition temporal_partition = 1;
3002*d5c09012SAndroid Build Coastguard Worker
3003*d5c09012SAndroid Build Coastguard Worker    // Signed uri to download the video clip.
3004*d5c09012SAndroid Build Coastguard Worker    string uri = 2;
3005*d5c09012SAndroid Build Coastguard Worker  }
3006*d5c09012SAndroid Build Coastguard Worker
3007*d5c09012SAndroid Build Coastguard Worker  // A list of signed uris to download the video clips that cover the requested
3008*d5c09012SAndroid Build Coastguard Worker  // time range ordered by time.
3009*d5c09012SAndroid Build Coastguard Worker  repeated TimeIndexedUri time_indexed_uris = 1;
3010*d5c09012SAndroid Build Coastguard Worker}
3011*d5c09012SAndroid Build Coastguard Worker
3012*d5c09012SAndroid Build Coastguard Worker// Request message for GenerateHlsUri API.
3013*d5c09012SAndroid Build Coastguard Workermessage GenerateHlsUriRequest {
3014*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset to request clips for.
3015*d5c09012SAndroid Build Coastguard Worker  // Format:
3016*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
3017*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
3018*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
3019*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Asset" }
3020*d5c09012SAndroid Build Coastguard Worker  ];
3021*d5c09012SAndroid Build Coastguard Worker
3022*d5c09012SAndroid Build Coastguard Worker  // The time range to request clips for. Will be ignored if `get_live_view` is
3023*d5c09012SAndroid Build Coastguard Worker  // set to True. The total time range requested should be smaller than 24h.
3024*d5c09012SAndroid Build Coastguard Worker  repeated Partition.TemporalPartition temporal_partitions = 2;
3025*d5c09012SAndroid Build Coastguard Worker
3026*d5c09012SAndroid Build Coastguard Worker  // Option to exclusively show a livestream of the asset with up to 3 minutes
3027*d5c09012SAndroid Build Coastguard Worker  // of backlog data.
3028*d5c09012SAndroid Build Coastguard Worker  bool live_view_enabled = 3;
3029*d5c09012SAndroid Build Coastguard Worker}
3030*d5c09012SAndroid Build Coastguard Worker
3031*d5c09012SAndroid Build Coastguard Worker// Response message for GenerateHlsUri API.
3032*d5c09012SAndroid Build Coastguard Workermessage GenerateHlsUriResponse {
3033*d5c09012SAndroid Build Coastguard Worker  // A signed uri to download the HLS manifest corresponding to the requested
3034*d5c09012SAndroid Build Coastguard Worker  // times.
3035*d5c09012SAndroid Build Coastguard Worker  string uri = 1;
3036*d5c09012SAndroid Build Coastguard Worker
3037*d5c09012SAndroid Build Coastguard Worker  // A list of temporal partitions of the content returned in the order they
3038*d5c09012SAndroid Build Coastguard Worker  // appear in the stream.
3039*d5c09012SAndroid Build Coastguard Worker  repeated Partition.TemporalPartition temporal_partitions = 2;
3040*d5c09012SAndroid Build Coastguard Worker}
3041*d5c09012SAndroid Build Coastguard Worker
3042*d5c09012SAndroid Build Coastguard Worker// Request message for SearchAssets.
3043*d5c09012SAndroid Build Coastguard Workermessage SearchAssetsRequest {
3044*d5c09012SAndroid Build Coastguard Worker  // Sorting specification. If this field is not specified, by default:
3045*d5c09012SAndroid Build Coastguard Worker  // - STREAM_VIDEO: search results are sorted by the start time.
3046*d5c09012SAndroid Build Coastguard Worker  oneof sort_spec {
3047*d5c09012SAndroid Build Coastguard Worker    // Sort by the value under the data schema key.
3048*d5c09012SAndroid Build Coastguard Worker    SchemaKeySortingStrategy schema_key_sorting_strategy = 9;
3049*d5c09012SAndroid Build Coastguard Worker  }
3050*d5c09012SAndroid Build Coastguard Worker
3051*d5c09012SAndroid Build Coastguard Worker  // Required. The parent corpus to search.
3052*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project_id}/locations/{location_id}/corpora/{corpus_id}'
3053*d5c09012SAndroid Build Coastguard Worker  string corpus = 1 [
3054*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
3055*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "visionai.googleapis.com/Corpus" }
3056*d5c09012SAndroid Build Coastguard Worker  ];
3057*d5c09012SAndroid Build Coastguard Worker
3058*d5c09012SAndroid Build Coastguard Worker  // The number of results to be returned in this page. If it's 0, the server
3059*d5c09012SAndroid Build Coastguard Worker  // will decide the appropriate page_size.
3060*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
3061*d5c09012SAndroid Build Coastguard Worker
3062*d5c09012SAndroid Build Coastguard Worker  // The continuation token to fetch the next page. If empty, it means it is
3063*d5c09012SAndroid Build Coastguard Worker  // fetching the first page.
3064*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
3065*d5c09012SAndroid Build Coastguard Worker
3066*d5c09012SAndroid Build Coastguard Worker  // Time ranges that matching video content must fall within. If no ranges are
3067*d5c09012SAndroid Build Coastguard Worker  // provided, there will be no time restriction. This field is treated just
3068*d5c09012SAndroid Build Coastguard Worker  // like the criteria below, but defined separately for convenience as it is
3069*d5c09012SAndroid Build Coastguard Worker  // used frequently. Note that if the end_time is in the future, it will be
3070*d5c09012SAndroid Build Coastguard Worker  // clamped to the time the request was received.
3071*d5c09012SAndroid Build Coastguard Worker  DateTimeRangeArray content_time_ranges = 5;
3072*d5c09012SAndroid Build Coastguard Worker
3073*d5c09012SAndroid Build Coastguard Worker  // Criteria applied to search results.
3074*d5c09012SAndroid Build Coastguard Worker  repeated Criteria criteria = 4;
3075*d5c09012SAndroid Build Coastguard Worker
3076*d5c09012SAndroid Build Coastguard Worker  // Stores most recent facet selection state. Only facet groups with user's
3077*d5c09012SAndroid Build Coastguard Worker  // selection will be presented here. Selection state is either selected or
3078*d5c09012SAndroid Build Coastguard Worker  // unselected. Only selected facet buckets will be used as search criteria.
3079*d5c09012SAndroid Build Coastguard Worker  repeated FacetGroup facet_selections = 6;
3080*d5c09012SAndroid Build Coastguard Worker
3081*d5c09012SAndroid Build Coastguard Worker  // A list of annotation keys to specify the annotations to be retrieved and
3082*d5c09012SAndroid Build Coastguard Worker  // returned with each search result.
3083*d5c09012SAndroid Build Coastguard Worker  // Annotation granularity must be GRANULARITY_ASSET_LEVEL and its search
3084*d5c09012SAndroid Build Coastguard Worker  // strategy must not be NO_SEARCH.
3085*d5c09012SAndroid Build Coastguard Worker  repeated string result_annotation_keys = 8;
3086*d5c09012SAndroid Build Coastguard Worker
3087*d5c09012SAndroid Build Coastguard Worker  // Global search query. Allows user to search assets without needing to
3088*d5c09012SAndroid Build Coastguard Worker  // specify which field the value belongs to.
3089*d5c09012SAndroid Build Coastguard Worker  string search_query = 10;
3090*d5c09012SAndroid Build Coastguard Worker}
3091*d5c09012SAndroid Build Coastguard Worker
3092*d5c09012SAndroid Build Coastguard Worker// Request message for SearchIndexEndpoint.
3093*d5c09012SAndroid Build Coastguard Workermessage SearchIndexEndpointRequest {
3094*d5c09012SAndroid Build Coastguard Worker  // The oneof global search query.
3095*d5c09012SAndroid Build Coastguard Worker  oneof query {
3096*d5c09012SAndroid Build Coastguard Worker    // An image-only query.
3097*d5c09012SAndroid Build Coastguard Worker    ImageQuery image_query = 2;
3098*d5c09012SAndroid Build Coastguard Worker
3099*d5c09012SAndroid Build Coastguard Worker    // A text-only query.
3100*d5c09012SAndroid Build Coastguard Worker    string text_query = 3;
3101*d5c09012SAndroid Build Coastguard Worker  }
3102*d5c09012SAndroid Build Coastguard Worker
3103*d5c09012SAndroid Build Coastguard Worker  // Required. The index endpoint to search.
3104*d5c09012SAndroid Build Coastguard Worker  // Format:
3105*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_id}/locations/{location_id}/indexEndpoints/{index_endpoint_id}'
3106*d5c09012SAndroid Build Coastguard Worker  string index_endpoint = 1 [
3107*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
3108*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
3109*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/IndexEndpoint"
3110*d5c09012SAndroid Build Coastguard Worker    }
3111*d5c09012SAndroid Build Coastguard Worker  ];
3112*d5c09012SAndroid Build Coastguard Worker
3113*d5c09012SAndroid Build Coastguard Worker  // Criteria applied to search results.
3114*d5c09012SAndroid Build Coastguard Worker  repeated Criteria criteria = 4;
3115*d5c09012SAndroid Build Coastguard Worker
3116*d5c09012SAndroid Build Coastguard Worker  // Criteria to exclude from search results.
3117*d5c09012SAndroid Build Coastguard Worker  // Note that `fetch_matched_annotations` will be ignored.
3118*d5c09012SAndroid Build Coastguard Worker  repeated Criteria exclusion_criteria = 7;
3119*d5c09012SAndroid Build Coastguard Worker
3120*d5c09012SAndroid Build Coastguard Worker  // Requested page size. API may return fewer results than requested.
3121*d5c09012SAndroid Build Coastguard Worker  // If negative, INVALID_ARGUMENT error will be returned.
3122*d5c09012SAndroid Build Coastguard Worker  // If unspecified or 0, API will pick a default size, which is 10.
3123*d5c09012SAndroid Build Coastguard Worker  // If the requested page size is larger than the maximum size, API will pick
3124*d5c09012SAndroid Build Coastguard Worker  // the maximum size, which is 100.
3125*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 5;
3126*d5c09012SAndroid Build Coastguard Worker
3127*d5c09012SAndroid Build Coastguard Worker  // The continuation token to fetch the next page. If empty, it means it is
3128*d5c09012SAndroid Build Coastguard Worker  // fetching the first page.
3129*d5c09012SAndroid Build Coastguard Worker  string page_token = 6;
3130*d5c09012SAndroid Build Coastguard Worker}
3131*d5c09012SAndroid Build Coastguard Worker
3132*d5c09012SAndroid Build Coastguard Worker// Image query for search endpoint request.
3133*d5c09012SAndroid Build Coastguard Workermessage ImageQuery {
3134*d5c09012SAndroid Build Coastguard Worker  oneof image {
3135*d5c09012SAndroid Build Coastguard Worker    // Input image in raw bytes.
3136*d5c09012SAndroid Build Coastguard Worker    bytes input_image = 1;
3137*d5c09012SAndroid Build Coastguard Worker
3138*d5c09012SAndroid Build Coastguard Worker    // Resource name of the asset. Only supported in IMAGE corpus type.
3139*d5c09012SAndroid Build Coastguard Worker    // Format:
3140*d5c09012SAndroid Build Coastguard Worker    // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
3141*d5c09012SAndroid Build Coastguard Worker    string asset = 2 [(google.api.resource_reference) = {
3142*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Asset"
3143*d5c09012SAndroid Build Coastguard Worker    }];
3144*d5c09012SAndroid Build Coastguard Worker  }
3145*d5c09012SAndroid Build Coastguard Worker}
3146*d5c09012SAndroid Build Coastguard Worker
3147*d5c09012SAndroid Build Coastguard Worker// A strategy to specify how to sort by data schema key.
3148*d5c09012SAndroid Build Coastguard Workermessage SchemaKeySortingStrategy {
3149*d5c09012SAndroid Build Coastguard Worker  // Option for one data schema key.
3150*d5c09012SAndroid Build Coastguard Worker  message Option {
3151*d5c09012SAndroid Build Coastguard Worker    // When one result has multiple values with the same key, specify
3152*d5c09012SAndroid Build Coastguard Worker    // which value is used to sort. By default, AGGREGATE_METHOD_LARGEST
3153*d5c09012SAndroid Build Coastguard Worker    // is used when results are sorted in decreasing order,
3154*d5c09012SAndroid Build Coastguard Worker    // AGGREGATE_METHOD_SMALLEST is used when results are sorted in
3155*d5c09012SAndroid Build Coastguard Worker    // incresing order.
3156*d5c09012SAndroid Build Coastguard Worker    enum AggregateMethod {
3157*d5c09012SAndroid Build Coastguard Worker      // The unspecified aggregate method will be overwritten as mentioned
3158*d5c09012SAndroid Build Coastguard Worker      // above.
3159*d5c09012SAndroid Build Coastguard Worker      AGGREGATE_METHOD_UNSPECIFIED = 0;
3160*d5c09012SAndroid Build Coastguard Worker
3161*d5c09012SAndroid Build Coastguard Worker      // Take the (lexicographical or numerical) largest value to sort.
3162*d5c09012SAndroid Build Coastguard Worker      AGGREGATE_METHOD_LARGEST = 1;
3163*d5c09012SAndroid Build Coastguard Worker
3164*d5c09012SAndroid Build Coastguard Worker      // Take the (lexicographical or numerical) smallest value to sort.
3165*d5c09012SAndroid Build Coastguard Worker      AGGREGATE_METHOD_SMALLEST = 2;
3166*d5c09012SAndroid Build Coastguard Worker    }
3167*d5c09012SAndroid Build Coastguard Worker
3168*d5c09012SAndroid Build Coastguard Worker    // The data used to sort.
3169*d5c09012SAndroid Build Coastguard Worker    string data_schema_key = 1;
3170*d5c09012SAndroid Build Coastguard Worker
3171*d5c09012SAndroid Build Coastguard Worker    // Whether to sort in decreasing order or increasing order.
3172*d5c09012SAndroid Build Coastguard Worker    // By default, results are sorted in incresing order.
3173*d5c09012SAndroid Build Coastguard Worker    bool sort_decreasing = 2;
3174*d5c09012SAndroid Build Coastguard Worker
3175*d5c09012SAndroid Build Coastguard Worker    // Aggregate method for the current data schema key.
3176*d5c09012SAndroid Build Coastguard Worker    optional AggregateMethod aggregate_method = 3;
3177*d5c09012SAndroid Build Coastguard Worker  }
3178*d5c09012SAndroid Build Coastguard Worker
3179*d5c09012SAndroid Build Coastguard Worker  // Options in the front have high priority than those in the back.
3180*d5c09012SAndroid Build Coastguard Worker  repeated Option options = 1;
3181*d5c09012SAndroid Build Coastguard Worker}
3182*d5c09012SAndroid Build Coastguard Worker
3183*d5c09012SAndroid Build Coastguard Worker// The metadata for DeleteAsset API that embeds in
3184*d5c09012SAndroid Build Coastguard Worker// [metadata][google.longrunning.Operation.metadata] field.
3185*d5c09012SAndroid Build Coastguard Workermessage DeleteAssetMetadata {}
3186*d5c09012SAndroid Build Coastguard Worker
3187*d5c09012SAndroid Build Coastguard Worker// Stores the criteria-annotation matching results for each search result item.
3188*d5c09012SAndroid Build Coastguard Workermessage AnnotationMatchingResult {
3189*d5c09012SAndroid Build Coastguard Worker  // The criteria used for matching. It can be an input search criteria or a
3190*d5c09012SAndroid Build Coastguard Worker  // criteria converted from a facet selection.
3191*d5c09012SAndroid Build Coastguard Worker  Criteria criteria = 1;
3192*d5c09012SAndroid Build Coastguard Worker
3193*d5c09012SAndroid Build Coastguard Worker  // Matched annotations for the criteria.
3194*d5c09012SAndroid Build Coastguard Worker  repeated Annotation matched_annotations = 2;
3195*d5c09012SAndroid Build Coastguard Worker
3196*d5c09012SAndroid Build Coastguard Worker  // Status of the match result. Possible values:
3197*d5c09012SAndroid Build Coastguard Worker  // FAILED_PRECONDITION - the criteria is not eligible for match.
3198*d5c09012SAndroid Build Coastguard Worker  // OK - matching is performed.
3199*d5c09012SAndroid Build Coastguard Worker  google.rpc.Status status = 3;
3200*d5c09012SAndroid Build Coastguard Worker}
3201*d5c09012SAndroid Build Coastguard Worker
3202*d5c09012SAndroid Build Coastguard Worker// Search result contains asset name and corresponding time ranges.
3203*d5c09012SAndroid Build Coastguard Workermessage SearchResultItem {
3204*d5c09012SAndroid Build Coastguard Worker  // The resource name of the asset.
3205*d5c09012SAndroid Build Coastguard Worker  // Format:
3206*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
3207*d5c09012SAndroid Build Coastguard Worker  string asset = 1;
3208*d5c09012SAndroid Build Coastguard Worker
3209*d5c09012SAndroid Build Coastguard Worker  // The matched asset segments.
3210*d5c09012SAndroid Build Coastguard Worker  // Deprecated: please use singular `segment` field.
3211*d5c09012SAndroid Build Coastguard Worker  repeated Partition.TemporalPartition segments = 2 [deprecated = true];
3212*d5c09012SAndroid Build Coastguard Worker
3213*d5c09012SAndroid Build Coastguard Worker  // The matched asset segment.
3214*d5c09012SAndroid Build Coastguard Worker  Partition.TemporalPartition segment = 5;
3215*d5c09012SAndroid Build Coastguard Worker
3216*d5c09012SAndroid Build Coastguard Worker  // Relevance of this `SearchResultItem` to user search request.
3217*d5c09012SAndroid Build Coastguard Worker  // Currently available only in Image Warehouse, and by default represents
3218*d5c09012SAndroid Build Coastguard Worker  // cosine similarity.  In the future can be other measures such as "dot
3219*d5c09012SAndroid Build Coastguard Worker  // product" or "topicality" requested in the search request.
3220*d5c09012SAndroid Build Coastguard Worker  double relevance = 6;
3221*d5c09012SAndroid Build Coastguard Worker
3222*d5c09012SAndroid Build Coastguard Worker  // Search result annotations specified by result_annotation_keys in search
3223*d5c09012SAndroid Build Coastguard Worker  // request.
3224*d5c09012SAndroid Build Coastguard Worker  repeated Annotation requested_annotations = 3;
3225*d5c09012SAndroid Build Coastguard Worker
3226*d5c09012SAndroid Build Coastguard Worker  // Criteria or facet-selection based annotation matching results associated to
3227*d5c09012SAndroid Build Coastguard Worker  // this search result item. Only contains results for criteria or
3228*d5c09012SAndroid Build Coastguard Worker  // facet_selections with fetch_matched_annotations=true.
3229*d5c09012SAndroid Build Coastguard Worker  repeated AnnotationMatchingResult annotation_matching_results = 4;
3230*d5c09012SAndroid Build Coastguard Worker}
3231*d5c09012SAndroid Build Coastguard Worker
3232*d5c09012SAndroid Build Coastguard Worker// Response message for SearchAssets.
3233*d5c09012SAndroid Build Coastguard Workermessage SearchAssetsResponse {
3234*d5c09012SAndroid Build Coastguard Worker  // Returned search results.
3235*d5c09012SAndroid Build Coastguard Worker  repeated SearchResultItem search_result_items = 1;
3236*d5c09012SAndroid Build Coastguard Worker
3237*d5c09012SAndroid Build Coastguard Worker  // The next-page continuation token.
3238*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
3239*d5c09012SAndroid Build Coastguard Worker
3240*d5c09012SAndroid Build Coastguard Worker  // Facet search results of a given query, which contains user's
3241*d5c09012SAndroid Build Coastguard Worker  // already-selected facet values and updated facet search results.
3242*d5c09012SAndroid Build Coastguard Worker  repeated FacetGroup facet_results = 3;
3243*d5c09012SAndroid Build Coastguard Worker}
3244*d5c09012SAndroid Build Coastguard Worker
3245*d5c09012SAndroid Build Coastguard Worker// Response message for SearchIndexEndpoint.
3246*d5c09012SAndroid Build Coastguard Workermessage SearchIndexEndpointResponse {
3247*d5c09012SAndroid Build Coastguard Worker  // Returned search results.
3248*d5c09012SAndroid Build Coastguard Worker  repeated SearchResultItem search_result_items = 1;
3249*d5c09012SAndroid Build Coastguard Worker
3250*d5c09012SAndroid Build Coastguard Worker  // The next-page continuation token.
3251*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
3252*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
3253*d5c09012SAndroid Build Coastguard Worker}
3254*d5c09012SAndroid Build Coastguard Worker
3255*d5c09012SAndroid Build Coastguard Worker// Integer range type.
3256*d5c09012SAndroid Build Coastguard Workermessage IntRange {
3257*d5c09012SAndroid Build Coastguard Worker  // Start of the int range.
3258*d5c09012SAndroid Build Coastguard Worker  optional int64 start = 1;
3259*d5c09012SAndroid Build Coastguard Worker
3260*d5c09012SAndroid Build Coastguard Worker  // End of the int range.
3261*d5c09012SAndroid Build Coastguard Worker  optional int64 end = 2;
3262*d5c09012SAndroid Build Coastguard Worker}
3263*d5c09012SAndroid Build Coastguard Worker
3264*d5c09012SAndroid Build Coastguard Worker// Float range type.
3265*d5c09012SAndroid Build Coastguard Workermessage FloatRange {
3266*d5c09012SAndroid Build Coastguard Worker  // Start of the float range.
3267*d5c09012SAndroid Build Coastguard Worker  optional float start = 1;
3268*d5c09012SAndroid Build Coastguard Worker
3269*d5c09012SAndroid Build Coastguard Worker  // End of the float range.
3270*d5c09012SAndroid Build Coastguard Worker  optional float end = 2;
3271*d5c09012SAndroid Build Coastguard Worker}
3272*d5c09012SAndroid Build Coastguard Worker
3273*d5c09012SAndroid Build Coastguard Worker// A list of string-type values.
3274*d5c09012SAndroid Build Coastguard Workermessage StringArray {
3275*d5c09012SAndroid Build Coastguard Worker  // String type values.
3276*d5c09012SAndroid Build Coastguard Worker  repeated string txt_values = 1;
3277*d5c09012SAndroid Build Coastguard Worker}
3278*d5c09012SAndroid Build Coastguard Worker
3279*d5c09012SAndroid Build Coastguard Worker// A list of integer range values.
3280*d5c09012SAndroid Build Coastguard Workermessage IntRangeArray {
3281*d5c09012SAndroid Build Coastguard Worker  // Int range values.
3282*d5c09012SAndroid Build Coastguard Worker  repeated IntRange int_ranges = 1;
3283*d5c09012SAndroid Build Coastguard Worker}
3284*d5c09012SAndroid Build Coastguard Worker
3285*d5c09012SAndroid Build Coastguard Worker// A list of float range values.
3286*d5c09012SAndroid Build Coastguard Workermessage FloatRangeArray {
3287*d5c09012SAndroid Build Coastguard Worker  // Float range values.
3288*d5c09012SAndroid Build Coastguard Worker  repeated FloatRange float_ranges = 1;
3289*d5c09012SAndroid Build Coastguard Worker}
3290*d5c09012SAndroid Build Coastguard Worker
3291*d5c09012SAndroid Build Coastguard Worker// Datetime range type.
3292*d5c09012SAndroid Build Coastguard Workermessage DateTimeRange {
3293*d5c09012SAndroid Build Coastguard Worker  // Start date time.
3294*d5c09012SAndroid Build Coastguard Worker  google.type.DateTime start = 1;
3295*d5c09012SAndroid Build Coastguard Worker
3296*d5c09012SAndroid Build Coastguard Worker  // End data time.
3297*d5c09012SAndroid Build Coastguard Worker  google.type.DateTime end = 2;
3298*d5c09012SAndroid Build Coastguard Worker}
3299*d5c09012SAndroid Build Coastguard Worker
3300*d5c09012SAndroid Build Coastguard Worker// A list of datetime range values.
3301*d5c09012SAndroid Build Coastguard Workermessage DateTimeRangeArray {
3302*d5c09012SAndroid Build Coastguard Worker  // Date time ranges.
3303*d5c09012SAndroid Build Coastguard Worker  repeated DateTimeRange date_time_ranges = 1;
3304*d5c09012SAndroid Build Coastguard Worker}
3305*d5c09012SAndroid Build Coastguard Worker
3306*d5c09012SAndroid Build Coastguard Worker// Representation of a circle area.
3307*d5c09012SAndroid Build Coastguard Workermessage CircleArea {
3308*d5c09012SAndroid Build Coastguard Worker  // Latitude of circle area's center. Degrees [-90 .. 90]
3309*d5c09012SAndroid Build Coastguard Worker  double latitude = 1;
3310*d5c09012SAndroid Build Coastguard Worker
3311*d5c09012SAndroid Build Coastguard Worker  // Longitude of circle area's center. Degrees [-180 .. 180]
3312*d5c09012SAndroid Build Coastguard Worker  double longitude = 2;
3313*d5c09012SAndroid Build Coastguard Worker
3314*d5c09012SAndroid Build Coastguard Worker  // Radius of the circle area in meters.
3315*d5c09012SAndroid Build Coastguard Worker  double radius_meter = 3;
3316*d5c09012SAndroid Build Coastguard Worker}
3317*d5c09012SAndroid Build Coastguard Worker
3318*d5c09012SAndroid Build Coastguard Worker// A list of locations.
3319*d5c09012SAndroid Build Coastguard Workermessage GeoLocationArray {
3320*d5c09012SAndroid Build Coastguard Worker  // A list of circle areas.
3321*d5c09012SAndroid Build Coastguard Worker  repeated CircleArea circle_areas = 1;
3322*d5c09012SAndroid Build Coastguard Worker}
3323*d5c09012SAndroid Build Coastguard Worker
3324*d5c09012SAndroid Build Coastguard Workermessage BoolValue {
3325*d5c09012SAndroid Build Coastguard Worker  bool value = 1;
3326*d5c09012SAndroid Build Coastguard Worker}
3327*d5c09012SAndroid Build Coastguard Worker
3328*d5c09012SAndroid Build Coastguard Worker// Filter criteria applied to current search results.
3329*d5c09012SAndroid Build Coastguard Workermessage Criteria {
3330*d5c09012SAndroid Build Coastguard Worker  oneof value {
3331*d5c09012SAndroid Build Coastguard Worker    // The text values associated with the field.
3332*d5c09012SAndroid Build Coastguard Worker    StringArray text_array = 2;
3333*d5c09012SAndroid Build Coastguard Worker
3334*d5c09012SAndroid Build Coastguard Worker    // The integer ranges associated with the field.
3335*d5c09012SAndroid Build Coastguard Worker    IntRangeArray int_range_array = 3;
3336*d5c09012SAndroid Build Coastguard Worker
3337*d5c09012SAndroid Build Coastguard Worker    // The float ranges associated with the field.
3338*d5c09012SAndroid Build Coastguard Worker    FloatRangeArray float_range_array = 4;
3339*d5c09012SAndroid Build Coastguard Worker
3340*d5c09012SAndroid Build Coastguard Worker    // The datetime ranges associated with the field.
3341*d5c09012SAndroid Build Coastguard Worker    DateTimeRangeArray date_time_range_array = 5;
3342*d5c09012SAndroid Build Coastguard Worker
3343*d5c09012SAndroid Build Coastguard Worker    // Geo Location array.
3344*d5c09012SAndroid Build Coastguard Worker    GeoLocationArray geo_location_array = 6;
3345*d5c09012SAndroid Build Coastguard Worker
3346*d5c09012SAndroid Build Coastguard Worker    // A Boolean value.
3347*d5c09012SAndroid Build Coastguard Worker    BoolValue bool_value = 7;
3348*d5c09012SAndroid Build Coastguard Worker  }
3349*d5c09012SAndroid Build Coastguard Worker
3350*d5c09012SAndroid Build Coastguard Worker  // The UGA field or ML field to apply filtering criteria.
3351*d5c09012SAndroid Build Coastguard Worker  string field = 1;
3352*d5c09012SAndroid Build Coastguard Worker
3353*d5c09012SAndroid Build Coastguard Worker  // If true, return query matched annotations for this criteria.
3354*d5c09012SAndroid Build Coastguard Worker  // This option is only applicable for inclusion criteria, i.e., not exclusion
3355*d5c09012SAndroid Build Coastguard Worker  // criteria, with partition level annotations.  It supports the following data
3356*d5c09012SAndroid Build Coastguard Worker  // types:
3357*d5c09012SAndroid Build Coastguard Worker  //  - INTEGER
3358*d5c09012SAndroid Build Coastguard Worker  //  - FLOAT
3359*d5c09012SAndroid Build Coastguard Worker  //  - STRING (DataSchema.SearchStrategy.EXACT_SEARCH only)
3360*d5c09012SAndroid Build Coastguard Worker  //  - BOOLEAN
3361*d5c09012SAndroid Build Coastguard Worker  bool fetch_matched_annotations = 8;
3362*d5c09012SAndroid Build Coastguard Worker}
3363*d5c09012SAndroid Build Coastguard Worker
3364*d5c09012SAndroid Build Coastguard Worker// Partition to specify the partition in time and space for sub-asset level
3365*d5c09012SAndroid Build Coastguard Worker// annotation.
3366*d5c09012SAndroid Build Coastguard Workermessage Partition {
3367*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in UTC Epoch time. Supported by STREAM_VIDEO corpus
3368*d5c09012SAndroid Build Coastguard Worker  // type.
3369*d5c09012SAndroid Build Coastguard Worker  message TemporalPartition {
3370*d5c09012SAndroid Build Coastguard Worker    // Start time of the partition.
3371*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp start_time = 1;
3372*d5c09012SAndroid Build Coastguard Worker
3373*d5c09012SAndroid Build Coastguard Worker    // End time of the partition.
3374*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp end_time = 2;
3375*d5c09012SAndroid Build Coastguard Worker  }
3376*d5c09012SAndroid Build Coastguard Worker
3377*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in space.
3378*d5c09012SAndroid Build Coastguard Worker  message SpatialPartition {
3379*d5c09012SAndroid Build Coastguard Worker    // The minimum x coordinate value.
3380*d5c09012SAndroid Build Coastguard Worker    optional int64 x_min = 1;
3381*d5c09012SAndroid Build Coastguard Worker
3382*d5c09012SAndroid Build Coastguard Worker    // The minimum y coordinate value.
3383*d5c09012SAndroid Build Coastguard Worker    optional int64 y_min = 2;
3384*d5c09012SAndroid Build Coastguard Worker
3385*d5c09012SAndroid Build Coastguard Worker    // The maximum x coordinate value.
3386*d5c09012SAndroid Build Coastguard Worker    optional int64 x_max = 3;
3387*d5c09012SAndroid Build Coastguard Worker
3388*d5c09012SAndroid Build Coastguard Worker    // The maximum y coordinate value.
3389*d5c09012SAndroid Build Coastguard Worker    optional int64 y_max = 4;
3390*d5c09012SAndroid Build Coastguard Worker  }
3391*d5c09012SAndroid Build Coastguard Worker
3392*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in relative time. Supported by VIDEO_ON_DEMAND corpus
3393*d5c09012SAndroid Build Coastguard Worker  // type.
3394*d5c09012SAndroid Build Coastguard Worker  message RelativeTemporalPartition {
3395*d5c09012SAndroid Build Coastguard Worker    // Start time offset of the partition.
3396*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Duration start_offset = 1;
3397*d5c09012SAndroid Build Coastguard Worker
3398*d5c09012SAndroid Build Coastguard Worker    // End time offset of the partition.
3399*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Duration end_offset = 2;
3400*d5c09012SAndroid Build Coastguard Worker  }
3401*d5c09012SAndroid Build Coastguard Worker
3402*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in time.
3403*d5c09012SAndroid Build Coastguard Worker  TemporalPartition temporal_partition = 1;
3404*d5c09012SAndroid Build Coastguard Worker
3405*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in space.
3406*d5c09012SAndroid Build Coastguard Worker  SpatialPartition spatial_partition = 2;
3407*d5c09012SAndroid Build Coastguard Worker
3408*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in time.
3409*d5c09012SAndroid Build Coastguard Worker  RelativeTemporalPartition relative_temporal_partition = 3;
3410*d5c09012SAndroid Build Coastguard Worker}
3411