1// Copyright 2022 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.discoveryengine.v1beta; 18 19import "google/api/field_behavior.proto"; 20import "google/api/resource.proto"; 21import "google/cloud/discoveryengine/v1beta/common.proto"; 22import "google/protobuf/timestamp.proto"; 23 24option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; 25option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; 26option java_multiple_files = true; 27option java_outer_classname = "EngineProto"; 28option java_package = "com.google.cloud.discoveryengine.v1beta"; 29option objc_class_prefix = "DISCOVERYENGINE"; 30option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; 31option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; 32 33// Metadata that describes the training and serving parameters of an 34// [Engine][google.cloud.discoveryengine.v1beta.Engine]. 35message Engine { 36 option (google.api.resource) = { 37 type: "discoveryengine.googleapis.com/Engine" 38 pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}" 39 }; 40 41 // Configurations for a Search Engine. 42 message SearchEngineConfig { 43 // The search feature tier of this engine. 44 // 45 // Different tiers might have different 46 // pricing. To learn more, check the pricing documentation. 47 // 48 // Defaults to 49 // [SearchTier.SEARCH_TIER_STANDARD][google.cloud.discoveryengine.v1beta.SearchTier.SEARCH_TIER_STANDARD] 50 // if not specified. 51 SearchTier search_tier = 1; 52 53 // The add-on that this search engine enables. 54 repeated SearchAddOn search_add_ons = 2; 55 } 56 57 // Configurations for a Chat Engine. 58 message ChatEngineConfig { 59 // Configurations for generating a Dialogflow agent. 60 // 61 // Note that these configurations are one-time consumed by 62 // and passed to Dialogflow service. It means they cannot be retrieved using 63 // [EngineService.GetEngine][google.cloud.discoveryengine.v1beta.EngineService.GetEngine] 64 // or 65 // [EngineService.ListEngines][google.cloud.discoveryengine.v1beta.EngineService.ListEngines] 66 // API after engine creation. 67 message AgentCreationConfig { 68 // Name of the company, organization or other entity that the agent 69 // represents. Used for knowledge connector LLM prompt and for knowledge 70 // search. 71 string business = 1; 72 73 // Required. The default language of the agent as a language tag. 74 // See [Language 75 // Support](https://cloud.google.com/dialogflow/docs/reference/language) 76 // for a list of the currently supported language codes. 77 string default_language_code = 2; 78 79 // Required. The time zone of the agent from the [time zone 80 // database](https://www.iana.org/time-zones), e.g., America/New_York, 81 // Europe/Paris. 82 string time_zone = 3 [(google.api.field_behavior) = REQUIRED]; 83 84 // Agent location for Agent creation, supported values: global/us/eu. 85 // If not provided, us Engine will create Agent using us-central-1 by 86 // default; eu Engine will create Agent using eu-west-1 by default. 87 string location = 4; 88 } 89 90 // The configurationt generate the Dialogflow agent that is associated to 91 // this Engine. 92 // 93 // Note that these configurations are one-time consumed by 94 // and passed to Dialogflow service. It means they cannot be retrieved using 95 // [EngineService.GetEngine][google.cloud.discoveryengine.v1beta.EngineService.GetEngine] 96 // or 97 // [EngineService.ListEngines][google.cloud.discoveryengine.v1beta.EngineService.ListEngines] 98 // API after engine creation. 99 AgentCreationConfig agent_creation_config = 1; 100 101 // The resource name of an exist Dialogflow agent to link to this Chat 102 // Engine. Customers can either provide `agent_creation_config` to create 103 // agent or provide an agent name that links the agent with the Chat engine. 104 // 105 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 106 // ID>`. 107 // 108 // Note that the `dialogflow_agent_to_link` are one-time consumed by and 109 // passed to Dialogflow service. It means they cannot be retrieved using 110 // [EngineService.GetEngine][google.cloud.discoveryengine.v1beta.EngineService.GetEngine] 111 // or 112 // [EngineService.ListEngines][google.cloud.discoveryengine.v1beta.EngineService.ListEngines] 113 // API after engine creation. Use 114 // [ChatEngineMetadata.dialogflow_agent][google.cloud.discoveryengine.v1beta.Engine.ChatEngineMetadata.dialogflow_agent] 115 // for actual agent association after Engine is created. 116 string dialogflow_agent_to_link = 2; 117 } 118 119 // Common configurations for an Engine. 120 message CommonConfig { 121 // Immutable. The name of the company, business or entity that is associated 122 // with the engine. Setting this may help improve LLM related features. 123 string company_name = 1 [(google.api.field_behavior) = IMMUTABLE]; 124 } 125 126 // Additional information of a Chat Engine. 127 // Fields in this message are output only. 128 message ChatEngineMetadata { 129 // The resource name of a Dialogflow agent, that this Chat Engine refers 130 // to. 131 // 132 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 133 // ID>`. 134 string dialogflow_agent = 1; 135 } 136 137 // Additional config specs that defines the behavior of the engine. 138 oneof engine_config { 139 // Configurations for the Chat Engine. Only applicable if 140 // [solution_type][google.cloud.discoveryengine.v1beta.Engine.solution_type] 141 // is 142 // [SOLUTION_TYPE_CHAT][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_CHAT]. 143 ChatEngineConfig chat_engine_config = 11; 144 145 // Configurations for the Search Engine. Only applicable if 146 // [solution_type][google.cloud.discoveryengine.v1beta.Engine.solution_type] 147 // is 148 // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_SEARCH]. 149 SearchEngineConfig search_engine_config = 13; 150 } 151 152 // Engine metadata to monitor the status of the engine. 153 oneof engine_metadata { 154 // Output only. Additional information of the Chat Engine. Only applicable 155 // if 156 // [solution_type][google.cloud.discoveryengine.v1beta.Engine.solution_type] 157 // is 158 // [SOLUTION_TYPE_CHAT][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_CHAT]. 159 ChatEngineMetadata chat_engine_metadata = 12 160 [(google.api.field_behavior) = OUTPUT_ONLY]; 161 } 162 163 // Immutable. The fully qualified resource name of the engine. 164 // 165 // This field must be a UTF-8 encoded string with a length limit of 1024 166 // characters. 167 // 168 // Format: 169 // `projects/{project_number}/locations/{location}/collections/{collection}/engines/{engine}` 170 // engine should be 1-63 characters, and valid characters are 171 // /[a-z0-9][a-z0-9-_]*/. Otherwise, an INVALID_ARGUMENT error is returned. 172 string name = 1 [(google.api.field_behavior) = IMMUTABLE]; 173 174 // Required. The display name of the engine. Should be human readable. UTF-8 175 // encoded string with limit of 1024 characters. 176 string display_name = 2 [(google.api.field_behavior) = REQUIRED]; 177 178 // Output only. Timestamp the Recommendation Engine was created at. 179 google.protobuf.Timestamp create_time = 3 180 [(google.api.field_behavior) = OUTPUT_ONLY]; 181 182 // Output only. Timestamp the Recommendation Engine was last updated. 183 google.protobuf.Timestamp update_time = 4 184 [(google.api.field_behavior) = OUTPUT_ONLY]; 185 186 // The data stores associated with this engine. 187 // 188 // For 189 // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_SEARCH] 190 // and 191 // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION] 192 // type of engines, they can only associate with at most one data store. 193 // 194 // If 195 // [solution_type][google.cloud.discoveryengine.v1beta.Engine.solution_type] 196 // is 197 // [SOLUTION_TYPE_CHAT][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_CHAT], 198 // multiple [DataStore][google.cloud.discoveryengine.v1beta.DataStore]s in the 199 // same [Collection][google.cloud.discoveryengine.v1beta.Collection] can be 200 // associated here. 201 // 202 // Note that when used in 203 // [CreateEngineRequest][google.cloud.discoveryengine.v1beta.CreateEngineRequest], 204 // one DataStore id must be provided as the system will use it for necessary 205 // initializations. 206 repeated string data_store_ids = 5; 207 208 // Required. The solutions of the engine. 209 SolutionType solution_type = 6 [(google.api.field_behavior) = REQUIRED]; 210 211 // The industry vertical that the engine registers. 212 // The restriction of the Engine industry vertical is based on 213 // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]: If unspecified, 214 // default to `GENERIC`. Vertical on Engine has to match vertical of the 215 // DataStore liniked to the engine. 216 IndustryVertical industry_vertical = 16; 217 218 // Common config spec that specifies the metadata of the engine. 219 CommonConfig common_config = 15; 220} 221