google-cloud-discovery_engine-v1 0.1.0 → 0.3.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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/google/cloud/discovery_engine/v1/completion_service/client.rb +33 -4
  4. data/lib/google/cloud/discovery_engine/v1/completion_service/rest/client.rb +39 -3
  5. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/client.rb +968 -0
  6. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/credentials.rb +47 -0
  7. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/paths.rb +176 -0
  8. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/rest/client.rb +897 -0
  9. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/rest/service_stub.rb +450 -0
  10. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/rest.rb +52 -0
  11. data/lib/google/cloud/discovery_engine/v1/conversational_search_service.rb +55 -0
  12. data/lib/google/cloud/discovery_engine/v1/document_service/client.rb +33 -9
  13. data/lib/google/cloud/discovery_engine/v1/document_service/operations.rb +10 -1
  14. data/lib/google/cloud/discovery_engine/v1/document_service/rest/client.rb +153 -8
  15. data/lib/google/cloud/discovery_engine/v1/document_service/rest/operations.rb +117 -0
  16. data/lib/google/cloud/discovery_engine/v1/rest.rb +2 -1
  17. data/lib/google/cloud/discovery_engine/v1/schema_service/client.rb +24 -1
  18. data/lib/google/cloud/discovery_engine/v1/schema_service/operations.rb +10 -1
  19. data/lib/google/cloud/discovery_engine/v1/schema_service/rest/client.rb +119 -0
  20. data/lib/google/cloud/discovery_engine/v1/schema_service/rest/operations.rb +117 -0
  21. data/lib/google/cloud/discovery_engine/v1/search_service/client.rb +55 -10
  22. data/lib/google/cloud/discovery_engine/v1/search_service/rest/client.rb +67 -12
  23. data/lib/google/cloud/discovery_engine/v1/user_event_service/client.rb +29 -6
  24. data/lib/google/cloud/discovery_engine/v1/user_event_service/operations.rb +10 -1
  25. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/client.rb +74 -5
  26. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/operations.rb +117 -0
  27. data/lib/google/cloud/discovery_engine/v1/version.rb +1 -1
  28. data/lib/google/cloud/discovery_engine/v1.rb +2 -1
  29. data/lib/google/cloud/discoveryengine/v1/common_pb.rb +2 -1
  30. data/lib/google/cloud/discoveryengine/v1/completion_service_pb.rb +1 -1
  31. data/lib/google/cloud/discoveryengine/v1/conversation_pb.rb +54 -0
  32. data/lib/google/cloud/discoveryengine/v1/conversational_search_service_pb.rb +61 -0
  33. data/lib/google/cloud/discoveryengine/v1/conversational_search_service_services_pb.rb +67 -0
  34. data/lib/google/cloud/discoveryengine/v1/import_config_pb.rb +1 -1
  35. data/lib/google/cloud/discoveryengine/v1/search_service_pb.rb +13 -1
  36. data/lib/google/cloud/discoveryengine/v1/user_event_pb.rb +1 -1
  37. data/lib/google/cloud/discoveryengine/v1/user_event_service_services_pb.rb +1 -1
  38. data/proto_docs/google/api/field_behavior.rb +14 -0
  39. data/proto_docs/google/cloud/discoveryengine/v1/common.rb +19 -2
  40. data/proto_docs/google/cloud/discoveryengine/v1/completion_service.rb +15 -2
  41. data/proto_docs/google/cloud/discoveryengine/v1/conversation.rb +113 -0
  42. data/proto_docs/google/cloud/discoveryengine/v1/conversational_search_service.rb +206 -0
  43. data/proto_docs/google/cloud/discoveryengine/v1/document.rb +8 -5
  44. data/proto_docs/google/cloud/discoveryengine/v1/document_service.rb +4 -3
  45. data/proto_docs/google/cloud/discoveryengine/v1/import_config.rb +23 -19
  46. data/proto_docs/google/cloud/discoveryengine/v1/search_service.rb +455 -19
  47. data/proto_docs/google/cloud/discoveryengine/v1/user_event.rb +44 -32
  48. data/proto_docs/google/cloud/discoveryengine/v1/user_event_service.rb +1 -1
  49. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  50. metadata +38 -5
