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