@google-cloud/discoveryengine 1.5.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +24 -0
  3. package/build/protos/google/cloud/discoveryengine/v1/common.proto +13 -1
  4. package/build/protos/google/cloud/discoveryengine/v1/conversational_search_service.proto +5 -0
  5. package/build/protos/google/cloud/discoveryengine/v1/data_store.proto +17 -0
  6. package/build/protos/google/cloud/discoveryengine/v1/document.proto +9 -0
  7. package/build/protos/google/cloud/discoveryengine/v1/document_service.proto +6 -0
  8. package/build/protos/google/cloud/discoveryengine/v1/engine.proto +2 -2
  9. package/build/protos/google/cloud/discoveryengine/v1/import_config.proto +284 -22
  10. package/build/protos/google/cloud/discoveryengine/v1/purge_config.proto +3 -0
  11. package/build/protos/google/cloud/discoveryengine/v1/recommendation_service.proto +228 -0
  12. package/build/protos/google/cloud/discoveryengine/v1/search_service.proto +125 -21
  13. package/build/protos/google/cloud/discoveryengine/v1/user_event.proto +16 -11
  14. package/build/protos/google/cloud/discoveryengine/v1alpha/answer.proto +328 -0
  15. package/build/protos/google/cloud/discoveryengine/v1alpha/chunk.proto +6 -0
  16. package/build/protos/google/cloud/discoveryengine/v1alpha/common.proto +1 -1
  17. package/build/protos/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto +574 -0
  18. package/build/protos/google/cloud/discoveryengine/v1alpha/document_processing_config.proto +3 -6
  19. package/build/protos/google/cloud/discoveryengine/v1alpha/engine.proto +2 -2
  20. package/build/protos/google/cloud/discoveryengine/v1alpha/grounded_generation_service.proto +120 -0
  21. package/build/protos/google/cloud/discoveryengine/v1alpha/grounding.proto +55 -0
  22. package/build/protos/google/cloud/discoveryengine/v1alpha/import_config.proto +7 -39
  23. package/build/protos/google/cloud/discoveryengine/v1alpha/project.proto +102 -0
  24. package/build/protos/google/cloud/discoveryengine/v1alpha/project_service.proto +171 -0
  25. package/build/protos/google/cloud/discoveryengine/v1alpha/schema.proto +21 -0
  26. package/build/protos/google/cloud/discoveryengine/v1alpha/search_service.proto +7 -3
  27. package/build/protos/google/cloud/discoveryengine/v1alpha/search_tuning_service.proto +4 -1
  28. package/build/protos/google/cloud/discoveryengine/v1alpha/session.proto +94 -0
  29. package/build/protos/google/cloud/discoveryengine/v1alpha/user_event.proto +1 -1
  30. package/build/protos/google/cloud/discoveryengine/v1beta/answer.proto +328 -0
  31. package/build/protos/google/cloud/discoveryengine/v1beta/common.proto +30 -1
  32. package/build/protos/google/cloud/discoveryengine/v1beta/conversational_search_service.proto +559 -0
  33. package/build/protos/google/cloud/discoveryengine/v1beta/document_processing_config.proto +3 -6
  34. package/build/protos/google/cloud/discoveryengine/v1beta/document_service.proto +6 -0
  35. package/build/protos/google/cloud/discoveryengine/v1beta/engine.proto +2 -2
  36. package/build/protos/google/cloud/discoveryengine/v1beta/engine_service.proto +93 -0
  37. package/build/protos/google/cloud/discoveryengine/v1beta/grounded_generation_service.proto +120 -0
  38. package/build/protos/google/cloud/discoveryengine/v1beta/grounding.proto +55 -0
  39. package/build/protos/google/cloud/discoveryengine/v1beta/import_config.proto +283 -24
  40. package/build/protos/google/cloud/discoveryengine/v1beta/rank_service.proto +115 -0
  41. package/build/protos/google/cloud/discoveryengine/v1beta/search_service.proto +142 -22
  42. package/build/protos/google/cloud/discoveryengine/v1beta/search_tuning_service.proto +7 -1
  43. package/build/protos/google/cloud/discoveryengine/v1beta/session.proto +94 -0
  44. package/build/protos/google/cloud/discoveryengine/v1beta/user_event.proto +1 -1
  45. package/build/protos/protos.d.ts +41126 -24558
  46. package/build/protos/protos.js +134286 -93661
  47. package/build/protos/protos.json +7598 -3744
  48. package/build/src/index.d.ts +4 -1
  49. package/build/src/index.js +4 -1
  50. package/build/src/v1/conversational_search_service_client.d.ts +4 -0
  51. package/build/src/v1/document_service_client.d.ts +47 -19
  52. package/build/src/v1/index.d.ts +1 -0
  53. package/build/src/v1/index.js +3 -1
  54. package/build/src/v1/recommendation_service_client.d.ts +1087 -0
  55. package/build/src/v1/recommendation_service_client.js +1432 -0
  56. package/build/src/v1/recommendation_service_client_config.json +43 -0
  57. package/build/src/v1/search_service_client.d.ts +27 -9
  58. package/build/src/v1/search_service_client.js +18 -6
  59. package/build/src/v1/search_service_client_config.json +5 -5
  60. package/build/src/v1alpha/acl_config_service_client.d.ts +330 -0
  61. package/build/src/v1alpha/acl_config_service_client.js +454 -0
  62. package/build/src/v1alpha/chunk_service_client.d.ts +330 -0
  63. package/build/src/v1alpha/chunk_service_client.js +454 -0
  64. package/build/src/v1alpha/completion_service_client.d.ts +330 -0
  65. package/build/src/v1alpha/completion_service_client.js +454 -0
  66. package/build/src/v1alpha/conversational_search_service_client.d.ts +674 -0
  67. package/build/src/v1alpha/conversational_search_service_client.js +724 -0
  68. package/build/src/v1alpha/conversational_search_service_client_config.json +35 -0
  69. package/build/src/v1alpha/data_store_service_client.d.ts +330 -0
  70. package/build/src/v1alpha/data_store_service_client.js +454 -0
  71. package/build/src/v1alpha/document_service_client.d.ts +330 -0
  72. package/build/src/v1alpha/document_service_client.js +454 -0
  73. package/build/src/v1alpha/engine_service_client.d.ts +330 -0
  74. package/build/src/v1alpha/engine_service_client.js +454 -0
  75. package/build/src/v1alpha/estimate_billing_service_client.d.ts +330 -0
  76. package/build/src/v1alpha/estimate_billing_service_client.js +454 -0
  77. package/build/src/v1alpha/grounded_generation_service_client.d.ts +1574 -0
  78. package/build/src/v1alpha/grounded_generation_service_client.js +2248 -0
  79. package/build/src/v1alpha/grounded_generation_service_client_config.json +43 -0
  80. package/build/src/v1alpha/index.d.ts +2 -0
  81. package/build/src/v1alpha/index.js +5 -1
  82. package/build/src/v1alpha/project_service_client.d.ts +1756 -0
  83. package/build/src/v1alpha/project_service_client.js +2500 -0
  84. package/build/src/v1alpha/project_service_client_config.json +38 -0
  85. package/build/src/v1alpha/rank_service_client.d.ts +330 -0
  86. package/build/src/v1alpha/rank_service_client.js +454 -0
  87. package/build/src/v1alpha/rank_service_client_config.json +15 -2
  88. package/build/src/v1alpha/recommendation_service_client.d.ts +330 -0
  89. package/build/src/v1alpha/recommendation_service_client.js +454 -0
  90. package/build/src/v1alpha/schema_service_client.d.ts +330 -0
  91. package/build/src/v1alpha/schema_service_client.js +454 -0
  92. package/build/src/v1alpha/search_service_client.d.ts +330 -0
  93. package/build/src/v1alpha/search_service_client.js +454 -0
  94. package/build/src/v1alpha/search_service_client_config.json +5 -5
  95. package/build/src/v1alpha/search_tuning_service_client.d.ts +330 -0
  96. package/build/src/v1alpha/search_tuning_service_client.js +454 -0
  97. package/build/src/v1alpha/serving_config_service_client.d.ts +315 -0
  98. package/build/src/v1alpha/serving_config_service_client.js +432 -0
  99. package/build/src/v1alpha/site_search_engine_service_client.d.ts +330 -0
  100. package/build/src/v1alpha/site_search_engine_service_client.js +454 -0
  101. package/build/src/v1alpha/user_event_service_client.d.ts +330 -0
  102. package/build/src/v1alpha/user_event_service_client.js +454 -0
  103. package/build/src/v1beta/completion_service_client.d.ts +315 -0
  104. package/build/src/v1beta/completion_service_client.js +432 -0
  105. package/build/src/v1beta/conversational_search_service_client.d.ts +659 -0
  106. package/build/src/v1beta/conversational_search_service_client.js +702 -0
  107. package/build/src/v1beta/conversational_search_service_client_config.json +35 -0
  108. package/build/src/v1beta/data_store_service_client.d.ts +315 -0
  109. package/build/src/v1beta/data_store_service_client.js +432 -0
  110. package/build/src/v1beta/document_service_client.d.ts +361 -21
  111. package/build/src/v1beta/document_service_client.js +432 -0
  112. package/build/src/v1beta/engine_service_client.d.ts +410 -0
  113. package/build/src/v1beta/engine_service_client.js +518 -0
  114. package/build/src/v1beta/engine_service_client_config.json +12 -0
  115. package/build/src/v1beta/grounded_generation_service_client.d.ts +1406 -0
  116. package/build/src/v1beta/grounded_generation_service_client.js +2014 -0
  117. package/build/src/v1beta/grounded_generation_service_client_config.json +43 -0
  118. package/build/src/v1beta/index.d.ts +2 -0
  119. package/build/src/v1beta/index.js +5 -1
  120. package/build/src/v1beta/rank_service_client.d.ts +1416 -0
  121. package/build/src/v1beta/rank_service_client.js +2015 -0
  122. package/build/src/v1beta/rank_service_client_config.json +43 -0
  123. package/build/src/v1beta/recommendation_service_client.d.ts +315 -0
  124. package/build/src/v1beta/recommendation_service_client.js +432 -0
  125. package/build/src/v1beta/schema_service_client.d.ts +315 -0
  126. package/build/src/v1beta/schema_service_client.js +432 -0
  127. package/build/src/v1beta/search_service_client.d.ts +342 -12
  128. package/build/src/v1beta/search_service_client.js +450 -8
  129. package/build/src/v1beta/search_service_client_config.json +5 -5
  130. package/build/src/v1beta/search_tuning_service_client.d.ts +315 -0
  131. package/build/src/v1beta/search_tuning_service_client.js +432 -0
  132. package/build/src/v1beta/serving_config_service_client.d.ts +315 -0
  133. package/build/src/v1beta/serving_config_service_client.js +432 -0
  134. package/build/src/v1beta/site_search_engine_service_client.d.ts +315 -0
  135. package/build/src/v1beta/site_search_engine_service_client.js +432 -0
  136. package/build/src/v1beta/user_event_service_client.d.ts +315 -0
  137. package/build/src/v1beta/user_event_service_client.js +432 -0
  138. package/package.json +1 -1