@@ -40,11 +40,14 @@ module Google
40
40
  # @!attribute [rw] query
41
41
  # @return [::String]
42
42
  # Raw search query.
43
+ # @!attribute [rw] image_query
44
+ # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::ImageQuery]
45
+ # Raw image query.
43
46
  # @!attribute [rw] page_size
44
47
  # @return [::Integer]
45
48
  # Maximum number of {::Google::Cloud::DiscoveryEngine::V1::Document Document}s to
46
49
  # return. If unspecified, defaults to a reasonable value. The maximum allowed
47
- # value is 100. Values above 100 will be coerced to 100.
50
+ # value is 100. Values above 100 are coerced to 100.
48
51
  #
49
52
  # If this field is negative, an `INVALID_ARGUMENT` is returned.
50
53
  # @!attribute [rw] page_token
@@ -67,11 +70,36 @@ module Google
67
70
  # unset.
68
71
  #
69
72
  # If this field is negative, an `INVALID_ARGUMENT` is returned.
73
+ # @!attribute [rw] filter
74
+ # @return [::String]
75
+ # The filter syntax consists of an expression language for constructing a
76
+ # predicate from one or more fields of the documents being filtered. Filter
77
+ # expression is case-sensitive.
78
+ #
79
+ # If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
80
+ # @!attribute [rw] order_by
81
+ # @return [::String]
82
+ # The order in which documents are returned. Documents can be ordered by
83
+ # a field in an {::Google::Cloud::DiscoveryEngine::V1::Document Document} object.
84
+ # Leave it unset if ordered by relevance. `order_by` expression is
85
+ # case-sensitive.
86
+ #
87
+ # If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
70
88
  # @!attribute [rw] user_info
71
89
  # @return [::Google::Cloud::DiscoveryEngine::V1::UserInfo]
72
90
  # Information about the end user.
73
- # Highly recommended for analytics. The user_agent string in UserInfo will
74
- # be used to deduce device_type for analytics.
91
+ # Highly recommended for analytics.
92
+ # {::Google::Cloud::DiscoveryEngine::V1::UserInfo#user_agent UserInfo.user_agent}
93
+ # is used to deduce `device_type` for analytics.
94
+ # @!attribute [rw] facet_specs
95
+ # @return [::Array<::Google::Cloud::DiscoveryEngine::V1::SearchRequest::FacetSpec>]
96
+ # Facet specifications for faceted search. If empty, no facets are returned.
97
+ #
98
+ # A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT`
99
+ # error is returned.
100
+ # @!attribute [rw] boost_spec
101
+ # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::BoostSpec]
102
+ # Boost specification to boost certain documents.
75
103
  # @!attribute [rw] params
76
104
  # @return [::Google::Protobuf::Map{::String => ::Google::Protobuf::Value}]
77
105
  # Additional search parameters.
@@ -86,11 +114,11 @@ module Google
86
114
  # @!attribute [rw] query_expansion_spec
87
115
  # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::QueryExpansionSpec]
88
116
  # The query expansion specification that specifies the conditions under which
89
- # query expansion will occur.
117
+ # query expansion occurs.
90
118
  # @!attribute [rw] spell_correction_spec
91
119
  # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::SpellCorrectionSpec]
92
120
  # The spell correction specification that specifies the mode under
93
- # which spell correction will take effect.
121
+ # which spell correction takes effect.
94
122
  # @!attribute [rw] user_pseudo_id
95
123
  # @return [::String]
96
124
  # A unique identifier for tracking visitors. For example, this could be
@@ -109,12 +137,11 @@ module Google
109
137
  # characters. Otherwise, an `INVALID_ARGUMENT` error is returned.
110
138
  # @!attribute [rw] content_search_spec
111
139
  # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::ContentSearchSpec]
112
- # The content search spec that configs the desired behavior of content
113
- # search.
140
+ # A specification for configuring the behavior of content search.
114
141
  # @!attribute [rw] safe_search
115
142
  # @return [::Boolean]
