xref: /aosp_15_r20/external/googleapis/google/cloud/visionai/v1alpha1/warehouse.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2022 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.v1alpha1;
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/longrunning/operations.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/any.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
27*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
28*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/struct.proto";
29*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
30*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto";
31*d5c09012SAndroid Build Coastguard Workerimport "google/type/datetime.proto";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.VisionAI.V1Alpha1";
34*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/visionai/apiv1alpha1/visionaipb;visionaipb";
35*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
36*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "WarehouseProto";
37*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.visionai.v1alpha1";
38*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\VisionAI\\V1alpha1";
39*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::VisionAI::V1alpha1";
40*d5c09012SAndroid Build Coastguard Worker
41*d5c09012SAndroid Build Coastguard Worker// Service that manages media content + metadata for streaming.
42*d5c09012SAndroid Build Coastguard Workerservice Warehouse {
43*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "visionai.googleapis.com";
44*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
45*d5c09012SAndroid Build Coastguard Worker
46*d5c09012SAndroid Build Coastguard Worker  // Creates an asset inside corpus.
47*d5c09012SAndroid Build Coastguard Worker  rpc CreateAsset(CreateAssetRequest) returns (Asset) {
48*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
49*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha1/{parent=projects/*/locations/*/corpora/*}/assets"
50*d5c09012SAndroid Build Coastguard Worker      body: "asset"
51*d5c09012SAndroid Build Coastguard Worker    };
52*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,asset,asset_id";
53*d5c09012SAndroid Build Coastguard Worker  }
54*d5c09012SAndroid Build Coastguard Worker
55*d5c09012SAndroid Build Coastguard Worker  // Updates an asset inside corpus.
56*d5c09012SAndroid Build Coastguard Worker  rpc UpdateAsset(UpdateAssetRequest) returns (Asset) {
57*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
58*d5c09012SAndroid Build Coastguard Worker      patch: "/v1alpha1/{asset.name=projects/*/locations/*/corpora/*/assets/*}"
59*d5c09012SAndroid Build Coastguard Worker      body: "asset"
60*d5c09012SAndroid Build Coastguard Worker    };
61*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "asset,update_mask";
62*d5c09012SAndroid Build Coastguard Worker  }
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker  // Reads an asset inside corpus.
65*d5c09012SAndroid Build Coastguard Worker  rpc GetAsset(GetAssetRequest) returns (Asset) {
66*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
67*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{name=projects/*/locations/*/corpora/*/assets/*}"
68*d5c09012SAndroid Build Coastguard Worker    };
69*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
70*d5c09012SAndroid Build Coastguard Worker  }
71*d5c09012SAndroid Build Coastguard Worker
72*d5c09012SAndroid Build Coastguard Worker  // Lists an list of assets inside corpus.
73*d5c09012SAndroid Build Coastguard Worker  rpc ListAssets(ListAssetsRequest) returns (ListAssetsResponse) {
74*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
75*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{parent=projects/*/locations/*/corpora/*}/assets"
76*d5c09012SAndroid Build Coastguard Worker    };
77*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
78*d5c09012SAndroid Build Coastguard Worker  }
79*d5c09012SAndroid Build Coastguard Worker
80*d5c09012SAndroid Build Coastguard Worker  // Deletes asset inside corpus.
81*d5c09012SAndroid Build Coastguard Worker  rpc DeleteAsset(DeleteAssetRequest) returns (google.longrunning.Operation) {
82*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
83*d5c09012SAndroid Build Coastguard Worker      delete: "/v1alpha1/{name=projects/*/locations/*/corpora/*/assets/*}"
84*d5c09012SAndroid Build Coastguard Worker    };
85*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
86*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
87*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
88*d5c09012SAndroid Build Coastguard Worker      metadata_type: "DeleteAssetMetadata"
89*d5c09012SAndroid Build Coastguard Worker    };
90*d5c09012SAndroid Build Coastguard Worker  }
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker  // Creates a corpus inside a project.
93*d5c09012SAndroid Build Coastguard Worker  rpc CreateCorpus(CreateCorpusRequest) returns (google.longrunning.Operation) {
94*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
95*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha1/{parent=projects/*/locations/*}/corpora"
96*d5c09012SAndroid Build Coastguard Worker      body: "corpus"
97*d5c09012SAndroid Build Coastguard Worker    };
98*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,corpus";
99*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
100*d5c09012SAndroid Build Coastguard Worker      response_type: "Corpus"
101*d5c09012SAndroid Build Coastguard Worker      metadata_type: "CreateCorpusMetadata"
102*d5c09012SAndroid Build Coastguard Worker    };
103*d5c09012SAndroid Build Coastguard Worker  }
104*d5c09012SAndroid Build Coastguard Worker
105*d5c09012SAndroid Build Coastguard Worker  // Gets corpus details inside a project.
106*d5c09012SAndroid Build Coastguard Worker  rpc GetCorpus(GetCorpusRequest) returns (Corpus) {
107*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
108*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{name=projects/*/locations/*/corpora/*}"
109*d5c09012SAndroid Build Coastguard Worker    };
110*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
111*d5c09012SAndroid Build Coastguard Worker  }
112*d5c09012SAndroid Build Coastguard Worker
113*d5c09012SAndroid Build Coastguard Worker  // Updates a corpus in a project.
114*d5c09012SAndroid Build Coastguard Worker  rpc UpdateCorpus(UpdateCorpusRequest) returns (Corpus) {
115*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
116*d5c09012SAndroid Build Coastguard Worker      patch: "/v1alpha1/{corpus.name=projects/*/locations/*/corpora/*}"
117*d5c09012SAndroid Build Coastguard Worker      body: "corpus"
118*d5c09012SAndroid Build Coastguard Worker    };
119*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "corpus,update_mask";
120*d5c09012SAndroid Build Coastguard Worker  }
121*d5c09012SAndroid Build Coastguard Worker
122*d5c09012SAndroid Build Coastguard Worker  // Lists all corpora in a project.
123*d5c09012SAndroid Build Coastguard Worker  rpc ListCorpora(ListCorporaRequest) returns (ListCorporaResponse) {
124*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
125*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{parent=projects/*/locations/*}/corpora"
126*d5c09012SAndroid Build Coastguard Worker    };
127*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
128*d5c09012SAndroid Build Coastguard Worker  }
129*d5c09012SAndroid Build Coastguard Worker
130*d5c09012SAndroid Build Coastguard Worker  // Deletes a corpus only if its empty.
131*d5c09012SAndroid Build Coastguard Worker  // Returns empty response.
132*d5c09012SAndroid Build Coastguard Worker  rpc DeleteCorpus(DeleteCorpusRequest) returns (google.protobuf.Empty) {
133*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
134*d5c09012SAndroid Build Coastguard Worker      delete: "/v1alpha1/{name=projects/*/locations/*/corpora/*}"
135*d5c09012SAndroid Build Coastguard Worker    };
136*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
137*d5c09012SAndroid Build Coastguard Worker  }
138*d5c09012SAndroid Build Coastguard Worker
139*d5c09012SAndroid Build Coastguard Worker  // Creates data schema inside corpus.
140*d5c09012SAndroid Build Coastguard Worker  rpc CreateDataSchema(CreateDataSchemaRequest) returns (DataSchema) {
141*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
142*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha1/{parent=projects/*/locations/*/corpora/*}/dataSchemas"
143*d5c09012SAndroid Build Coastguard Worker      body: "data_schema"
144*d5c09012SAndroid Build Coastguard Worker    };
145*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,data_schema";
146*d5c09012SAndroid Build Coastguard Worker  }
147*d5c09012SAndroid Build Coastguard Worker
148*d5c09012SAndroid Build Coastguard Worker  // Updates data schema inside corpus.
149*d5c09012SAndroid Build Coastguard Worker  rpc UpdateDataSchema(UpdateDataSchemaRequest) returns (DataSchema) {
150*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
151*d5c09012SAndroid Build Coastguard Worker      patch: "/v1alpha1/{data_schema.name=projects/*/locations/*/corpora/*/dataSchemas/*}"
152*d5c09012SAndroid Build Coastguard Worker      body: "data_schema"
153*d5c09012SAndroid Build Coastguard Worker    };
154*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "data_schema,update_mask";
155*d5c09012SAndroid Build Coastguard Worker  }
156*d5c09012SAndroid Build Coastguard Worker
157*d5c09012SAndroid Build Coastguard Worker  // Gets data schema inside corpus.
158*d5c09012SAndroid Build Coastguard Worker  rpc GetDataSchema(GetDataSchemaRequest) returns (DataSchema) {
159*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
160*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{name=projects/*/locations/*/corpora/*/dataSchemas/*}"
161*d5c09012SAndroid Build Coastguard Worker    };
162*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
163*d5c09012SAndroid Build Coastguard Worker  }
164*d5c09012SAndroid Build Coastguard Worker
165*d5c09012SAndroid Build Coastguard Worker  // Deletes data schema inside corpus.
166*d5c09012SAndroid Build Coastguard Worker  rpc DeleteDataSchema(DeleteDataSchemaRequest) returns (google.protobuf.Empty) {
167*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
168*d5c09012SAndroid Build Coastguard Worker      delete: "/v1alpha1/{name=projects/*/locations/*/corpora/*/dataSchemas/*}"
169*d5c09012SAndroid Build Coastguard Worker    };
170*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
171*d5c09012SAndroid Build Coastguard Worker  }
172*d5c09012SAndroid Build Coastguard Worker
173*d5c09012SAndroid Build Coastguard Worker  // Lists a list of data schemas inside corpus.
174*d5c09012SAndroid Build Coastguard Worker  rpc ListDataSchemas(ListDataSchemasRequest) returns (ListDataSchemasResponse) {
175*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
176*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{parent=projects/*/locations/*/corpora/*}/dataSchemas"
177*d5c09012SAndroid Build Coastguard Worker    };
178*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
179*d5c09012SAndroid Build Coastguard Worker  }
180*d5c09012SAndroid Build Coastguard Worker
181*d5c09012SAndroid Build Coastguard Worker  // Creates annotation inside asset.
182*d5c09012SAndroid Build Coastguard Worker  rpc CreateAnnotation(CreateAnnotationRequest) returns (Annotation) {
183*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
184*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha1/{parent=projects/*/locations/*/corpora/*/assets/*}/annotations"
185*d5c09012SAndroid Build Coastguard Worker      body: "annotation"
186*d5c09012SAndroid Build Coastguard Worker    };
187*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,annotation,annotation_id";
188*d5c09012SAndroid Build Coastguard Worker  }
189*d5c09012SAndroid Build Coastguard Worker
190*d5c09012SAndroid Build Coastguard Worker  // Reads annotation inside asset.
191*d5c09012SAndroid Build Coastguard Worker  rpc GetAnnotation(GetAnnotationRequest) returns (Annotation) {
192*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
193*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{name=projects/*/locations/*/corpora/*/assets/*/annotations/*}"
194*d5c09012SAndroid Build Coastguard Worker    };
195*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
196*d5c09012SAndroid Build Coastguard Worker  }
197*d5c09012SAndroid Build Coastguard Worker
198*d5c09012SAndroid Build Coastguard Worker  // Lists a list of annotations inside asset.
199*d5c09012SAndroid Build Coastguard Worker  rpc ListAnnotations(ListAnnotationsRequest) returns (ListAnnotationsResponse) {
200*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
201*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{parent=projects/*/locations/*/corpora/*/assets/*}/annotations"
202*d5c09012SAndroid Build Coastguard Worker    };
203*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
204*d5c09012SAndroid Build Coastguard Worker  }
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker  // Updates annotation inside asset.
207*d5c09012SAndroid Build Coastguard Worker  rpc UpdateAnnotation(UpdateAnnotationRequest) returns (Annotation) {
208*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
209*d5c09012SAndroid Build Coastguard Worker      patch: "/v1alpha1/{annotation.name=projects/*/locations/*/corpora/*/assets/*/annotations/*}"
210*d5c09012SAndroid Build Coastguard Worker      body: "annotation"
211*d5c09012SAndroid Build Coastguard Worker    };
212*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "annotation,update_mask";
213*d5c09012SAndroid Build Coastguard Worker  }
214*d5c09012SAndroid Build Coastguard Worker
215*d5c09012SAndroid Build Coastguard Worker  // Deletes annotation inside asset.
216*d5c09012SAndroid Build Coastguard Worker  rpc DeleteAnnotation(DeleteAnnotationRequest) returns (google.protobuf.Empty) {
217*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
218*d5c09012SAndroid Build Coastguard Worker      delete: "/v1alpha1/{name=projects/*/locations/*/corpora/*/assets/*/annotations/*}"
219*d5c09012SAndroid Build Coastguard Worker    };
220*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
221*d5c09012SAndroid Build Coastguard Worker  }
222*d5c09012SAndroid Build Coastguard Worker
223*d5c09012SAndroid Build Coastguard Worker  // Ingests data for the asset. It is not allowed to ingest a data chunk which
224*d5c09012SAndroid Build Coastguard Worker  // is already expired according to TTL.
225*d5c09012SAndroid Build Coastguard Worker  // This method is only available via the gRPC API (not HTTP since
226*d5c09012SAndroid Build Coastguard Worker  // bi-directional streaming is not supported via HTTP).
227*d5c09012SAndroid Build Coastguard Worker  rpc IngestAsset(stream IngestAssetRequest) returns (stream IngestAssetResponse) {
228*d5c09012SAndroid Build Coastguard Worker  }
229*d5c09012SAndroid Build Coastguard Worker
230*d5c09012SAndroid Build Coastguard Worker  // Generates clips for downloading. The api takes in a time range, and
231*d5c09012SAndroid Build Coastguard Worker  // generates a clip of the first content available after start_time and
232*d5c09012SAndroid Build Coastguard Worker  // before end_time, which may overflow beyond these bounds.
233*d5c09012SAndroid Build Coastguard Worker  // Returned clips are truncated if the total size of the clips are larger
234*d5c09012SAndroid Build Coastguard Worker  // than 100MB.
235*d5c09012SAndroid Build Coastguard Worker  rpc ClipAsset(ClipAssetRequest) returns (ClipAssetResponse) {
236*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
237*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha1/{name=projects/*/locations/*/corpora/*/assets/*}:clip"
238*d5c09012SAndroid Build Coastguard Worker      body: "*"
239*d5c09012SAndroid Build Coastguard Worker    };
240*d5c09012SAndroid Build Coastguard Worker  }
241*d5c09012SAndroid Build Coastguard Worker
242*d5c09012SAndroid Build Coastguard Worker  // Generates a uri for an HLS manifest. The api takes in a collection of time
243*d5c09012SAndroid Build Coastguard Worker  // ranges, and generates a URI for an HLS manifest that covers all the
244*d5c09012SAndroid Build Coastguard Worker  // requested time ranges.
245*d5c09012SAndroid Build Coastguard Worker  rpc GenerateHlsUri(GenerateHlsUriRequest) returns (GenerateHlsUriResponse) {
246*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
247*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha1/{name=projects/*/locations/*/corpora/*/assets/*}:generateHlsUri"
248*d5c09012SAndroid Build Coastguard Worker      body: "*"
249*d5c09012SAndroid Build Coastguard Worker    };
250*d5c09012SAndroid Build Coastguard Worker  }
251*d5c09012SAndroid Build Coastguard Worker
252*d5c09012SAndroid Build Coastguard Worker  // Creates a search configuration inside a corpus.
253*d5c09012SAndroid Build Coastguard Worker  //
254*d5c09012SAndroid Build Coastguard Worker  // Please follow the rules below to create a valid CreateSearchConfigRequest.
255*d5c09012SAndroid Build Coastguard Worker  // --- General Rules ---
256*d5c09012SAndroid Build Coastguard Worker  // 1. Request.search_config_id must not be associated with an existing
257*d5c09012SAndroid Build Coastguard Worker  //    SearchConfig.
258*d5c09012SAndroid Build Coastguard Worker  // 2. Request must contain at least one non-empty search_criteria_property or
259*d5c09012SAndroid Build Coastguard Worker  //    facet_property.
260*d5c09012SAndroid Build Coastguard Worker  // 3. mapped_fields must not be empty, and must map to existing UGA keys.
261*d5c09012SAndroid Build Coastguard Worker  // 4. All mapped_fields must be of the same type.
262*d5c09012SAndroid Build Coastguard Worker  // 5. All mapped_fields must share the same granularity.
263*d5c09012SAndroid Build Coastguard Worker  // 6. All mapped_fields must share the same semantic SearchConfig match
264*d5c09012SAndroid Build Coastguard Worker  //    options.
265*d5c09012SAndroid Build Coastguard Worker  // For property-specific rules, please reference the comments for
266*d5c09012SAndroid Build Coastguard Worker  // FacetProperty and SearchCriteriaProperty.
267*d5c09012SAndroid Build Coastguard Worker  rpc CreateSearchConfig(CreateSearchConfigRequest) returns (SearchConfig) {
268*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
269*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha1/{parent=projects/*/locations/*/corpora/*}/searchConfigs"
270*d5c09012SAndroid Build Coastguard Worker      body: "search_config"
271*d5c09012SAndroid Build Coastguard Worker    };
272*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,search_config,search_config_id";
273*d5c09012SAndroid Build Coastguard Worker  }
274*d5c09012SAndroid Build Coastguard Worker
275*d5c09012SAndroid Build Coastguard Worker  // Updates a search configuration inside a corpus.
276*d5c09012SAndroid Build Coastguard Worker  //
277*d5c09012SAndroid Build Coastguard Worker  // Please follow the rules below to create a valid UpdateSearchConfigRequest.
278*d5c09012SAndroid Build Coastguard Worker  // --- General Rules ---
279*d5c09012SAndroid Build Coastguard Worker  // 1. Request.search_configuration.name must already exist.
280*d5c09012SAndroid Build Coastguard Worker  // 2. Request must contain at least one non-empty search_criteria_property or
281*d5c09012SAndroid Build Coastguard Worker  // facet_property.
282*d5c09012SAndroid Build Coastguard Worker  // 3. mapped_fields must not be empty, and must map to existing UGA keys.
283*d5c09012SAndroid Build Coastguard Worker  // 4. All mapped_fields must be of the same type.
284*d5c09012SAndroid Build Coastguard Worker  // 5. All mapped_fields must share the same granularity.
285*d5c09012SAndroid Build Coastguard Worker  // 6. All mapped_fields must share the same semantic SearchConfig match
286*d5c09012SAndroid Build Coastguard Worker  //    options.
287*d5c09012SAndroid Build Coastguard Worker  // For property-specific rules, please reference the comments for
288*d5c09012SAndroid Build Coastguard Worker  // FacetProperty and SearchCriteriaProperty.
289*d5c09012SAndroid Build Coastguard Worker  rpc UpdateSearchConfig(UpdateSearchConfigRequest) returns (SearchConfig) {
290*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
291*d5c09012SAndroid Build Coastguard Worker      patch: "/v1alpha1/{search_config.name=projects/*/locations/*/corpora/*/searchConfigs/*}"
292*d5c09012SAndroid Build Coastguard Worker      body: "search_config"
293*d5c09012SAndroid Build Coastguard Worker    };
294*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "search_config,update_mask";
295*d5c09012SAndroid Build Coastguard Worker  }
296*d5c09012SAndroid Build Coastguard Worker
297*d5c09012SAndroid Build Coastguard Worker  // Gets a search configuration inside a corpus.
298*d5c09012SAndroid Build Coastguard Worker  rpc GetSearchConfig(GetSearchConfigRequest) returns (SearchConfig) {
299*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
300*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{name=projects/*/locations/*/corpora/*/searchConfigs/*}"
301*d5c09012SAndroid Build Coastguard Worker    };
302*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
303*d5c09012SAndroid Build Coastguard Worker  }
304*d5c09012SAndroid Build Coastguard Worker
305*d5c09012SAndroid Build Coastguard Worker  // Deletes a search configuration inside a corpus.
306*d5c09012SAndroid Build Coastguard Worker  //
307*d5c09012SAndroid Build Coastguard Worker  // For a DeleteSearchConfigRequest to be valid,
308*d5c09012SAndroid Build Coastguard Worker  // Request.search_configuration.name must already exist.
309*d5c09012SAndroid Build Coastguard Worker  rpc DeleteSearchConfig(DeleteSearchConfigRequest) returns (google.protobuf.Empty) {
310*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
311*d5c09012SAndroid Build Coastguard Worker      delete: "/v1alpha1/{name=projects/*/locations/*/corpora/*/searchConfigs/*}"
312*d5c09012SAndroid Build Coastguard Worker    };
313*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
314*d5c09012SAndroid Build Coastguard Worker  }
315*d5c09012SAndroid Build Coastguard Worker
316*d5c09012SAndroid Build Coastguard Worker  // Lists all search configurations inside a corpus.
317*d5c09012SAndroid Build Coastguard Worker  rpc ListSearchConfigs(ListSearchConfigsRequest) returns (ListSearchConfigsResponse) {
318*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
319*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha1/{parent=projects/*/locations/*/corpora/*}/searchConfigs"
320*d5c09012SAndroid Build Coastguard Worker    };
321*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
322*d5c09012SAndroid Build Coastguard Worker  }
323*d5c09012SAndroid Build Coastguard Worker
324*d5c09012SAndroid Build Coastguard Worker  // Search media asset.
325*d5c09012SAndroid Build Coastguard Worker  rpc SearchAssets(SearchAssetsRequest) returns (SearchAssetsResponse) {
326*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
327*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha1/{corpus=projects/*/locations/*/corpora/*}:searchAssets"
328*d5c09012SAndroid Build Coastguard Worker      body: "*"
329*d5c09012SAndroid Build Coastguard Worker    };
330*d5c09012SAndroid Build Coastguard Worker  }
331*d5c09012SAndroid Build Coastguard Worker}
332*d5c09012SAndroid Build Coastguard Worker
333*d5c09012SAndroid Build Coastguard Worker// Different types for a facet bucket.
334*d5c09012SAndroid Build Coastguard Workerenum FacetBucketType {
335*d5c09012SAndroid Build Coastguard Worker  // Unspecified type.
336*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_UNSPECIFIED = 0;
337*d5c09012SAndroid Build Coastguard Worker
338*d5c09012SAndroid Build Coastguard Worker  // Value type.
339*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_VALUE = 1;
340*d5c09012SAndroid Build Coastguard Worker
341*d5c09012SAndroid Build Coastguard Worker  // Datetime type.
342*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_DATETIME = 2;
343*d5c09012SAndroid Build Coastguard Worker
344*d5c09012SAndroid Build Coastguard Worker  // Fixed Range type.
345*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_FIXED_RANGE = 3;
346*d5c09012SAndroid Build Coastguard Worker
347*d5c09012SAndroid Build Coastguard Worker  // Custom Range type.
348*d5c09012SAndroid Build Coastguard Worker  FACET_BUCKET_TYPE_CUSTOM_RANGE = 4;
349*d5c09012SAndroid Build Coastguard Worker}
350*d5c09012SAndroid Build Coastguard Worker
351*d5c09012SAndroid Build Coastguard Worker// Request message for CreateAssetRequest.
352*d5c09012SAndroid Build Coastguard Workermessage CreateAssetRequest {
353*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this asset will be created.
354*d5c09012SAndroid Build Coastguard Worker  // Format: projects/*/locations/*/corpora/*
355*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
356*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
357*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
358*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Corpus"
359*d5c09012SAndroid Build Coastguard Worker    }
360*d5c09012SAndroid Build Coastguard Worker  ];
361*d5c09012SAndroid Build Coastguard Worker
362*d5c09012SAndroid Build Coastguard Worker  // Required. The asset to create.
363*d5c09012SAndroid Build Coastguard Worker  Asset asset = 2 [(google.api.field_behavior) = REQUIRED];
364*d5c09012SAndroid Build Coastguard Worker
365*d5c09012SAndroid Build Coastguard Worker  // Optional. The ID to use for the asset, which will become the final component of
366*d5c09012SAndroid Build Coastguard Worker  // the asset's resource name if user choose to specify. Otherwise, asset id
367*d5c09012SAndroid Build Coastguard Worker  // will be generated by system.
368*d5c09012SAndroid Build Coastguard Worker  //
369*d5c09012SAndroid Build Coastguard Worker  // This value should be up to 63 characters, and valid characters
370*d5c09012SAndroid Build Coastguard Worker  // are /[a-z][0-9]-/. The first character must be a letter, the last could be
371*d5c09012SAndroid Build Coastguard Worker  // a letter or a number.
372*d5c09012SAndroid Build Coastguard Worker  optional string asset_id = 3 [(google.api.field_behavior) = OPTIONAL];
373*d5c09012SAndroid Build Coastguard Worker}
374*d5c09012SAndroid Build Coastguard Worker
375*d5c09012SAndroid Build Coastguard Worker// Request message for GetAsset.
376*d5c09012SAndroid Build Coastguard Workermessage GetAssetRequest {
377*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the asset to retrieve.
378*d5c09012SAndroid Build Coastguard Worker  // Format:
379*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}
380*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
381*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
382*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
383*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Asset"
384*d5c09012SAndroid Build Coastguard Worker    }
385*d5c09012SAndroid Build Coastguard Worker  ];
386*d5c09012SAndroid Build Coastguard Worker}
387*d5c09012SAndroid Build Coastguard Worker
388*d5c09012SAndroid Build Coastguard Worker// Request message for ListAssets.
389*d5c09012SAndroid Build Coastguard Workermessage ListAssetsRequest {
390*d5c09012SAndroid Build Coastguard Worker  // Required. The parent, which owns this collection of assets.
391*d5c09012SAndroid Build Coastguard Worker  // Format:
392*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}
393*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
394*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
395*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
396*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/Asset"
397*d5c09012SAndroid Build Coastguard Worker    }
398*d5c09012SAndroid Build Coastguard Worker  ];
399*d5c09012SAndroid Build Coastguard Worker
400*d5c09012SAndroid Build Coastguard Worker  // The maximum number of assets to return. The service may return fewer than
401*d5c09012SAndroid Build Coastguard Worker  // this value.
402*d5c09012SAndroid Build Coastguard Worker  // If unspecified, at most 50 assets will be returned.
403*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
404*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
405*d5c09012SAndroid Build Coastguard Worker
406*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListAssets` call.
407*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
408*d5c09012SAndroid Build Coastguard Worker  //
409*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to `ListAssets` must match
410*d5c09012SAndroid Build Coastguard Worker  // the call that provided the page token.
411*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
412*d5c09012SAndroid Build Coastguard Worker}
413*d5c09012SAndroid Build Coastguard Worker
414*d5c09012SAndroid Build Coastguard Worker// Response message for ListAssets.
415*d5c09012SAndroid Build Coastguard Workermessage ListAssetsResponse {
416*d5c09012SAndroid Build Coastguard Worker  // The assets from the specified corpus.
417*d5c09012SAndroid Build Coastguard Worker  repeated Asset assets = 1;
418*d5c09012SAndroid Build Coastguard Worker
419*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
420*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
421*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
422*d5c09012SAndroid Build Coastguard Worker}
423*d5c09012SAndroid Build Coastguard Worker
424*d5c09012SAndroid Build Coastguard Worker// Response message for UpdateAsset.
425*d5c09012SAndroid Build Coastguard Workermessage UpdateAssetRequest {
426*d5c09012SAndroid Build Coastguard Worker  // Required. The asset to update.
427*d5c09012SAndroid Build Coastguard Worker  //
428*d5c09012SAndroid Build Coastguard Worker  // The asset's `name` field is used to identify the asset to be updated.
429*d5c09012SAndroid Build Coastguard Worker  // Format:
430*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}
431*d5c09012SAndroid Build Coastguard Worker  Asset asset = 1 [(google.api.field_behavior) = REQUIRED];
432*d5c09012SAndroid Build Coastguard Worker
433*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated.
434*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
435*d5c09012SAndroid Build Coastguard Worker}
436*d5c09012SAndroid Build Coastguard Worker
437*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteAsset.
438*d5c09012SAndroid Build Coastguard Workermessage DeleteAssetRequest {
439*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the asset to delete.
440*d5c09012SAndroid Build Coastguard Worker  // Format:
441*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}
442*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
443*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
444*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
445*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Asset"
446*d5c09012SAndroid Build Coastguard Worker    }
447*d5c09012SAndroid Build Coastguard Worker  ];
448*d5c09012SAndroid Build Coastguard Worker}
449*d5c09012SAndroid Build Coastguard Worker
450*d5c09012SAndroid Build Coastguard Worker// An asset is a resource in corpus. It represents a media object inside corpus,
451*d5c09012SAndroid Build Coastguard Worker// contains metadata and another resource annotation. Different feature could be
452*d5c09012SAndroid Build Coastguard Worker// applied to the asset to generate annotations. User could specified annotation
453*d5c09012SAndroid Build Coastguard Worker// related to the target asset.
454*d5c09012SAndroid Build Coastguard Workermessage Asset {
455*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
456*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/Asset"
457*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}"
458*d5c09012SAndroid Build Coastguard Worker  };
459*d5c09012SAndroid Build Coastguard Worker
460*d5c09012SAndroid Build Coastguard Worker  // Resource name of the asset.
461*d5c09012SAndroid Build Coastguard Worker  // Form:
462*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}`
463*d5c09012SAndroid Build Coastguard Worker  string name = 1;
464*d5c09012SAndroid Build Coastguard Worker
465*d5c09012SAndroid Build Coastguard Worker  // The duration for which all media assets, associated metadata, and search
466*d5c09012SAndroid Build Coastguard Worker  // documents can exist. If not set, then it will using the default ttl in the
467*d5c09012SAndroid Build Coastguard Worker  // parent corpus resource.
468*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration ttl = 2;
469*d5c09012SAndroid Build Coastguard Worker}
470*d5c09012SAndroid Build Coastguard Worker
471*d5c09012SAndroid Build Coastguard Worker// Request message of CreateCorpus API.
472*d5c09012SAndroid Build Coastguard Workermessage CreateCorpusRequest {
473*d5c09012SAndroid Build Coastguard Worker  // Required. Form: `projects/{project_number}/locations/{location_id}`
474*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [(google.api.field_behavior) = REQUIRED];
475*d5c09012SAndroid Build Coastguard Worker
476*d5c09012SAndroid Build Coastguard Worker  // Required. The corpus to be created.
477*d5c09012SAndroid Build Coastguard Worker  Corpus corpus = 2 [(google.api.field_behavior) = REQUIRED];
478*d5c09012SAndroid Build Coastguard Worker}
479*d5c09012SAndroid Build Coastguard Worker
480*d5c09012SAndroid Build Coastguard Worker// Metadata for CreateCorpus API.
481*d5c09012SAndroid Build Coastguard Workermessage CreateCorpusMetadata {
482*d5c09012SAndroid Build Coastguard Worker
483*d5c09012SAndroid Build Coastguard Worker}
484*d5c09012SAndroid Build Coastguard Worker
485*d5c09012SAndroid Build Coastguard Worker// Corpus is a set of video contents for management. Within a corpus, videos
486*d5c09012SAndroid Build Coastguard Worker// share the same data schema. Search is also restricted within a single corpus.
487*d5c09012SAndroid Build Coastguard Workermessage Corpus {
488*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
489*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/Corpus"
490*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}"
491*d5c09012SAndroid Build Coastguard Worker  };
492*d5c09012SAndroid Build Coastguard Worker
493*d5c09012SAndroid Build Coastguard Worker  // Resource name of the corpus.
494*d5c09012SAndroid Build Coastguard Worker  // Form:
495*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
496*d5c09012SAndroid Build Coastguard Worker  string name = 1;
497*d5c09012SAndroid Build Coastguard Worker
498*d5c09012SAndroid Build Coastguard Worker  // Required. The corpus name to shown in the UI. The name can be up to 32 characters
499*d5c09012SAndroid Build Coastguard Worker  // long.
500*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = REQUIRED];
501*d5c09012SAndroid Build Coastguard Worker
502*d5c09012SAndroid Build Coastguard Worker  // Optional. Description of the corpus. Can be up to 25000 characters long.
503*d5c09012SAndroid Build Coastguard Worker  string description = 3 [(google.api.field_behavior) = OPTIONAL];
504*d5c09012SAndroid Build Coastguard Worker
505*d5c09012SAndroid Build Coastguard Worker  // Required. The default TTL value for all assets under the corpus without a asset level
506*d5c09012SAndroid Build Coastguard Worker  // user-defined TTL with a maximum of 10 years. This is required for all
507*d5c09012SAndroid Build Coastguard Worker  // corpora.
508*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration default_ttl = 5 [(google.api.field_behavior) = REQUIRED];
509*d5c09012SAndroid Build Coastguard Worker}
510*d5c09012SAndroid Build Coastguard Worker
511*d5c09012SAndroid Build Coastguard Worker// Request message for GetCorpus.
512*d5c09012SAndroid Build Coastguard Workermessage GetCorpusRequest {
513*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the corpus to retrieve.
514*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
515*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
516*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
517*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Corpus"
518*d5c09012SAndroid Build Coastguard Worker    }
519*d5c09012SAndroid Build Coastguard Worker  ];
520*d5c09012SAndroid Build Coastguard Worker}
521*d5c09012SAndroid Build Coastguard Worker
522*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateCorpus.
523*d5c09012SAndroid Build Coastguard Workermessage UpdateCorpusRequest {
524*d5c09012SAndroid Build Coastguard Worker  // Required. The corpus which replaces the resource on the server.
525*d5c09012SAndroid Build Coastguard Worker  Corpus corpus = 1 [(google.api.field_behavior) = REQUIRED];
526*d5c09012SAndroid Build Coastguard Worker
527*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated.
528*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
529*d5c09012SAndroid Build Coastguard Worker}
530*d5c09012SAndroid Build Coastguard Worker
531*d5c09012SAndroid Build Coastguard Worker// Request message for ListCorpora.
532*d5c09012SAndroid Build Coastguard Workermessage ListCorporaRequest {
533*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the project from which to list corpora.
534*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [(google.api.field_behavior) = REQUIRED];
535*d5c09012SAndroid Build Coastguard Worker
536*d5c09012SAndroid Build Coastguard Worker  // Requested page size. API may return fewer results than requested.
537*d5c09012SAndroid Build Coastguard Worker  // If negative, INVALID_ARGUMENT error will be returned.
538*d5c09012SAndroid Build Coastguard Worker  // If unspecified or 0, API will pick a default size, which is 10.
539*d5c09012SAndroid Build Coastguard Worker  // If the requested page size is larger than the maximum size, API will pick
540*d5c09012SAndroid Build Coastguard Worker  // use the maximum size, which is 20.
541*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
542*d5c09012SAndroid Build Coastguard Worker
543*d5c09012SAndroid Build Coastguard Worker  // A token identifying a page of results for the server to return.
544*d5c09012SAndroid Build Coastguard Worker  // Typically obtained via [ListCorpora.next_page_token][] of the previous
545*d5c09012SAndroid Build Coastguard Worker  // [Warehouse.ListCorpora][google.cloud.visionai.v1alpha1.Warehouse.ListCorpora] call.
546*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
547*d5c09012SAndroid Build Coastguard Worker}
548*d5c09012SAndroid Build Coastguard Worker
549*d5c09012SAndroid Build Coastguard Worker// Response message for ListCorpora.
550*d5c09012SAndroid Build Coastguard Workermessage ListCorporaResponse {
551*d5c09012SAndroid Build Coastguard Worker  // The corpora in the project.
552*d5c09012SAndroid Build Coastguard Worker  repeated Corpus corpora = 1;
553*d5c09012SAndroid Build Coastguard Worker
554*d5c09012SAndroid Build Coastguard Worker  // A token to retrieve next page of results.
555*d5c09012SAndroid Build Coastguard Worker  // Pass to [ListCorporaRequest.page_token][google.cloud.visionai.v1alpha1.ListCorporaRequest.page_token] to obtain that page.
556*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
557*d5c09012SAndroid Build Coastguard Worker}
558*d5c09012SAndroid Build Coastguard Worker
559*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteCorpus.
560*d5c09012SAndroid Build Coastguard Workermessage DeleteCorpusRequest {
561*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the corpus to delete.
562*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
563*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
564*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
565*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Corpus"
566*d5c09012SAndroid Build Coastguard Worker    }
567*d5c09012SAndroid Build Coastguard Worker  ];
568*d5c09012SAndroid Build Coastguard Worker}
569*d5c09012SAndroid Build Coastguard Worker
570*d5c09012SAndroid Build Coastguard Worker// Request message for CreateDataSchema.
571*d5c09012SAndroid Build Coastguard Workermessage CreateDataSchemaRequest {
572*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this data schema will be created.
573*d5c09012SAndroid Build Coastguard Worker  // Format: projects/*/locations/*/corpora/*
574*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
575*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
576*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
577*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Corpus"
578*d5c09012SAndroid Build Coastguard Worker    }
579*d5c09012SAndroid Build Coastguard Worker  ];
580*d5c09012SAndroid Build Coastguard Worker
581*d5c09012SAndroid Build Coastguard Worker  // Required. The data schema to create.
582*d5c09012SAndroid Build Coastguard Worker  DataSchema data_schema = 2 [(google.api.field_behavior) = REQUIRED];
583*d5c09012SAndroid Build Coastguard Worker}
584*d5c09012SAndroid Build Coastguard Worker
585*d5c09012SAndroid Build Coastguard Worker// Data schema indicates how the user specified annotation is interpreted in the
586*d5c09012SAndroid Build Coastguard Worker// system.
587*d5c09012SAndroid Build Coastguard Workermessage DataSchema {
588*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
589*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/DataSchema"
590*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/dataSchemas/{data_schema}"
591*d5c09012SAndroid Build Coastguard Worker  };
592*d5c09012SAndroid Build Coastguard Worker
593*d5c09012SAndroid Build Coastguard Worker  // Resource name of the data schema in the form of:
594*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/dataSchemas/{data_schema}`
595*d5c09012SAndroid Build Coastguard Worker  // where {data_schema} part should be the same as the `key` field below.
596*d5c09012SAndroid Build Coastguard Worker  string name = 1;
597*d5c09012SAndroid Build Coastguard Worker
598*d5c09012SAndroid Build Coastguard Worker  // Required. The key of this data schema. This key should be matching the key of user
599*d5c09012SAndroid Build Coastguard Worker  // specified annotation and unique inside corpus. This value can be up to
600*d5c09012SAndroid Build Coastguard Worker  // 63 characters, and valid characters are /[a-z][0-9]-/. The first character
601*d5c09012SAndroid Build Coastguard Worker  // must be a letter, the last could be a letter or a number.
602*d5c09012SAndroid Build Coastguard Worker  string key = 2 [(google.api.field_behavior) = REQUIRED];
603*d5c09012SAndroid Build Coastguard Worker
604*d5c09012SAndroid Build Coastguard Worker  // The schema details mapping to the key.
605*d5c09012SAndroid Build Coastguard Worker  DataSchemaDetails schema_details = 3;
606*d5c09012SAndroid Build Coastguard Worker}
607*d5c09012SAndroid Build Coastguard Worker
608*d5c09012SAndroid Build Coastguard Worker// Data schema details indicates the data type and the data struct corresponding
609*d5c09012SAndroid Build Coastguard Worker// to the key of user specified annotation.
610*d5c09012SAndroid Build Coastguard Workermessage DataSchemaDetails {
611*d5c09012SAndroid Build Coastguard Worker  // The configuration for `PROTO_ANY` data type.
612*d5c09012SAndroid Build Coastguard Worker  message ProtoAnyConfig {
613*d5c09012SAndroid Build Coastguard Worker    // The type URI of the proto message.
614*d5c09012SAndroid Build Coastguard Worker    string type_uri = 1;
615*d5c09012SAndroid Build Coastguard Worker  }
616*d5c09012SAndroid Build Coastguard Worker
617*d5c09012SAndroid Build Coastguard Worker  // The search strategy for annotations value of the `key`.
618*d5c09012SAndroid Build Coastguard Worker  message SearchStrategy {
619*d5c09012SAndroid Build Coastguard Worker    // The types of search strategies to be applied on the annotation key.
620*d5c09012SAndroid Build Coastguard Worker    enum SearchStrategyType {
621*d5c09012SAndroid Build Coastguard Worker      // Annotatation values of the `key` above will not be searchable.
622*d5c09012SAndroid Build Coastguard Worker      NO_SEARCH = 0;
623*d5c09012SAndroid Build Coastguard Worker
624*d5c09012SAndroid Build Coastguard Worker      // When searching with `key`, the value must be exactly as the annotation
625*d5c09012SAndroid Build Coastguard Worker      // value that has been ingested.
626*d5c09012SAndroid Build Coastguard Worker      EXACT_SEARCH = 1;
627*d5c09012SAndroid Build Coastguard Worker
628*d5c09012SAndroid Build Coastguard Worker      // When searching with `key`, Warehouse will perform broad search based on
629*d5c09012SAndroid Build Coastguard Worker      // semantic of the annotation value.
630*d5c09012SAndroid Build Coastguard Worker      SMART_SEARCH = 2;
631*d5c09012SAndroid Build Coastguard Worker    }
632*d5c09012SAndroid Build Coastguard Worker
633*d5c09012SAndroid Build Coastguard Worker    // The type of search strategy to be applied on the `key` above.
634*d5c09012SAndroid Build Coastguard Worker    // The allowed `search_strategy_type` is different for different data types,
635*d5c09012SAndroid Build Coastguard Worker    // which is documented in the DataSchemaDetails.DataType. Specifying
636*d5c09012SAndroid Build Coastguard Worker    // unsupported `search_strategy_type` for data types will result in
637*d5c09012SAndroid Build Coastguard Worker    // INVALID_ARGUMENT error.
638*d5c09012SAndroid Build Coastguard Worker    SearchStrategyType search_strategy_type = 1;
639*d5c09012SAndroid Build Coastguard Worker  }
640*d5c09012SAndroid Build Coastguard Worker
641*d5c09012SAndroid Build Coastguard Worker  // Data type of the annotation.
642*d5c09012SAndroid Build Coastguard Worker  enum DataType {
643*d5c09012SAndroid Build Coastguard Worker    // Unspecified type.
644*d5c09012SAndroid Build Coastguard Worker    DATA_TYPE_UNSPECIFIED = 0;
645*d5c09012SAndroid Build Coastguard Worker
646*d5c09012SAndroid Build Coastguard Worker    // Integer type.
647*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
648*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
649*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
650*d5c09012SAndroid Build Coastguard Worker    //   Supports query by IntRangeArray.
651*d5c09012SAndroid Build Coastguard Worker    INTEGER = 1;
652*d5c09012SAndroid Build Coastguard Worker
653*d5c09012SAndroid Build Coastguard Worker    // Float type.
654*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
655*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
656*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
657*d5c09012SAndroid Build Coastguard Worker    //   Supports query by FloatRangeArray.
658*d5c09012SAndroid Build Coastguard Worker    FLOAT = 2;
659*d5c09012SAndroid Build Coastguard Worker
660*d5c09012SAndroid Build Coastguard Worker    // String type.
661*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
662*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
663*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH,
664*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.SMART_SEARCH.
665*d5c09012SAndroid Build Coastguard Worker    STRING = 3;
666*d5c09012SAndroid Build Coastguard Worker
667*d5c09012SAndroid Build Coastguard Worker    // Supported formats:
668*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H:%M:%E*S%E*z (absl::RFC3339_full)
669*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H:%M:%E*S
670*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H:%M%E*z
671*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H:%M
672*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H%E*z
673*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%dT%H
674*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%d%E*z
675*d5c09012SAndroid Build Coastguard Worker    // %Y-%m-%d
676*d5c09012SAndroid Build Coastguard Worker    // %Y-%m
677*d5c09012SAndroid Build Coastguard Worker    // %Y
678*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
679*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
680*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
681*d5c09012SAndroid Build Coastguard Worker    //   Supports query by DateTimeRangeArray.
682*d5c09012SAndroid Build Coastguard Worker    DATETIME = 5;
683*d5c09012SAndroid Build Coastguard Worker
684*d5c09012SAndroid Build Coastguard Worker    // Geo coordinate type.
685*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
686*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
687*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
688*d5c09012SAndroid Build Coastguard Worker    //   Supports query by GeoLocationArray.
689*d5c09012SAndroid Build Coastguard Worker    GEO_COORDINATE = 7;
690*d5c09012SAndroid Build Coastguard Worker
691*d5c09012SAndroid Build Coastguard Worker    // Type to pass any proto as available in annotations.proto. Only use
692*d5c09012SAndroid Build Coastguard Worker    // internally.
693*d5c09012SAndroid Build Coastguard Worker    // Available proto types and its corresponding search behavior:
694*d5c09012SAndroid Build Coastguard Worker    // - ImageObjectDetectionPredictionResult, allows SMART_SEARCH on
695*d5c09012SAndroid Build Coastguard Worker    //   display_names and NO_SEARCH.
696*d5c09012SAndroid Build Coastguard Worker    // - ClassificationPredictionResult, allows SMART_SEARCH on display_names
697*d5c09012SAndroid Build Coastguard Worker    //   and NO_SEARCH.
698*d5c09012SAndroid Build Coastguard Worker    // - ImageSegmentationPredictionResult, allows NO_SEARCH.
699*d5c09012SAndroid Build Coastguard Worker    // - VideoActionRecognitionPredictionResult, allows SMART_SEARCH on
700*d5c09012SAndroid Build Coastguard Worker    //   display_name and NO_SEARCH.
701*d5c09012SAndroid Build Coastguard Worker    // - VideoObjectTrackingPredictionResult, allows SMART_SEARCH on
702*d5c09012SAndroid Build Coastguard Worker    //   display_name and NO_SEARCH.
703*d5c09012SAndroid Build Coastguard Worker    // - VideoClassificationPredictionResult, allows SMART_SEARCH on
704*d5c09012SAndroid Build Coastguard Worker    //   display_name and NO_SEARCH.
705*d5c09012SAndroid Build Coastguard Worker    // - OccupancyCountingPredictionResult, allows EXACT_SEARCH on
706*d5c09012SAndroid Build Coastguard Worker    //   stats.full_frame_count.count and NO_SEARCH.
707*d5c09012SAndroid Build Coastguard Worker    // - ObjectDetectionPredictionResult, allows SMART_SEARCH on
708*d5c09012SAndroid Build Coastguard Worker    //   identified_boxes.entity.label_string and NO_SEARCH.
709*d5c09012SAndroid Build Coastguard Worker    PROTO_ANY = 8;
710*d5c09012SAndroid Build Coastguard Worker
711*d5c09012SAndroid Build Coastguard Worker    // Boolean type.
712*d5c09012SAndroid Build Coastguard Worker    // Allowed search strategies:
713*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.NO_SEARCH,
714*d5c09012SAndroid Build Coastguard Worker    // - DataSchema.SearchStrategy.EXACT_SEARCH.
715*d5c09012SAndroid Build Coastguard Worker    BOOLEAN = 9;
716*d5c09012SAndroid Build Coastguard Worker  }
717*d5c09012SAndroid Build Coastguard Worker
718*d5c09012SAndroid Build Coastguard Worker  // The granularity of annotations under this DataSchema.
719*d5c09012SAndroid Build Coastguard Worker  enum Granularity {
720*d5c09012SAndroid Build Coastguard Worker    // Unspecified granularity.
721*d5c09012SAndroid Build Coastguard Worker    GRANULARITY_UNSPECIFIED = 0;
722*d5c09012SAndroid Build Coastguard Worker
723*d5c09012SAndroid Build Coastguard Worker    // Asset-level granularity (annotations must not contain partition info).
724*d5c09012SAndroid Build Coastguard Worker    GRANULARITY_ASSET_LEVEL = 1;
725*d5c09012SAndroid Build Coastguard Worker
726*d5c09012SAndroid Build Coastguard Worker    // Partition-level granularity (annotations must contain partition info).
727*d5c09012SAndroid Build Coastguard Worker    GRANULARITY_PARTITION_LEVEL = 2;
728*d5c09012SAndroid Build Coastguard Worker  }
729*d5c09012SAndroid Build Coastguard Worker
730*d5c09012SAndroid Build Coastguard Worker  // Type of the annotation.
731*d5c09012SAndroid Build Coastguard Worker  DataType type = 1;
732*d5c09012SAndroid Build Coastguard Worker
733*d5c09012SAndroid Build Coastguard Worker  // Config for protobuf any type.
734*d5c09012SAndroid Build Coastguard Worker  ProtoAnyConfig proto_any_config = 6;
735*d5c09012SAndroid Build Coastguard Worker
736*d5c09012SAndroid Build Coastguard Worker  // The granularity associated with this DataSchema.
737*d5c09012SAndroid Build Coastguard Worker  Granularity granularity = 5;
738*d5c09012SAndroid Build Coastguard Worker
739*d5c09012SAndroid Build Coastguard Worker  // The search strategy to be applied on the `key` above.
740*d5c09012SAndroid Build Coastguard Worker  SearchStrategy search_strategy = 7;
741*d5c09012SAndroid Build Coastguard Worker}
742*d5c09012SAndroid Build Coastguard Worker
743*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateDataSchema.
744*d5c09012SAndroid Build Coastguard Workermessage UpdateDataSchemaRequest {
745*d5c09012SAndroid Build Coastguard Worker  // Required. The data schema's `name` field is used to identify the data schema to be
746*d5c09012SAndroid Build Coastguard Worker  // updated. Format:
747*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/dataSchemas/{data_schema}
748*d5c09012SAndroid Build Coastguard Worker  DataSchema data_schema = 1 [(google.api.field_behavior) = REQUIRED];
749*d5c09012SAndroid Build Coastguard Worker
750*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated.
751*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
752*d5c09012SAndroid Build Coastguard Worker}
753*d5c09012SAndroid Build Coastguard Worker
754*d5c09012SAndroid Build Coastguard Worker// Request message for GetDataSchema.
755*d5c09012SAndroid Build Coastguard Workermessage GetDataSchemaRequest {
756*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the data schema to retrieve.
757*d5c09012SAndroid Build Coastguard Worker  // Format:
758*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/dataSchemas/{data_schema_id}
759*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
760*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
761*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
762*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/DataSchema"
763*d5c09012SAndroid Build Coastguard Worker    }
764*d5c09012SAndroid Build Coastguard Worker  ];
765*d5c09012SAndroid Build Coastguard Worker}
766*d5c09012SAndroid Build Coastguard Worker
767*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteDataSchema.
768*d5c09012SAndroid Build Coastguard Workermessage DeleteDataSchemaRequest {
769*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the data schema to delete.
770*d5c09012SAndroid Build Coastguard Worker  // Format:
771*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/dataSchemas/{data_schema_id}
772*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
773*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
774*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
775*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/DataSchema"
776*d5c09012SAndroid Build Coastguard Worker    }
777*d5c09012SAndroid Build Coastguard Worker  ];
778*d5c09012SAndroid Build Coastguard Worker}
779*d5c09012SAndroid Build Coastguard Worker
780*d5c09012SAndroid Build Coastguard Worker// Request message for ListDataSchemas.
781*d5c09012SAndroid Build Coastguard Workermessage ListDataSchemasRequest {
782*d5c09012SAndroid Build Coastguard Worker  // Required. The parent, which owns this collection of data schemas.
783*d5c09012SAndroid Build Coastguard Worker  // Format:
784*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location_id}/corpora/{corpus_id}
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/DataSchema"
789*d5c09012SAndroid Build Coastguard Worker    }
790*d5c09012SAndroid Build Coastguard Worker  ];
791*d5c09012SAndroid Build Coastguard Worker
792*d5c09012SAndroid Build Coastguard Worker  // The maximum number of data schemas to return. The service may return fewer
793*d5c09012SAndroid Build Coastguard Worker  // than this value. If unspecified, at most 50 data schemas will be returned.
794*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
795*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
796*d5c09012SAndroid Build Coastguard Worker
797*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListDataSchemas` call.
798*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
799*d5c09012SAndroid Build Coastguard Worker  //
800*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to `ListDataSchemas` must
801*d5c09012SAndroid Build Coastguard Worker  // match the call that provided the page token.
802*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
803*d5c09012SAndroid Build Coastguard Worker}
804*d5c09012SAndroid Build Coastguard Worker
805*d5c09012SAndroid Build Coastguard Worker// Response message for ListDataSchemas.
806*d5c09012SAndroid Build Coastguard Workermessage ListDataSchemasResponse {
807*d5c09012SAndroid Build Coastguard Worker  // The data schemas from the specified corpus.
808*d5c09012SAndroid Build Coastguard Worker  repeated DataSchema data_schemas = 1;
809*d5c09012SAndroid Build Coastguard Worker
810*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
811*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
812*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
813*d5c09012SAndroid Build Coastguard Worker}
814*d5c09012SAndroid Build Coastguard Worker
815*d5c09012SAndroid Build Coastguard Worker// Request message for CreateAnnotation.
816*d5c09012SAndroid Build Coastguard Workermessage CreateAnnotationRequest {
817*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this annotation will be created.
818*d5c09012SAndroid Build Coastguard Worker  // Format: projects/*/locations/*/corpora/*/assets/*
819*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
820*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
821*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
822*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Asset"
823*d5c09012SAndroid Build Coastguard Worker    }
824*d5c09012SAndroid Build Coastguard Worker  ];
825*d5c09012SAndroid Build Coastguard Worker
826*d5c09012SAndroid Build Coastguard Worker  // Required. The annotation to create.
827*d5c09012SAndroid Build Coastguard Worker  Annotation annotation = 2 [(google.api.field_behavior) = REQUIRED];
828*d5c09012SAndroid Build Coastguard Worker
829*d5c09012SAndroid Build Coastguard Worker  // Optional. The ID to use for the annotation, which will become the final component of
830*d5c09012SAndroid Build Coastguard Worker  // the annotation's resource name if user choose to specify. Otherwise,
831*d5c09012SAndroid Build Coastguard Worker  // annotation id will be generated by system.
832*d5c09012SAndroid Build Coastguard Worker  //
833*d5c09012SAndroid Build Coastguard Worker  // This value should be up to 63 characters, and valid characters
834*d5c09012SAndroid Build Coastguard Worker  // are /[a-z][0-9]-/. The first character must be a letter, the last could be
835*d5c09012SAndroid Build Coastguard Worker  // a letter or a number.
836*d5c09012SAndroid Build Coastguard Worker  optional string annotation_id = 3 [(google.api.field_behavior) = OPTIONAL];
837*d5c09012SAndroid Build Coastguard Worker}
838*d5c09012SAndroid Build Coastguard Worker
839*d5c09012SAndroid Build Coastguard Worker// An annotation is a resource in asset. It represents a key-value mapping of
840*d5c09012SAndroid Build Coastguard Worker// content in asset.
841*d5c09012SAndroid Build Coastguard Workermessage Annotation {
842*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
843*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/Annotation"
844*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}"
845*d5c09012SAndroid Build Coastguard Worker  };
846*d5c09012SAndroid Build Coastguard Worker
847*d5c09012SAndroid Build Coastguard Worker  // Resource name of the annotation.
848*d5c09012SAndroid Build Coastguard Worker  // Form:
849*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}`
850*d5c09012SAndroid Build Coastguard Worker  string name = 1;
851*d5c09012SAndroid Build Coastguard Worker
852*d5c09012SAndroid Build Coastguard Worker  // User provided annotation.
853*d5c09012SAndroid Build Coastguard Worker  UserSpecifiedAnnotation user_specified_annotation = 2;
854*d5c09012SAndroid Build Coastguard Worker}
855*d5c09012SAndroid Build Coastguard Worker
856*d5c09012SAndroid Build Coastguard Worker// Annotation provided by users.
857*d5c09012SAndroid Build Coastguard Workermessage UserSpecifiedAnnotation {
858*d5c09012SAndroid Build Coastguard Worker  // Required. Key of the annotation. The key must be set with type by CreateDataSchema.
859*d5c09012SAndroid Build Coastguard Worker  string key = 1 [(google.api.field_behavior) = REQUIRED];
860*d5c09012SAndroid Build Coastguard Worker
861*d5c09012SAndroid Build Coastguard Worker  // Value of the annotation. The value must be able to convert
862*d5c09012SAndroid Build Coastguard Worker  // to the type according to the data schema.
863*d5c09012SAndroid Build Coastguard Worker  AnnotationValue value = 2;
864*d5c09012SAndroid Build Coastguard Worker
865*d5c09012SAndroid Build Coastguard Worker  // Partition information in time and space for the sub-asset level annotation.
866*d5c09012SAndroid Build Coastguard Worker  Partition partition = 3;
867*d5c09012SAndroid Build Coastguard Worker}
868*d5c09012SAndroid Build Coastguard Worker
869*d5c09012SAndroid Build Coastguard Worker// Location Coordinate Representation
870*d5c09012SAndroid Build Coastguard Workermessage GeoCoordinate {
871*d5c09012SAndroid Build Coastguard Worker  // Latitude Coordinate. Degrees [-90 .. 90]
872*d5c09012SAndroid Build Coastguard Worker  double latitude = 1;
873*d5c09012SAndroid Build Coastguard Worker
874*d5c09012SAndroid Build Coastguard Worker  // Longitude Coordinate. Degrees [-180 .. 180]
875*d5c09012SAndroid Build Coastguard Worker  double longitude = 2;
876*d5c09012SAndroid Build Coastguard Worker}
877*d5c09012SAndroid Build Coastguard Worker
878*d5c09012SAndroid Build Coastguard Worker// Value of annotation, including all types available in data schema.
879*d5c09012SAndroid Build Coastguard Workermessage AnnotationValue {
880*d5c09012SAndroid Build Coastguard Worker  oneof value {
881*d5c09012SAndroid Build Coastguard Worker    // Value of int type annotation.
882*d5c09012SAndroid Build Coastguard Worker    int64 int_value = 1;
883*d5c09012SAndroid Build Coastguard Worker
884*d5c09012SAndroid Build Coastguard Worker    // Value of float type annotation.
885*d5c09012SAndroid Build Coastguard Worker    float float_value = 2;
886*d5c09012SAndroid Build Coastguard Worker
887*d5c09012SAndroid Build Coastguard Worker    // Value of string type annotation.
888*d5c09012SAndroid Build Coastguard Worker    string str_value = 3;
889*d5c09012SAndroid Build Coastguard Worker
890*d5c09012SAndroid Build Coastguard Worker    // Value of date time type annotation.
891*d5c09012SAndroid Build Coastguard Worker    string datetime_value = 5;
892*d5c09012SAndroid Build Coastguard Worker
893*d5c09012SAndroid Build Coastguard Worker    // Value of geo coordinate type annotation.
894*d5c09012SAndroid Build Coastguard Worker    GeoCoordinate geo_coordinate = 7;
895*d5c09012SAndroid Build Coastguard Worker
896*d5c09012SAndroid Build Coastguard Worker    // Value of any proto value.
897*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Any proto_any_value = 8;
898*d5c09012SAndroid Build Coastguard Worker
899*d5c09012SAndroid Build Coastguard Worker    // Value of boolean type annotation.
900*d5c09012SAndroid Build Coastguard Worker    bool bool_value = 9;
901*d5c09012SAndroid Build Coastguard Worker
902*d5c09012SAndroid Build Coastguard Worker    // Value of customized struct annotation.
903*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Struct customized_struct_data_value = 10;
904*d5c09012SAndroid Build Coastguard Worker  }
905*d5c09012SAndroid Build Coastguard Worker}
906*d5c09012SAndroid Build Coastguard Worker
907*d5c09012SAndroid Build Coastguard Worker// Request message for GetAnnotation API.
908*d5c09012SAndroid Build Coastguard Workermessage ListAnnotationsRequest {
909*d5c09012SAndroid Build Coastguard Worker  // The parent, which owns this collection of annotations.
910*d5c09012SAndroid Build Coastguard Worker  // Format:
911*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}
912*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [(google.api.resource_reference) = {
913*d5c09012SAndroid Build Coastguard Worker                       type: "visionai.googleapis.com/Asset"
914*d5c09012SAndroid Build Coastguard Worker                     }];
915*d5c09012SAndroid Build Coastguard Worker
916*d5c09012SAndroid Build Coastguard Worker  // The maximum number of annotations to return. The service may return fewer
917*d5c09012SAndroid Build Coastguard Worker  // than this value. If unspecified, at most 50 annotations will be returned.
918*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
919*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
920*d5c09012SAndroid Build Coastguard Worker
921*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListAnnotations` call.
922*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
923*d5c09012SAndroid Build Coastguard Worker  //
924*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to `ListAnnotations` must
925*d5c09012SAndroid Build Coastguard Worker  // match the call that provided the page token.
926*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
927*d5c09012SAndroid Build Coastguard Worker
928*d5c09012SAndroid Build Coastguard Worker  // The filter applied to the returned list.
929*d5c09012SAndroid Build Coastguard Worker  // We only support filtering for the following fields:
930*d5c09012SAndroid Build Coastguard Worker  // `partition.temporal_partition.start_time`,
931*d5c09012SAndroid Build Coastguard Worker  // `partition.temporal_partition.end_time`, and `key`.
932*d5c09012SAndroid Build Coastguard Worker  // Timestamps are specified in the RFC-3339 format, and only one restriction
933*d5c09012SAndroid Build Coastguard Worker  // may be applied per field, joined by conjunctions.
934*d5c09012SAndroid Build Coastguard Worker  // Format:
935*d5c09012SAndroid Build Coastguard Worker  // "partition.temporal_partition.start_time > "2012-04-21T11:30:00-04:00" AND
936*d5c09012SAndroid Build Coastguard Worker  // partition.temporal_partition.end_time < "2012-04-22T11:30:00-04:00" AND
937*d5c09012SAndroid Build Coastguard Worker  // key = "example_key""
938*d5c09012SAndroid Build Coastguard Worker  string filter = 4;
939*d5c09012SAndroid Build Coastguard Worker}
940*d5c09012SAndroid Build Coastguard Worker
941*d5c09012SAndroid Build Coastguard Worker// Request message for ListAnnotations API.
942*d5c09012SAndroid Build Coastguard Workermessage ListAnnotationsResponse {
943*d5c09012SAndroid Build Coastguard Worker  // The annotations from the specified asset.
944*d5c09012SAndroid Build Coastguard Worker  repeated Annotation annotations = 1;
945*d5c09012SAndroid Build Coastguard Worker
946*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
947*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
948*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
949*d5c09012SAndroid Build Coastguard Worker}
950*d5c09012SAndroid Build Coastguard Worker
951*d5c09012SAndroid Build Coastguard Worker// Request message for GetAnnotation API.
952*d5c09012SAndroid Build Coastguard Workermessage GetAnnotationRequest {
953*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the annotation to retrieve.
954*d5c09012SAndroid Build Coastguard Worker  // Format:
955*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}
956*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
957*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
958*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
959*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Annotation"
960*d5c09012SAndroid Build Coastguard Worker    }
961*d5c09012SAndroid Build Coastguard Worker  ];
962*d5c09012SAndroid Build Coastguard Worker}
963*d5c09012SAndroid Build Coastguard Worker
964*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateAnnotation API.
965*d5c09012SAndroid Build Coastguard Workermessage UpdateAnnotationRequest {
966*d5c09012SAndroid Build Coastguard Worker  // Required. The annotation to update.
967*d5c09012SAndroid Build Coastguard Worker  // The annotation's `name` field is used to identify the annotation to be
968*d5c09012SAndroid Build Coastguard Worker  // updated. Format:
969*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}
970*d5c09012SAndroid Build Coastguard Worker  Annotation annotation = 1 [(google.api.field_behavior) = REQUIRED];
971*d5c09012SAndroid Build Coastguard Worker
972*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated.
973*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
974*d5c09012SAndroid Build Coastguard Worker}
975*d5c09012SAndroid Build Coastguard Worker
976*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteAnnotation API.
977*d5c09012SAndroid Build Coastguard Workermessage DeleteAnnotationRequest {
978*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the annotation to delete.
979*d5c09012SAndroid Build Coastguard Worker  // Format:
980*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}
981*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
982*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
983*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
984*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Annotation"
985*d5c09012SAndroid Build Coastguard Worker    }
986*d5c09012SAndroid Build Coastguard Worker  ];
987*d5c09012SAndroid Build Coastguard Worker}
988*d5c09012SAndroid Build Coastguard Worker
989*d5c09012SAndroid Build Coastguard Worker// Request message for CreateSearchConfig.
990*d5c09012SAndroid Build Coastguard Workermessage CreateSearchConfigRequest {
991*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this search configuration will be created.
992*d5c09012SAndroid Build Coastguard Worker  // Format: projects/*/locations/*/corpora/*
993*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
994*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
995*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
996*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/SearchConfig"
997*d5c09012SAndroid Build Coastguard Worker    }
998*d5c09012SAndroid Build Coastguard Worker  ];
999*d5c09012SAndroid Build Coastguard Worker
1000*d5c09012SAndroid Build Coastguard Worker  // Required. The search config to create.
1001*d5c09012SAndroid Build Coastguard Worker  SearchConfig search_config = 2 [(google.api.field_behavior) = REQUIRED];
1002*d5c09012SAndroid Build Coastguard Worker
1003*d5c09012SAndroid Build Coastguard Worker  // Required. ID to use for the new search config. Will become the final component of the
1004*d5c09012SAndroid Build Coastguard Worker  // SearchConfig's resource name. This value should be up to 63 characters, and
1005*d5c09012SAndroid Build Coastguard Worker  // valid characters are /[a-z][0-9]-_/. The first character must be a letter,
1006*d5c09012SAndroid Build Coastguard Worker  // the last could be a letter or a number.
1007*d5c09012SAndroid Build Coastguard Worker  string search_config_id = 3 [(google.api.field_behavior) = REQUIRED];
1008*d5c09012SAndroid Build Coastguard Worker}
1009*d5c09012SAndroid Build Coastguard Worker
1010*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateSearchConfig.
1011*d5c09012SAndroid Build Coastguard Workermessage UpdateSearchConfigRequest {
1012*d5c09012SAndroid Build Coastguard Worker  // Required. The search configuration to update.
1013*d5c09012SAndroid Build Coastguard Worker  //
1014*d5c09012SAndroid Build Coastguard Worker  // The search configuration's `name` field is used to identify the resource to
1015*d5c09012SAndroid Build Coastguard Worker  // be updated. Format:
1016*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}
1017*d5c09012SAndroid Build Coastguard Worker  SearchConfig search_config = 1 [(google.api.field_behavior) = REQUIRED];
1018*d5c09012SAndroid Build Coastguard Worker
1019*d5c09012SAndroid Build Coastguard Worker  // The list of fields to be updated. If left unset, all field paths will be
1020*d5c09012SAndroid Build Coastguard Worker  // updated/overwritten.
1021*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
1022*d5c09012SAndroid Build Coastguard Worker}
1023*d5c09012SAndroid Build Coastguard Worker
1024*d5c09012SAndroid Build Coastguard Worker// Request message for GetSearchConfig.
1025*d5c09012SAndroid Build Coastguard Workermessage GetSearchConfigRequest {
1026*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the search configuration to retrieve.
1027*d5c09012SAndroid Build Coastguard Worker  // Format:
1028*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}
1029*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1030*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1031*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1032*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/SearchConfig"
1033*d5c09012SAndroid Build Coastguard Worker    }
1034*d5c09012SAndroid Build Coastguard Worker  ];
1035*d5c09012SAndroid Build Coastguard Worker}
1036*d5c09012SAndroid Build Coastguard Worker
1037*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteSearchConfig.
1038*d5c09012SAndroid Build Coastguard Workermessage DeleteSearchConfigRequest {
1039*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the search configuration to delete.
1040*d5c09012SAndroid Build Coastguard Worker  // Format:
1041*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}
1042*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1043*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1044*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1045*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/SearchConfig"
1046*d5c09012SAndroid Build Coastguard Worker    }
1047*d5c09012SAndroid Build Coastguard Worker  ];
1048*d5c09012SAndroid Build Coastguard Worker}
1049*d5c09012SAndroid Build Coastguard Worker
1050*d5c09012SAndroid Build Coastguard Worker// Request message for ListSearchConfigs.
1051*d5c09012SAndroid Build Coastguard Workermessage ListSearchConfigsRequest {
1052*d5c09012SAndroid Build Coastguard Worker  // Required. The parent, which owns this collection of search configurations.
1053*d5c09012SAndroid Build Coastguard Worker  // Format:
1054*d5c09012SAndroid Build Coastguard Worker  // projects/{project_number}/locations/{location}/corpora/{corpus}
1055*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1056*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1057*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1058*d5c09012SAndroid Build Coastguard Worker      child_type: "visionai.googleapis.com/SearchConfig"
1059*d5c09012SAndroid Build Coastguard Worker    }
1060*d5c09012SAndroid Build Coastguard Worker  ];
1061*d5c09012SAndroid Build Coastguard Worker
1062*d5c09012SAndroid Build Coastguard Worker  // The maximum number of search configurations to return. The service may
1063*d5c09012SAndroid Build Coastguard Worker  // return fewer than this value. If unspecified, a page size of 50 will be
1064*d5c09012SAndroid Build Coastguard Worker  // used. The maximum value is 1000; values above 1000 will be coerced to 1000.
1065*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
1066*d5c09012SAndroid Build Coastguard Worker
1067*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListSearchConfigs` call.
1068*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page.
1069*d5c09012SAndroid Build Coastguard Worker  //
1070*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to
1071*d5c09012SAndroid Build Coastguard Worker  // `ListSearchConfigs` must match the call that provided the page
1072*d5c09012SAndroid Build Coastguard Worker  // token.
1073*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
1074*d5c09012SAndroid Build Coastguard Worker}
1075*d5c09012SAndroid Build Coastguard Worker
1076*d5c09012SAndroid Build Coastguard Worker// Response message for ListSearchConfigs.
1077*d5c09012SAndroid Build Coastguard Workermessage ListSearchConfigsResponse {
1078*d5c09012SAndroid Build Coastguard Worker  // The search configurations from the specified corpus.
1079*d5c09012SAndroid Build Coastguard Worker  repeated SearchConfig search_configs = 1;
1080*d5c09012SAndroid Build Coastguard Worker
1081*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
1082*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
1083*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1084*d5c09012SAndroid Build Coastguard Worker}
1085*d5c09012SAndroid Build Coastguard Worker
1086*d5c09012SAndroid Build Coastguard Worker// SearchConfig stores different properties that will affect search
1087*d5c09012SAndroid Build Coastguard Worker// behaviors and search results.
1088*d5c09012SAndroid Build Coastguard Workermessage SearchConfig {
1089*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1090*d5c09012SAndroid Build Coastguard Worker    type: "visionai.googleapis.com/SearchConfig"
1091*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}"
1092*d5c09012SAndroid Build Coastguard Worker  };
1093*d5c09012SAndroid Build Coastguard Worker
1094*d5c09012SAndroid Build Coastguard Worker  // Resource name of the search configuration.
1095*d5c09012SAndroid Build Coastguard Worker  // For CustomSearchCriteria, search_config would be the search
1096*d5c09012SAndroid Build Coastguard Worker  // operator name. For Facets, search_config would be the facet
1097*d5c09012SAndroid Build Coastguard Worker  // dimension name.
1098*d5c09012SAndroid Build Coastguard Worker  // Form:
1099*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}`
1100*d5c09012SAndroid Build Coastguard Worker  string name = 1;
1101*d5c09012SAndroid Build Coastguard Worker
1102*d5c09012SAndroid Build Coastguard Worker  // Establishes a FacetDimension and associated specifications.
1103*d5c09012SAndroid Build Coastguard Worker  FacetProperty facet_property = 2;
1104*d5c09012SAndroid Build Coastguard Worker
1105*d5c09012SAndroid Build Coastguard Worker  // Creates a mapping between a custom SearchCriteria and one or more UGA keys.
1106*d5c09012SAndroid Build Coastguard Worker  SearchCriteriaProperty search_criteria_property = 3;
1107*d5c09012SAndroid Build Coastguard Worker}
1108*d5c09012SAndroid Build Coastguard Worker
1109*d5c09012SAndroid Build Coastguard Worker// Central configuration for a facet.
1110*d5c09012SAndroid Build Coastguard Workermessage FacetProperty {
1111*d5c09012SAndroid Build Coastguard Worker  // If bucket type is FIXED_RANGE, specify how values are bucketized. Use
1112*d5c09012SAndroid Build Coastguard Worker  // FixedRangeBucketSpec when you want to create multiple buckets with equal
1113*d5c09012SAndroid Build Coastguard Worker  // granularities. Using integer bucket value as an example, when
1114*d5c09012SAndroid Build Coastguard Worker  // bucket_start = 0, bucket_granularity = 10, bucket_count = 5, this facet
1115*d5c09012SAndroid Build Coastguard Worker  // will be aggregated via the following buckets:
1116*d5c09012SAndroid Build Coastguard Worker  // [-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf).
1117*d5c09012SAndroid Build Coastguard Worker  // Notably, bucket_count <= 1 is an invalid spec.
1118*d5c09012SAndroid Build Coastguard Worker  message FixedRangeBucketSpec {
1119*d5c09012SAndroid Build Coastguard Worker    // Lower bound of the bucket. NOTE: Only integer type is currently supported
1120*d5c09012SAndroid Build Coastguard Worker    // for this field.
1121*d5c09012SAndroid Build Coastguard Worker    FacetValue bucket_start = 1;
1122*d5c09012SAndroid Build Coastguard Worker
1123*d5c09012SAndroid Build Coastguard Worker    // Bucket granularity. NOTE: Only integer type is currently supported for
1124*d5c09012SAndroid Build Coastguard Worker    // this field.
1125*d5c09012SAndroid Build Coastguard Worker    FacetValue bucket_granularity = 2;
1126*d5c09012SAndroid Build Coastguard Worker
1127*d5c09012SAndroid Build Coastguard Worker    // Total number of buckets.
1128*d5c09012SAndroid Build Coastguard Worker    int32 bucket_count = 3;
1129*d5c09012SAndroid Build Coastguard Worker  }
1130*d5c09012SAndroid Build Coastguard Worker
1131*d5c09012SAndroid Build Coastguard Worker  // If bucket type is CUSTOM_RANGE, specify how values are bucketized. Use
1132*d5c09012SAndroid Build Coastguard Worker  // integer bucket value as an example, when the endpoints are 0, 10, 100, and
1133*d5c09012SAndroid Build Coastguard Worker  // 1000, we will generate the following facets:
1134*d5c09012SAndroid Build Coastguard Worker  // [-inf, 0), [0, 10), [10, 100), [100, 1000), [1000, inf).
1135*d5c09012SAndroid Build Coastguard Worker  // Notably:
1136*d5c09012SAndroid Build Coastguard Worker  // - endpoints must be listed in ascending order. Otherwise, the SearchConfig
1137*d5c09012SAndroid Build Coastguard Worker  //   API will reject the facet config.
1138*d5c09012SAndroid Build Coastguard Worker  // - < 1 endpoints is an invalid spec.
1139*d5c09012SAndroid Build Coastguard Worker  message CustomRangeBucketSpec {
1140*d5c09012SAndroid Build Coastguard Worker    // Currently, only integer type is supported for this field.
1141*d5c09012SAndroid Build Coastguard Worker    repeated FacetValue endpoints = 1;
1142*d5c09012SAndroid Build Coastguard Worker  }
1143*d5c09012SAndroid Build Coastguard Worker
1144*d5c09012SAndroid Build Coastguard Worker  // If bucket type is DATE, specify how date values are bucketized.
1145*d5c09012SAndroid Build Coastguard Worker  message DateTimeBucketSpec {
1146*d5c09012SAndroid Build Coastguard Worker    // Granularity enum for the datetime bucket.
1147*d5c09012SAndroid Build Coastguard Worker    enum Granularity {
1148*d5c09012SAndroid Build Coastguard Worker      // Unspecified granularity.
1149*d5c09012SAndroid Build Coastguard Worker      GRANULARITY_UNSPECIFIED = 0;
1150*d5c09012SAndroid Build Coastguard Worker
1151*d5c09012SAndroid Build Coastguard Worker      // Granularity is year.
1152*d5c09012SAndroid Build Coastguard Worker      YEAR = 1;
1153*d5c09012SAndroid Build Coastguard Worker
1154*d5c09012SAndroid Build Coastguard Worker      // Granularity is month.
1155*d5c09012SAndroid Build Coastguard Worker      MONTH = 2;
1156*d5c09012SAndroid Build Coastguard Worker
1157*d5c09012SAndroid Build Coastguard Worker      // Granularity is day.
1158*d5c09012SAndroid Build Coastguard Worker      DAY = 3;
1159*d5c09012SAndroid Build Coastguard Worker    }
1160*d5c09012SAndroid Build Coastguard Worker
1161*d5c09012SAndroid Build Coastguard Worker    // Granularity of date type facet.
1162*d5c09012SAndroid Build Coastguard Worker    Granularity granularity = 1;
1163*d5c09012SAndroid Build Coastguard Worker  }
1164*d5c09012SAndroid Build Coastguard Worker
1165*d5c09012SAndroid Build Coastguard Worker  oneof range_facet_config {
1166*d5c09012SAndroid Build Coastguard Worker    // Fixed range facet bucket config.
1167*d5c09012SAndroid Build Coastguard Worker    FixedRangeBucketSpec fixed_range_bucket_spec = 5;
1168*d5c09012SAndroid Build Coastguard Worker
1169*d5c09012SAndroid Build Coastguard Worker    // Custom range facet bucket config.
1170*d5c09012SAndroid Build Coastguard Worker    CustomRangeBucketSpec custom_range_bucket_spec = 6;
1171*d5c09012SAndroid Build Coastguard Worker
1172*d5c09012SAndroid Build Coastguard Worker    // Datetime range facet bucket config.
1173*d5c09012SAndroid Build Coastguard Worker    DateTimeBucketSpec datetime_bucket_spec = 7;
1174*d5c09012SAndroid Build Coastguard Worker  }
1175*d5c09012SAndroid Build Coastguard Worker
1176*d5c09012SAndroid Build Coastguard Worker  // Name of the facets, which are the dimensions users want to use to refine
1177*d5c09012SAndroid Build Coastguard Worker  // search results. `mapped_fields` will match UserSpecifiedDataSchema keys.
1178*d5c09012SAndroid Build Coastguard Worker  //
1179*d5c09012SAndroid Build Coastguard Worker  // For example, user can add a bunch of UGAs with the same key, such as
1180*d5c09012SAndroid Build Coastguard Worker  // player:adam, player:bob, player:charles. When multiple mapped_fields are
1181*d5c09012SAndroid Build Coastguard Worker  // specified, will merge their value together as final facet value. E.g.
1182*d5c09012SAndroid Build Coastguard Worker  // home_team: a, home_team:b, away_team:a, away_team:c, when facet_field =
1183*d5c09012SAndroid Build Coastguard Worker  // [home_team, away_team], facet_value will be [a, b, c].
1184*d5c09012SAndroid Build Coastguard Worker  //
1185*d5c09012SAndroid Build Coastguard Worker  // UNLESS this is a 1:1 facet dimension (mapped_fields.size() == 1) AND the
1186*d5c09012SAndroid Build Coastguard Worker  // mapped_field equals the parent SearchConfig.name, the parent must
1187*d5c09012SAndroid Build Coastguard Worker  // also contain a SearchCriteriaProperty that maps to the same fields.
1188*d5c09012SAndroid Build Coastguard Worker  // mapped_fields must not be empty.
1189*d5c09012SAndroid Build Coastguard Worker  repeated string mapped_fields = 1;
1190*d5c09012SAndroid Build Coastguard Worker
1191*d5c09012SAndroid Build Coastguard Worker  // Display name of the facet. To be used by UI for facet rendering.
1192*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
1193*d5c09012SAndroid Build Coastguard Worker
1194*d5c09012SAndroid Build Coastguard Worker  // Maximum number of unique bucket to return for one facet. Bucket number can
1195*d5c09012SAndroid Build Coastguard Worker  // be large for high-cardinality facet such as "player". We only return top-n
1196*d5c09012SAndroid Build Coastguard Worker  // most related ones to user. If it's <= 0, the server will decide the
1197*d5c09012SAndroid Build Coastguard Worker  // appropriate result_size.
1198*d5c09012SAndroid Build Coastguard Worker  int64 result_size = 3;
1199*d5c09012SAndroid Build Coastguard Worker
1200*d5c09012SAndroid Build Coastguard Worker  // Facet bucket type e.g. value, range.
1201*d5c09012SAndroid Build Coastguard Worker  FacetBucketType bucket_type = 4;
1202*d5c09012SAndroid Build Coastguard Worker}
1203*d5c09012SAndroid Build Coastguard Worker
1204*d5c09012SAndroid Build Coastguard Worker// Central configuration for custom search criteria.
1205*d5c09012SAndroid Build Coastguard Workermessage SearchCriteriaProperty {
1206*d5c09012SAndroid Build Coastguard Worker  // Each mapped_field corresponds to a UGA key. To understand how this property
1207*d5c09012SAndroid Build Coastguard Worker  // works, take the following example. In the SearchConfig table, the
1208*d5c09012SAndroid Build Coastguard Worker  // user adds this entry:
1209*d5c09012SAndroid Build Coastguard Worker  //   search_config {
1210*d5c09012SAndroid Build Coastguard Worker  //     name: "person"
1211*d5c09012SAndroid Build Coastguard Worker  //     search_criteria_property {
1212*d5c09012SAndroid Build Coastguard Worker  //       mapped_fields: "player"
1213*d5c09012SAndroid Build Coastguard Worker  //       mapped_fields: "coach"
1214*d5c09012SAndroid Build Coastguard Worker  //     }
1215*d5c09012SAndroid Build Coastguard Worker  //   }
1216*d5c09012SAndroid Build Coastguard Worker  //
1217*d5c09012SAndroid Build Coastguard Worker  // Now, when a user issues a query like:
1218*d5c09012SAndroid Build Coastguard Worker  //   criteria {
1219*d5c09012SAndroid Build Coastguard Worker  //     field: "person"
1220*d5c09012SAndroid Build Coastguard Worker  //     text_array {
1221*d5c09012SAndroid Build Coastguard Worker  //       txt_values: "Tom Brady"
1222*d5c09012SAndroid Build Coastguard Worker  //       txt_values: "Bill Belichick"
1223*d5c09012SAndroid Build Coastguard Worker  //     }
1224*d5c09012SAndroid Build Coastguard Worker  //   }
1225*d5c09012SAndroid Build Coastguard Worker  //
1226*d5c09012SAndroid Build Coastguard Worker  // MWH search will return search documents where (player=Tom Brady ||
1227*d5c09012SAndroid Build Coastguard Worker  // coach=Tom Brady || player=Bill Belichick || coach=Bill Belichick).
1228*d5c09012SAndroid Build Coastguard Worker  repeated string mapped_fields = 1;
1229*d5c09012SAndroid Build Coastguard Worker}
1230*d5c09012SAndroid Build Coastguard Worker
1231*d5c09012SAndroid Build Coastguard Worker// Definition of a single value with generic type.
1232*d5c09012SAndroid Build Coastguard Workermessage FacetValue {
1233*d5c09012SAndroid Build Coastguard Worker  oneof value {
1234*d5c09012SAndroid Build Coastguard Worker    // String type value.
1235*d5c09012SAndroid Build Coastguard Worker    string string_value = 1;
1236*d5c09012SAndroid Build Coastguard Worker
1237*d5c09012SAndroid Build Coastguard Worker    // Integer type value.
1238*d5c09012SAndroid Build Coastguard Worker    int64 integer_value = 2;
1239*d5c09012SAndroid Build Coastguard Worker
1240*d5c09012SAndroid Build Coastguard Worker    // Datetime type value.
1241*d5c09012SAndroid Build Coastguard Worker    google.type.DateTime datetime_value = 3;
1242*d5c09012SAndroid Build Coastguard Worker  }
1243*d5c09012SAndroid Build Coastguard Worker}
1244*d5c09012SAndroid Build Coastguard Worker
1245*d5c09012SAndroid Build Coastguard Worker// Holds the facet value, selections state, and metadata.
1246*d5c09012SAndroid Build Coastguard Workermessage FacetBucket {
1247*d5c09012SAndroid Build Coastguard Worker  // The range of values [start, end) for which faceting is applied.
1248*d5c09012SAndroid Build Coastguard Worker  message Range {
1249*d5c09012SAndroid Build Coastguard Worker    // Start of the range. Non-existence indicates some bound (e.g. -inf).
1250*d5c09012SAndroid Build Coastguard Worker    FacetValue start = 1;
1251*d5c09012SAndroid Build Coastguard Worker
1252*d5c09012SAndroid Build Coastguard Worker    // End of the range. Non-existence indicates some bound (e.g. inf).
1253*d5c09012SAndroid Build Coastguard Worker    FacetValue end = 2;
1254*d5c09012SAndroid Build Coastguard Worker  }
1255*d5c09012SAndroid Build Coastguard Worker
1256*d5c09012SAndroid Build Coastguard Worker  // Bucket associated with a facet. For example, bucket of facet “team”
1257*d5c09012SAndroid Build Coastguard Worker  // can be "49ers", "patriots", etc; bucket of facet "player" can be "tom
1258*d5c09012SAndroid Build Coastguard Worker  // brady", "drew brees", etc.
1259*d5c09012SAndroid Build Coastguard Worker  oneof bucket_value {
1260*d5c09012SAndroid Build Coastguard Worker    // Singular value.
1261*d5c09012SAndroid Build Coastguard Worker    FacetValue value = 2;
1262*d5c09012SAndroid Build Coastguard Worker
1263*d5c09012SAndroid Build Coastguard Worker    // Range value.
1264*d5c09012SAndroid Build Coastguard Worker    Range range = 4;
1265*d5c09012SAndroid Build Coastguard Worker  }
1266*d5c09012SAndroid Build Coastguard Worker
1267*d5c09012SAndroid Build Coastguard Worker  // Whether one facet bucket is selected. This field represents user's facet
1268*d5c09012SAndroid Build Coastguard Worker  // selection. It is set by frontend in SearchVideosRequest.
1269*d5c09012SAndroid Build Coastguard Worker  bool selected = 3;
1270*d5c09012SAndroid Build Coastguard Worker}
1271*d5c09012SAndroid Build Coastguard Worker
1272*d5c09012SAndroid Build Coastguard Worker// A group of facet buckets to be passed back and forth between backend &
1273*d5c09012SAndroid Build Coastguard Worker// frontend.
1274*d5c09012SAndroid Build Coastguard Workermessage FacetGroup {
1275*d5c09012SAndroid Build Coastguard Worker  // Unique id of the facet group.
1276*d5c09012SAndroid Build Coastguard Worker  string facet_id = 1;
1277*d5c09012SAndroid Build Coastguard Worker
1278*d5c09012SAndroid Build Coastguard Worker  // Display name of the facet. To be used by UI for facet rendering.
1279*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
1280*d5c09012SAndroid Build Coastguard Worker
1281*d5c09012SAndroid Build Coastguard Worker  // Buckets associated with the facet. E.g. for "Team" facet, the bucket
1282*d5c09012SAndroid Build Coastguard Worker  // can be 49ers, patriots, etc.
1283*d5c09012SAndroid Build Coastguard Worker  repeated FacetBucket buckets = 3;
1284*d5c09012SAndroid Build Coastguard Worker
1285*d5c09012SAndroid Build Coastguard Worker  // Facet bucket type.
1286*d5c09012SAndroid Build Coastguard Worker  FacetBucketType bucket_type = 4;
1287*d5c09012SAndroid Build Coastguard Worker
1288*d5c09012SAndroid Build Coastguard Worker  // If true, return query matched annotations for this facet group's selection.
1289*d5c09012SAndroid Build Coastguard Worker  // This option is only applicable for facets based on partition level
1290*d5c09012SAndroid Build Coastguard Worker  // annotations. It supports the following facet values:
1291*d5c09012SAndroid Build Coastguard Worker  //  - INTEGER
1292*d5c09012SAndroid Build Coastguard Worker  //  - STRING (DataSchema.SearchStrategy.EXACT_SEARCH only)
1293*d5c09012SAndroid Build Coastguard Worker  bool fetch_matched_annotations = 5;
1294*d5c09012SAndroid Build Coastguard Worker}
1295*d5c09012SAndroid Build Coastguard Worker
1296*d5c09012SAndroid Build Coastguard Worker// Request message for IngestAsset API.
1297*d5c09012SAndroid Build Coastguard Workermessage IngestAssetRequest {
1298*d5c09012SAndroid Build Coastguard Worker  // Configuration for the data.
1299*d5c09012SAndroid Build Coastguard Worker  message Config {
1300*d5c09012SAndroid Build Coastguard Worker    // Type information for video data.
1301*d5c09012SAndroid Build Coastguard Worker    message VideoType {
1302*d5c09012SAndroid Build Coastguard Worker      // Container format of the video.
1303*d5c09012SAndroid Build Coastguard Worker      enum ContainerFormat {
1304*d5c09012SAndroid Build Coastguard Worker        // The default type, not supposed to be used.
1305*d5c09012SAndroid Build Coastguard Worker        CONTAINER_FORMAT_UNSPECIFIED = 0;
1306*d5c09012SAndroid Build Coastguard Worker
1307*d5c09012SAndroid Build Coastguard Worker        // Mp4 container format.
1308*d5c09012SAndroid Build Coastguard Worker        CONTAINER_FORMAT_MP4 = 1;
1309*d5c09012SAndroid Build Coastguard Worker      }
1310*d5c09012SAndroid Build Coastguard Worker
1311*d5c09012SAndroid Build Coastguard Worker      // Container format of the video data.
1312*d5c09012SAndroid Build Coastguard Worker      ContainerFormat container_format = 1;
1313*d5c09012SAndroid Build Coastguard Worker    }
1314*d5c09012SAndroid Build Coastguard Worker
1315*d5c09012SAndroid Build Coastguard Worker    oneof data_type {
1316*d5c09012SAndroid Build Coastguard Worker      // Type information for video data.
1317*d5c09012SAndroid Build Coastguard Worker      VideoType video_type = 2;
1318*d5c09012SAndroid Build Coastguard Worker    }
1319*d5c09012SAndroid Build Coastguard Worker
1320*d5c09012SAndroid Build Coastguard Worker    // Required. The resource name of the asset that the ingested data belongs to.
1321*d5c09012SAndroid Build Coastguard Worker    string asset = 1 [
1322*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
1323*d5c09012SAndroid Build Coastguard Worker      (google.api.resource_reference) = {
1324*d5c09012SAndroid Build Coastguard Worker        type: "visionai.googleapis.com/Asset"
1325*d5c09012SAndroid Build Coastguard Worker      }
1326*d5c09012SAndroid Build Coastguard Worker    ];
1327*d5c09012SAndroid Build Coastguard Worker  }
1328*d5c09012SAndroid Build Coastguard Worker
1329*d5c09012SAndroid Build Coastguard Worker  // Contains the data and the corresponding time range this data is for.
1330*d5c09012SAndroid Build Coastguard Worker  message TimeIndexedData {
1331*d5c09012SAndroid Build Coastguard Worker    // Data to be ingested.
1332*d5c09012SAndroid Build Coastguard Worker    bytes data = 1;
1333*d5c09012SAndroid Build Coastguard Worker
1334*d5c09012SAndroid Build Coastguard Worker    // Time range of the data.
1335*d5c09012SAndroid Build Coastguard Worker    Partition.TemporalPartition temporal_partition = 2;
1336*d5c09012SAndroid Build Coastguard Worker  }
1337*d5c09012SAndroid Build Coastguard Worker
1338*d5c09012SAndroid Build Coastguard Worker  oneof streaming_request {
1339*d5c09012SAndroid Build Coastguard Worker    // Provides information for the data and the asset resource name that the
1340*d5c09012SAndroid Build Coastguard Worker    // data belongs to. The first `IngestAssetRequest` message must only contain
1341*d5c09012SAndroid Build Coastguard Worker    // a `Config` message.
1342*d5c09012SAndroid Build Coastguard Worker    Config config = 1;
1343*d5c09012SAndroid Build Coastguard Worker
1344*d5c09012SAndroid Build Coastguard Worker    // Data to be ingested.
1345*d5c09012SAndroid Build Coastguard Worker    TimeIndexedData time_indexed_data = 2;
1346*d5c09012SAndroid Build Coastguard Worker  }
1347*d5c09012SAndroid Build Coastguard Worker}
1348*d5c09012SAndroid Build Coastguard Worker
1349*d5c09012SAndroid Build Coastguard Worker// Response message for IngestAsset API.
1350*d5c09012SAndroid Build Coastguard Workermessage IngestAssetResponse {
1351*d5c09012SAndroid Build Coastguard Worker  // Time range of the data that has been successfully ingested.
1352*d5c09012SAndroid Build Coastguard Worker  Partition.TemporalPartition successfully_ingested_partition = 1;
1353*d5c09012SAndroid Build Coastguard Worker}
1354*d5c09012SAndroid Build Coastguard Worker
1355*d5c09012SAndroid Build Coastguard Worker// Request message for ClipAsset API.
1356*d5c09012SAndroid Build Coastguard Workermessage ClipAssetRequest {
1357*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset to request clips for.
1358*d5c09012SAndroid Build Coastguard Worker  // Form:
1359*d5c09012SAndroid Build Coastguard Worker  // 'projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}'
1360*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1361*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1362*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1363*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Asset"
1364*d5c09012SAndroid Build Coastguard Worker    }
1365*d5c09012SAndroid Build Coastguard Worker  ];
1366*d5c09012SAndroid Build Coastguard Worker
1367*d5c09012SAndroid Build Coastguard Worker  // Required. The time range to request clips for.
1368*d5c09012SAndroid Build Coastguard Worker  Partition.TemporalPartition temporal_partition = 2 [(google.api.field_behavior) = REQUIRED];
1369*d5c09012SAndroid Build Coastguard Worker}
1370*d5c09012SAndroid Build Coastguard Worker
1371*d5c09012SAndroid Build Coastguard Worker// Response message for ClipAsset API.
1372*d5c09012SAndroid Build Coastguard Workermessage ClipAssetResponse {
1373*d5c09012SAndroid Build Coastguard Worker  // Signed uri with corresponding time range.
1374*d5c09012SAndroid Build Coastguard Worker  message TimeIndexedUri {
1375*d5c09012SAndroid Build Coastguard Worker    // Time range of the video that the uri is for.
1376*d5c09012SAndroid Build Coastguard Worker    Partition.TemporalPartition temporal_partition = 1;
1377*d5c09012SAndroid Build Coastguard Worker
1378*d5c09012SAndroid Build Coastguard Worker    // Signed uri to download the video clip.
1379*d5c09012SAndroid Build Coastguard Worker    string uri = 2;
1380*d5c09012SAndroid Build Coastguard Worker  }
1381*d5c09012SAndroid Build Coastguard Worker
1382*d5c09012SAndroid Build Coastguard Worker  // A list of signed uris to download the video clips that cover the requested
1383*d5c09012SAndroid Build Coastguard Worker  // time range ordered by time.
1384*d5c09012SAndroid Build Coastguard Worker  repeated TimeIndexedUri time_indexed_uris = 1;
1385*d5c09012SAndroid Build Coastguard Worker}
1386*d5c09012SAndroid Build Coastguard Worker
1387*d5c09012SAndroid Build Coastguard Worker// Request message for GenerateHlsUri API.
1388*d5c09012SAndroid Build Coastguard Workermessage GenerateHlsUriRequest {
1389*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the asset to request clips for.
1390*d5c09012SAndroid Build Coastguard Worker  // Form:
1391*d5c09012SAndroid Build Coastguard Worker  // 'projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}'
1392*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1393*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1394*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1395*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Asset"
1396*d5c09012SAndroid Build Coastguard Worker    }
1397*d5c09012SAndroid Build Coastguard Worker  ];
1398*d5c09012SAndroid Build Coastguard Worker
1399*d5c09012SAndroid Build Coastguard Worker  // Required. The time range to request clips for.
1400*d5c09012SAndroid Build Coastguard Worker  repeated Partition.TemporalPartition temporal_partitions = 2 [(google.api.field_behavior) = REQUIRED];
1401*d5c09012SAndroid Build Coastguard Worker}
1402*d5c09012SAndroid Build Coastguard Worker
1403*d5c09012SAndroid Build Coastguard Worker// Response message for GenerateHlsUri API.
1404*d5c09012SAndroid Build Coastguard Workermessage GenerateHlsUriResponse {
1405*d5c09012SAndroid Build Coastguard Worker  // A signed uri to download the HLS manifest corresponding to the requested
1406*d5c09012SAndroid Build Coastguard Worker  // times.
1407*d5c09012SAndroid Build Coastguard Worker  string uri = 1;
1408*d5c09012SAndroid Build Coastguard Worker
1409*d5c09012SAndroid Build Coastguard Worker  // A list of temporal partitions of the content returned in the order they
1410*d5c09012SAndroid Build Coastguard Worker  // appear in the stream.
1411*d5c09012SAndroid Build Coastguard Worker  repeated Partition.TemporalPartition temporal_partitions = 2;
1412*d5c09012SAndroid Build Coastguard Worker}
1413*d5c09012SAndroid Build Coastguard Worker
1414*d5c09012SAndroid Build Coastguard Worker// Request message for SearchAssets.
1415*d5c09012SAndroid Build Coastguard Workermessage SearchAssetsRequest {
1416*d5c09012SAndroid Build Coastguard Worker  // Required. The parent corpus to search.
1417*d5c09012SAndroid Build Coastguard Worker  // Form: `projects/{project_id}/locations/{location_id}/corpora/{corpus_id}'
1418*d5c09012SAndroid Build Coastguard Worker  string corpus = 1 [
1419*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1420*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1421*d5c09012SAndroid Build Coastguard Worker      type: "visionai.googleapis.com/Corpus"
1422*d5c09012SAndroid Build Coastguard Worker    }
1423*d5c09012SAndroid Build Coastguard Worker  ];
1424*d5c09012SAndroid Build Coastguard Worker
1425*d5c09012SAndroid Build Coastguard Worker  // The number of results to be returned in this page. If it's 0, the server
1426*d5c09012SAndroid Build Coastguard Worker  // will decide the appropriate page_size.
1427*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
1428*d5c09012SAndroid Build Coastguard Worker
1429*d5c09012SAndroid Build Coastguard Worker  // The continuation token to fetch the next page. If empty, it means it is
1430*d5c09012SAndroid Build Coastguard Worker  // fetching the first page.
1431*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
1432*d5c09012SAndroid Build Coastguard Worker
1433*d5c09012SAndroid Build Coastguard Worker  // Time ranges that matching video content must fall within. If no ranges are
1434*d5c09012SAndroid Build Coastguard Worker  // provided, there will be no time restriction. This field is treated just
1435*d5c09012SAndroid Build Coastguard Worker  // like the criteria below, but defined separately for convenience as it is
1436*d5c09012SAndroid Build Coastguard Worker  // used frequently. Note that if the end_time is in the future, it will be
1437*d5c09012SAndroid Build Coastguard Worker  // clamped to the time the request was received.
1438*d5c09012SAndroid Build Coastguard Worker  DateTimeRangeArray content_time_ranges = 5;
1439*d5c09012SAndroid Build Coastguard Worker
1440*d5c09012SAndroid Build Coastguard Worker  // Criteria applied to search results.
1441*d5c09012SAndroid Build Coastguard Worker  repeated Criteria criteria = 4;
1442*d5c09012SAndroid Build Coastguard Worker
1443*d5c09012SAndroid Build Coastguard Worker  // Stores most recent facet selection state. Only facet groups with user's
1444*d5c09012SAndroid Build Coastguard Worker  // selection will be presented here. Selection state is either selected or
1445*d5c09012SAndroid Build Coastguard Worker  // unselected. Only selected facet buckets will be used as search criteria.
1446*d5c09012SAndroid Build Coastguard Worker  repeated FacetGroup facet_selections = 6;
1447*d5c09012SAndroid Build Coastguard Worker
1448*d5c09012SAndroid Build Coastguard Worker  // A list of annotation keys to specify the annotations to be retrieved and
1449*d5c09012SAndroid Build Coastguard Worker  // returned with each search result.
1450*d5c09012SAndroid Build Coastguard Worker  // Annotation granularity must be GRANULARITY_ASSET_LEVEL and its search
1451*d5c09012SAndroid Build Coastguard Worker  // strategy must not be NO_SEARCH.
1452*d5c09012SAndroid Build Coastguard Worker  repeated string result_annotation_keys = 8;
1453*d5c09012SAndroid Build Coastguard Worker}
1454*d5c09012SAndroid Build Coastguard Worker
1455*d5c09012SAndroid Build Coastguard Worker// The metadata for DeleteAsset API that embeds in
1456*d5c09012SAndroid Build Coastguard Worker// [metadata][google.longrunning.Operation.metadata] field.
1457*d5c09012SAndroid Build Coastguard Workermessage DeleteAssetMetadata {
1458*d5c09012SAndroid Build Coastguard Worker
1459*d5c09012SAndroid Build Coastguard Worker}
1460*d5c09012SAndroid Build Coastguard Worker
1461*d5c09012SAndroid Build Coastguard Worker// Stores the criteria-annotation matching results for each search result item.
1462*d5c09012SAndroid Build Coastguard Workermessage AnnotationMatchingResult {
1463*d5c09012SAndroid Build Coastguard Worker  // The criteria used for matching. It can be an input search criteria or a
1464*d5c09012SAndroid Build Coastguard Worker  // criteria converted from a facet selection.
1465*d5c09012SAndroid Build Coastguard Worker  Criteria criteria = 1;
1466*d5c09012SAndroid Build Coastguard Worker
1467*d5c09012SAndroid Build Coastguard Worker  // Matched annotations for the criteria.
1468*d5c09012SAndroid Build Coastguard Worker  repeated Annotation matched_annotations = 2;
1469*d5c09012SAndroid Build Coastguard Worker
1470*d5c09012SAndroid Build Coastguard Worker  // Status of the match result. Possible values:
1471*d5c09012SAndroid Build Coastguard Worker  // FAILED_PRECONDITION - the criteria is not eligible for match.
1472*d5c09012SAndroid Build Coastguard Worker  // OK - matching is performed.
1473*d5c09012SAndroid Build Coastguard Worker  google.rpc.Status status = 3;
1474*d5c09012SAndroid Build Coastguard Worker}
1475*d5c09012SAndroid Build Coastguard Worker
1476*d5c09012SAndroid Build Coastguard Worker// Search result contains asset name and corresponding time ranges.
1477*d5c09012SAndroid Build Coastguard Workermessage SearchResultItem {
1478*d5c09012SAndroid Build Coastguard Worker  // The resource name of the asset.
1479*d5c09012SAndroid Build Coastguard Worker  // Form:
1480*d5c09012SAndroid Build Coastguard Worker  // 'projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}'
1481*d5c09012SAndroid Build Coastguard Worker  string asset = 1;
1482*d5c09012SAndroid Build Coastguard Worker
1483*d5c09012SAndroid Build Coastguard Worker  // The matched asset segments.
1484*d5c09012SAndroid Build Coastguard Worker  // Deprecated: please use singular `segment` field.
1485*d5c09012SAndroid Build Coastguard Worker  repeated Partition.TemporalPartition segments = 2 [deprecated = true];
1486*d5c09012SAndroid Build Coastguard Worker
1487*d5c09012SAndroid Build Coastguard Worker  // The matched asset segment.
1488*d5c09012SAndroid Build Coastguard Worker  Partition.TemporalPartition segment = 5;
1489*d5c09012SAndroid Build Coastguard Worker
1490*d5c09012SAndroid Build Coastguard Worker  // Search result annotations specified by result_annotation_keys in search
1491*d5c09012SAndroid Build Coastguard Worker  // request.
1492*d5c09012SAndroid Build Coastguard Worker  repeated Annotation requested_annotations = 3;
1493*d5c09012SAndroid Build Coastguard Worker
1494*d5c09012SAndroid Build Coastguard Worker  // Criteria or facet-selection based annotation matching results associated to
1495*d5c09012SAndroid Build Coastguard Worker  // this search result item. Only contains results for criteria or
1496*d5c09012SAndroid Build Coastguard Worker  // facet_selections with fetch_matched_annotations=true.
1497*d5c09012SAndroid Build Coastguard Worker  repeated AnnotationMatchingResult annotation_matching_results = 4;
1498*d5c09012SAndroid Build Coastguard Worker}
1499*d5c09012SAndroid Build Coastguard Worker
1500*d5c09012SAndroid Build Coastguard Worker// Response message for SearchAssets.
1501*d5c09012SAndroid Build Coastguard Workermessage SearchAssetsResponse {
1502*d5c09012SAndroid Build Coastguard Worker  // Returned search results.
1503*d5c09012SAndroid Build Coastguard Worker  repeated SearchResultItem search_result_items = 1;
1504*d5c09012SAndroid Build Coastguard Worker
1505*d5c09012SAndroid Build Coastguard Worker  // The next-page continuation token.
1506*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1507*d5c09012SAndroid Build Coastguard Worker
1508*d5c09012SAndroid Build Coastguard Worker  // Facet search results of a given query, which contains user's
1509*d5c09012SAndroid Build Coastguard Worker  // already-selected facet values and updated facet search results.
1510*d5c09012SAndroid Build Coastguard Worker  repeated FacetGroup facet_results = 3;
1511*d5c09012SAndroid Build Coastguard Worker}
1512*d5c09012SAndroid Build Coastguard Worker
1513*d5c09012SAndroid Build Coastguard Worker// Integer range type.
1514*d5c09012SAndroid Build Coastguard Workermessage IntRange {
1515*d5c09012SAndroid Build Coastguard Worker  // Start of the int range.
1516*d5c09012SAndroid Build Coastguard Worker  optional int64 start = 1;
1517*d5c09012SAndroid Build Coastguard Worker
1518*d5c09012SAndroid Build Coastguard Worker  // End of the int range.
1519*d5c09012SAndroid Build Coastguard Worker  optional int64 end = 2;
1520*d5c09012SAndroid Build Coastguard Worker}
1521*d5c09012SAndroid Build Coastguard Worker
1522*d5c09012SAndroid Build Coastguard Worker// Float range type.
1523*d5c09012SAndroid Build Coastguard Workermessage FloatRange {
1524*d5c09012SAndroid Build Coastguard Worker  // Start of the float range.
1525*d5c09012SAndroid Build Coastguard Worker  optional float start = 1;
1526*d5c09012SAndroid Build Coastguard Worker
1527*d5c09012SAndroid Build Coastguard Worker  // End of the float range.
1528*d5c09012SAndroid Build Coastguard Worker  optional float end = 2;
1529*d5c09012SAndroid Build Coastguard Worker}
1530*d5c09012SAndroid Build Coastguard Worker
1531*d5c09012SAndroid Build Coastguard Worker// A list of string-type values.
1532*d5c09012SAndroid Build Coastguard Workermessage StringArray {
1533*d5c09012SAndroid Build Coastguard Worker  // String type values.
1534*d5c09012SAndroid Build Coastguard Worker  repeated string txt_values = 1;
1535*d5c09012SAndroid Build Coastguard Worker}
1536*d5c09012SAndroid Build Coastguard Worker
1537*d5c09012SAndroid Build Coastguard Worker// A list of integer range values.
1538*d5c09012SAndroid Build Coastguard Workermessage IntRangeArray {
1539*d5c09012SAndroid Build Coastguard Worker  // Int range values.
1540*d5c09012SAndroid Build Coastguard Worker  repeated IntRange int_ranges = 1;
1541*d5c09012SAndroid Build Coastguard Worker}
1542*d5c09012SAndroid Build Coastguard Worker
1543*d5c09012SAndroid Build Coastguard Worker// A list of float range values.
1544*d5c09012SAndroid Build Coastguard Workermessage FloatRangeArray {
1545*d5c09012SAndroid Build Coastguard Worker  // Float range values.
1546*d5c09012SAndroid Build Coastguard Worker  repeated FloatRange float_ranges = 1;
1547*d5c09012SAndroid Build Coastguard Worker}
1548*d5c09012SAndroid Build Coastguard Worker
1549*d5c09012SAndroid Build Coastguard Worker// Datetime range type.
1550*d5c09012SAndroid Build Coastguard Workermessage DateTimeRange {
1551*d5c09012SAndroid Build Coastguard Worker  // Start date time.
1552*d5c09012SAndroid Build Coastguard Worker  google.type.DateTime start = 1;
1553*d5c09012SAndroid Build Coastguard Worker
1554*d5c09012SAndroid Build Coastguard Worker  // End data time.
1555*d5c09012SAndroid Build Coastguard Worker  google.type.DateTime end = 2;
1556*d5c09012SAndroid Build Coastguard Worker}
1557*d5c09012SAndroid Build Coastguard Worker
1558*d5c09012SAndroid Build Coastguard Worker// A list of datetime range values.
1559*d5c09012SAndroid Build Coastguard Workermessage DateTimeRangeArray {
1560*d5c09012SAndroid Build Coastguard Worker  // Date time ranges.
1561*d5c09012SAndroid Build Coastguard Worker  repeated DateTimeRange date_time_ranges = 1;
1562*d5c09012SAndroid Build Coastguard Worker}
1563*d5c09012SAndroid Build Coastguard Worker
1564*d5c09012SAndroid Build Coastguard Worker// Representation of a circle area.
1565*d5c09012SAndroid Build Coastguard Workermessage CircleArea {
1566*d5c09012SAndroid Build Coastguard Worker  // Latitude of circle area's center. Degrees [-90 .. 90]
1567*d5c09012SAndroid Build Coastguard Worker  double latitude = 1;
1568*d5c09012SAndroid Build Coastguard Worker
1569*d5c09012SAndroid Build Coastguard Worker  // Longitude of circle area's center. Degrees [-180 .. 180]
1570*d5c09012SAndroid Build Coastguard Worker  double longitude = 2;
1571*d5c09012SAndroid Build Coastguard Worker
1572*d5c09012SAndroid Build Coastguard Worker  // Radius of the circle area in meters.
1573*d5c09012SAndroid Build Coastguard Worker  double radius_meter = 3;
1574*d5c09012SAndroid Build Coastguard Worker}
1575*d5c09012SAndroid Build Coastguard Worker
1576*d5c09012SAndroid Build Coastguard Worker// A list of locations.
1577*d5c09012SAndroid Build Coastguard Workermessage GeoLocationArray {
1578*d5c09012SAndroid Build Coastguard Worker  // A list of circle areas.
1579*d5c09012SAndroid Build Coastguard Worker  repeated CircleArea circle_areas = 1;
1580*d5c09012SAndroid Build Coastguard Worker}
1581*d5c09012SAndroid Build Coastguard Worker
1582*d5c09012SAndroid Build Coastguard Workermessage BoolValue {
1583*d5c09012SAndroid Build Coastguard Worker  bool value = 1;
1584*d5c09012SAndroid Build Coastguard Worker}
1585*d5c09012SAndroid Build Coastguard Worker
1586*d5c09012SAndroid Build Coastguard Worker// Filter criteria applied to current search results.
1587*d5c09012SAndroid Build Coastguard Workermessage Criteria {
1588*d5c09012SAndroid Build Coastguard Worker  oneof value {
1589*d5c09012SAndroid Build Coastguard Worker    // The text values associated with the field.
1590*d5c09012SAndroid Build Coastguard Worker    StringArray text_array = 2;
1591*d5c09012SAndroid Build Coastguard Worker
1592*d5c09012SAndroid Build Coastguard Worker    // The integer ranges associated with the field.
1593*d5c09012SAndroid Build Coastguard Worker    IntRangeArray int_range_array = 3;
1594*d5c09012SAndroid Build Coastguard Worker
1595*d5c09012SAndroid Build Coastguard Worker    // The float ranges associated with the field.
1596*d5c09012SAndroid Build Coastguard Worker    FloatRangeArray float_range_array = 4;
1597*d5c09012SAndroid Build Coastguard Worker
1598*d5c09012SAndroid Build Coastguard Worker    // The datetime ranges associated with the field.
1599*d5c09012SAndroid Build Coastguard Worker    DateTimeRangeArray date_time_range_array = 5;
1600*d5c09012SAndroid Build Coastguard Worker
1601*d5c09012SAndroid Build Coastguard Worker    // Geo Location array.
1602*d5c09012SAndroid Build Coastguard Worker    GeoLocationArray geo_location_array = 6;
1603*d5c09012SAndroid Build Coastguard Worker
1604*d5c09012SAndroid Build Coastguard Worker    // A Boolean value.
1605*d5c09012SAndroid Build Coastguard Worker    BoolValue bool_value = 7;
1606*d5c09012SAndroid Build Coastguard Worker  }
1607*d5c09012SAndroid Build Coastguard Worker
1608*d5c09012SAndroid Build Coastguard Worker  // The UGA field or ML field to apply filtering criteria.
1609*d5c09012SAndroid Build Coastguard Worker  string field = 1;
1610*d5c09012SAndroid Build Coastguard Worker
1611*d5c09012SAndroid Build Coastguard Worker  // If true, return query matched annotations for this criteria.
1612*d5c09012SAndroid Build Coastguard Worker  // This option is only applicable for partition level annotations and supports
1613*d5c09012SAndroid Build Coastguard Worker  // the following data types:
1614*d5c09012SAndroid Build Coastguard Worker  //  - INTEGER
1615*d5c09012SAndroid Build Coastguard Worker  //  - FLOAT
1616*d5c09012SAndroid Build Coastguard Worker  //  - STRING (DataSchema.SearchStrategy.EXACT_SEARCH only)
1617*d5c09012SAndroid Build Coastguard Worker  //  - BOOLEAN
1618*d5c09012SAndroid Build Coastguard Worker  bool fetch_matched_annotations = 8;
1619*d5c09012SAndroid Build Coastguard Worker}
1620*d5c09012SAndroid Build Coastguard Worker
1621*d5c09012SAndroid Build Coastguard Worker// Partition to specify the partition in time and space for sub-asset level
1622*d5c09012SAndroid Build Coastguard Worker// annotation.
1623*d5c09012SAndroid Build Coastguard Workermessage Partition {
1624*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in UTC Epoch time.
1625*d5c09012SAndroid Build Coastguard Worker  message TemporalPartition {
1626*d5c09012SAndroid Build Coastguard Worker    // Start time of the partition.
1627*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp start_time = 1;
1628*d5c09012SAndroid Build Coastguard Worker
1629*d5c09012SAndroid Build Coastguard Worker    // End time of the partition.
1630*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp end_time = 2;
1631*d5c09012SAndroid Build Coastguard Worker  }
1632*d5c09012SAndroid Build Coastguard Worker
1633*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in space.
1634*d5c09012SAndroid Build Coastguard Worker  message SpatialPartition {
1635*d5c09012SAndroid Build Coastguard Worker    // The minimum x coordinate value.
1636*d5c09012SAndroid Build Coastguard Worker    optional int64 x_min = 1;
1637*d5c09012SAndroid Build Coastguard Worker
1638*d5c09012SAndroid Build Coastguard Worker    // The minimum y coordinate value.
1639*d5c09012SAndroid Build Coastguard Worker    optional int64 y_min = 2;
1640*d5c09012SAndroid Build Coastguard Worker
1641*d5c09012SAndroid Build Coastguard Worker    // The maximum x coordinate value.
1642*d5c09012SAndroid Build Coastguard Worker    optional int64 x_max = 3;
1643*d5c09012SAndroid Build Coastguard Worker
1644*d5c09012SAndroid Build Coastguard Worker    // The maximum y coordinate value.
1645*d5c09012SAndroid Build Coastguard Worker    optional int64 y_max = 4;
1646*d5c09012SAndroid Build Coastguard Worker  }
1647*d5c09012SAndroid Build Coastguard Worker
1648*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in time.
1649*d5c09012SAndroid Build Coastguard Worker  TemporalPartition temporal_partition = 1;
1650*d5c09012SAndroid Build Coastguard Worker
1651*d5c09012SAndroid Build Coastguard Worker  // Partition of asset in space.
1652*d5c09012SAndroid Build Coastguard Worker  SpatialPartition spatial_partition = 2;
1653*d5c09012SAndroid Build Coastguard Worker}
1654