1*d5c09012SAndroid Build Coastguard Worker// Copyright 2021 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.retail.v2beta; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/retail/v2beta/common.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/retail/v2beta/search_service.proto"; 23*d5c09012SAndroid Build Coastguard Worker 24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Retail.V2Beta"; 25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/retail/apiv2beta/retailpb;retailpb"; 26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ControlProto"; 28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.retail.v2beta"; 29*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "RETAIL"; 30*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Retail\\V2beta"; 31*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Retail::V2beta"; 32*d5c09012SAndroid Build Coastguard Worker 33*d5c09012SAndroid Build Coastguard Worker// Configures dynamic metadata that can be linked to a 34*d5c09012SAndroid Build Coastguard Worker// [ServingConfig][google.cloud.retail.v2beta.ServingConfig] and affect search 35*d5c09012SAndroid Build Coastguard Worker// or recommendation results at serving time. 36*d5c09012SAndroid Build Coastguard Workermessage Control { 37*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 38*d5c09012SAndroid Build Coastguard Worker type: "retail.googleapis.com/Control" 39*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/controls/{control}" 40*d5c09012SAndroid Build Coastguard Worker }; 41*d5c09012SAndroid Build Coastguard Worker 42*d5c09012SAndroid Build Coastguard Worker // The behavior/type of the control 43*d5c09012SAndroid Build Coastguard Worker // 44*d5c09012SAndroid Build Coastguard Worker // A behavior/type must be specified on creation. Type cannot be changed once 45*d5c09012SAndroid Build Coastguard Worker // specified (e.g. A Rule control will always be a Rule control.). An 46*d5c09012SAndroid Build Coastguard Worker // INVALID_ARGUMENT will be returned if either condition is violated. 47*d5c09012SAndroid Build Coastguard Worker oneof control { 48*d5c09012SAndroid Build Coastguard Worker // A facet specification to perform faceted search. 49*d5c09012SAndroid Build Coastguard Worker // 50*d5c09012SAndroid Build Coastguard Worker // Note that this field is deprecated and will throw NOT_IMPLEMENTED if 51*d5c09012SAndroid Build Coastguard Worker // used for creating a control. 52*d5c09012SAndroid Build Coastguard Worker SearchRequest.FacetSpec facet_spec = 3 [deprecated = true]; 53*d5c09012SAndroid Build Coastguard Worker 54*d5c09012SAndroid Build Coastguard Worker // A rule control - a condition-action pair. 55*d5c09012SAndroid Build Coastguard Worker // Enacts a set action when the condition is triggered. 56*d5c09012SAndroid Build Coastguard Worker // For example: Boost "gShoe" when query full matches "Running Shoes". 57*d5c09012SAndroid Build Coastguard Worker Rule rule = 4; 58*d5c09012SAndroid Build Coastguard Worker } 59*d5c09012SAndroid Build Coastguard Worker 60*d5c09012SAndroid Build Coastguard Worker // Immutable. Fully qualified name 61*d5c09012SAndroid Build Coastguard Worker // `projects/*/locations/global/catalogs/*/controls/*` 62*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = IMMUTABLE]; 63*d5c09012SAndroid Build Coastguard Worker 64*d5c09012SAndroid Build Coastguard Worker // Required. The human readable control display name. Used in Retail UI. 65*d5c09012SAndroid Build Coastguard Worker // 66*d5c09012SAndroid Build Coastguard Worker // This field must be a UTF-8 encoded string with a length limit of 128 67*d5c09012SAndroid Build Coastguard Worker // characters. Otherwise, an INVALID_ARGUMENT error is thrown. 68*d5c09012SAndroid Build Coastguard Worker string display_name = 2 [(google.api.field_behavior) = REQUIRED]; 69*d5c09012SAndroid Build Coastguard Worker 70*d5c09012SAndroid Build Coastguard Worker // Output only. List of [serving 71*d5c09012SAndroid Build Coastguard Worker // config][google.cloud.retail.v2beta.ServingConfig] ids that are associated 72*d5c09012SAndroid Build Coastguard Worker // with this control in the same 73*d5c09012SAndroid Build Coastguard Worker // [Catalog][google.cloud.retail.v2beta.Catalog]. 74*d5c09012SAndroid Build Coastguard Worker // 75*d5c09012SAndroid Build Coastguard Worker // Note the association is managed via the 76*d5c09012SAndroid Build Coastguard Worker // [ServingConfig][google.cloud.retail.v2beta.ServingConfig], this is an 77*d5c09012SAndroid Build Coastguard Worker // output only denormalized view. 78*d5c09012SAndroid Build Coastguard Worker repeated string associated_serving_config_ids = 5 79*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 80*d5c09012SAndroid Build Coastguard Worker 81*d5c09012SAndroid Build Coastguard Worker // Required. Immutable. The solution types that the control is used for. 82*d5c09012SAndroid Build Coastguard Worker // Currently we support setting only one type of solution at creation time. 83*d5c09012SAndroid Build Coastguard Worker // 84*d5c09012SAndroid Build Coastguard Worker // Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. 85*d5c09012SAndroid Build Coastguard Worker // If no solution type is provided at creation time, will default to 86*d5c09012SAndroid Build Coastguard Worker // [SOLUTION_TYPE_SEARCH][google.cloud.retail.v2beta.SolutionType.SOLUTION_TYPE_SEARCH]. 87*d5c09012SAndroid Build Coastguard Worker repeated SolutionType solution_types = 6 [ 88*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 89*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = IMMUTABLE 90*d5c09012SAndroid Build Coastguard Worker ]; 91*d5c09012SAndroid Build Coastguard Worker 92*d5c09012SAndroid Build Coastguard Worker // Specifies the use case for the control. 93*d5c09012SAndroid Build Coastguard Worker // Affects what condition fields can be set. 94*d5c09012SAndroid Build Coastguard Worker // Only settable by search controls. 95*d5c09012SAndroid Build Coastguard Worker // Will default to 96*d5c09012SAndroid Build Coastguard Worker // [SEARCH_SOLUTION_USE_CASE_SEARCH][google.cloud.retail.v2beta.SearchSolutionUseCase.SEARCH_SOLUTION_USE_CASE_SEARCH] 97*d5c09012SAndroid Build Coastguard Worker // if not specified. Currently only allow one search_solution_use_case per 98*d5c09012SAndroid Build Coastguard Worker // control. 99*d5c09012SAndroid Build Coastguard Worker repeated SearchSolutionUseCase search_solution_use_case = 7; 100*d5c09012SAndroid Build Coastguard Worker} 101