116
143
  # Whether to turn on safe search. This is only supported for
117
- # [ContentConfig.PUBLIC_WEBSITE][].
144
+ # website search.
118
145
  # @!attribute [rw] user_labels
119
146
  # @return [::Google::Protobuf::Map{::String => ::String}]
120
147
  # The user labels applied to a resource must meet the following requirements:
@@ -138,12 +165,214 @@ module Google
138
165
  include ::Google::Protobuf::MessageExts
139
166
  extend ::Google::Protobuf::MessageExts::ClassMethods
140
167
 
168
+ # Specifies the image query input.
169
+ # @!attribute [rw] image_bytes
170
+ # @return [::String]
171
+ # Base64 encoded image bytes. Supported image formats: JPEG, PNG, and
172
+ # BMP.
173
+ class ImageQuery
174
+ include ::Google::Protobuf::MessageExts
175
+ extend ::Google::Protobuf::MessageExts::ClassMethods
176
+ end
177
+
178
+ # A facet specification to perform faceted search.
179
+ # @!attribute [rw] facet_key
180
+ # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::FacetSpec::FacetKey]
181
+ # Required. The facet key specification.
182
+ # @!attribute [rw] limit
183
+ # @return [::Integer]
184
+ # Maximum of facet values that should be returned for this facet. If
185
+ # unspecified, defaults to 20. The maximum allowed value is 300. Values
186
+ # above 300 are coerced to 300.
187
+ #
188
+ # If this field is negative, an `INVALID_ARGUMENT` is returned.
189
+ # @!attribute [rw] excluded_filter_keys
190
+ # @return [::Array<::String>]
191
+ # List of keys to exclude when faceting.
192
+ #
193
+ #
194
+ # By default,
195
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::FacetSpec::FacetKey#key FacetKey.key}
196
+ # is not excluded from the filter unless it is listed in this field.
197
+ #
198
+ # Listing a facet key in this field allows its values to appear as facet
199
+ # results, even when they are filtered out of search results. Using this
200
+ # field does not affect what search results are returned.
201
+ #
202
+ # For example, suppose there are 100 documents with the color facet "Red"
203
+ # and 200 documents with the color facet "Blue". A query containing the
204
+ # filter "color:ANY("Red")" and having "color" as
205
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::FacetSpec::FacetKey#key FacetKey.key}
206
+ # would by default return only "Red" documents in the search results, and
207
+ # also return "Red" with count 100 as the only color facet. Although there
208
+ # are also blue documents available, "Blue" would not be shown as an
209
+ # available facet value.
210
+ #
211
+ # If "color" is listed in "excludedFilterKeys", then the query returns the
212
+ # facet values "Red" with count 100 and "Blue" with count 200, because the
213
+ # "color" key is now excluded from the filter. Because this field doesn't
214
+ # affect search results, the search results are still correctly filtered to
215
+ # return only "Red" documents.
216
+ #
217
+ # A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT`
218
+ # error is returned.
219
+ # @!attribute [rw] enable_dynamic_position
220
+ # @return [::Boolean]
221
+ # Enables dynamic position for this facet. If set to true, the position of
222
+ # this facet among all facets in the response is determined automatically.
223
+ # If dynamic facets are enabled, it is ordered together.
224
+ # If set to false, the position of this facet in the
225
+ # response is the same as in the request, and it is ranked before
226
+ # the facets with dynamic position enable and all dynamic facets.
227
+ #
228
+ # For example, you may always want to have rating facet returned in
229
+ # the response, but it's not necessarily to always display the rating facet
230
+ # at the top. In that case, you can set enable_dynamic_position to true so
231
+ # that the position of rating facet in response is determined
232
+ # automatically.
233
+ #
234
+ # Another example, assuming you have the following facets in the request:
235
+ #
236
+ # * "rating", enable_dynamic_position = true
237
+ #
238
+ # * "price", enable_dynamic_position = false
239
+ #
240
+ # * "brands", enable_dynamic_position = false
241
+ #
242
+ # And also you have a dynamic facets enabled, which generates a facet
243
+ # `gender`. Then the final order of the facets in the response can be
244
+ # ("price", "brands", "rating", "gender") or ("price", "brands", "gender",
245
+ # "rating") depends on how API orders "gender" and "rating" facets.
246
+ # However, notice that "price" and "brands" are always
247
+ # ranked at first and second position because their enable_dynamic_position
248
+ # is false.
249
+ class FacetSpec
250
+ include ::Google::Protobuf::MessageExts
251
+ extend ::Google::Protobuf::MessageExts::ClassMethods
252
+
253
+ # Specifies how a facet is computed.
254
+ # @!attribute [rw] key
255
+ # @return [::String]
256
+ # Required. Supported textual and numerical facet keys in
257
+ # {::Google::Cloud::DiscoveryEngine::V1::Document Document} object, over which
258
+ # the facet values are computed. Facet key is case-sensitive.
259
+ # @!attribute [rw] intervals
260
+ # @return [::Array<::Google::Cloud::DiscoveryEngine::V1::Interval>]
261
+ # Set only if values should be bucketed into intervals. Must be set
262
+ # for facets with numerical values. Must not be set for facet with text
263
+ # values. Maximum number of intervals is 30.
264
+ # @!attribute [rw] restricted_values
265
+ # @return [::Array<::String>]
266
+ # Only get facet for the given restricted values. Only supported on
267
+ # textual fields. For example, suppose "category" has three values
268
+ # "Action > 2022", "Action > 2021" and "Sci-Fi > 2022". If set
269
+ # "restricted_values" to "Action > 2022", the "category" facet only
270
+ # contains "Action > 2022". Only supported on textual fields. Maximum
271
+ # is 10.
272
+ # @!attribute [rw] prefixes
273
+ # @return [::Array<::String>]
274
+ # Only get facet values that start with the given string prefix. For
275
+ # example, suppose "category" has three values "Action > 2022",
276
+ # "Action > 2021" and "Sci-Fi > 2022". If set "prefixes" to "Action", the
277
+ # "category" facet only contains "Action > 2022" and "Action > 2021".
278
+ # Only supported on textual fields. Maximum is 10.
279
+ # @!attribute [rw] contains
280
+ # @return [::Array<::String>]
281
+ # Only get facet values that contains the given strings. For example,
282
+ # suppose "category" has three values "Action > 2022",
283
+ # "Action > 2021" and "Sci-Fi > 2022". If set "contains" to "2022", the
284
+ # "category" facet only contains "Action > 2022" and "Sci-Fi > 2022".
285
+ # Only supported on textual fields. Maximum is 10.
286
+ # @!attribute [rw] case_insensitive
287
+ # @return [::Boolean]
288
+ # True to make facet keys case insensitive when getting faceting
289
+ # values with prefixes or contains; false otherwise.
290
+ # @!attribute [rw] order_by
291
+ # @return [::String]
292
+ # The order in which documents are returned.
293
+ #
294
+ # Allowed values are:
295
+ #
296
+ # * "count desc", which means order by
297
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchResponse::Facet::FacetValue#count SearchResponse.Facet.values.count}
298
+ # descending.
299
+ #
300
+ # * "value desc", which means order by
301
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchResponse::Facet::FacetValue#value SearchResponse.Facet.values.value}
302
+ # descending.
303
+ # Only applies to textual facets.
304
+ #
305
+ # If not set, textual values are sorted in [natural
306
+ # order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical
307
+ # intervals are sorted in the order given by
308
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::FacetSpec::FacetKey#intervals FacetSpec.FacetKey.intervals}.
309
+ class FacetKey
310
+ include ::Google::Protobuf::MessageExts
311
+ extend ::Google::Protobuf::MessageExts::ClassMethods
312
+ end
313
+ end
314
+
315
+ # Boost specification to boost certain documents.
316
+ # @!attribute [rw] condition_boost_specs
317
+ # @return [::Array<::Google::Cloud::DiscoveryEngine::V1::SearchRequest::BoostSpec::ConditionBoostSpec>]
318
+ # Condition boost specifications. If a document matches multiple conditions
319
+ # in the specifictions, boost scores from these specifications are all
320
+ # applied and combined in a non-linear way. Maximum number of
321
+ # specifications is 20.
322
+ class BoostSpec
323
+ include ::Google::Protobuf::MessageExts
324
+ extend ::Google::Protobuf::MessageExts::ClassMethods
325
+
326
+ # Boost applies to documents which match a condition.
327
+ # @!attribute [rw] condition
328
+ # @return [::String]
329
+ # An expression which specifies a boost condition. The syntax and
330
+ # supported fields are the same as a filter expression. See
331
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#filter SearchRequest.filter}
332
+ # for detail syntax and limitations.
333
+ #
334
+ # Examples:
335
+ #
336
+ # * To boost documents with document ID "doc_1" or "doc_2", and
337
+ # color
338
+ # "Red" or "Blue":
339
+ # * (id: ANY("doc_1", "doc_2")) AND (color: ANY("Red","Blue"))
340
+ # @!attribute [rw] boost
341
+ # @return [::Float]
342
+ # Strength of the condition boost, which should be in [-1, 1]. Negative
343
+ # boost means demotion. Default is 0.0.
344
+ #
345
+ # Setting to 1.0 gives the document a big promotion. However, it does not
346
+ # necessarily mean that the boosted document will be the top result at
347
+ # all times, nor that other documents will be excluded. Results could
348
+ # still be shown even when none of them matches the condition. And
349
+ # results that are significantly more relevant to the search query can
350
+ # still trump your heavily favored but irrelevant documents.
351
+ #
352
+ # Setting to -1.0 gives the document a big demotion. However, results
353
+ # that are deeply relevant might still be shown. The document will have
354
+ # an upstream battle to get a fairly high ranking, but it is not blocked
355
+ # out completely.
356
+ #
357
+ # Setting to 0.0 means no boost applied. The boosting condition is
358
+ # ignored.
359
+ class ConditionBoostSpec
360
+ include ::Google::Protobuf::MessageExts
361
+ extend ::Google::Protobuf::MessageExts::ClassMethods
362
+ end
363
+ end
364
+
141
365
  # Specification to determine under which conditions query expansion should
