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