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/resource.proto"; 20 21option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; 22option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; 23option java_multiple_files = true; 24option java_outer_classname = "CommonProto"; 25option java_package = "com.google.cloud.discoveryengine.v1beta"; 26option objc_class_prefix = "DISCOVERYENGINE"; 27option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; 28option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; 29option (google.api.resource_definition) = { 30 type: "discoveryengine.googleapis.com/Branch" 31 pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}" 32 pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}" 33}; 34option (google.api.resource_definition) = { 35 type: "discoveryengine.googleapis.com/Collection" 36 pattern: "projects/{project}/locations/{location}/collections/{collection}" 37}; 38option (google.api.resource_definition) = { 39 type: "discoveryengine.googleapis.com/Location" 40 pattern: "projects/{project}/locations/{location}" 41}; 42option (google.api.resource_definition) = { 43 type: "discoveryengine.googleapis.com/GroundingConfig" 44 pattern: "projects/{project}/locations/{location}/groundingConfigs/{grounding_config}" 45}; 46option (google.api.resource_definition) = { 47 type: "discoveryengine.googleapis.com/RankingConfig" 48 pattern: "projects/{project}/locations/{location}/rankingConfigs/{ranking_config}" 49}; 50option (google.api.resource_definition) = { 51 type: "healthcare.googleapis.com/FhirStore" 52 pattern: "projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}" 53}; 54option (google.api.resource_definition) = { 55 type: "discoveryengine.googleapis.com/Chunk" 56 pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" 57 pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" 58}; 59 60// The industry vertical associated with the 61// [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. 62enum IndustryVertical { 63 // Value used when unset. 64 INDUSTRY_VERTICAL_UNSPECIFIED = 0; 65 66 // The generic vertical for documents that are not specific to any industry 67 // vertical. 68 GENERIC = 1; 69 70 // The media industry vertical. 71 MEDIA = 2; 72 73 // The healthcare FHIR vertical. 74 HEALTHCARE_FHIR = 7; 75} 76 77// The type of solution. 78enum SolutionType { 79 // Default value. 80 SOLUTION_TYPE_UNSPECIFIED = 0; 81 82 // Used for Recommendations AI. 83 SOLUTION_TYPE_RECOMMENDATION = 1; 84 85 // Used for Discovery Search. 86 SOLUTION_TYPE_SEARCH = 2; 87 88 // Used for use cases related to the Generative AI agent. 89 SOLUTION_TYPE_CHAT = 3; 90 91 // Used for use cases related to the Generative Chat agent. 92 // It's used for Generative chat engine only, the associated data stores 93 // must enrolled with `SOLUTION_TYPE_CHAT` solution. 94 SOLUTION_TYPE_GENERATIVE_CHAT = 4; 95} 96 97// Tiers of search features. Different tiers might have different 98// pricing. To learn more, check the pricing documentation. 99enum SearchTier { 100 // Default value when the enum is unspecified. This is invalid to use. 101 SEARCH_TIER_UNSPECIFIED = 0; 102 103 // Standard tier. 104 SEARCH_TIER_STANDARD = 1; 105 106 // Enterprise tier. 107 SEARCH_TIER_ENTERPRISE = 2; 108} 109 110// Add-on that provides additional functionality for search. 111enum SearchAddOn { 112 // Default value when the enum is unspecified. This is invalid to use. 113 SEARCH_ADD_ON_UNSPECIFIED = 0; 114 115 // Large language model add-on. 116 SEARCH_ADD_ON_LLM = 1; 117} 118 119// A floating point interval. 120message Interval { 121 // The lower bound of the interval. If neither of the min fields are 122 // set, then the lower bound is negative infinity. 123 // 124 // This field must be not larger than max. 125 // Otherwise, an `INVALID_ARGUMENT` error is returned. 126 oneof min { 127 // Inclusive lower bound. 128 double minimum = 1; 129 130 // Exclusive lower bound. 131 double exclusive_minimum = 2; 132 } 133 134 // The upper bound of the interval. If neither of the max fields are 135 // set, then the upper bound is positive infinity. 136 // 137 // This field must be not smaller than min. 138 // Otherwise, an `INVALID_ARGUMENT` error is returned. 139 oneof max { 140 // Inclusive upper bound. 141 double maximum = 3; 142 143 // Exclusive upper bound. 144 double exclusive_maximum = 4; 145 } 146} 147 148// A custom attribute that is not explicitly modeled in a resource, e.g. 149// [UserEvent][google.cloud.discoveryengine.v1beta.UserEvent]. 150message CustomAttribute { 151 // The textual values of this custom attribute. For example, `["yellow", 152 // "green"]` when the key is "color". 153 // 154 // Empty string is not allowed. Otherwise, an `INVALID_ARGUMENT` error is 155 // returned. 156 // 157 // Exactly one of 158 // [CustomAttribute.text][google.cloud.discoveryengine.v1beta.CustomAttribute.text] 159 // or 160 // [CustomAttribute.numbers][google.cloud.discoveryengine.v1beta.CustomAttribute.numbers] 161 // should be set. Otherwise, an `INVALID_ARGUMENT` error is returned. 162 repeated string text = 1; 163 164 // The numerical values of this custom attribute. For example, `[2.3, 15.4]` 165 // when the key is "lengths_cm". 166 // 167 // Exactly one of 168 // [CustomAttribute.text][google.cloud.discoveryengine.v1beta.CustomAttribute.text] 169 // or 170 // [CustomAttribute.numbers][google.cloud.discoveryengine.v1beta.CustomAttribute.numbers] 171 // should be set. Otherwise, an `INVALID_ARGUMENT` error is returned. 172 repeated double numbers = 2; 173} 174 175// Information of an end user. 176message UserInfo { 177 // Highly recommended for logged-in users. Unique identifier for logged-in 178 // user, such as a user name. Don't set for anonymous users. 179 // 180 // Always use a hashed value for this ID. 181 // 182 // Don't set the field to the same fixed ID for different users. This mixes 183 // the event history of those users together, which results in degraded 184 // model quality. 185 // 186 // The field must be a UTF-8 encoded string with a length limit of 128 187 // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. 188 string user_id = 1; 189 190 // User agent as included in the HTTP header. 191 // 192 // The field must be a UTF-8 encoded string with a length limit of 1,000 193 // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. 194 // 195 // This should not be set when using the client side event reporting with 196 // GTM or JavaScript tag in 197 // [UserEventService.CollectUserEvent][google.cloud.discoveryengine.v1beta.UserEventService.CollectUserEvent] 198 // or if 199 // [UserEvent.direct_user_request][google.cloud.discoveryengine.v1beta.UserEvent.direct_user_request] 200 // is set. 201 string user_agent = 2; 202} 203 204// Defines embedding config, used for bring your own embeddings feature. 205message EmbeddingConfig { 206 // Full field path in the schema mapped as embedding field. 207 string field_path = 1; 208} 209 210// Double list. 211message DoubleList { 212 // Double values. 213 repeated double values = 1; 214} 215