142
366
  # occur.
143
367
  # @!attribute [rw] condition
144
368
  # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::QueryExpansionSpec::Condition]
145
369
  # The condition under which query expansion should occur. Default to
146
370
  # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::QueryExpansionSpec::Condition::DISABLED Condition.DISABLED}.
371
+ # @!attribute [rw] pin_unexpanded_results
372
+ # @return [::Boolean]
373
+ # Whether to pin unexpanded results. If this field is set to true,
374
+ # unexpanded products are always at the top of the search results, followed
375
+ # by the expanded results.
147
376
  class QueryExpansionSpec
148
377
  include ::Google::Protobuf::MessageExts
149
378
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -194,31 +423,100 @@ module Google
194
423
  end
195
424
  end
196
425
 
197
- # The specification that configs the desired behavior of the UCS content
198
- # search.
426
+ # A specification for configuring the behavior of content search.
199
427
  # @!attribute [rw] snippet_spec
200
428
  # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::ContentSearchSpec::SnippetSpec]
201
- # If there is no snippet spec provided, there will be no snippet in the
202
- # search result.
429
+ # If `snippetSpec` is not specified, snippets are not included in the
430
+ # search response.
431
+ # @!attribute [rw] summary_spec
432
+ # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::ContentSearchSpec::SummarySpec]
433
+ # If `summarySpec` is not specified, summaries are not included in the
434
+ # search response.
203
435
  class ContentSearchSpec