@@ -21,6 +21,7 @@ import "google/api/resource.proto";
21
21
  import "google/cloud/discoveryengine/v1/completion.proto";
22
22
  import "google/cloud/discoveryengine/v1/document.proto";
23
23
  import "google/cloud/discoveryengine/v1/user_event.proto";
24
+ import "google/protobuf/field_mask.proto";
24
25
  import "google/protobuf/timestamp.proto";
25
26
  import "google/rpc/status.proto";
26
27
  import "google/type/date.proto";
@@ -59,11 +60,11 @@ message GcsSource {
59
60
  // bits of SHA256(URI) encoded as a hex string.
60
61
  // * `custom`: One custom data JSON per row in arbitrary format that conforms
61
62
  // to the defined [Schema][google.cloud.discoveryengine.v1.Schema] of the
62
- // data store. This can only be used by Gen App Builder.
63
+ // data store. This can only be used by the GENERIC Data Store vertical.
63
64
  // * `csv`: A CSV file with header conforming to the defined
64
65
  // [Schema][google.cloud.discoveryengine.v1.Schema] of the
65
66
  // data store. Each entry after the header is imported as a Document.
66
- // This can only be used by Gen App Builder.
67
+ // This can only be used by the GENERIC Data Store vertical.
67
68
  //
68
69
  // Supported values for user even imports:
69
70
  //
@@ -117,10 +118,237 @@ message BigQuerySource {
117
118
  // [Document.struct_data][google.cloud.discoveryengine.v1.Document.struct_data].
118
119
  // * `custom`: One custom data per row in arbitrary format that conforms to
119
120
  // the defined [Schema][google.cloud.discoveryengine.v1.Schema] of the data
120
- // store. This can only be used by Gen App Builder.
121
+ // store. This can only be used by the GENERIC Data Store vertical.
121
122
  string data_schema = 6;
122
123
  }
123
124
 
125
+ // The Spanner source for importing data
126
+ message SpannerSource {
127
+ // The project ID that the Spanner source is in with a length limit of 128
128
+ // characters. If not specified, inherits the project ID from the parent
129
+ // request.
130
+ string project_id = 1;
131
+
132
+ // Required. The instance ID of the source Spanner table.
133
+ string instance_id = 2 [(google.api.field_behavior) = REQUIRED];
134
+
135
+ // Required. The database ID of the source Spanner table.
136
+ string database_id = 3 [(google.api.field_behavior) = REQUIRED];
137
+
138
+ // Required. The table name of the Spanner database that needs to be imported.
139
+ string table_id = 4 [(google.api.field_behavior) = REQUIRED];
140
+
141
+ // Whether to apply data boost on Spanner export. Enabling this option will
142
+ // incur additional cost. More info can be found
143
+ // [here](https://cloud.google.com/spanner/docs/databoost/databoost-overview#billing_and_quotas).
144
+ bool enable_data_boost = 5;
145
+ }
146
+
147
+ // The Bigtable Options object that contains information to support
148
+ // the import.
149
+ message BigtableOptions {
150
+ // The column family of the Bigtable.
151
+ message BigtableColumnFamily {
152
+ // The field name to use for this column family in the document. The
153
+ // name has to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. If not set,
154
+ // it is parsed from the family name with best effort. However, due to
155
+ // different naming patterns, field name collisions could happen, where
156
+ // parsing behavior is undefined.
157
+ string field_name = 1;
158
+
159
+ // The encoding mode of the values when the type is not STRING.
160
+ // Acceptable encoding values are:
161
+ //
162
+ // * `TEXT`: indicates values are alphanumeric text strings.
163
+ // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes`
164
+ // family of functions. This can be overridden for a specific column
165
+ // by listing that column in `columns` and specifying an encoding for it.
166
+ Encoding encoding = 2;
167
+
168
+ // The type of values in this column family.
169
+ // The values are expected to be encoded using `HBase Bytes.toBytes`
170
+ // function when the encoding value is set to `BINARY`.
171
+ Type type = 3;
172
+
173
+ // The list of objects that contains column level information for each
174
+ // column. If a column is not present in this list it will be ignored.
175
+ repeated BigtableColumn columns = 4;
176
+ }
177
+
178
+ // The column of the Bigtable.
179
+ message BigtableColumn {
180
+ // Required. Qualifier of the column. If it cannot be decoded with utf-8,
181
+ // use a base-64 encoded string instead.
182
+ bytes qualifier = 1 [(google.api.field_behavior) = REQUIRED];
183
+
184
+ // The field name to use for this column in the document. The name has to
185
+ // match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`.
186
+ // If not set, it is parsed from the qualifier bytes with best effort.
187
+ // However, due to different naming patterns, field name collisions could
188
+ // happen, where parsing behavior is undefined.
189
+ string field_name = 2;
190
+
191
+ // The encoding mode of the values when the type is not `STRING`.
192
+ // Acceptable encoding values are:
193
+ //
194
+ // * `TEXT`: indicates values are alphanumeric text strings.
195
+ // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes`
196
+ // family of functions. This can be overridden for a specific column
197
+ // by listing that column in `columns` and specifying an encoding for it.
198
+ Encoding encoding = 3;
199
+
200
+ // The type of values in this column family.
201
+ // The values are expected to be encoded using `HBase Bytes.toBytes`
202
+ // function when the encoding value is set to `BINARY`.
203
+ Type type = 4;
204
+ }
205
+
206
+ // The type of values in a Bigtable column or column family.
207
+ // The values are expected to be encoded using
208
+ // [HBase
209
+ // Bytes.toBytes](https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/util/Bytes.html)
210
+ // function when the encoding value is set to `BINARY`.
211
+ enum Type {
212
+ // The type is unspecified.
213
+ TYPE_UNSPECIFIED = 0;
214
+
215
+ // String type.
216
+ STRING = 1;
217
+
218
+ // Numerical type.
219
+ NUMBER = 2;
220
+
221
+ // Integer type.
222
+ INTEGER = 3;
223
+
224
+ // Variable length integer type.
225
+ VAR_INTEGER = 4;
226
+
227
+ // BigDecimal type.
228
+ BIG_NUMERIC = 5;
229
+
230
+ // Boolean type.
231
+ BOOLEAN = 6;
232
+
233
+ // JSON type.
234
+ JSON = 7;
235
+ }
236
+
237
+ // The encoding mode of a Bigtable column or column family.
238
+ enum Encoding {
239
+ // The encoding is unspecified.
240
+ ENCODING_UNSPECIFIED = 0;
241
+
242
+ // Text encoding.
243
+ TEXT = 1;
244
+
245
+ // Binary encoding.
246
+ BINARY = 2;
247
+ }
248
+
249
+ // The field name used for saving row key value in the document. The name has
250
+ // to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`.
251
+ string key_field_name = 1;
252
+
253
+ // The mapping from family names to an object that contains column families
254
+ // level information for the given column family. If a family is not present
255
+ // in this map it will be ignored.
256
+ map<string, BigtableColumnFamily> families = 2;
257
+ }
258
+
259
+ // The Cloud Bigtable source for importing data.
260
+ message BigtableSource {
261
+ // The project ID that the Bigtable source is in with a length limit of 128
262
+ // characters. If not specified, inherits the project ID from the parent
263
+ // request.
264
+ string project_id = 1;
265
+
266
+ // Required. The instance ID of the Cloud Bigtable that needs to be imported.
267
+ string instance_id = 2 [(google.api.field_behavior) = REQUIRED];
268
+
269
+ // Required. The table ID of the Cloud Bigtable that needs to be imported.
270
+ string table_id = 3 [(google.api.field_behavior) = REQUIRED];
271
+
272
+ // Required. Bigtable options that contains information needed when parsing
273
+ // data into typed structures. For example, column type annotations.
274
+ BigtableOptions bigtable_options = 4 [(google.api.field_behavior) = REQUIRED];
275
+ }
276
+
277
+ // Cloud FhirStore source import data from.
278
+ message FhirStoreSource {
279
+ // Required. The full resource name of the FHIR store to import data from, in
280
+ // the format of
281
+ // `projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}`.
282
+ string fhir_store = 1 [
283
+ (google.api.field_behavior) = REQUIRED,
284
+ (google.api.resource_reference) = {
285
+ type: "healthcare.googleapis.com/FhirStore"
286
+ }
287
+ ];
288
+
289
+ // Intermediate Cloud Storage directory used for the import with a length
290
+ // limit of 2,000 characters. Can be specified if one wants to have the
291
+ // FhirStore export to a specific Cloud Storage directory.
292
+ string gcs_staging_dir = 2;
293
+ }
294
+
295
+ // Cloud SQL source import data from.
296
+ message CloudSqlSource {
297
+ // The project ID that the Cloud SQL source is in with a length limit of 128
298
+ // characters. If not specified, inherits the project ID from the parent
299
+ // request.
300
+ string project_id = 1;
301
+
302
+ // Required. The Cloud SQL instance to copy the data from with a length limit
303
+ // of 256 characters.
304
+ string instance_id = 2 [(google.api.field_behavior) = REQUIRED];
305
+
306
+ // Required. The Cloud SQL database to copy the data from with a length limit
307
+ // of 256 characters.
308
+ string database_id = 3 [(google.api.field_behavior) = REQUIRED];
309
+
310
+ // Required. The Cloud SQL table to copy the data from with a length limit of
311
+ // 256 characters.
312
+ string table_id = 4 [(google.api.field_behavior) = REQUIRED];
313
+
314
+ // Intermediate Cloud Storage directory used for the import with a length
315
+ // limit of 2,000 characters. Can be specified if one wants to have the
316
+ // Cloud SQL export to a specific Cloud Storage directory.
317
+ //
318
+ // Ensure that the Cloud SQL service account has the necessary Cloud
319
+ // Storage Admin permissions to access the specified Cloud Storage directory.
320
+ string gcs_staging_dir = 5;
321
+
322
+ // Option for serverless export. Enabling this option will incur additional
323
+ // cost. More info can be found
324
+ // [here](https://cloud.google.com/sql/pricing#serverless).
325
+ bool offload = 6;
326
+ }
327
+
328
+ // Firestore source import data from.
329
+ message FirestoreSource {
330
+ // The project ID that the Cloud SQL source is in with a length limit of 128
331
+ // characters. If not specified, inherits the project ID from the parent
332
+ // request.
333
+ string project_id = 1;
334
+
335
+ // Required. The Firestore database to copy the data from with a length limit
336
+ // of 256 characters.
337
+ string database_id = 2 [(google.api.field_behavior) = REQUIRED];
338
+
339
+ // Required. The Firestore collection to copy the data from with a length
340
+ // limit of 1,500 characters.
341
+ string collection_id = 3 [(google.api.field_behavior) = REQUIRED];
342
+
343
+ // Intermediate Cloud Storage directory used for the import with a length
344
+ // limit of 2,000 characters. Can be specified if one wants to have the
345
+ // Firestore export to a specific Cloud Storage directory.
346
+ //
347
+ // Ensure that the Firestore service account has the necessary Cloud
348
+ // Storage Admin permissions to access the specified Cloud Storage directory.
349
+ string gcs_staging_dir = 4;
350
+ }
351
+
124
352
  // Configuration of destination for Import related errors.
125
353
  message ImportErrorConfig {
126
354
  // Required. Errors destination.
@@ -218,6 +446,9 @@ message ImportDocumentsMetadata {
218
446
 
219
447
  // Count of entries that encountered errors while processing.
220
448
  int64 failure_count = 4;
449
+
450
+ // Total count of entries that were processed.
451
+ int64 total_count = 5;
221
452
  }
222
453
 
223
454
  // Request message for Import methods.
@@ -254,6 +485,21 @@ message ImportDocumentsRequest {
254
485
 
255
486
  // BigQuery input source.
256
487
  BigQuerySource bigquery_source = 4;
488
+
489
+ // FhirStore input source.
490
+ FhirStoreSource fhir_store_source = 10;
491
+
492
+ // Spanner input source.
493
+ SpannerSource spanner_source = 11;
494
+
495
+ // Cloud SQL input source.
496
+ CloudSqlSource cloud_sql_source = 12;
497
+
498
+ // Firestore input source.
499
+ FirestoreSource firestore_source = 13;
500
+
501
+ // Cloud Bigtable input source.
502
+ BigtableSource bigtable_source = 15;
257
503
  }
258
504
 
259
505
  // Required. The parent branch resource name, such as
@@ -274,6 +520,10 @@ message ImportDocumentsRequest {
274
520
  // [ReconciliationMode.INCREMENTAL][google.cloud.discoveryengine.v1.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL].
275
521
  ReconciliationMode reconciliation_mode = 6;
276
522
 
523
+ // Indicates which fields in the provided imported documents to update. If
524
+ // not set, the default is to update all fields.
525
+ google.protobuf.FieldMask update_mask = 7;
526
+
277
527
  // Whether to automatically generate IDs for the documents if absent.
278
528
  //
279
529
  // If set to `true`,
@@ -287,42 +537,54 @@ message ImportDocumentsRequest {
287
537
  // [id_field][google.cloud.discoveryengine.v1.ImportDocumentsRequest.id_field],
288
538
  // otherwise, documents without IDs fail to be imported.
289
539
  //
290
- // Only set this field when using
291
- // [GcsSource][google.cloud.discoveryengine.v1.GcsSource] or
292
- // [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource], and when
540
+ // Supported data sources:
541
+ //
542
+ // * [GcsSource][google.cloud.discoveryengine.v1.GcsSource].
293
543
  // [GcsSource.data_schema][google.cloud.discoveryengine.v1.GcsSource.data_schema]
294
- // or
544
+ // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
545
+ // * [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource].
295
546
  // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1.BigQuerySource.data_schema]
296
- // is `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
547
+ // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
548
+ // * [SpannerSource][google.cloud.discoveryengine.v1.SpannerSource].
549
+ // * [CloudSqlSource][google.cloud.discoveryengine.v1.CloudSqlSource].
550
+ // * [FirestoreSource][google.cloud.discoveryengine.v1.FirestoreSource].
551
+ // * [BigtableSource][google.cloud.discoveryengine.v1.BigtableSource].
297
552
  bool auto_generate_ids = 8;
298
553
 
299
- // The field in the Cloud Storage and BigQuery sources that indicates the
300
- // unique IDs of the documents.
554
+ // The field indicates the ID field or column to be used as unique IDs of
555
+ // the documents.
301
556
  //
302
557
  // For [GcsSource][google.cloud.discoveryengine.v1.GcsSource] it is the key of
303
558
  // the JSON field. For instance, `my_id` for JSON `{"my_id": "some_uuid"}`.
304
- // For [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource] it is
305
- // the column name of the BigQuery table where the unique ids are stored.
559
+ // For others, it may be the column name of the table where the unique ids are
560
+ // stored.
306
561
  //
307
- // The values of the JSON field or the BigQuery column are used as the
562
+ // The values of the JSON field or the table column are used as the
308
563
  // [Document.id][google.cloud.discoveryengine.v1.Document.id]s. The JSON field
309
- // or the BigQuery column must be of string type, and the values must be set
310
- // as valid strings conform to [RFC-1034](https://tools.ietf.org/html/rfc1034)
564
+ // or the table column must be of string type, and the values must be set as
565
+ // valid strings conform to [RFC-1034](https://tools.ietf.org/html/rfc1034)
311
566
  // with 1-63 characters. Otherwise, documents without valid IDs fail to be
312
567
  // imported.
313
568
  //
314
- // Only set this field when using
315
- // [GcsSource][google.cloud.discoveryengine.v1.GcsSource] or
316
- // [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource], and when
317
- // [GcsSource.data_schema][google.cloud.discoveryengine.v1.GcsSource.data_schema]
318
- // or
319
- // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1.BigQuerySource.data_schema]
320
- // is `custom`. And only set this field when
569
+ // Only set this field when
321
570
  // [auto_generate_ids][google.cloud.discoveryengine.v1.ImportDocumentsRequest.auto_generate_ids]
322
571
  // is unset or set as `false`. Otherwise, an INVALID_ARGUMENT error is thrown.
323
572
  //
324
573
  // If it is unset, a default value `_id` is used when importing from the
325
574
  // allowed data sources.
575
+ //
576
+ // Supported data sources:
577
+ //
578
+ // * [GcsSource][google.cloud.discoveryengine.v1.GcsSource].
579
+ // [GcsSource.data_schema][google.cloud.discoveryengine.v1.GcsSource.data_schema]
580
+ // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
581
+ // * [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource].
582
+ // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1.BigQuerySource.data_schema]
583
+ // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
584
+ // * [SpannerSource][google.cloud.discoveryengine.v1.SpannerSource].
585
+ // * [CloudSqlSource][google.cloud.discoveryengine.v1.CloudSqlSource].
586
+ // * [FirestoreSource][google.cloud.discoveryengine.v1.FirestoreSource].
587
+ // * [BigtableSource][google.cloud.discoveryengine.v1.BigtableSource].
326
588
  string id_field = 9;
327
589
  }
328
590
 
@@ -84,6 +84,9 @@ message PurgeDocumentsMetadata {
84
84
 
85
85
  // Count of entries that encountered errors while processing.
86
86
  int64 failure_count = 4;
87
+
88
+ // Count of entries that were ignored as entries were not found.
89
+ int64 ignored_count = 5;
87
90
  }
88
91
 
89
92
  // Request message for
@@ -0,0 +1,228 @@
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
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.discoveryengine.v1;
18
+
19
+ import "google/api/annotations.proto";
20
+ import "google/api/client.proto";
21
+ import "google/api/field_behavior.proto";
22
+ import "google/api/resource.proto";
23
+ import "google/cloud/discoveryengine/v1/document.proto";
24
+ import "google/cloud/discoveryengine/v1/user_event.proto";
25
+ import "google/protobuf/struct.proto";
26
+
27
+ option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1";
28
+ option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "RecommendationServiceProto";
31
+ option java_package = "com.google.cloud.discoveryengine.v1";
32
+ option objc_class_prefix = "DISCOVERYENGINE";
33
+ option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1";
34
+ option ruby_package = "Google::Cloud::DiscoveryEngine::V1";
35
+
36
+ // Service for making recommendations.
37
+ service RecommendationService {
38
+ option (google.api.default_host) = "discoveryengine.googleapis.com";
39
+ option (google.api.oauth_scopes) =
40
+ "https://www.googleapis.com/auth/cloud-platform";
41
+
42
+ // Makes a recommendation, which requires a contextual user event.
43
+ rpc Recommend(RecommendRequest) returns (RecommendResponse) {
44
+ option (google.api.http) = {
45
+ post: "/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:recommend"
46
+ body: "*"
47
+ additional_bindings {
48
+ post: "/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:recommend"
49
+ body: "*"
50
+ }
51
+ additional_bindings {
52
+ post: "/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:recommend"
53
+ body: "*"
54
+ }
55
+ };
56
+ }
57
+ }
58
+
59
+ // Request message for Recommend method.
60
+ message RecommendRequest {
61
+ // Required. Full resource name of a [ServingConfig][]:
62
+ // `projects/*/locations/global/collections/*/engines/*/servingConfigs/*`, or
63
+ // `projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*`
64
+ //
65
+ // One default serving config is created along with your recommendation engine
66
+ // creation. The engine ID will be used as the ID of the default serving
67
+ // config. For example, for Engine
68
+ // `projects/*/locations/global/collections/*/engines/my-engine`, you can use
69
+ // `projects/*/locations/global/collections/*/engines/my-engine/servingConfigs/my-engine`
70
+ // for your
71
+ // [RecommendationService.Recommend][google.cloud.discoveryengine.v1.RecommendationService.Recommend]
72
+ // requests.
73
+ string serving_config = 1 [
74
+ (google.api.field_behavior) = REQUIRED,
75
+ (google.api.resource_reference) = {
76
+ type: "discoveryengine.googleapis.com/ServingConfig"
77
+ }
78
+ ];
79
+
80
+ // Required. Context about the user, what they are looking at and what action
81
+ // they took to trigger the Recommend request. Note that this user event
82
+ // detail won't be ingested to userEvent logs. Thus, a separate userEvent
83
+ // write request is required for event logging.
84
+ //
85
+ // Don't set
86
+ // [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id]
87
+ // or
88
+ // [UserEvent.user_info.user_id][google.cloud.discoveryengine.v1.UserInfo.user_id]
89
+ // to the same fixed ID for different users. If you are trying to receive
90
+ // non-personalized recommendations (not recommended; this can negatively
91
+ // impact model performance), instead set
92
+ // [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id]
93
+ // to a random unique ID and leave
94
+ // [UserEvent.user_info.user_id][google.cloud.discoveryengine.v1.UserInfo.user_id]
95
+ // unset.
96
+ UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED];
97
+
98
+ // Maximum number of results to return. Set this property
99
+ // to the number of recommendation results needed. If zero, the service will
100
+ // choose a reasonable default. The maximum allowed value is 100. Values
101
+ // above 100 will be coerced to 100.
102
+ int32 page_size = 3;
103
+
104
+ // Filter for restricting recommendation results with a length limit of 5,000
105
+ // characters. Currently, only filter expressions on the `filter_tags`
106
+ // attribute is supported.
107
+ //
108
+ //
109
+ // Examples:
110
+ //
111
+ // * `(filter_tags: ANY("Red", "Blue") OR filter_tags: ANY("Hot", "Cold"))`
112
+ // * `(filter_tags: ANY("Red", "Blue")) AND NOT (filter_tags: ANY("Green"))`
113
+ //
114
+ // If `attributeFilteringSyntax` is set to true under the `params` field, then
115
+ // attribute-based expressions are expected instead of the above described
116
+ // tag-based syntax. Examples:
117
+ //
118
+ // * (launguage: ANY("en", "es")) AND NOT (categories: ANY("Movie"))
119
+ // * (available: true) AND
120
+ // (launguage: ANY("en", "es")) OR (categories: ANY("Movie"))
121
+ //
122
+ // If your filter blocks all results, the API will return generic
123
+ // (unfiltered) popular Documents. If you only want results strictly matching
124
+ // the filters, set `strictFiltering` to True in
125
+ // [RecommendRequest.params][google.cloud.discoveryengine.v1.RecommendRequest.params]
126
+ // to receive empty results instead.
127
+ //
128
+ // Note that the API will never return
129
+ // [Document][google.cloud.discoveryengine.v1.Document]s with `storageStatus`
130
+ // of `EXPIRED` or `DELETED` regardless of filter choices.
131
+ string filter = 4;
132
+
133
+ // Use validate only mode for this recommendation query. If set to true, a
134
+ // fake model will be used that returns arbitrary Document IDs.
135
+ // Note that the validate only mode should only be used for testing the API,
136
+ // or if the model is not ready.
137
+ bool validate_only = 5;
138
+
139
+ // Additional domain specific parameters for the recommendations.
140
+ //
141
+ // Allowed values:
142
+ //
143
+ // * `returnDocument`: Boolean. If set to true, the associated Document
144
+ // object will be returned in
145
+ // [RecommendResponse.RecommendationResult.document][google.cloud.discoveryengine.v1.RecommendResponse.RecommendationResult.document].
146
+ // * `returnScore`: Boolean. If set to true, the recommendation 'score'
147
+ // corresponding to each returned Document will be set in
148
+ // [RecommendResponse.RecommendationResult.metadata][google.cloud.discoveryengine.v1.RecommendResponse.RecommendationResult.metadata].
149
+ // The given 'score' indicates the probability of a Document conversion
150
+ // given the user's context and history.
151
+ // * `strictFiltering`: Boolean. True by default. If set to false, the service
152
+ // will return generic (unfiltered) popular Documents instead of empty if
153
+ // your filter blocks all recommendation results.
154
+ // * `diversityLevel`: String. Default empty. If set to be non-empty, then
155
+ // it needs to be one of:
156
+ // * `no-diversity`
157
+ // * `low-diversity`
158
+ // * `medium-diversity`
159
+ // * `high-diversity`
160
+ // * `auto-diversity`
161
+ // This gives request-level control and adjusts recommendation results
162
+ // based on Document category.
163
+ // * `attributeFilteringSyntax`: Boolean. False by default. If set to true,
164
+ // the `filter` field is interpreted according to the new,
165
+ // attribute-based syntax.
166
+ map<string, google.protobuf.Value> params = 6;
167
+
168
+ // The user labels applied to a resource must meet the following requirements:
169
+ //
170
+ // * Each resource can have multiple labels, up to a maximum of 64.
171
+ // * Each label must be a key-value pair.
172
+ // * Keys have a minimum length of 1 character and a maximum length of 63
173
+ // characters and cannot be empty. Values can be empty and have a maximum
174
+ // length of 63 characters.
175
+ // * Keys and values can contain only lowercase letters, numeric characters,
176
+ // underscores, and dashes. All characters must use UTF-8 encoding, and
177
+ // international characters are allowed.
178
+ // * The key portion of a label must be unique. However, you can use the same
179
+ // key with multiple resources.
180
+ // * Keys must start with a lowercase letter or international character.
181
+ //
182
+ // See [Requirements for
183
+ // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
184
+ // for more details.
185
+ map<string, string> user_labels = 8;
186
+ }
187
+
188
+ // Response message for Recommend method.
189
+ message RecommendResponse {
190
+ // RecommendationResult represents a generic recommendation result with
191
+ // associated metadata.
192
+ message RecommendationResult {
193
+ // Resource ID of the recommended Document.
194
+ string id = 1;
195
+
196
+ // Set if `returnDocument` is set to true in
197
+ // [RecommendRequest.params][google.cloud.discoveryengine.v1.RecommendRequest.params].
198
+ Document document = 2;
199
+
200
+ // Additional Document metadata / annotations.
201
+ //
202
+ // Possible values:
203
+ //
204
+ // * `score`: Recommendation score in double value. Is set if
205
+ // `returnScore` is set to true in
206
+ // [RecommendRequest.params][google.cloud.discoveryengine.v1.RecommendRequest.params].
207
+ map<string, google.protobuf.Value> metadata = 3;
208
+ }
209
+
210
+ // A list of recommended Documents. The order represents the ranking (from the
211
+ // most relevant Document to the least).
212
+ repeated RecommendationResult results = 1;
213
+
214
+ // A unique attribution token. This should be included in the
215
+ // [UserEvent][google.cloud.discoveryengine.v1.UserEvent] logs resulting from
216
+ // this recommendation, which enables accurate attribution of recommendation
217
+ // model performance.
218
+ string attribution_token = 2;
219
+
220
+ // IDs of documents in the request that were missing from the default Branch
221
+ // associated with the requested ServingConfig.
222
+ repeated string missing_ids = 3;
223
+
224
+ // True if
225
+ // [RecommendRequest.validate_only][google.cloud.discoveryengine.v1.RecommendRequest.validate_only]
226
+ // was set.
227
+ bool validate_only = 4;
228
+ }