google-shopping-merchant-products-v1 0.a → 0.1.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +154 -8
  5. data/lib/google/shopping/merchant/products/v1/product_inputs_service/client.rb +715 -0
  6. data/lib/google/shopping/merchant/products/v1/product_inputs_service/credentials.rb +49 -0
  7. data/lib/google/shopping/merchant/products/v1/product_inputs_service/paths.rb +66 -0
  8. data/lib/google/shopping/merchant/products/v1/product_inputs_service/rest/client.rb +668 -0
  9. data/lib/google/shopping/merchant/products/v1/product_inputs_service/rest/service_stub.rb +268 -0
  10. data/lib/google/shopping/merchant/products/v1/product_inputs_service/rest.rb +54 -0
  11. data/lib/google/shopping/merchant/products/v1/product_inputs_service.rb +57 -0
  12. data/lib/google/shopping/merchant/products/v1/productinputs_pb.rb +59 -0
  13. data/lib/google/shopping/merchant/products/v1/productinputs_services_pb.rb +69 -0
  14. data/lib/google/shopping/merchant/products/v1/products_common_pb.rb +91 -0
  15. data/lib/google/shopping/merchant/products/v1/products_pb.rb +56 -0
  16. data/lib/google/shopping/merchant/products/v1/products_service/client.rb +591 -0
  17. data/lib/google/shopping/merchant/products/v1/products_service/credentials.rb +49 -0
  18. data/lib/google/shopping/merchant/products/v1/products_service/paths.rb +66 -0
  19. data/lib/google/shopping/merchant/products/v1/products_service/rest/client.rb +551 -0
  20. data/lib/google/shopping/merchant/products/v1/products_service/rest/service_stub.rb +205 -0
  21. data/lib/google/shopping/merchant/products/v1/products_service/rest.rb +54 -0
  22. data/lib/google/shopping/merchant/products/v1/products_service.rb +57 -0
  23. data/lib/google/shopping/merchant/products/v1/products_services_pb.rb +57 -0
  24. data/lib/google/shopping/merchant/products/v1/rest.rb +40 -0
  25. data/lib/google/shopping/merchant/products/v1/version.rb +7 -2
  26. data/lib/google/shopping/merchant/products/v1.rb +48 -0
  27. data/lib/google-shopping-merchant-products-v1.rb +21 -0
  28. data/proto_docs/README.md +4 -0
  29. data/proto_docs/google/api/client.rb +473 -0
  30. data/proto_docs/google/api/field_behavior.rb +85 -0
  31. data/proto_docs/google/api/launch_stage.rb +71 -0
  32. data/proto_docs/google/api/resource.rb +227 -0
  33. data/proto_docs/google/protobuf/duration.rb +98 -0
  34. data/proto_docs/google/protobuf/empty.rb +34 -0
  35. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  36. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  37. data/proto_docs/google/shopping/merchant/products/v1/productinputs.rb +221 -0
  38. data/proto_docs/google/shopping/merchant/products/v1/products.rb +175 -0
  39. data/proto_docs/google/shopping/merchant/products/v1/products_common.rb +1303 -0
  40. data/proto_docs/google/shopping/type/types.rb +210 -0
  41. data/proto_docs/google/type/interval.rb +45 -0
  42. metadata +100 -9
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Protobuf
22
+ # A Timestamp represents a point in time independent of any time zone or local
23
+ # calendar, encoded as a count of seconds and fractions of seconds at
24
+ # nanosecond resolution. The count is relative to an epoch at UTC midnight on
25
+ # January 1, 1970, in the proleptic Gregorian calendar which extends the
26
+ # Gregorian calendar backwards to year one.
27
+ #
28
+ # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
29
+ # second table is needed for interpretation, using a [24-hour linear
30
+ # smear](https://developers.google.com/time/smear).
31
+ #
32
+ # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
33
+ # restricting to that range, we ensure that we can convert to and from [RFC
34
+ # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
35
+ #
36
+ # # Examples
37
+ #
38
+ # Example 1: Compute Timestamp from POSIX `time()`.
39
+ #
40
+ # Timestamp timestamp;
41
+ # timestamp.set_seconds(time(NULL));
42
+ # timestamp.set_nanos(0);
43
+ #
44
+ # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
45
+ #
46
+ # struct timeval tv;
47
+ # gettimeofday(&tv, NULL);
48
+ #
49
+ # Timestamp timestamp;
50
+ # timestamp.set_seconds(tv.tv_sec);
51
+ # timestamp.set_nanos(tv.tv_usec * 1000);
52
+ #
53
+ # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
54
+ #
55
+ # FILETIME ft;
56
+ # GetSystemTimeAsFileTime(&ft);
57
+ # UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
58
+ #
59
+ # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
60
+ # // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
61
+ # Timestamp timestamp;
62
+ # timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
63
+ # timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
64
+ #
65
+ # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
66
+ #
67
+ # long millis = System.currentTimeMillis();
68
+ #
69
+ # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
70
+ # .setNanos((int) ((millis % 1000) * 1000000)).build();
71
+ #
72
+ # Example 5: Compute Timestamp from Java `Instant.now()`.
73
+ #
74
+ # Instant now = Instant.now();
75
+ #
76
+ # Timestamp timestamp =
77
+ # Timestamp.newBuilder().setSeconds(now.getEpochSecond())
78
+ # .setNanos(now.getNano()).build();
79
+ #
80
+ # Example 6: Compute Timestamp from current time in Python.
81
+ #
82
+ # timestamp = Timestamp()
83
+ # timestamp.GetCurrentTime()
84
+ #
85
+ # # JSON Mapping
86
+ #
87
+ # In JSON format, the Timestamp type is encoded as a string in the
88
+ # [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
89
+ # format is "\\{year}-\\{month}-\\{day}T\\{hour}:\\{min}:\\{sec}[.\\{frac_sec}]Z"
90
+ # where \\{year} is always expressed using four digits while \\{month}, \\{day},
91
+ # \\{hour}, \\{min}, and \\{sec} are zero-padded to two digits each. The fractional
92
+ # seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
93
+ # are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
94
+ # is required. A proto3 JSON serializer should always use UTC (as indicated by
95
+ # "Z") when printing the Timestamp type and a proto3 JSON parser should be
96
+ # able to accept both UTC and other timezones (as indicated by an offset).
97
+ #
98
+ # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
99
+ # 01:30 UTC on January 15, 2017.
100
+ #
101
+ # In JavaScript, one can convert a Date object to this format using the
102
+ # standard
103
+ # [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
104
+ # method. In Python, a standard `datetime.datetime` object can be converted
105
+ # to this format using
106
+ # [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
107
+ # the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
108
+ # the Joda Time's [`ISODateTimeFormat.dateTime()`](
109
+ # http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
110
+ # ) to obtain a formatter capable of generating timestamps in this format.
111
+ # @!attribute [rw] seconds
112
+ # @return [::Integer]
113
+ # Represents seconds of UTC time since Unix epoch
114
+ # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
115
+ # 9999-12-31T23:59:59Z inclusive.
116
+ # @!attribute [rw] nanos
117
+ # @return [::Integer]
118
+ # Non-negative fractions of a second at nanosecond resolution. Negative
119
+ # second values with fractions must still have non-negative nanos values
120
+ # that count forward in time. Must be from 0 to 999,999,999
121
+ # inclusive.
122
+ class Timestamp
123
+ include ::Google::Protobuf::MessageExts
124
+ extend ::Google::Protobuf::MessageExts::ClassMethods
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,221 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Shopping
22
+ module Merchant
23
+ module Products
24
+ module V1
25
+ # This resource represents input data you submit for a product, not the
26
+ # processed product that you see in Merchant Center, in Shopping ads, or
27
+ # across Google surfaces. Product inputs, rules and supplemental data source
28
+ # data are combined to create the processed
29
+ # {::Google::Shopping::Merchant::Products::V1::Product Product}. For more
30
+ # information, see [Manage products](/merchant/api/guides/products/overview).
31
+ #
32
+ # Required product input attributes to pass data validation checks are
33
+ # primarily defined in the [Products Data
34
+ # Specification](https://support.google.com/merchants/answer/188494).
35
+ #
36
+ # The following attributes are required:
37
+ # {::Google::Shopping::Merchant::Products::V1::Product#feed_label feedLabel},
38
+ # {::Google::Shopping::Merchant::Products::V1::Product#content_language contentLanguage}
39
+ # and {::Google::Shopping::Merchant::Products::V1::Product#offer_id offerId}.
40
+ #
41
+ # After inserting, updating, or deleting a product input, it may take several
42
+ # minutes before the processed product can be retrieved.
43
+ #
44
+ # All fields in the product input and its sub-messages match the English name
45
+ # of their corresponding attribute in the [Products Data
46
+ # Specification](https://support.google.com/merchants/answer/188494) with
47
+ # [some exceptions](https://support.google.com/merchants/answer/7052112).
48
+ # The following reference documentation lists the field names in the
49
+ # **camelCase** casing style while the Products Data Specification lists the
50
+ # names in the **snake_case** casing style.
51
+ # @!attribute [rw] name
52
+ # @return [::String]
53
+ # Identifier. The name of the product input.
54
+ # Format: `accounts/{account}/productInputs/{productinput}`
55
+ # where the last section `productinput` consists of:
56
+ # `content_language~feed_label~offer_id`
57
+ # example for product input name is
58
+ # `accounts/123/productInputs/en~US~sku123`. A legacy local product input
59
+ # name would be `accounts/123/productInputs/local~en~US~sku123`.
60
+ # Note: For calls to the v1beta version, the `productInput` section consists
61
+ # of: `channel~content_language~feed_label~offer_id`, for example:
62
+ # `accounts/123/productInputs/online~en~US~sku123`.
63
+ # @!attribute [r] product
64
+ # @return [::String]
65
+ # Output only. The name of the processed product.
66
+ # Format: `accounts/{account}/products/{product}`
67
+ # @!attribute [rw] legacy_local
68
+ # @return [::Boolean]
69
+ # Immutable. Determines whether the product is **only** targeting
70
+ # local destinations and whether the product name should be distinguished
71
+ # with a `local~` prefix. For example,
72
+ # `accounts/123/productInputs/local~en~US~sku123`. If a product that is not
73
+ # `legacy_local` is already targeting local destinations,
74
+ # creating a `legacy_local` product with an otherwise matching name will
75
+ # fail.
76
+ # @!attribute [rw] offer_id
77
+ # @return [::String]
78
+ # Required. Immutable. Your unique identifier for the product. This is the
79
+ # same for the product input and processed product. Leading and trailing
80
+ # whitespaces are stripped and multiple whitespaces are replaced by a single
81
+ # whitespace upon submission. See the [products data
82
+ # specification](https://support.google.com/merchants/answer/188494#id) for
83
+ # details.
84
+ # @!attribute [rw] content_language
85
+ # @return [::String]
86
+ # Required. Immutable. The two-letter [ISO
87
+ # 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the
88
+ # product.
89
+ # @!attribute [rw] feed_label
90
+ # @return [::String]
91
+ # Required. Immutable. The feed label that lets you categorize and identify
92
+ # your products. The maximum allowed characters are 20, and the supported
93
+ # characters are `A-Z`, `0-9`, hyphen, and underscore. The feed label must
94
+ # not include any spaces. For more information, see [Using feed
95
+ # labels](//support.google.com/merchants/answer/14994087).
96
+ # @!attribute [rw] version_number
97
+ # @return [::Integer]
98
+ # Optional. Immutable. Represents the existing version (freshness) of the
99
+ # product, which can be used to preserve the right order when multiple
100
+ # updates are done at the same time.
101
+ #
102
+ # If set, the insertion is prevented when version number is lower than
103
+ # the current version number of the existing product. Re-insertion (for
104
+ # example, product refresh after 30 days) can be performed with the current
105
+ # `version_number`.
106
+ #
107
+ # Only supported for insertions into primary data sources.
108
+ # Do not set this field for updates.
109
+ # Do not set this field for insertions into supplemental data sources.
110
+ #
111
+ # If the operation is prevented, the aborted exception will be
112
+ # thrown.
113
+ # @!attribute [rw] product_attributes
114
+ # @return [::Google::Shopping::Merchant::Products::V1::ProductAttributes]
115
+ # Optional. A list of strongly-typed product attributes.
116
+ # @!attribute [rw] custom_attributes
117
+ # @return [::Array<::Google::Shopping::Type::CustomAttribute>]
118
+ # Optional. A list of custom (merchant-provided) attributes. It can also be
119
+ # used for submitting any attribute of the data specification in its generic
120
+ # form (for example,
121
+ # `{ "name": "size type", "value": "regular" }`).
122
+ # This is useful for submitting attributes not explicitly exposed by the
123
+ # API.
124
+ # Maximum allowed number of characters for each
125
+ # custom attribute is 10240 (represents sum of characters for name and
126
+ # value). Maximum 2500 custom attributes can be set per product, with total
127
+ # size of 102.4kB. Underscores in custom attribute names are replaced by
128
+ # spaces upon insertion.
129
+ class ProductInput
130
+ include ::Google::Protobuf::MessageExts
131
+ extend ::Google::Protobuf::MessageExts::ClassMethods
132
+ end
133
+
134
+ # Request message for the InsertProductInput method.
135
+ # @!attribute [rw] parent
136
+ # @return [::String]
137
+ # Required. The account where this product will be inserted.
138
+ # Format: `accounts/{account}`
139
+ # @!attribute [rw] product_input
140
+ # @return [::Google::Shopping::Merchant::Products::V1::ProductInput]
141
+ # Required. The product input to insert.
142
+ # @!attribute [rw] data_source
143
+ # @return [::String]
144
+ # Required. The primary or supplemental product data source name. If the
145
+ # product already exists and data source provided is different, then the
146
+ # product will be moved to a new data source. For more information, see
147
+ # [Overview of Data sources
148
+ # sub-API](/merchant/api/guides/data-sources/overview).
149
+ #
150
+ # Only API data sources are supported.
151
+ #
152
+ # Format: `accounts/{account}/dataSources/{datasource}`. For example,
153
+ # `accounts/123456/dataSources/104628`.
154
+ class InsertProductInputRequest
155
+ include ::Google::Protobuf::MessageExts
156
+ extend ::Google::Protobuf::MessageExts::ClassMethods
157
+ end
158
+
159
+ # Request message for the UpdateProductInput method.
160
+ # The product (primary input) must exist for the update to succeed.
161
+ # If the update is for a primary product input, the existing primary product
162
+ # input must be from the same data source.
163
+ # @!attribute [rw] product_input
164
+ # @return [::Google::Shopping::Merchant::Products::V1::ProductInput]
165
+ # Required. The product input resource to update. Information you submit will
166
+ # be applied to the processed product as well.
167
+ # @!attribute [rw] update_mask
168
+ # @return [::Google::Protobuf::FieldMask]
169
+ # Optional. The list of product attributes to be updated.
170
+ #
171
+ # If the update mask is omitted, then it is treated as implied field mask
172
+ # equivalent to all fields that are populated (have a non-empty value).
173
+ #
174
+ # Attributes specified in the update mask without a value specified in the
175
+ # body will be deleted from the product.
176
+ #
177
+ # Update mask can only be specified for top level fields in
178
+ # attributes and custom attributes.
179
+ #
180
+ # To specify the update mask for custom attributes you need to add the
181
+ # `custom_attribute.` prefix.
182
+ #
183
+ # Providing special "*" value for full product replacement is not supported.
184
+ # @!attribute [rw] data_source
185
+ # @return [::String]
186
+ # Required. The primary or supplemental product data source where
187
+ # `data_source` name identifies the product input to be updated.
188
+ #
189
+ # Only API data sources are supported.
190
+ #
191
+ # Format: `accounts/{account}/dataSources/{datasource}`. For example,
192
+ # `accounts/123456/dataSources/104628`.
193
+ class UpdateProductInputRequest
194
+ include ::Google::Protobuf::MessageExts
195
+ extend ::Google::Protobuf::MessageExts::ClassMethods
196
+ end
197
+
198
+ # Request message for the DeleteProductInput method.
199
+ # @!attribute [rw] name
200
+ # @return [::String]
201
+ # Required. The name of the product input resource to delete.
202
+ # Format: `accounts/{account}/productInputs/{product}`
203
+ # where the last section `product` consists of:
204
+ # `content_language~feed_label~offer_id`
205
+ # example for product name is
206
+ # `accounts/123/productInputs/en~US~sku123`.
207
+ # @!attribute [rw] data_source
208
+ # @return [::String]
209
+ # Required. The primary or supplemental data source from which the product
210
+ # input should be deleted. Format:
211
+ # `accounts/{account}/dataSources/{datasource}`. For example,
212
+ # `accounts/123456/dataSources/104628`.
213
+ class DeleteProductInputRequest
214
+ include ::Google::Protobuf::MessageExts
215
+ extend ::Google::Protobuf::MessageExts::ClassMethods
216
+ end
217
+ end
218
+ end
219
+ end
220
+ end
221
+ end
@@ -0,0 +1,175 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Shopping
22
+ module Merchant
23
+ module Products
24
+ module V1
25
+ # The processed product, built from multiple [product
26
+ # inputs][google.shopping.merchant.products.v1main.ProductInput]
27
+ # after applying rules and supplemental data sources. This processed product
28
+ # matches what is shown in your Merchant Center account. Each product is built
29
+ # from exactly one primary data source product input, and multiple supplemental
30
+ # data source inputs. After inserting, updating, or deleting a product input,
31
+ # it may take several minutes before the updated processed product can be
32
+ # retrieved.
33
+ #
34
+ # All fields in the processed product and its sub-messages match the name of
35
+ # their corresponding attribute in the [Product data
36
+ # specification](https://support.google.com/merchants/answer/7052112) with some
37
+ # exceptions.
38
+ # @!attribute [rw] name
39
+ # @return [::String]
40
+ # The name of the product.
41
+ # Format:
42
+ # `accounts/{account}/products/{product}` where the last
43
+ # section `product` consists of:
44
+ # `content_language~feed_label~offer_id`
45
+ # example for product name is `accounts/123/products/en~US~sku123`. A legacy
46
+ # local product name would be `accounts/123/products/local~en~US~sku123`.
47
+ # Note: For calls to the v1beta version, the `product` section consists
48
+ # of: `channel~content_language~feed_label~offer_id`, for example:
49
+ # `accounts/123/products/online~en~US~sku123`.
50
+ # @!attribute [r] legacy_local
51
+ # @return [::Boolean]
52
+ # Output only. Determines whether the product is **only** targeting
53
+ # local destinations and whether the product name should be distinguished
54
+ # with a `local~` prefix. For example,
55
+ # `accounts/123/products/local~en~US~sku123`.
56
+ # @!attribute [r] offer_id
57
+ # @return [::String]
58
+ # Output only. Your unique identifier for the product. This is the same for
59
+ # the product input and processed product. Leading and trailing whitespaces
60
+ # are stripped and multiple whitespaces are replaced by a single whitespace
61
+ # upon submission. See the [product data
62
+ # specification](https://support.google.com/merchants/answer/188494#id) for
63
+ # details.
64
+ # @!attribute [r] content_language
65
+ # @return [::String]
66
+ # Output only. The two-letter [ISO
67
+ # 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the
68
+ # product.
69
+ # @!attribute [r] feed_label
70
+ # @return [::String]
71
+ # Output only. The feed label lets you categorize and identify your products.
72
+ # The maximum allowed characters is 20 and the supported characters are`A-Z`,
73
+ # `0-9`, hyphen and underscore. The feed label must not include any spaces.
74
+ # For more information, see [Using feed
75
+ # labels](//support.google.com/merchants/answer/14994087)
76
+ # @!attribute [r] data_source
77
+ # @return [::String]
78
+ # Output only. The primary data source of the product.
79
+ # @!attribute [r] version_number
80
+ # @return [::Integer]
81
+ # Output only. Represents the existing version (freshness) of the product,
82
+ # which can be used to preserve the right order when multiple updates are
83
+ # done at the same time.
84
+ #
85
+ # If set, the insertion is prevented when version number is lower than
86
+ # the current version number of the existing product. Re-insertion (for
87
+ # example, product refresh after 30 days) can be performed with the current
88
+ # `version_number`.
89
+ #
90
+ # Only supported for insertions into primary data sources.
91
+ #
92
+ # If the operation is prevented, the aborted exception will be
93
+ # thrown.
94
+ # @!attribute [r] product_attributes
95
+ # @return [::Google::Shopping::Merchant::Products::V1::ProductAttributes]
96
+ # Output only. A list of strongly-typed product attributes.
97
+ # @!attribute [r] custom_attributes
98
+ # @return [::Array<::Google::Shopping::Type::CustomAttribute>]
99
+ # Output only. A list of custom (merchant-provided) attributes. It can also
100
+ # be used to submit any attribute of the data specification in its generic
101
+ # form (for example,
102
+ # `{ "name": "size type", "value": "regular" }`).
103
+ # This is useful for submitting attributes not explicitly exposed by the
104
+ # API, such as additional attributes used for Buy on Google.
105
+ # @!attribute [r] product_status
106
+ # @return [::Google::Shopping::Merchant::Products::V1::ProductStatus]
107
+ # Output only. The status of a product, data validation issues, that is,
108
+ # information about a product computed asynchronously.
109
+ # @!attribute [r] automated_discounts
110
+ # @return [::Google::Shopping::Merchant::Products::V1::AutomatedDiscounts]
111
+ # Output only. The automated discounts information for the product.
112
+ class Product
113
+ include ::Google::Protobuf::MessageExts
114
+ extend ::Google::Protobuf::MessageExts::ClassMethods
115
+ end
116
+
117
+ # Request message for the GetProduct method.
118
+ # @!attribute [rw] name
119
+ # @return [::String]
120
+ # Required. The name of the product to retrieve.
121
+ # Format:
122
+ # `accounts/{account}/products/{product}` where the last
123
+ # section `product` consists of:
124
+ # `content_language~feed_label~offer_id`
125
+ # example for product name is `accounts/123/products/en~US~sku123`. A legacy
126
+ # local product name would be `accounts/123/products/local~en~US~sku123`.
127
+ # Note: For calls to the v1beta version, the `product` section consists
128
+ # of: `channel~content_language~feed_label~offer_id`, for example:
129
+ # `accounts/123/products/online~en~US~sku123`.
130
+ class GetProductRequest
131
+ include ::Google::Protobuf::MessageExts
132
+ extend ::Google::Protobuf::MessageExts::ClassMethods
133
+ end
134
+
135
+ # Request message for the ListProducts method.
136
+ # @!attribute [rw] parent
137
+ # @return [::String]
138
+ # Required. The account to list processed products for.
139
+ # Format: `accounts/{account}`
140
+ # @!attribute [rw] page_size
141
+ # @return [::Integer]
142
+ # The maximum number of products to return. The service may return fewer than
143
+ # this value.
144
+ # The maximum value is 1000; values above 1000 will be coerced to 1000.
145
+ # If unspecified, the default page size of 25 products will be returned.
146
+ # @!attribute [rw] page_token
147
+ # @return [::String]
148
+ # A page token, received from a previous `ListProducts` call.
149
+ # Provide this to retrieve the subsequent page.
150
+ #
151
+ # When paginating, all other parameters provided to `ListProducts` must
152
+ # match the call that provided the page token.
153
+ class ListProductsRequest
154
+ include ::Google::Protobuf::MessageExts
155
+ extend ::Google::Protobuf::MessageExts::ClassMethods
156
+ end
157
+
158
+ # Response message for the ListProducts method.
159
+ # @!attribute [rw] products
160
+ # @return [::Array<::Google::Shopping::Merchant::Products::V1::Product>]
161
+ # The processed products from the specified account. These are your processed
162
+ # products after applying rules and supplemental data sources.
163
+ # @!attribute [rw] next_page_token
164
+ # @return [::String]
165
+ # A token, which can be sent as `page_token` to retrieve the next page.
166
+ # If this field is omitted, there are no subsequent pages.
167
+ class ListProductsResponse
168
+ include ::Google::Protobuf::MessageExts
169
+ extend ::Google::Protobuf::MessageExts::ClassMethods
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
175
+ end