204
436
  include ::Google::Protobuf::MessageExts
205
437
  extend ::Google::Protobuf::MessageExts::ClassMethods
206
438
 
207
- # The specification that configs the snippet in the search results.
439
+ # A specification for configuring snippets in a search response.
208
440
  # @!attribute [rw] max_snippet_count
209
441
  # @return [::Integer]
210
- # Max number of snippets returned in each search result.
211
- # If the matching snippets is less than the max_snippet_count, return all
212
- # of the snippets; otherwise, return the max_snippet_count.
213
- #
214
- # At most 5 snippets will be returned for each SearchResult.
442
+ # [DEPRECATED] This field is deprecated. To control snippet return, use
443
+ # `return_snippet` field. For backwards compatibility, we will return
444
+ # snippet if max_snippet_count > 0.
215
445
  # @!attribute [rw] reference_only
216
446
  # @return [::Boolean]
217
- # if true, only snippet reference is returned.
447
+ # [DEPRECATED] This field is deprecated and will have no affect on the
448
+ # snippet.
449
+ # @!attribute [rw] return_snippet
450
+ # @return [::Boolean]
451
+ # If `true`, then return snippet. If no snippet can be generated, we
452
+ # return "No snippet is available for this page." A `snippet_status` with
453
+ # `SUCCESS` or `NO_SNIPPET_AVAILABLE` will also be returned.
218
454
  class SnippetSpec
