|
| 1 | +# Copyright 2019 Google LLC |
| 2 | +# |
| 3 | +# Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | +# you may not use this file except in compliance with the License. |
| 5 | +# You may obtain a copy of the License at |
| 6 | +# |
| 7 | +# http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | +# |
| 9 | +# Unless required by applicable law or agreed to in writing, software |
| 10 | +# distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | +# See the License for the specific language governing permissions and |
| 13 | +# limitations under the License. |
| 14 | + |
| 15 | +# NOTE: This file is auto generated by the elixir code generator program. |
| 16 | +# Do not edit this file manually. |
| 17 | + |
| 18 | +defmodule GoogleApi.Retail.V2.Model.GoogleCloudRetailV2RulePinAction do |
| 19 | + @moduledoc """ |
| 20 | + 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. |
| 21 | +
|
| 22 | + ## Attributes |
| 23 | +
|
| 24 | + * `pinMap` (*type:* `map()`, *default:* `nil`) - 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). |
| 25 | + """ |
| 26 | + |
| 27 | + use GoogleApi.Gax.ModelBase |
| 28 | + |
| 29 | + @type t :: %__MODULE__{ |
| 30 | + :pinMap => map() | nil |
| 31 | + } |
| 32 | + |
| 33 | + field(:pinMap, type: :map) |
| 34 | +end |
| 35 | + |
| 36 | +defimpl Poison.Decoder, for: GoogleApi.Retail.V2.Model.GoogleCloudRetailV2RulePinAction do |
| 37 | + def decode(value, options) do |
| 38 | + GoogleApi.Retail.V2.Model.GoogleCloudRetailV2RulePinAction.decode(value, options) |
| 39 | + end |
| 40 | +end |
| 41 | + |
| 42 | +defimpl Poison.Encoder, for: GoogleApi.Retail.V2.Model.GoogleCloudRetailV2RulePinAction do |
| 43 | + def encode(value, options) do |
| 44 | + GoogleApi.Gax.ModelBase.encode(value, options) |
| 45 | + end |
| 46 | +end |
0 commit comments