1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812
|
<html><body>
<style>
body, h1, h2, h3, div, span, p, pre, a {
margin: 0;
padding: 0;
border: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
body {
font-size: 13px;
padding: 1em;
}
h1 {
font-size: 26px;
margin-bottom: 1em;
}
h2 {
font-size: 24px;
margin-bottom: 1em;
}
h3 {
font-size: 20px;
margin-bottom: 1em;
margin-top: 1em;
}
pre, code {
line-height: 1.5;
font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}
pre {
margin-top: 0.5em;
}
h1, h2, h3, p {
font-family: Arial, sans serif;
}
h1, h2, h3 {
border-bottom: solid #CCC 1px;
}
.toc_element {
margin-top: 0.5em;
}
.firstline {
margin-left: 2 em;
}
.method {
margin-top: 1em;
border: solid 1px #CCC;
padding: 1em;
background: #EEE;
}
.details {
font-weight: bold;
font-size: 14px;
}
</style>
<h1><a href="retail_v2alpha.html">Vertex AI Search for commerce API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a> . <a href="retail_v2alpha.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2alpha.projects.locations.catalogs.controls.html">controls</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
<code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
<code><a href="#create">create(parent, body=None, controlId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a Control. If the Control to create already exists, an ALREADY_EXISTS error is returned.</p>
<p class="toc_element">
<code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a Control. If the Control to delete does not exist, a NOT_FOUND error is returned.</p>
<p class="toc_element">
<code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a Control.</p>
<p class="toc_element">
<code><a href="#list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all Controls by their parent Catalog.</p>
<p class="toc_element">
<code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
<code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a Control. Control cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned. If the Control to update does not exist, a NOT_FOUND error is returned.</p>
<h3>Method Details</h3>
<div class="method">
<code class="details" id="close">close()</code>
<pre>Close httplib2 connections.</pre>
</div>
<div class="method">
<code class="details" id="create">create(parent, body=None, controlId=None, x__xgafv=None)</code>
<pre>Creates a Control. If the Control to create already exists, an ALREADY_EXISTS error is returned.
Args:
parent: string, Required. Full resource name of parent catalog. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` (required)
body: object, The request body.
The object takes the form of:
{ # Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.
"associatedServingConfigIds": [ # Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.
"A String",
],
"displayName": "A String", # Required. The human readable control display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is thrown.
"name": "A String", # Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`
"rule": { # A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH. # A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost "gShoe" when query full matches "Running Shoes".
"boostAction": { # A boost action to apply to results matching condition specified above. # A boost action.
"boost": 3.14, # Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.
"productsFilter": "A String", # The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"condition": { # Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted. # Required. The condition that triggers the rule. If the condition is empty, the rule will always apply.
"activeTimeRange": [ # Range of time(s) specifying when Condition is active. Condition true if any time range matches.
{ # Used for time-dependent conditions. Example: Want to have rule applied for week long sale.
"endTime": "A String", # End of time range. Range is inclusive.
"startTime": "A String", # Start of time range. Range is inclusive.
},
],
"pageCategories": [ # Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;
"A String",
],
"queryTerms": [ # A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).
{ # Query terms that we want to match on.
"fullMatch": True or False, # Whether this is supposed to be a full or partial match.
"value": "A String", # The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms and not allowed for a partial match.
},
],
},
"doNotAssociateAction": { # Prevents `query_term` from being associated with specified terms during search. Example: Don't associate "gShoe" and "cheap". # Prevents term from being associated with other terms.
"doNotAssociateTerms": [ # Cannot contain duplicates or the query term. Can specify up to 100 terms.
"A String",
],
"queryTerms": [ # Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms.
"A String",
],
"terms": [ # Will be [deprecated = true] post migration;
"A String",
],
},
"filterAction": { # * Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter. # Filters results.
"filter": "A String", # A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"forceReturnFacetAction": { # Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is "size" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key "size" is not already in the top 8 slots, then the facet "size" will appear at a position close to 8. b) The facet key "size" in among the top 8 positions in the request, then it will stay at its current rank. # Force returns an attribute as a facet in the request.
"facetPositionAdjustments": [ # Each instance corresponds to a force return attribute for the given condition. There can't be more 15 instances here.
{ # Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.
"attributeName": "A String", # The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.
"position": 42, # This is the position in the request as explained above. It should be strictly positive be at most 100.
},
],
},
"ignoreAction": { # Prevents a term in the query from being used in search. Example: Don't search for "shoddy". # Ignores specific terms from query during search.
"ignoreTerms": [ # Terms to ignore in the search query.
"A String",
],
},
"onewaySynonymsAction": { # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "shoes" will not use a synonym of "sneakers". # Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term.
"onewayTerms": [ # Will be [deprecated = true] post migration;
"A String",
],
"queryTerms": [ # Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms.
"A String",
],
"synonyms": [ # Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms.
"A String",
],
},
"pinAction": { # Pins one or more specified products to a specific position in the results. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: mapping of `[pin_position, product_id]` pairs (pin position uses 1-based indexing). * Action Result: Will pin products with matching ids to the position specified in the final result order. Example: Suppose the query is `shoes`, the Condition.query_terms is `shoes` and the pin_map has `{1, "pid1"}`, then product with `pid1` will be pinned to the top position in the final results. If multiple PinActions are matched to a single request the actions will be processed from most to least recently updated. Pins to positions larger than the max allowed page size of 120 are not allowed. # Pins one or more specified products to a specific position in the results.
"pinMap": { # Required. A map of positions to product_ids. Partial matches per action are allowed, if a certain position in the map is already filled that `[position, product_id]` pair will be ignored but the rest may still be applied. This case will only occur if multiple pin actions are matched to a single request, as the map guarantees that pin positions are unique within the same action. Duplicate product_ids are not permitted within a single pin map. The max size of this map is 120, equivalent to the max [request page size](https://cloud.google.com/retail/docs/reference/rest/v2/projects.locations.catalogs.placements/search#request-body).
"a_key": "A String",
},
},
"redirectAction": { # Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri. # Redirects a shopper to a specific page.
"redirectUri": "A String", # URL must have length equal or less than 2000 characters.
},
"removeFacetAction": { # Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes" and the attribute name "size", then facet key "size" will be removed from the request (if it is present). # Remove an attribute as a facet in the request (if present).
"attributeNames": [ # The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.
"A String",
],
},
"replacementAction": { # Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace "gShoe" with "google shoe". # Replaces specific terms in the query.
"queryTerms": [ # Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms.
"A String",
],
"replacementTerm": "A String", # Term that will be used for replacement.
"term": "A String", # Will be [deprecated = true] post migration;
},
"twowaySynonymsAction": { # Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of "sneakers" and "shoes": * "sneakers" will use a synonym of "shoes". * "shoes" will use a synonym of "sneakers". # Treats a set of terms as synonyms of one another.
"synonyms": [ # Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms.
"A String",
],
},
},
"searchSolutionUseCase": [ # Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.
"A String",
],
"solutionTypes": [ # Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.
"A String",
],
}
controlId: string, Required. The ID to use for the Control, which will become the final component of the Control's resource name. This value should be 4-63 characters, and valid characters are /a-z-_/.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.
"associatedServingConfigIds": [ # Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.
"A String",
],
"displayName": "A String", # Required. The human readable control display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is thrown.
"name": "A String", # Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`
"rule": { # A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH. # A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost "gShoe" when query full matches "Running Shoes".
"boostAction": { # A boost action to apply to results matching condition specified above. # A boost action.
"boost": 3.14, # Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.
"productsFilter": "A String", # The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"condition": { # Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted. # Required. The condition that triggers the rule. If the condition is empty, the rule will always apply.
"activeTimeRange": [ # Range of time(s) specifying when Condition is active. Condition true if any time range matches.
{ # Used for time-dependent conditions. Example: Want to have rule applied for week long sale.
"endTime": "A String", # End of time range. Range is inclusive.
"startTime": "A String", # Start of time range. Range is inclusive.
},
],
"pageCategories": [ # Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;
"A String",
],
"queryTerms": [ # A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).
{ # Query terms that we want to match on.
"fullMatch": True or False, # Whether this is supposed to be a full or partial match.
"value": "A String", # The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms and not allowed for a partial match.
},
],
},
"doNotAssociateAction": { # Prevents `query_term` from being associated with specified terms during search. Example: Don't associate "gShoe" and "cheap". # Prevents term from being associated with other terms.
"doNotAssociateTerms": [ # Cannot contain duplicates or the query term. Can specify up to 100 terms.
"A String",
],
"queryTerms": [ # Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms.
"A String",
],
"terms": [ # Will be [deprecated = true] post migration;
"A String",
],
},
"filterAction": { # * Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter. # Filters results.
"filter": "A String", # A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"forceReturnFacetAction": { # Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is "size" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key "size" is not already in the top 8 slots, then the facet "size" will appear at a position close to 8. b) The facet key "size" in among the top 8 positions in the request, then it will stay at its current rank. # Force returns an attribute as a facet in the request.
"facetPositionAdjustments": [ # Each instance corresponds to a force return attribute for the given condition. There can't be more 15 instances here.
{ # Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.
"attributeName": "A String", # The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.
"position": 42, # This is the position in the request as explained above. It should be strictly positive be at most 100.
},
],
},
"ignoreAction": { # Prevents a term in the query from being used in search. Example: Don't search for "shoddy". # Ignores specific terms from query during search.
"ignoreTerms": [ # Terms to ignore in the search query.
"A String",
],
},
"onewaySynonymsAction": { # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "shoes" will not use a synonym of "sneakers". # Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term.
"onewayTerms": [ # Will be [deprecated = true] post migration;
"A String",
],
"queryTerms": [ # Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms.
"A String",
],
"synonyms": [ # Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms.
"A String",
],
},
"pinAction": { # Pins one or more specified products to a specific position in the results. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: mapping of `[pin_position, product_id]` pairs (pin position uses 1-based indexing). * Action Result: Will pin products with matching ids to the position specified in the final result order. Example: Suppose the query is `shoes`, the Condition.query_terms is `shoes` and the pin_map has `{1, "pid1"}`, then product with `pid1` will be pinned to the top position in the final results. If multiple PinActions are matched to a single request the actions will be processed from most to least recently updated. Pins to positions larger than the max allowed page size of 120 are not allowed. # Pins one or more specified products to a specific position in the results.
"pinMap": { # Required. A map of positions to product_ids. Partial matches per action are allowed, if a certain position in the map is already filled that `[position, product_id]` pair will be ignored but the rest may still be applied. This case will only occur if multiple pin actions are matched to a single request, as the map guarantees that pin positions are unique within the same action. Duplicate product_ids are not permitted within a single pin map. The max size of this map is 120, equivalent to the max [request page size](https://cloud.google.com/retail/docs/reference/rest/v2/projects.locations.catalogs.placements/search#request-body).
"a_key": "A String",
},
},
"redirectAction": { # Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri. # Redirects a shopper to a specific page.
"redirectUri": "A String", # URL must have length equal or less than 2000 characters.
},
"removeFacetAction": { # Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes" and the attribute name "size", then facet key "size" will be removed from the request (if it is present). # Remove an attribute as a facet in the request (if present).
"attributeNames": [ # The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.
"A String",
],
},
"replacementAction": { # Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace "gShoe" with "google shoe". # Replaces specific terms in the query.
"queryTerms": [ # Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms.
"A String",
],
"replacementTerm": "A String", # Term that will be used for replacement.
"term": "A String", # Will be [deprecated = true] post migration;
},
"twowaySynonymsAction": { # Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of "sneakers" and "shoes": * "sneakers" will use a synonym of "shoes". * "shoes" will use a synonym of "sneakers". # Treats a set of terms as synonyms of one another.
"synonyms": [ # Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms.
"A String",
],
},
},
"searchSolutionUseCase": [ # Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.
"A String",
],
"solutionTypes": [ # Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.
"A String",
],
}</pre>
</div>
<div class="method">
<code class="details" id="delete">delete(name, x__xgafv=None)</code>
<pre>Deletes a Control. If the Control to delete does not exist, a NOT_FOUND error is returned.
Args:
name: string, Required. The resource name of the Control to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}` (required)
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
}</pre>
</div>
<div class="method">
<code class="details" id="get">get(name, x__xgafv=None)</code>
<pre>Gets a Control.
Args:
name: string, Required. The resource name of the Control to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}` (required)
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.
"associatedServingConfigIds": [ # Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.
"A String",
],
"displayName": "A String", # Required. The human readable control display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is thrown.
"name": "A String", # Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`
"rule": { # A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH. # A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost "gShoe" when query full matches "Running Shoes".
"boostAction": { # A boost action to apply to results matching condition specified above. # A boost action.
"boost": 3.14, # Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.
"productsFilter": "A String", # The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"condition": { # Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted. # Required. The condition that triggers the rule. If the condition is empty, the rule will always apply.
"activeTimeRange": [ # Range of time(s) specifying when Condition is active. Condition true if any time range matches.
{ # Used for time-dependent conditions. Example: Want to have rule applied for week long sale.
"endTime": "A String", # End of time range. Range is inclusive.
"startTime": "A String", # Start of time range. Range is inclusive.
},
],
"pageCategories": [ # Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;
"A String",
],
"queryTerms": [ # A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).
{ # Query terms that we want to match on.
"fullMatch": True or False, # Whether this is supposed to be a full or partial match.
"value": "A String", # The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms and not allowed for a partial match.
},
],
},
"doNotAssociateAction": { # Prevents `query_term` from being associated with specified terms during search. Example: Don't associate "gShoe" and "cheap". # Prevents term from being associated with other terms.
"doNotAssociateTerms": [ # Cannot contain duplicates or the query term. Can specify up to 100 terms.
"A String",
],
"queryTerms": [ # Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms.
"A String",
],
"terms": [ # Will be [deprecated = true] post migration;
"A String",
],
},
"filterAction": { # * Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter. # Filters results.
"filter": "A String", # A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"forceReturnFacetAction": { # Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is "size" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key "size" is not already in the top 8 slots, then the facet "size" will appear at a position close to 8. b) The facet key "size" in among the top 8 positions in the request, then it will stay at its current rank. # Force returns an attribute as a facet in the request.
"facetPositionAdjustments": [ # Each instance corresponds to a force return attribute for the given condition. There can't be more 15 instances here.
{ # Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.
"attributeName": "A String", # The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.
"position": 42, # This is the position in the request as explained above. It should be strictly positive be at most 100.
},
],
},
"ignoreAction": { # Prevents a term in the query from being used in search. Example: Don't search for "shoddy". # Ignores specific terms from query during search.
"ignoreTerms": [ # Terms to ignore in the search query.
"A String",
],
},
"onewaySynonymsAction": { # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "shoes" will not use a synonym of "sneakers". # Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term.
"onewayTerms": [ # Will be [deprecated = true] post migration;
"A String",
],
"queryTerms": [ # Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms.
"A String",
],
"synonyms": [ # Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms.
"A String",
],
},
"pinAction": { # Pins one or more specified products to a specific position in the results. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: mapping of `[pin_position, product_id]` pairs (pin position uses 1-based indexing). * Action Result: Will pin products with matching ids to the position specified in the final result order. Example: Suppose the query is `shoes`, the Condition.query_terms is `shoes` and the pin_map has `{1, "pid1"}`, then product with `pid1` will be pinned to the top position in the final results. If multiple PinActions are matched to a single request the actions will be processed from most to least recently updated. Pins to positions larger than the max allowed page size of 120 are not allowed. # Pins one or more specified products to a specific position in the results.
"pinMap": { # Required. A map of positions to product_ids. Partial matches per action are allowed, if a certain position in the map is already filled that `[position, product_id]` pair will be ignored but the rest may still be applied. This case will only occur if multiple pin actions are matched to a single request, as the map guarantees that pin positions are unique within the same action. Duplicate product_ids are not permitted within a single pin map. The max size of this map is 120, equivalent to the max [request page size](https://cloud.google.com/retail/docs/reference/rest/v2/projects.locations.catalogs.placements/search#request-body).
"a_key": "A String",
},
},
"redirectAction": { # Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri. # Redirects a shopper to a specific page.
"redirectUri": "A String", # URL must have length equal or less than 2000 characters.
},
"removeFacetAction": { # Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes" and the attribute name "size", then facet key "size" will be removed from the request (if it is present). # Remove an attribute as a facet in the request (if present).
"attributeNames": [ # The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.
"A String",
],
},
"replacementAction": { # Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace "gShoe" with "google shoe". # Replaces specific terms in the query.
"queryTerms": [ # Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms.
"A String",
],
"replacementTerm": "A String", # Term that will be used for replacement.
"term": "A String", # Will be [deprecated = true] post migration;
},
"twowaySynonymsAction": { # Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of "sneakers" and "shoes": * "sneakers" will use a synonym of "shoes". * "shoes" will use a synonym of "sneakers". # Treats a set of terms as synonyms of one another.
"synonyms": [ # Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms.
"A String",
],
},
},
"searchSolutionUseCase": [ # Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.
"A String",
],
"solutionTypes": [ # Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.
"A String",
],
}</pre>
</div>
<div class="method">
<code class="details" id="list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
<pre>Lists all Controls by their parent Catalog.
Args:
parent: string, Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` (required)
filter: string, Optional. A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List controls that are used in a single ServingConfig: 'serving_config = "boosted_home_page_cvr"'
pageSize: integer, Optional. Maximum number of results to return. If unspecified, defaults to 50. Max allowed value is 1000.
pageToken: string, Optional. A page token, received from a previous `ListControls` call. Provide this to retrieve the subsequent page.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response for ListControls method.
"controls": [ # All the Controls for a given catalog.
{ # Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.
"associatedServingConfigIds": [ # Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.
"A String",
],
"displayName": "A String", # Required. The human readable control display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is thrown.
"name": "A String", # Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`
"rule": { # A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH. # A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost "gShoe" when query full matches "Running Shoes".
"boostAction": { # A boost action to apply to results matching condition specified above. # A boost action.
"boost": 3.14, # Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.
"productsFilter": "A String", # The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"condition": { # Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted. # Required. The condition that triggers the rule. If the condition is empty, the rule will always apply.
"activeTimeRange": [ # Range of time(s) specifying when Condition is active. Condition true if any time range matches.
{ # Used for time-dependent conditions. Example: Want to have rule applied for week long sale.
"endTime": "A String", # End of time range. Range is inclusive.
"startTime": "A String", # Start of time range. Range is inclusive.
},
],
"pageCategories": [ # Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;
"A String",
],
"queryTerms": [ # A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).
{ # Query terms that we want to match on.
"fullMatch": True or False, # Whether this is supposed to be a full or partial match.
"value": "A String", # The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms and not allowed for a partial match.
},
],
},
"doNotAssociateAction": { # Prevents `query_term` from being associated with specified terms during search. Example: Don't associate "gShoe" and "cheap". # Prevents term from being associated with other terms.
"doNotAssociateTerms": [ # Cannot contain duplicates or the query term. Can specify up to 100 terms.
"A String",
],
"queryTerms": [ # Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms.
"A String",
],
"terms": [ # Will be [deprecated = true] post migration;
"A String",
],
},
"filterAction": { # * Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter. # Filters results.
"filter": "A String", # A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"forceReturnFacetAction": { # Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is "size" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key "size" is not already in the top 8 slots, then the facet "size" will appear at a position close to 8. b) The facet key "size" in among the top 8 positions in the request, then it will stay at its current rank. # Force returns an attribute as a facet in the request.
"facetPositionAdjustments": [ # Each instance corresponds to a force return attribute for the given condition. There can't be more 15 instances here.
{ # Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.
"attributeName": "A String", # The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.
"position": 42, # This is the position in the request as explained above. It should be strictly positive be at most 100.
},
],
},
"ignoreAction": { # Prevents a term in the query from being used in search. Example: Don't search for "shoddy". # Ignores specific terms from query during search.
"ignoreTerms": [ # Terms to ignore in the search query.
"A String",
],
},
"onewaySynonymsAction": { # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "shoes" will not use a synonym of "sneakers". # Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term.
"onewayTerms": [ # Will be [deprecated = true] post migration;
"A String",
],
"queryTerms": [ # Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms.
"A String",
],
"synonyms": [ # Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms.
"A String",
],
},
"pinAction": { # Pins one or more specified products to a specific position in the results. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: mapping of `[pin_position, product_id]` pairs (pin position uses 1-based indexing). * Action Result: Will pin products with matching ids to the position specified in the final result order. Example: Suppose the query is `shoes`, the Condition.query_terms is `shoes` and the pin_map has `{1, "pid1"}`, then product with `pid1` will be pinned to the top position in the final results. If multiple PinActions are matched to a single request the actions will be processed from most to least recently updated. Pins to positions larger than the max allowed page size of 120 are not allowed. # Pins one or more specified products to a specific position in the results.
"pinMap": { # Required. A map of positions to product_ids. Partial matches per action are allowed, if a certain position in the map is already filled that `[position, product_id]` pair will be ignored but the rest may still be applied. This case will only occur if multiple pin actions are matched to a single request, as the map guarantees that pin positions are unique within the same action. Duplicate product_ids are not permitted within a single pin map. The max size of this map is 120, equivalent to the max [request page size](https://cloud.google.com/retail/docs/reference/rest/v2/projects.locations.catalogs.placements/search#request-body).
"a_key": "A String",
},
},
"redirectAction": { # Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri. # Redirects a shopper to a specific page.
"redirectUri": "A String", # URL must have length equal or less than 2000 characters.
},
"removeFacetAction": { # Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes" and the attribute name "size", then facet key "size" will be removed from the request (if it is present). # Remove an attribute as a facet in the request (if present).
"attributeNames": [ # The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.
"A String",
],
},
"replacementAction": { # Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace "gShoe" with "google shoe". # Replaces specific terms in the query.
"queryTerms": [ # Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms.
"A String",
],
"replacementTerm": "A String", # Term that will be used for replacement.
"term": "A String", # Will be [deprecated = true] post migration;
},
"twowaySynonymsAction": { # Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of "sneakers" and "shoes": * "sneakers" will use a synonym of "shoes". * "shoes" will use a synonym of "sneakers". # Treats a set of terms as synonyms of one another.
"synonyms": [ # Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms.
"A String",
],
},
},
"searchSolutionUseCase": [ # Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.
"A String",
],
"solutionTypes": [ # Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.
"A String",
],
},
],
"nextPageToken": "A String", # Pagination token, if not returned indicates the last page.
}</pre>
</div>
<div class="method">
<code class="details" id="list_next">list_next()</code>
<pre>Retrieves the next page of results.
Args:
previous_request: The request for the previous page. (required)
previous_response: The response from the request for the previous page. (required)
Returns:
A request object that you can call 'execute()' on to request the next
page. Returns None if there are no more items in the collection.
</pre>
</div>
<div class="method">
<code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
<pre>Updates a Control. Control cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned. If the Control to update does not exist, a NOT_FOUND error is returned.
Args:
name: string, Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*` (required)
body: object, The request body.
The object takes the form of:
{ # Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.
"associatedServingConfigIds": [ # Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.
"A String",
],
"displayName": "A String", # Required. The human readable control display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is thrown.
"name": "A String", # Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`
"rule": { # A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH. # A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost "gShoe" when query full matches "Running Shoes".
"boostAction": { # A boost action to apply to results matching condition specified above. # A boost action.
"boost": 3.14, # Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.
"productsFilter": "A String", # The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"condition": { # Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted. # Required. The condition that triggers the rule. If the condition is empty, the rule will always apply.
"activeTimeRange": [ # Range of time(s) specifying when Condition is active. Condition true if any time range matches.
{ # Used for time-dependent conditions. Example: Want to have rule applied for week long sale.
"endTime": "A String", # End of time range. Range is inclusive.
"startTime": "A String", # Start of time range. Range is inclusive.
},
],
"pageCategories": [ # Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;
"A String",
],
"queryTerms": [ # A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).
{ # Query terms that we want to match on.
"fullMatch": True or False, # Whether this is supposed to be a full or partial match.
"value": "A String", # The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms and not allowed for a partial match.
},
],
},
"doNotAssociateAction": { # Prevents `query_term` from being associated with specified terms during search. Example: Don't associate "gShoe" and "cheap". # Prevents term from being associated with other terms.
"doNotAssociateTerms": [ # Cannot contain duplicates or the query term. Can specify up to 100 terms.
"A String",
],
"queryTerms": [ # Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms.
"A String",
],
"terms": [ # Will be [deprecated = true] post migration;
"A String",
],
},
"filterAction": { # * Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter. # Filters results.
"filter": "A String", # A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"forceReturnFacetAction": { # Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is "size" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key "size" is not already in the top 8 slots, then the facet "size" will appear at a position close to 8. b) The facet key "size" in among the top 8 positions in the request, then it will stay at its current rank. # Force returns an attribute as a facet in the request.
"facetPositionAdjustments": [ # Each instance corresponds to a force return attribute for the given condition. There can't be more 15 instances here.
{ # Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.
"attributeName": "A String", # The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.
"position": 42, # This is the position in the request as explained above. It should be strictly positive be at most 100.
},
],
},
"ignoreAction": { # Prevents a term in the query from being used in search. Example: Don't search for "shoddy". # Ignores specific terms from query during search.
"ignoreTerms": [ # Terms to ignore in the search query.
"A String",
],
},
"onewaySynonymsAction": { # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "shoes" will not use a synonym of "sneakers". # Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term.
"onewayTerms": [ # Will be [deprecated = true] post migration;
"A String",
],
"queryTerms": [ # Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms.
"A String",
],
"synonyms": [ # Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms.
"A String",
],
},
"pinAction": { # Pins one or more specified products to a specific position in the results. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: mapping of `[pin_position, product_id]` pairs (pin position uses 1-based indexing). * Action Result: Will pin products with matching ids to the position specified in the final result order. Example: Suppose the query is `shoes`, the Condition.query_terms is `shoes` and the pin_map has `{1, "pid1"}`, then product with `pid1` will be pinned to the top position in the final results. If multiple PinActions are matched to a single request the actions will be processed from most to least recently updated. Pins to positions larger than the max allowed page size of 120 are not allowed. # Pins one or more specified products to a specific position in the results.
"pinMap": { # Required. A map of positions to product_ids. Partial matches per action are allowed, if a certain position in the map is already filled that `[position, product_id]` pair will be ignored but the rest may still be applied. This case will only occur if multiple pin actions are matched to a single request, as the map guarantees that pin positions are unique within the same action. Duplicate product_ids are not permitted within a single pin map. The max size of this map is 120, equivalent to the max [request page size](https://cloud.google.com/retail/docs/reference/rest/v2/projects.locations.catalogs.placements/search#request-body).
"a_key": "A String",
},
},
"redirectAction": { # Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri. # Redirects a shopper to a specific page.
"redirectUri": "A String", # URL must have length equal or less than 2000 characters.
},
"removeFacetAction": { # Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes" and the attribute name "size", then facet key "size" will be removed from the request (if it is present). # Remove an attribute as a facet in the request (if present).
"attributeNames": [ # The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.
"A String",
],
},
"replacementAction": { # Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace "gShoe" with "google shoe". # Replaces specific terms in the query.
"queryTerms": [ # Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms.
"A String",
],
"replacementTerm": "A String", # Term that will be used for replacement.
"term": "A String", # Will be [deprecated = true] post migration;
},
"twowaySynonymsAction": { # Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of "sneakers" and "shoes": * "sneakers" will use a synonym of "shoes". * "shoes" will use a synonym of "sneakers". # Treats a set of terms as synonyms of one another.
"synonyms": [ # Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms.
"A String",
],
},
},
"searchSolutionUseCase": [ # Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.
"A String",
],
"solutionTypes": [ # Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.
"A String",
],
}
updateMask: string, Indicates which fields in the provided Control to update. The following are NOT supported: * Control.name If not set or empty, all supported fields are updated.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.
"associatedServingConfigIds": [ # Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.
"A String",
],
"displayName": "A String", # Required. The human readable control display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is thrown.
"name": "A String", # Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`
"rule": { # A rule is a condition-action pair * A condition defines when a rule is to be triggered. * An action specifies what occurs on that trigger. Currently rules only work for controls with SOLUTION_TYPE_SEARCH. # A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost "gShoe" when query full matches "Running Shoes".
"boostAction": { # A boost action to apply to results matching condition specified above. # A boost action.
"boost": 3.14, # Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.
"productsFilter": "A String", # The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"condition": { # Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted. # Required. The condition that triggers the rule. If the condition is empty, the rule will always apply.
"activeTimeRange": [ # Range of time(s) specifying when Condition is active. Condition true if any time range matches.
{ # Used for time-dependent conditions. Example: Want to have rule applied for week long sale.
"endTime": "A String", # End of time range. Range is inclusive.
"startTime": "A String", # Start of time range. Range is inclusive.
},
],
"pageCategories": [ # Used to support browse uses cases. A list (up to 10 entries) of categories or departments. The format should be the same as UserEvent.page_categories;
"A String",
],
"queryTerms": [ # A list (up to 10 entries) of terms to match the query on. If not specified, match all queries. If many query terms are specified, the condition is matched if any of the terms is a match (i.e. using the OR operator).
{ # Query terms that we want to match on.
"fullMatch": True or False, # Whether this is supposed to be a full or partial match.
"value": "A String", # The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, "a b c" is 3 terms and allowed, but " a b c d" is 4 terms and not allowed for a partial match.
},
],
},
"doNotAssociateAction": { # Prevents `query_term` from being associated with specified terms during search. Example: Don't associate "gShoe" and "cheap". # Prevents term from being associated with other terms.
"doNotAssociateTerms": [ # Cannot contain duplicates or the query term. Can specify up to 100 terms.
"A String",
],
"queryTerms": [ # Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms.
"A String",
],
"terms": [ # Will be [deprecated = true] post migration;
"A String",
],
},
"filterAction": { # * Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter. # Filters results.
"filter": "A String", # A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID "product_1" or "product_2", and color "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: ANY("Red", "Blue")) *
},
"forceReturnFacetAction": { # Force returns an attribute/facet in the request around a certain position or above. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Inputs: attribute name, position * Action Result: Will force return a facet key around a certain position or above if the condition is satisfied. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes", the ForceReturnFacetAction.FacetPositionAdjustment.attribute_name is "size" and the ForceReturnFacetAction.FacetPositionAdjustment.position is 8. Two cases: a) The facet key "size" is not already in the top 8 slots, then the facet "size" will appear at a position close to 8. b) The facet key "size" in among the top 8 positions in the request, then it will stay at its current rank. # Force returns an attribute as a facet in the request.
"facetPositionAdjustments": [ # Each instance corresponds to a force return attribute for the given condition. There can't be more 15 instances here.
{ # Each facet position adjustment consists of a single attribute name (i.e. facet key) along with a specified position.
"attributeName": "A String", # The attribute name to force return as a facet. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters long.
"position": 42, # This is the position in the request as explained above. It should be strictly positive be at most 100.
},
],
},
"ignoreAction": { # Prevents a term in the query from being used in search. Example: Don't search for "shoddy". # Ignores specific terms from query during search.
"ignoreTerms": [ # Terms to ignore in the search query.
"A String",
],
},
"onewaySynonymsAction": { # Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: "sneakers" will use a synonym of "shoes". "shoes" will not use a synonym of "sneakers". # Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term.
"onewayTerms": [ # Will be [deprecated = true] post migration;
"A String",
],
"queryTerms": [ # Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms.
"A String",
],
"synonyms": [ # Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms.
"A String",
],
},
"pinAction": { # Pins one or more specified products to a specific position in the results. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: mapping of `[pin_position, product_id]` pairs (pin position uses 1-based indexing). * Action Result: Will pin products with matching ids to the position specified in the final result order. Example: Suppose the query is `shoes`, the Condition.query_terms is `shoes` and the pin_map has `{1, "pid1"}`, then product with `pid1` will be pinned to the top position in the final results. If multiple PinActions are matched to a single request the actions will be processed from most to least recently updated. Pins to positions larger than the max allowed page size of 120 are not allowed. # Pins one or more specified products to a specific position in the results.
"pinMap": { # Required. A map of positions to product_ids. Partial matches per action are allowed, if a certain position in the map is already filled that `[position, product_id]` pair will be ignored but the rest may still be applied. This case will only occur if multiple pin actions are matched to a single request, as the map guarantees that pin positions are unique within the same action. Duplicate product_ids are not permitted within a single pin map. The max size of this map is 120, equivalent to the max [request page size](https://cloud.google.com/retail/docs/reference/rest/v2/projects.locations.catalogs.placements/search#request-body).
"a_key": "A String",
},
},
"redirectAction": { # Redirects a shopper to a specific page. * Rule Condition: Must specify Condition.query_terms. * Action Input: Request Query * Action Result: Redirects shopper to provided uri. # Redirects a shopper to a specific page.
"redirectUri": "A String", # URL must have length equal or less than 2000 characters.
},
"removeFacetAction": { # Removes an attribute/facet in the request if is present. * Rule Condition: Must specify non-empty Condition.query_terms (for search only) or Condition.page_categories (for browse only), but can't specify both. * Action Input: attribute name * Action Result: Will remove the attribute (as a facet) from the request if it is present. Example: Suppose the query is "shoes", the Condition.query_terms is "shoes" and the attribute name "size", then facet key "size" will be removed from the request (if it is present). # Remove an attribute as a facet in the request (if present).
"attributeNames": [ # The attribute names (i.e. facet keys) to remove from the dynamic facets (if present in the request). There can't be more 3 attribute names. Each attribute name should be a valid attribute name, be non-empty and contain at most 80 characters.
"A String",
],
},
"replacementAction": { # Replaces a term in the query. Multiple replacement candidates can be specified. All `query_terms` will be replaced with the replacement term. Example: Replace "gShoe" with "google shoe". # Replaces specific terms in the query.
"queryTerms": [ # Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms.
"A String",
],
"replacementTerm": "A String", # Term that will be used for replacement.
"term": "A String", # Will be [deprecated = true] post migration;
},
"twowaySynonymsAction": { # Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of "sneakers" and "shoes": * "sneakers" will use a synonym of "shoes". * "shoes" will use a synonym of "sneakers". # Treats a set of terms as synonyms of one another.
"synonyms": [ # Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms.
"A String",
],
},
},
"searchSolutionUseCase": [ # Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.
"A String",
],
"solutionTypes": [ # Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.
"A String",
],
}</pre>
</div>
</body></html>
|