219
455
  include ::Google::Protobuf::MessageExts
220
456
  extend ::Google::Protobuf::MessageExts::ClassMethods
221
457
  end
458
+
459
+ # A specification for configuring a summary returned in a search
460
+ # response.
461
+ # @!attribute [rw] summary_result_count
462
+ # @return [::Integer]
463
+ # The number of top results to generate the summary from. If the number
464
+ # of results returned is less than `summaryResultCount`, the summary is
465
+ # generated from all of the results.
466
+ #
467
+ # At most five results can be used to generate a summary.
468
+ # @!attribute [rw] include_citations
469
+ # @return [::Boolean]
470
+ # Specifies whether to include citations in the summary. The default
471
+ # value is `false`.
472
+ #
473
+ # When this field is set to `true`, summaries include in-line citation
474
+ # numbers.
475
+ #
476
+ # Example summary including citations:
477
+ #
478
+ # BigQuery is Google Cloud's fully managed and completely serverless
479
+ # enterprise data warehouse [1]. BigQuery supports all data types, works
480
+ # across clouds, and has built-in machine learning and business
481
+ # intelligence, all within a unified platform [2, 3].
482
+ #
483
+ # The citation numbers refer to the returned search results and are
484
+ # 1-indexed. For example, [1] means that the sentence is attributed to
485
+ # the first search result. [2, 3] means that the sentence is attributed
486
+ # to both the second and third search results.
487
+ # @!attribute [rw] ignore_adversarial_query
488
+ # @return [::Boolean]
489
+ # Specifies whether to filter out adversarial queries. The default value
490
+ # is `false`.
491
+ #
492
+ # Google employs search-query classification to detect adversarial
493
+ # queries. No summary is returned if the search query is classified as an
494
+ # adversarial query. For example, a user might ask a question regarding
495
+ # negative comments about the company or submit a query designed to
496
+ # generate unsafe, policy-violating output. If this field is set to
497
+ # `true`, we skip generating summaries for adversarial queries and return
498
+ # fallback messages instead.
499
+ # @!attribute [rw] ignore_non_summary_seeking_query
500
+ # @return [::Boolean]
501
+ # Specifies whether to filter out queries that are not summary-seeking.
502
+ # The default value is `false`.
503
+ #
504
+ # Google employs search-query classification to detect summary-seeking
505
+ # queries. No summary is returned if the search query is classified as a
506
+ # non-summary seeking query. For example, `why is the sky blue` and `Who
507
+ # is the best soccer player in the world?` are summary-seeking queries,
508
+ # but `SFO airport` and `world cup 2026` are not. They are most likely
509
+ # navigational queries. If this field is set to `true`, we skip
510
+ # generating summaries for non-summary seeking queries and return
511
+ # fallback messages instead.
512
+ # @!attribute [rw] language_code
513
+ # @return [::String]
514
+ # Language code for Summary. Use language tags defined by
515
+ # [BCP47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
516
+ class SummarySpec
517
+ include ::Google::Protobuf::MessageExts
518
+ extend ::Google::Protobuf::MessageExts::ClassMethods
519
+ end
222
520
  end
223
521
 
224
522
  # @!attribute [rw] key
@@ -246,6 +544,9 @@ module Google
246
544
  # @!attribute [rw] results
