xref: /aosp_15_r20/external/googleapis/google/cloud/discoveryengine/v1beta/common.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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