247
545
  # @return [::Array<::Google::Cloud::DiscoveryEngine::V1::SearchResponse::SearchResult>]
248
546
  # A list of matched documents. The order represents the ranking.
547
+ # @!attribute [rw] facets
548
+ # @return [::Array<::Google::Cloud::DiscoveryEngine::V1::SearchResponse::Facet>]
549
+ # Results of facets requested by user.
249
550
  # @!attribute [rw] total_size
250
551
  # @return [::Integer]
251
552
  # The estimated total count of matched items irrespective of pagination. The
@@ -259,6 +560,14 @@ module Google
259
560
  # {::Google::Cloud::DiscoveryEngine::V1::UserEvent UserEvent} logs resulting from
260
561
  # this search, which enables accurate attribution of search model
261
562
  # performance.
563
+ # @!attribute [rw] redirect_uri
564
+ # @return [::String]
565
+ # The URI of a customer-defined redirect page. If redirect action is
566
+ # triggered, no search is performed, and only
567
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchResponse#redirect_uri redirect_uri}
568
+ # and
569
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchResponse#attribution_token attribution_token}
570
+ # are set in the response.
262
571
  # @!attribute [rw] next_page_token
263
572
  # @return [::String]
264
573
  # A token that can be sent as
@@ -270,6 +579,15 @@ module Google
270
579
  # Contains the spell corrected query, if found. If the spell correction type
271
580
  # is AUTOMATIC, then the search results are based on corrected_query.
272
581
  # Otherwise the original query is used for search.
582
+ # @!attribute [rw] summary
583
+ # @return [::Google::Cloud::DiscoveryEngine::V1::SearchResponse::Summary]
584
+ # A summary as part of the search results.
585
+ # This field is only returned if
586
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::ContentSearchSpec#summary_spec SearchRequest.ContentSearchSpec.summary_spec}
587
+ # is set.
588
+ # @!attribute [rw] query_expansion_info
589
+ # @return [::Google::Cloud::DiscoveryEngine::V1::SearchResponse::QueryExpansionInfo]
590
+ # Query expansion information for the returned results.
273
591
  class SearchResponse
274
592
  include ::Google::Protobuf::MessageExts
275
593
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -287,6 +605,124 @@ module Google
287
605
  include ::Google::Protobuf::MessageExts
288
606
  extend ::Google::Protobuf::MessageExts::ClassMethods
289
607
  end
608
+
609
+ # A facet result.
610
+ # @!attribute [rw] key
611
+ # @return [::String]
612
+ # The key for this facet. E.g., "colors" or "price". It matches
613
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::FacetSpec::FacetKey#key SearchRequest.FacetSpec.FacetKey.key}.
614
+ # @!attribute [rw] values
615
+ # @return [::Array<::Google::Cloud::DiscoveryEngine::V1::SearchResponse::Facet::FacetValue>]
616
+ # The facet values for this field.
617
+ # @!attribute [rw] dynamic_facet
618
+ # @return [::Boolean]
619
+ # Whether the facet is dynamically generated.
620
+ class Facet
621
+ include ::Google::Protobuf::MessageExts
622
+ extend ::Google::Protobuf::MessageExts::ClassMethods
623
+
624
+ # A facet value which contains value names and their count.
625
+ # @!attribute [rw] value
626
+ # @return [::String]
627
+ # Text value of a facet, such as "Black" for facet "colors".
628
+ # @!attribute [rw] interval
629
+ # @return [::Google::Cloud::DiscoveryEngine::V1::Interval]
630
+ # Interval value for a facet, such as [10, 20) for facet "price". It
631
+ # matches
632
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::FacetSpec::FacetKey#intervals SearchRequest.FacetSpec.FacetKey.intervals}.
633
+ # @!attribute [rw] count
634
+ # @return [::Integer]
635
+ # Number of items that have this facet value.
636
+ class FacetValue
637
+ include ::Google::Protobuf::MessageExts
638
+ extend ::Google::Protobuf::MessageExts::ClassMethods
639
+ end
640
+ end
641
+
642
+ # Summary of the top N search result specified by the summary spec.
643
+ # @!attribute [rw] summary_text
644
+ # @return [::String]
645
+ # The summary content.
646
+ # @!attribute [rw] summary_skipped_reasons
647
+ # @return [::Array<::Google::Cloud::DiscoveryEngine::V1::SearchResponse::Summary::SummarySkippedReason>]
648
+ # Additional summary-skipped reasons. This provides the reason for ignored
649
+ # cases. If nothing is skipped, this field is not set.
650
+ # @!attribute [rw] safety_attributes
651
+ # @return [::Google::Cloud::DiscoveryEngine::V1::SearchResponse::Summary::SafetyAttributes]
652
+ # A collection of Safety Attribute categories and their associated
653
+ # confidence scores.
654
+ class Summary
655
+ include ::Google::Protobuf::MessageExts
656
+ extend ::Google::Protobuf::MessageExts::ClassMethods
657
+
658
+ # Safety Attribute categories and their associated confidence scores.
659
+ # @!attribute [rw] categories
660
+ # @return [::Array<::String>]
661
+ # The display names of Safety Attribute categories associated with the
662
+ # generated content. Order matches the Scores.
663
+ # @!attribute [rw] scores
664
+ # @return [::Array<::Float>]
665
+ # The confidence scores of the each category, higher
666
+ # value means higher confidence. Order matches the Categories.
667
+ class SafetyAttributes
668
+ include ::Google::Protobuf::MessageExts
669
+ extend ::Google::Protobuf::MessageExts::ClassMethods
670
+ end
671
+
672
+ # An Enum for summary-skipped reasons.
673
+ module SummarySkippedReason
674
+ # Default value. The summary skipped reason is not specified.
675
+ SUMMARY_SKIPPED_REASON_UNSPECIFIED = 0
676
+
677
+ # The adversarial query ignored case.
678
+ #
679
+ # Only populated when
680
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::ContentSearchSpec::SummarySpec#ignore_adversarial_query SummarySpec.ignore_adversarial_query}
681
+ # is set to `true`.
682
+ ADVERSARIAL_QUERY_IGNORED = 1
683
+
684
+ # The non-summary seeking query ignored case.
685
+ #
686
+ # Only populated when
687
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::ContentSearchSpec::SummarySpec#ignore_non_summary_seeking_query SummarySpec.ignore_non_summary_seeking_query}
688
+ # is set to `true`.
689
+ NON_SUMMARY_SEEKING_QUERY_IGNORED = 2
690
+
691
+ # The out-of-domain query ignored case.
692
+ #
693
+ # Google skips the summary if there are no high-relevance search results.
694
+ # For example, the data store contains facts about company A but the
695
+ # user query is asking questions about company B.
696
+ OUT_OF_DOMAIN_QUERY_IGNORED = 3
697
+
698
+ # The potential policy violation case.
699
+ #
700
+ # Google skips the summary if there is a potential policy violation
701
+ # detected. This includes content that may be violent or toxic.
702
+ POTENTIAL_POLICY_VIOLATION = 4
703
+
704
+ # The LLM addon not enabled case.
705
+ #
706
+ # Google skips the summary if the LLM addon is not enabled.
707
+ LLM_ADDON_NOT_ENABLED = 5
708
+ end
709
+ end
710
+
711
+ # Information describing query expansion including whether expansion has
712
+ # occurred.
713
+ # @!attribute [rw] expanded_query
714
+ # @return [::Boolean]
715
+ # Bool describing whether query expansion has occurred.
716
+ # @!attribute [rw] pinned_result_count
717
+ # @return [::Integer]
718
+ # Number of pinned results. This field will only be set when expansion
719
+ # happens and
720
+ # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest::QueryExpansionSpec#pin_unexpanded_results SearchRequest.QueryExpansionSpec.pin_unexpanded_results}
721
+ # is set to true.
722
+ class QueryExpansionInfo
723
+ include ::Google::Protobuf::MessageExts
724
+ extend ::Google::Protobuf::MessageExts::ClassMethods
725
+ end
290
726
  end
291
727
  end
292
728
  end