google-shopping-merchant-products-v1beta 0.2.0 → 0.4.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/google/shopping/merchant/products/v1beta/product_inputs_service/client.rb +131 -2
- data/lib/google/shopping/merchant/products/v1beta/product_inputs_service/rest/client.rb +124 -2
- data/lib/google/shopping/merchant/products/v1beta/product_inputs_service/rest/service_stub.rb +62 -0
- data/lib/google/shopping/merchant/products/v1beta/productinputs_pb.rb +4 -1
- data/lib/google/shopping/merchant/products/v1beta/productinputs_services_pb.rb +5 -0
- data/lib/google/shopping/merchant/products/v1beta/products_common_pb.rb +3 -1
- data/lib/google/shopping/merchant/products/v1beta/products_service/client.rb +7 -0
- data/lib/google/shopping/merchant/products/v1beta/products_service/rest/client.rb +7 -0
- data/lib/google/shopping/merchant/products/v1beta/version.rb +1 -1
- data/proto_docs/google/api/client.rb +14 -0
- data/proto_docs/google/protobuf/field_mask.rb +229 -0
- data/proto_docs/google/shopping/merchant/products/v1beta/productinputs.rb +64 -23
- data/proto_docs/google/shopping/merchant/products/v1beta/products_common.rb +40 -0
- metadata +7 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d2ea78acd17e99f65d03504026683587386147c5f709f7ae2ab25b89aaa98e6
|
4
|
+
data.tar.gz: c51c2ce0a666821d91857235b6fc9b09a83e7602e6bf2181d0af5283c46db473
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a6540f4d4bbfa0edc0241f1395bcc1d854f8717deeafc3c9358bb5ded733294af619fc582c8c9ac677c377693b24298f914ffd165c9676965bbe67992013f10
|
7
|
+
data.tar.gz: 98a1ce2da06d61f5b9d0a81feaffec2d3848289b8a964baf193850afa20b8877f39e16a226fcbd2bb93e15ee2c7cfa2c0185e384994b67c589fd8b2a286f8e8b
|
data/README.md
CHANGED
@@ -86,7 +86,7 @@ To browse ready to use code samples check [Google Cloud Samples](https://cloud.g
|
|
86
86
|
|
87
87
|
## Supported Ruby Versions
|
88
88
|
|
89
|
-
This library is supported on Ruby
|
89
|
+
This library is supported on Ruby 3.0+.
|
90
90
|
|
91
91
|
Google provides official support for Ruby versions that are actively supported
|
92
92
|
by Ruby Core—that is, Ruby versions that are either in normal maintenance or
|
@@ -221,8 +221,11 @@ module Google
|
|
221
221
|
# @param data_source [::String]
|
222
222
|
# Required. The primary or supplemental product data source name. If the
|
223
223
|
# product already exists and data source provided is different, then the
|
224
|
-
# product will be moved to a new data source.
|
225
|
-
#
|
224
|
+
# product will be moved to a new data source.
|
225
|
+
#
|
226
|
+
# Only API data sources are supported.
|
227
|
+
#
|
228
|
+
# Format: `accounts/{account}/dataSources/{datasource}`.
|
226
229
|
#
|
227
230
|
# @yield [response, operation] Access the result along with the RPC operation
|
228
231
|
# @yieldparam response [::Google::Shopping::Merchant::Products::V1beta::ProductInput]
|
@@ -288,6 +291,118 @@ module Google
|
|
288
291
|
raise ::Google::Cloud::Error.from_error(e)
|
289
292
|
end
|
290
293
|
|
294
|
+
##
|
295
|
+
# Updates the existing product input in your Merchant Center account.
|
296
|
+
#
|
297
|
+
# After inserting, updating, or deleting a product input, it may take several
|
298
|
+
# minutes before the processed product can be retrieved.
|
299
|
+
#
|
300
|
+
# @overload update_product_input(request, options = nil)
|
301
|
+
# Pass arguments to `update_product_input` via a request object, either of type
|
302
|
+
# {::Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest} or an equivalent Hash.
|
303
|
+
#
|
304
|
+
# @param request [::Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest, ::Hash]
|
305
|
+
# A request object representing the call parameters. Required. To specify no
|
306
|
+
# parameters, or to keep all the default parameter values, pass an empty Hash.
|
307
|
+
# @param options [::Gapic::CallOptions, ::Hash]
|
308
|
+
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
309
|
+
#
|
310
|
+
# @overload update_product_input(product_input: nil, update_mask: nil, data_source: nil)
|
311
|
+
# Pass arguments to `update_product_input` via keyword arguments. Note that at
|
312
|
+
# least one keyword argument is required. To specify no parameters, or to keep all
|
313
|
+
# the default parameter values, pass an empty Hash as a request object (see above).
|
314
|
+
#
|
315
|
+
# @param product_input [::Google::Shopping::Merchant::Products::V1beta::ProductInput, ::Hash]
|
316
|
+
# Required. The product input resource to update. Information you submit will
|
317
|
+
# be applied to the processed product as well.
|
318
|
+
# @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
|
319
|
+
# Optional. The list of product attributes to be updated.
|
320
|
+
#
|
321
|
+
# If the update mask is omitted, then it is treated as implied field mask
|
322
|
+
# equivalent to all fields that are populated (have a non-empty value).
|
323
|
+
#
|
324
|
+
# Attributes specified in the update mask without a value specified in the
|
325
|
+
# body will be deleted from the product.
|
326
|
+
#
|
327
|
+
# Update mask can only be specified for top level fields in
|
328
|
+
# attributes and custom attributes.
|
329
|
+
#
|
330
|
+
# To specify the update mask for custom attributes you need to add the
|
331
|
+
# `custom_attribute.` prefix.
|
332
|
+
#
|
333
|
+
# Providing special "*" value for full product replacement is not supported.
|
334
|
+
# @param data_source [::String]
|
335
|
+
# Required. The primary or supplemental product data source where
|
336
|
+
# `data_source` name identifies the product input to be updated.
|
337
|
+
#
|
338
|
+
# Only API data sources are supported.
|
339
|
+
#
|
340
|
+
# Format: `accounts/{account}/dataSources/{datasource}`.
|
341
|
+
#
|
342
|
+
# @yield [response, operation] Access the result along with the RPC operation
|
343
|
+
# @yieldparam response [::Google::Shopping::Merchant::Products::V1beta::ProductInput]
|
344
|
+
# @yieldparam operation [::GRPC::ActiveCall::Operation]
|
345
|
+
#
|
346
|
+
# @return [::Google::Shopping::Merchant::Products::V1beta::ProductInput]
|
347
|
+
#
|
348
|
+
# @raise [::Google::Cloud::Error] if the RPC is aborted.
|
349
|
+
#
|
350
|
+
# @example Basic example
|
351
|
+
# require "google/shopping/merchant/products/v1beta"
|
352
|
+
#
|
353
|
+
# # Create a client object. The client can be reused for multiple calls.
|
354
|
+
# client = Google::Shopping::Merchant::Products::V1beta::ProductInputsService::Client.new
|
355
|
+
#
|
356
|
+
# # Create a request. To set request fields, pass in keyword arguments.
|
357
|
+
# request = Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest.new
|
358
|
+
#
|
359
|
+
# # Call the update_product_input method.
|
360
|
+
# result = client.update_product_input request
|
361
|
+
#
|
362
|
+
# # The returned object is of type Google::Shopping::Merchant::Products::V1beta::ProductInput.
|
363
|
+
# p result
|
364
|
+
#
|
365
|
+
def update_product_input request, options = nil
|
366
|
+
raise ::ArgumentError, "request must be provided" if request.nil?
|
367
|
+
|
368
|
+
request = ::Gapic::Protobuf.coerce request, to: ::Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest
|
369
|
+
|
370
|
+
# Converts hash and nil to an options object
|
371
|
+
options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
|
372
|
+
|
373
|
+
# Customize the options with defaults
|
374
|
+
metadata = @config.rpcs.update_product_input.metadata.to_h
|
375
|
+
|
376
|
+
# Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
|
377
|
+
metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
|
378
|
+
lib_name: @config.lib_name, lib_version: @config.lib_version,
|
379
|
+
gapic_version: ::Google::Shopping::Merchant::Products::V1beta::VERSION
|
380
|
+
metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
|
381
|
+
metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
|
382
|
+
|
383
|
+
header_params = {}
|
384
|
+
if request.product_input&.name
|
385
|
+
header_params["product_input.name"] = request.product_input.name
|
386
|
+
end
|
387
|
+
|
388
|
+
request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
389
|
+
metadata[:"x-goog-request-params"] ||= request_params_header
|
390
|
+
|
391
|
+
options.apply_defaults timeout: @config.rpcs.update_product_input.timeout,
|
392
|
+
metadata: metadata,
|
393
|
+
retry_policy: @config.rpcs.update_product_input.retry_policy
|
394
|
+
|
395
|
+
options.apply_defaults timeout: @config.timeout,
|
396
|
+
metadata: @config.metadata,
|
397
|
+
retry_policy: @config.retry_policy
|
398
|
+
|
399
|
+
@product_inputs_service_stub.call_rpc :update_product_input, request, options: options do |response, operation|
|
400
|
+
yield response, operation if block_given?
|
401
|
+
end
|
402
|
+
rescue ::GRPC::BadStatus => e
|
403
|
+
raise ::Google::Cloud::Error.from_error(e)
|
404
|
+
end
|
405
|
+
|
291
406
|
##
|
292
407
|
# Deletes a product input from your Merchant Center account.
|
293
408
|
#
|
@@ -429,6 +544,13 @@ module Google
|
|
429
544
|
# * (`GRPC::Core::Channel`) a gRPC channel with included credentials
|
430
545
|
# * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
|
431
546
|
# * (`nil`) indicating no credentials
|
547
|
+
#
|
548
|
+
# Warning: If you accept a credential configuration (JSON file or Hash) from an
|
549
|
+
# external source for authentication to Google Cloud, you must validate it before
|
550
|
+
# providing it to a Google API client library. Providing an unvalidated credential
|
551
|
+
# configuration to Google APIs can compromise the security of your systems and data.
|
552
|
+
# For more information, refer to [Validate credential configurations from external
|
553
|
+
# sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
|
432
554
|
# @return [::Object]
|
433
555
|
# @!attribute [rw] scope
|
434
556
|
# The OAuth scopes
|
@@ -550,6 +672,11 @@ module Google
|
|
550
672
|
#
|
551
673
|
attr_reader :insert_product_input
|
552
674
|
##
|
675
|
+
# RPC-specific configuration for `update_product_input`
|
676
|
+
# @return [::Gapic::Config::Method]
|
677
|
+
#
|
678
|
+
attr_reader :update_product_input
|
679
|
+
##
|
553
680
|
# RPC-specific configuration for `delete_product_input`
|
554
681
|
# @return [::Gapic::Config::Method]
|
555
682
|
#
|
@@ -559,6 +686,8 @@ module Google
|
|
559
686
|
def initialize parent_rpcs = nil
|
560
687
|
insert_product_input_config = parent_rpcs.insert_product_input if parent_rpcs.respond_to? :insert_product_input
|
561
688
|
@insert_product_input = ::Gapic::Config::Method.new insert_product_input_config
|
689
|
+
update_product_input_config = parent_rpcs.update_product_input if parent_rpcs.respond_to? :update_product_input
|
690
|
+
@update_product_input = ::Gapic::Config::Method.new update_product_input_config
|
562
691
|
delete_product_input_config = parent_rpcs.delete_product_input if parent_rpcs.respond_to? :delete_product_input
|
563
692
|
@delete_product_input = ::Gapic::Config::Method.new delete_product_input_config
|
564
693
|
|
@@ -214,8 +214,11 @@ module Google
|
|
214
214
|
# @param data_source [::String]
|
215
215
|
# Required. The primary or supplemental product data source name. If the
|
216
216
|
# product already exists and data source provided is different, then the
|
217
|
-
# product will be moved to a new data source.
|
218
|
-
#
|
217
|
+
# product will be moved to a new data source.
|
218
|
+
#
|
219
|
+
# Only API data sources are supported.
|
220
|
+
#
|
221
|
+
# Format: `accounts/{account}/dataSources/{datasource}`.
|
219
222
|
# @yield [result, operation] Access the result along with the TransportOperation object
|
220
223
|
# @yieldparam result [::Google::Shopping::Merchant::Products::V1beta::ProductInput]
|
221
224
|
# @yieldparam operation [::Gapic::Rest::TransportOperation]
|
@@ -274,6 +277,111 @@ module Google
|
|
274
277
|
raise ::Google::Cloud::Error.from_error(e)
|
275
278
|
end
|
276
279
|
|
280
|
+
##
|
281
|
+
# Updates the existing product input in your Merchant Center account.
|
282
|
+
#
|
283
|
+
# After inserting, updating, or deleting a product input, it may take several
|
284
|
+
# minutes before the processed product can be retrieved.
|
285
|
+
#
|
286
|
+
# @overload update_product_input(request, options = nil)
|
287
|
+
# Pass arguments to `update_product_input` via a request object, either of type
|
288
|
+
# {::Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest} or an equivalent Hash.
|
289
|
+
#
|
290
|
+
# @param request [::Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest, ::Hash]
|
291
|
+
# A request object representing the call parameters. Required. To specify no
|
292
|
+
# parameters, or to keep all the default parameter values, pass an empty Hash.
|
293
|
+
# @param options [::Gapic::CallOptions, ::Hash]
|
294
|
+
# Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
|
295
|
+
#
|
296
|
+
# @overload update_product_input(product_input: nil, update_mask: nil, data_source: nil)
|
297
|
+
# Pass arguments to `update_product_input` via keyword arguments. Note that at
|
298
|
+
# least one keyword argument is required. To specify no parameters, or to keep all
|
299
|
+
# the default parameter values, pass an empty Hash as a request object (see above).
|
300
|
+
#
|
301
|
+
# @param product_input [::Google::Shopping::Merchant::Products::V1beta::ProductInput, ::Hash]
|
302
|
+
# Required. The product input resource to update. Information you submit will
|
303
|
+
# be applied to the processed product as well.
|
304
|
+
# @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
|
305
|
+
# Optional. The list of product attributes to be updated.
|
306
|
+
#
|
307
|
+
# If the update mask is omitted, then it is treated as implied field mask
|
308
|
+
# equivalent to all fields that are populated (have a non-empty value).
|
309
|
+
#
|
310
|
+
# Attributes specified in the update mask without a value specified in the
|
311
|
+
# body will be deleted from the product.
|
312
|
+
#
|
313
|
+
# Update mask can only be specified for top level fields in
|
314
|
+
# attributes and custom attributes.
|
315
|
+
#
|
316
|
+
# To specify the update mask for custom attributes you need to add the
|
317
|
+
# `custom_attribute.` prefix.
|
318
|
+
#
|
319
|
+
# Providing special "*" value for full product replacement is not supported.
|
320
|
+
# @param data_source [::String]
|
321
|
+
# Required. The primary or supplemental product data source where
|
322
|
+
# `data_source` name identifies the product input to be updated.
|
323
|
+
#
|
324
|
+
# Only API data sources are supported.
|
325
|
+
#
|
326
|
+
# Format: `accounts/{account}/dataSources/{datasource}`.
|
327
|
+
# @yield [result, operation] Access the result along with the TransportOperation object
|
328
|
+
# @yieldparam result [::Google::Shopping::Merchant::Products::V1beta::ProductInput]
|
329
|
+
# @yieldparam operation [::Gapic::Rest::TransportOperation]
|
330
|
+
#
|
331
|
+
# @return [::Google::Shopping::Merchant::Products::V1beta::ProductInput]
|
332
|
+
#
|
333
|
+
# @raise [::Google::Cloud::Error] if the REST call is aborted.
|
334
|
+
#
|
335
|
+
# @example Basic example
|
336
|
+
# require "google/shopping/merchant/products/v1beta"
|
337
|
+
#
|
338
|
+
# # Create a client object. The client can be reused for multiple calls.
|
339
|
+
# client = Google::Shopping::Merchant::Products::V1beta::ProductInputsService::Rest::Client.new
|
340
|
+
#
|
341
|
+
# # Create a request. To set request fields, pass in keyword arguments.
|
342
|
+
# request = Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest.new
|
343
|
+
#
|
344
|
+
# # Call the update_product_input method.
|
345
|
+
# result = client.update_product_input request
|
346
|
+
#
|
347
|
+
# # The returned object is of type Google::Shopping::Merchant::Products::V1beta::ProductInput.
|
348
|
+
# p result
|
349
|
+
#
|
350
|
+
def update_product_input request, options = nil
|
351
|
+
raise ::ArgumentError, "request must be provided" if request.nil?
|
352
|
+
|
353
|
+
request = ::Gapic::Protobuf.coerce request, to: ::Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest
|
354
|
+
|
355
|
+
# Converts hash and nil to an options object
|
356
|
+
options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
|
357
|
+
|
358
|
+
# Customize the options with defaults
|
359
|
+
call_metadata = @config.rpcs.update_product_input.metadata.to_h
|
360
|
+
|
361
|
+
# Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
|
362
|
+
call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
|
363
|
+
lib_name: @config.lib_name, lib_version: @config.lib_version,
|
364
|
+
gapic_version: ::Google::Shopping::Merchant::Products::V1beta::VERSION,
|
365
|
+
transports_version_send: [:rest]
|
366
|
+
|
367
|
+
call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
|
368
|
+
call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
|
369
|
+
|
370
|
+
options.apply_defaults timeout: @config.rpcs.update_product_input.timeout,
|
371
|
+
metadata: call_metadata,
|
372
|
+
retry_policy: @config.rpcs.update_product_input.retry_policy
|
373
|
+
|
374
|
+
options.apply_defaults timeout: @config.timeout,
|
375
|
+
metadata: @config.metadata,
|
376
|
+
retry_policy: @config.retry_policy
|
377
|
+
|
378
|
+
@product_inputs_service_stub.update_product_input request, options do |result, operation|
|
379
|
+
yield result, operation if block_given?
|
380
|
+
end
|
381
|
+
rescue ::Gapic::Rest::Error => e
|
382
|
+
raise ::Google::Cloud::Error.from_error(e)
|
383
|
+
end
|
384
|
+
|
277
385
|
##
|
278
386
|
# Deletes a product input from your Merchant Center account.
|
279
387
|
#
|
@@ -406,6 +514,13 @@ module Google
|
|
406
514
|
# * (`Signet::OAuth2::Client`) A signet oauth2 client object
|
407
515
|
# (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
|
408
516
|
# * (`nil`) indicating no credentials
|
517
|
+
#
|
518
|
+
# Warning: If you accept a credential configuration (JSON file or Hash) from an
|
519
|
+
# external source for authentication to Google Cloud, you must validate it before
|
520
|
+
# providing it to a Google API client library. Providing an unvalidated credential
|
521
|
+
# configuration to Google APIs can compromise the security of your systems and data.
|
522
|
+
# For more information, refer to [Validate credential configurations from external
|
523
|
+
# sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
|
409
524
|
# @return [::Object]
|
410
525
|
# @!attribute [rw] scope
|
411
526
|
# The OAuth scopes
|
@@ -509,6 +624,11 @@ module Google
|
|
509
624
|
#
|
510
625
|
attr_reader :insert_product_input
|
511
626
|
##
|
627
|
+
# RPC-specific configuration for `update_product_input`
|
628
|
+
# @return [::Gapic::Config::Method]
|
629
|
+
#
|
630
|
+
attr_reader :update_product_input
|
631
|
+
##
|
512
632
|
# RPC-specific configuration for `delete_product_input`
|
513
633
|
# @return [::Gapic::Config::Method]
|
514
634
|
#
|
@@ -518,6 +638,8 @@ module Google
|
|
518
638
|
def initialize parent_rpcs = nil
|
519
639
|
insert_product_input_config = parent_rpcs.insert_product_input if parent_rpcs.respond_to? :insert_product_input
|
520
640
|
@insert_product_input = ::Gapic::Config::Method.new insert_product_input_config
|
641
|
+
update_product_input_config = parent_rpcs.update_product_input if parent_rpcs.respond_to? :update_product_input
|
642
|
+
@update_product_input = ::Gapic::Config::Method.new update_product_input_config
|
521
643
|
delete_product_input_config = parent_rpcs.delete_product_input if parent_rpcs.respond_to? :delete_product_input
|
522
644
|
@delete_product_input = ::Gapic::Config::Method.new delete_product_input_config
|
523
645
|
|
data/lib/google/shopping/merchant/products/v1beta/product_inputs_service/rest/service_stub.rb
CHANGED
@@ -114,6 +114,46 @@ module Google
|
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
117
|
+
##
|
118
|
+
# Baseline implementation for the update_product_input REST call
|
119
|
+
#
|
120
|
+
# @param request_pb [::Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest]
|
121
|
+
# A request object representing the call parameters. Required.
|
122
|
+
# @param options [::Gapic::CallOptions]
|
123
|
+
# Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
|
124
|
+
#
|
125
|
+
# @yield [result, operation] Access the result along with the TransportOperation object
|
126
|
+
# @yieldparam result [::Google::Shopping::Merchant::Products::V1beta::ProductInput]
|
127
|
+
# @yieldparam operation [::Gapic::Rest::TransportOperation]
|
128
|
+
#
|
129
|
+
# @return [::Google::Shopping::Merchant::Products::V1beta::ProductInput]
|
130
|
+
# A result object deserialized from the server's reply
|
131
|
+
def update_product_input request_pb, options = nil
|
132
|
+
raise ::ArgumentError, "request must be provided" if request_pb.nil?
|
133
|
+
|
134
|
+
verb, uri, query_string_params, body = ServiceStub.transcode_update_product_input_request request_pb
|
135
|
+
query_string_params = if query_string_params.any?
|
136
|
+
query_string_params.to_h { |p| p.split "=", 2 }
|
137
|
+
else
|
138
|
+
{}
|
139
|
+
end
|
140
|
+
|
141
|
+
response = @client_stub.make_http_request(
|
142
|
+
verb,
|
143
|
+
uri: uri,
|
144
|
+
body: body || "",
|
145
|
+
params: query_string_params,
|
146
|
+
method_name: "update_product_input",
|
147
|
+
options: options
|
148
|
+
)
|
149
|
+
operation = ::Gapic::Rest::TransportOperation.new response
|
150
|
+
result = ::Google::Shopping::Merchant::Products::V1beta::ProductInput.decode_json response.body, ignore_unknown_fields: true
|
151
|
+
catch :response do
|
152
|
+
yield result, operation if block_given?
|
153
|
+
result
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
117
157
|
##
|
118
158
|
# Baseline implementation for the delete_product_input REST call
|
119
159
|
#
|
@@ -176,6 +216,28 @@ module Google
|
|
176
216
|
transcoder.transcode request_pb
|
177
217
|
end
|
178
218
|
|
219
|
+
##
|
220
|
+
# @private
|
221
|
+
#
|
222
|
+
# GRPC transcoding helper method for the update_product_input REST call
|
223
|
+
#
|
224
|
+
# @param request_pb [::Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest]
|
225
|
+
# A request object representing the call parameters. Required.
|
226
|
+
# @return [Array(String, [String, nil], Hash{String => String})]
|
227
|
+
# Uri, Body, Query string parameters
|
228
|
+
def self.transcode_update_product_input_request request_pb
|
229
|
+
transcoder = Gapic::Rest::GrpcTranscoder.new
|
230
|
+
.with_bindings(
|
231
|
+
uri_method: :patch,
|
232
|
+
uri_template: "/products/v1beta/{product_input.name}",
|
233
|
+
body: "product_input",
|
234
|
+
matches: [
|
235
|
+
["product_input.name", %r{^accounts/[^/]+/productInputs/[^/]+/?$}, false]
|
236
|
+
]
|
237
|
+
)
|
238
|
+
transcoder.transcode request_pb
|
239
|
+
end
|
240
|
+
|
179
241
|
##
|
180
242
|
# @private
|
181
243
|
#
|
@@ -9,11 +9,12 @@ require 'google/api/client_pb'
|
|
9
9
|
require 'google/api/field_behavior_pb'
|
10
10
|
require 'google/api/resource_pb'
|
11
11
|
require 'google/protobuf/empty_pb'
|
12
|
+
require 'google/protobuf/field_mask_pb'
|
12
13
|
require 'google/shopping/merchant/products/v1beta/products_common_pb'
|
13
14
|
require 'google/shopping/type/types_pb'
|
14
15
|
|
15
16
|
|
16
|
-
descriptor_data = "\n<google/shopping/merchant/products/v1beta/productinputs.proto\x12(google.shopping.merchant.products.v1beta\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a>google/shopping/merchant/products/v1beta/products_common.proto\x1a google/shopping/type/types.proto\"\
|
17
|
+
descriptor_data = "\n<google/shopping/merchant/products/v1beta/productinputs.proto\x12(google.shopping.merchant.products.v1beta\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a>google/shopping/merchant/products/v1beta/products_common.proto\x1a google/shopping/type/types.proto\"\x97\x04\n\x0cProductInput\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x14\n\x07product\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12?\n\x07\x63hannel\x18\x03 \x01(\x0e\x32).google.shopping.type.Channel.ChannelEnumB\x03\xe0\x41\x05\x12\x18\n\x08offer_id\x18\x04 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x05\x12 \n\x10\x63ontent_language\x18\x05 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x05\x12\x1a\n\nfeed_label\x18\x06 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x05\x12 \n\x0eversion_number\x18\x07 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12M\n\nattributes\x18\x08 \x01(\x0b\x32\x34.google.shopping.merchant.products.v1beta.AttributesB\x03\xe0\x41\x01\x12\x45\n\x11\x63ustom_attributes\x18\t \x03(\x0b\x32%.google.shopping.type.CustomAttributeB\x03\xe0\x41\x01:z\xea\x41w\n\'merchantapi.googleapis.com/ProductInput\x12/accounts/{account}/productInputs/{productinput}*\rproductInputs2\x0cproductInputB\x11\n\x0f_version_number\"\xc5\x01\n\x19InsertProductInputRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"merchantapi.googleapis.com/Product\x12R\n\rproduct_input\x18\x02 \x01(\x0b\x32\x36.google.shopping.merchant.products.v1beta.ProductInputB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x61ta_source\x18\x03 \x01(\tB\x03\xe0\x41\x02\"\xbf\x01\n\x19UpdateProductInputRequest\x12R\n\rproduct_input\x18\x01 \x01(\x0b\x32\x36.google.shopping.merchant.products.v1beta.ProductInputB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x61ta_source\x18\x03 \x01(\tB\x03\xe0\x41\x02\"t\n\x19\x44\x65leteProductInputRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'merchantapi.googleapis.com/ProductInput\x12\x18\n\x0b\x64\x61ta_source\x18\x02 \x01(\tB\x03\xe0\x41\x02\x32\x85\x06\n\x14ProductInputsService\x12\xe3\x01\n\x12InsertProductInput\x12\x43.google.shopping.merchant.products.v1beta.InsertProductInputRequest\x1a\x36.google.shopping.merchant.products.v1beta.ProductInput\"P\x82\xd3\xe4\x93\x02J\"9/products/v1beta/{parent=accounts/*}/productInputs:insert:\rproduct_input\x12\x86\x02\n\x12UpdateProductInput\x12\x43.google.shopping.merchant.products.v1beta.UpdateProductInputRequest\x1a\x36.google.shopping.merchant.products.v1beta.ProductInput\"s\xda\x41\x19product_input,update_mask\x82\xd3\xe4\x93\x02Q2@/products/v1beta/{product_input.name=accounts/*/productInputs/*}:\rproduct_input\x12\xb4\x01\n\x12\x44\x65leteProductInput\x12\x43.google.shopping.merchant.products.v1beta.DeleteProductInputRequest\x1a\x16.google.protobuf.Empty\"A\xda\x41\x04name\x82\xd3\xe4\x93\x02\x34*2/products/v1beta/{name=accounts/*/productInputs/*}\x1aG\xca\x41\x1amerchantapi.googleapis.com\xd2\x41\'https://www.googleapis.com/auth/contentB\x94\x01\n,com.google.shopping.merchant.products.v1betaB\x12ProductInputsProtoP\x01ZNcloud.google.com/go/shopping/merchant/products/apiv1beta/productspb;productspbb\x06proto3"
|
17
18
|
|
18
19
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
19
20
|
|
@@ -30,6 +31,7 @@ rescue TypeError
|
|
30
31
|
imports = [
|
31
32
|
["google.shopping.merchant.products.v1beta.Attributes", "google/shopping/merchant/products/v1beta/products_common.proto"],
|
32
33
|
["google.shopping.type.CustomAttribute", "google/shopping/type/types.proto"],
|
34
|
+
["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"],
|
33
35
|
]
|
34
36
|
imports.each do |type_name, expected_filename|
|
35
37
|
import_file = pool.lookup(type_name).file_descriptor
|
@@ -48,6 +50,7 @@ module Google
|
|
48
50
|
module V1beta
|
49
51
|
ProductInput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.ProductInput").msgclass
|
50
52
|
InsertProductInputRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.InsertProductInputRequest").msgclass
|
53
|
+
UpdateProductInputRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.UpdateProductInputRequest").msgclass
|
51
54
|
DeleteProductInputRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.DeleteProductInputRequest").msgclass
|
52
55
|
end
|
53
56
|
end
|
@@ -42,6 +42,11 @@ module Google
|
|
42
42
|
# After inserting, updating, or deleting a product input, it may take several
|
43
43
|
# minutes before the processed product can be retrieved.
|
44
44
|
rpc :InsertProductInput, ::Google::Shopping::Merchant::Products::V1beta::InsertProductInputRequest, ::Google::Shopping::Merchant::Products::V1beta::ProductInput
|
45
|
+
# Updates the existing product input in your Merchant Center account.
|
46
|
+
#
|
47
|
+
# After inserting, updating, or deleting a product input, it may take several
|
48
|
+
# minutes before the processed product can be retrieved.
|
49
|
+
rpc :UpdateProductInput, ::Google::Shopping::Merchant::Products::V1beta::UpdateProductInputRequest, ::Google::Shopping::Merchant::Products::V1beta::ProductInput
|
45
50
|
# Deletes a product input from your Merchant Center account.
|
46
51
|
#
|
47
52
|
# After inserting, updating, or deleting a product input, it may take several
|
@@ -10,7 +10,7 @@ require 'google/shopping/type/types_pb'
|
|
10
10
|
require 'google/type/interval_pb'
|
11
11
|
|
12
12
|
|
13
|
-
descriptor_data = "\n>google/shopping/merchant/products/v1beta/products_common.proto\x12(google.shopping.merchant.products.v1beta\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a google/shopping/type/types.proto\x1a\x1agoogle/type/interval.proto\"\x9b\'\n\nAttributes\x12\x1e\n\x11identifier_exists\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tis_bundle\x18\x05 \x01(\x08H\x01\x88\x01\x01\x12\x12\n\x05title\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\x11\n\x04link\x18\x08 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0bmobile_link\x18\t \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0e\x63\x61nonical_link\x18\n \x01(\tH\x06\x88\x01\x01\x12\x17\n\nimage_link\x18\x0b \x01(\tH\x07\x88\x01\x01\x12\x1e\n\x16\x61\x64\x64itional_image_links\x18\x0c \x03(\t\x12\x33\n\x0f\x65xpiration_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0f\x64isclosure_date\x18O \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\x05\x61\x64ult\x18\x11 \x01(\x08H\x08\x88\x01\x01\x12\x16\n\tage_group\x18\x12 \x01(\tH\t\x88\x01\x01\x12\x19\n\x0c\x61vailability\x18\x13 \x01(\tH\n\x88\x01\x01\x12\x35\n\x11\x61vailability_date\x18\x14 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\x05\x62rand\x18\x15 \x01(\tH\x0b\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x16 \x01(\tH\x0c\x88\x01\x01\x12\x16\n\tcondition\x18\x17 \x01(\tH\r\x88\x01\x01\x12\x13\n\x06gender\x18\x18 \x01(\tH\x0e\x88\x01\x01\x12$\n\x17google_product_category\x18\x19 \x01(\tH\x0f\x88\x01\x01\x12\x0c\n\x04gtin\x18\x1a \x03(\t\x12\x1a\n\ritem_group_id\x18\x1b \x01(\tH\x10\x88\x01\x01\x12\x15\n\x08material\x18\x1c \x01(\tH\x11\x88\x01\x01\x12\x10\n\x03mpn\x18\x1d \x01(\tH\x12\x88\x01\x01\x12\x14\n\x07pattern\x18\x1e \x01(\tH\x13\x88\x01\x01\x12*\n\x05price\x18\x1f \x01(\x0b\x32\x1b.google.shopping.type.Price\x12J\n\x0binstallment\x18 \x01(\x0b\x32\x35.google.shopping.merchant.products.v1beta.Installment\x12U\n\x11subscription_cost\x18! \x01(\x0b\x32:.google.shopping.merchant.products.v1beta.SubscriptionCost\x12O\n\x0eloyalty_points\x18\" \x01(\x0b\x32\x37.google.shopping.merchant.products.v1beta.LoyaltyPoints\x12S\n\x10loyalty_programs\x18\x88\x01 \x03(\x0b\x32\x38.google.shopping.merchant.products.v1beta.LoyaltyProgram\x12\x15\n\rproduct_types\x18# \x03(\t\x12/\n\nsale_price\x18$ \x01(\x0b\x32\x1b.google.shopping.type.Price\x12\x38\n\x19sale_price_effective_date\x18% \x01(\x0b\x32\x15.google.type.Interval\x12$\n\x17sell_on_google_quantity\x18& \x01(\x03H\x14\x88\x01\x01\x12R\n\x0eproduct_height\x18w \x01(\x0b\x32:.google.shopping.merchant.products.v1beta.ProductDimension\x12R\n\x0eproduct_length\x18x \x01(\x0b\x32:.google.shopping.merchant.products.v1beta.ProductDimension\x12Q\n\rproduct_width\x18y \x01(\x0b\x32:.google.shopping.merchant.products.v1beta.ProductDimension\x12O\n\x0eproduct_weight\x18z \x01(\x0b\x32\x37.google.shopping.merchant.products.v1beta.ProductWeight\x12\x44\n\x08shipping\x18\' \x03(\x0b\x32\x32.google.shopping.merchant.products.v1beta.Shipping\x12\x61\n\x17\x66ree_shipping_threshold\x18\x87\x01 \x03(\x0b\x32?.google.shopping.merchant.products.v1beta.FreeShippingThreshold\x12Q\n\x0fshipping_weight\x18( \x01(\x0b\x32\x38.google.shopping.merchant.products.v1beta.ShippingWeight\x12T\n\x0fshipping_length\x18) \x01(\x0b\x32;.google.shopping.merchant.products.v1beta.ShippingDimension\x12S\n\x0eshipping_width\x18* \x01(\x0b\x32;.google.shopping.merchant.products.v1beta.ShippingDimension\x12T\n\x0fshipping_height\x18+ \x01(\x0b\x32;.google.shopping.merchant.products.v1beta.ShippingDimension\x12\x1e\n\x11max_handling_time\x18, \x01(\x03H\x15\x88\x01\x01\x12\x1e\n\x11min_handling_time\x18- \x01(\x03H\x16\x88\x01\x01\x12\x1b\n\x0eshipping_label\x18. \x01(\tH\x17\x88\x01\x01\x12\x1f\n\x12transit_time_label\x18/ \x01(\tH\x18\x88\x01\x01\x12\x11\n\x04size\x18\x30 \x01(\tH\x19\x88\x01\x01\x12\x18\n\x0bsize_system\x18\x31 \x01(\tH\x1a\x88\x01\x01\x12\x12\n\nsize_types\x18\x32 \x03(\t\x12<\n\x05taxes\x18\x33 \x03(\x0b\x32-.google.shopping.merchant.products.v1beta.Tax\x12\x19\n\x0ctax_category\x18\x34 \x01(\tH\x1b\x88\x01\x01\x12$\n\x17\x65nergy_efficiency_class\x18\x35 \x01(\tH\x1c\x88\x01\x01\x12(\n\x1bmin_energy_efficiency_class\x18\x36 \x01(\tH\x1d\x88\x01\x01\x12(\n\x1bmax_energy_efficiency_class\x18\x37 \x01(\tH\x1e\x88\x01\x01\x12Z\n\x14unit_pricing_measure\x18\x38 \x01(\x0b\x32<.google.shopping.merchant.products.v1beta.UnitPricingMeasure\x12\x63\n\x19unit_pricing_base_measure\x18\x39 \x01(\x0b\x32@.google.shopping.merchant.products.v1beta.UnitPricingBaseMeasure\x12\x16\n\tmultipack\x18: \x01(\x03H\x1f\x88\x01\x01\x12\x19\n\x0c\x61\x64s_grouping\x18; \x01(\tH \x88\x01\x01\x12\x12\n\nads_labels\x18< \x03(\t\x12\x19\n\x0c\x61\x64s_redirect\x18= \x01(\tH!\x88\x01\x01\x12\x37\n\x12\x63ost_of_goods_sold\x18> \x01(\x0b\x32\x1b.google.shopping.type.Price\x12P\n\x0fproduct_details\x18? \x03(\x0b\x32\x37.google.shopping.merchant.products.v1beta.ProductDetail\x12\x1a\n\x12product_highlights\x18@ \x03(\t\x12\x1b\n\x0e\x64isplay_ads_id\x18\x41 \x01(\tH\"\x88\x01\x01\x12\x1f\n\x17\x64isplay_ads_similar_ids\x18\x42 \x03(\t\x12\x1e\n\x11\x64isplay_ads_title\x18\x43 \x01(\tH#\x88\x01\x01\x12\x1d\n\x10\x64isplay_ads_link\x18\x44 \x01(\tH$\x88\x01\x01\x12\x1e\n\x11\x64isplay_ads_value\x18\x45 \x01(\x01H%\x88\x01\x01\x12\x15\n\rpromotion_ids\x18\x46 \x03(\t\x12\x1a\n\rpickup_method\x18P \x01(\tH&\x88\x01\x01\x12\x17\n\npickup_sla\x18Q \x01(\tH\'\x88\x01\x01\x12\x1a\n\rlink_template\x18R \x01(\tH(\x88\x01\x01\x12!\n\x14mobile_link_template\x18S \x01(\tH)\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_0\x18G \x01(\tH*\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_1\x18H \x01(\tH+\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_2\x18I \x01(\tH,\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_3\x18J \x01(\tH-\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_4\x18K \x01(\tH.\x88\x01\x01\x12\x1d\n\x15included_destinations\x18L \x03(\t\x12\x1d\n\x15\x65xcluded_destinations\x18M \x03(\t\x12\'\n\x1fshopping_ads_excluded_countries\x18N \x03(\t\x12\x1f\n\x12\x65xternal_seller_id\x18\x01 \x01(\tH/\x88\x01\x01\x12\x12\n\x05pause\x18\r \x01(\tH0\x88\x01\x01\x12\x1d\n\x15lifestyle_image_links\x18\x0e \x03(\t\x12u\n\"cloud_export_additional_properties\x18T \x03(\x0b\x32I.google.shopping.merchant.products.v1beta.CloudExportAdditionalProperties\x12 \n\x12virtual_model_link\x18\x82\x01 \x01(\tH1\x88\x01\x01\x12O\n\x0e\x63\x65rtifications\x18{ \x03(\x0b\x32\x37.google.shopping.merchant.products.v1beta.Certification\x12`\n\x10structured_title\x18\x84\x01 \x01(\x0b\x32@.google.shopping.merchant.products.v1beta.ProductStructuredTitleH2\x88\x01\x01\x12l\n\x16structured_description\x18\x85\x01 \x01(\x0b\x32\x46.google.shopping.merchant.products.v1beta.ProductStructuredDescriptionH3\x88\x01\x01\x12;\n\x16\x61uto_pricing_min_price\x18| \x01(\x0b\x32\x1b.google.shopping.type.PriceB\x14\n\x12_identifier_existsB\x0c\n\n_is_bundleB\x08\n\x06_titleB\x0e\n\x0c_descriptionB\x07\n\x05_linkB\x0e\n\x0c_mobile_linkB\x11\n\x0f_canonical_linkB\r\n\x0b_image_linkB\x08\n\x06_adultB\x0c\n\n_age_groupB\x0f\n\r_availabilityB\x08\n\x06_brandB\x08\n\x06_colorB\x0c\n\n_conditionB\t\n\x07_genderB\x1a\n\x18_google_product_categoryB\x10\n\x0e_item_group_idB\x0b\n\t_materialB\x06\n\x04_mpnB\n\n\x08_patternB\x1a\n\x18_sell_on_google_quantityB\x14\n\x12_max_handling_timeB\x14\n\x12_min_handling_timeB\x11\n\x0f_shipping_labelB\x15\n\x13_transit_time_labelB\x07\n\x05_sizeB\x0e\n\x0c_size_systemB\x0f\n\r_tax_categoryB\x1a\n\x18_energy_efficiency_classB\x1e\n\x1c_min_energy_efficiency_classB\x1e\n\x1c_max_energy_efficiency_classB\x0c\n\n_multipackB\x0f\n\r_ads_groupingB\x0f\n\r_ads_redirectB\x11\n\x0f_display_ads_idB\x14\n\x12_display_ads_titleB\x13\n\x11_display_ads_linkB\x14\n\x12_display_ads_valueB\x10\n\x0e_pickup_methodB\r\n\x0b_pickup_slaB\x10\n\x0e_link_templateB\x17\n\x15_mobile_link_templateB\x11\n\x0f_custom_label_0B\x11\n\x0f_custom_label_1B\x11\n\x0f_custom_label_2B\x11\n\x0f_custom_label_3B\x11\n\x0f_custom_label_4B\x15\n\x13_external_seller_idB\x08\n\x06_pauseB\x15\n\x13_virtual_model_linkB\x13\n\x11_structured_titleB\x19\n\x17_structured_description\"p\n\x03Tax\x12\x0c\n\x04rate\x18\x01 \x01(\x01\x12\x0f\n\x07\x63ountry\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08tax_ship\x18\x04 \x01(\x08\x12\x13\n\x0blocation_id\x18\x05 \x01(\x03\x12\x13\n\x0bpostal_code\x18\x06 \x01(\t\"-\n\x0eShippingWeight\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x0c\n\x04unit\x18\x02 \x01(\t\"0\n\x11ShippingDimension\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x0c\n\x04unit\x18\x02 \x01(\t\"5\n\x16UnitPricingBaseMeasure\x12\r\n\x05value\x18\x01 \x01(\x03\x12\x0c\n\x04unit\x18\x02 \x01(\t\"1\n\x12UnitPricingMeasure\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x0c\n\x04unit\x18\x02 \x01(\t\"\xa4\x01\n\x10SubscriptionCost\x12L\n\x06period\x18\x01 \x01(\x0e\x32<.google.shopping.merchant.products.v1beta.SubscriptionPeriod\x12\x15\n\rperiod_length\x18\x02 \x01(\x03\x12+\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x1b.google.shopping.type.Price\"\xbb\x01\n\x0bInstallment\x12\x0e\n\x06months\x18\x01 \x01(\x03\x12+\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x1b.google.shopping.type.Price\x12\x35\n\x0b\x64ownpayment\x18\x03 \x01(\x0b\x32\x1b.google.shopping.type.PriceH\x00\x88\x01\x01\x12\x18\n\x0b\x63redit_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_downpaymentB\x0e\n\x0c_credit_type\"B\n\rLoyaltyPoints\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cpoints_value\x18\x02 \x01(\x03\x12\r\n\x05ratio\x18\x03 \x01(\x01\"\xc1\x03\n\x0eLoyaltyProgram\x12\x1a\n\rprogram_label\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ntier_label\x18\x02 \x01(\tH\x01\x88\x01\x01\x12/\n\x05price\x18\x03 \x01(\x0b\x32\x1b.google.shopping.type.PriceH\x02\x88\x01\x01\x12\x41\n\x17\x63\x61shback_for_future_use\x18\x04 \x01(\x0b\x32\x1b.google.shopping.type.PriceH\x03\x88\x01\x01\x12\x1b\n\x0eloyalty_points\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12?\n\x1bmember_price_effective_date\x18\x06 \x01(\x0b\x32\x15.google.type.IntervalH\x05\x88\x01\x01\x12\x1b\n\x0eshipping_label\x18\x07 \x01(\tH\x06\x88\x01\x01\x42\x10\n\x0e_program_labelB\r\n\x0b_tier_labelB\x08\n\x06_priceB\x1a\n\x18_cashback_for_future_useB\x11\n\x0f_loyalty_pointsB\x1e\n\x1c_member_price_effective_dateB\x11\n\x0f_shipping_label\"\x83\x03\n\x08Shipping\x12*\n\x05price\x18\x01 \x01(\x0b\x32\x1b.google.shopping.type.Price\x12\x0f\n\x07\x63ountry\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x0f\n\x07service\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\x03\x12\x1b\n\x13location_group_name\x18\x06 \x01(\t\x12\x13\n\x0bpostal_code\x18\x07 \x01(\t\x12\x1e\n\x11min_handling_time\x18\x08 \x01(\x03H\x00\x88\x01\x01\x12\x1e\n\x11max_handling_time\x18\t \x01(\x03H\x01\x88\x01\x01\x12\x1d\n\x10min_transit_time\x18\n \x01(\x03H\x02\x88\x01\x01\x12\x1d\n\x10max_transit_time\x18\x0b \x01(\x03H\x03\x88\x01\x01\x42\x14\n\x12_min_handling_timeB\x14\n\x12_max_handling_timeB\x13\n\x11_min_transit_timeB\x13\n\x11_max_transit_time\"\x88\x01\n\x15\x46reeShippingThreshold\x12\x14\n\x07\x63ountry\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0fprice_threshold\x18\x02 \x01(\x0b\x32\x1b.google.shopping.type.PriceH\x01\x88\x01\x01\x42\n\n\x08_countryB\x12\n\x10_price_threshold\"V\n\rProductDetail\x12\x14\n\x0csection_name\x18\x01 \x01(\t\x12\x16\n\x0e\x61ttribute_name\x18\x02 \x01(\t\x12\x17\n\x0f\x61ttribute_value\x18\x03 \x01(\t\"\xfb\x01\n\rCertification\x12$\n\x17\x63\x65rtification_authority\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x65rtification_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x63\x65rtification_code\x18\x03 \x01(\tH\x02\x88\x01\x01\x12 \n\x13\x63\x65rtification_value\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x1a\n\x18_certification_authorityB\x15\n\x13_certification_nameB\x15\n\x13_certification_codeB\x16\n\x14_certification_value\"t\n\x16ProductStructuredTitle\x12 \n\x13\x64igital_source_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x63ontent\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_digital_source_typeB\n\n\x08_content\"z\n\x1cProductStructuredDescription\x12 \n\x13\x64igital_source_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x63ontent\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_digital_source_typeB\n\n\x08_content\"9\n\x10ProductDimension\x12\x12\n\x05value\x18\x01 \x01(\x01\x42\x03\xe0\x41\x02\x12\x11\n\x04unit\x18\x02 \x01(\tB\x03\xe0\x41\x02\"6\n\rProductWeight\x12\x12\n\x05value\x18\x01 \x01(\x01\x42\x03\xe0\x41\x02\x12\x11\n\x04unit\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xf7\x07\n\rProductStatus\x12g\n\x14\x64\x65stination_statuses\x18\x03 \x03(\x0b\x32I.google.shopping.merchant.products.v1beta.ProductStatus.DestinationStatus\x12\x61\n\x11item_level_issues\x18\x04 \x03(\x0b\x32\x46.google.shopping.merchant.products.v1beta.ProductStatus.ItemLevelIssue\x12\x31\n\rcreation_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10last_update_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16google_expiration_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\xc1\x01\n\x11\x44\x65stinationStatus\x12V\n\x11reporting_context\x18\x01 \x01(\x0e\x32;.google.shopping.type.ReportingContext.ReportingContextEnum\x12\x1a\n\x12\x61pproved_countries\x18\x02 \x03(\t\x12\x19\n\x11pending_countries\x18\x03 \x03(\t\x12\x1d\n\x15\x64isapproved_countries\x18\x04 \x03(\t\x1a\xb0\x03\n\x0eItemLevelIssue\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\x12\x61\n\x08severity\x18\x02 \x01(\x0e\x32O.google.shopping.merchant.products.v1beta.ProductStatus.ItemLevelIssue.Severity\x12\x12\n\nresolution\x18\x03 \x01(\t\x12\x11\n\tattribute\x18\x04 \x01(\t\x12V\n\x11reporting_context\x18\x05 \x01(\x0e\x32;.google.shopping.type.ReportingContext.ReportingContextEnum\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x0e\n\x06\x64\x65tail\x18\x07 \x01(\t\x12\x15\n\rdocumentation\x18\x08 \x01(\t\x12\x1c\n\x14\x61pplicable_countries\x18\t \x03(\t\"T\n\x08Severity\x12\x18\n\x14SEVERITY_UNSPECIFIED\x10\x00\x12\x10\n\x0cNOT_IMPACTED\x10\x01\x12\x0b\n\x07\x44\x45MOTED\x10\x02\x12\x0f\n\x0b\x44ISAPPROVED\x10\x03\"\xa5\x02\n\x1f\x43loudExportAdditionalProperties\x12\x1a\n\rproperty_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\ntext_value\x18\x02 \x03(\t\x12\x17\n\nbool_value\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x11\n\tint_value\x18\x04 \x03(\x03\x12\x13\n\x0b\x66loat_value\x18\x05 \x03(\x02\x12\x16\n\tmin_value\x18\x06 \x01(\x02H\x02\x88\x01\x01\x12\x16\n\tmax_value\x18\x07 \x01(\x02H\x03\x88\x01\x01\x12\x16\n\tunit_code\x18\x08 \x01(\tH\x04\x88\x01\x01\x42\x10\n\x0e_property_nameB\r\n\x0b_bool_valueB\x0c\n\n_min_valueB\x0c\n\n_max_valueB\x0c\n\n_unit_code*N\n\x12SubscriptionPeriod\x12#\n\x1fSUBSCRIPTION_PERIOD_UNSPECIFIED\x10\x00\x12\t\n\x05MONTH\x10\x01\x12\x08\n\x04YEAR\x10\x02\x42\x95\x01\n,com.google.shopping.merchant.products.v1betaB\x13ProductsCommonProtoP\x01ZNcloud.google.com/go/shopping/merchant/products/apiv1beta/productspb;productspbb\x06proto3"
|
13
|
+
descriptor_data = "\n>google/shopping/merchant/products/v1beta/products_common.proto\x12(google.shopping.merchant.products.v1beta\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a google/shopping/type/types.proto\x1a\x1agoogle/type/interval.proto\"\x89(\n\nAttributes\x12\x1e\n\x11identifier_exists\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tis_bundle\x18\x05 \x01(\x08H\x01\x88\x01\x01\x12\x12\n\x05title\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\x11\n\x04link\x18\x08 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0bmobile_link\x18\t \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0e\x63\x61nonical_link\x18\n \x01(\tH\x06\x88\x01\x01\x12\x17\n\nimage_link\x18\x0b \x01(\tH\x07\x88\x01\x01\x12\x1e\n\x16\x61\x64\x64itional_image_links\x18\x0c \x03(\t\x12\x33\n\x0f\x65xpiration_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0f\x64isclosure_date\x18O \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\x05\x61\x64ult\x18\x11 \x01(\x08H\x08\x88\x01\x01\x12\x16\n\tage_group\x18\x12 \x01(\tH\t\x88\x01\x01\x12\x19\n\x0c\x61vailability\x18\x13 \x01(\tH\n\x88\x01\x01\x12\x35\n\x11\x61vailability_date\x18\x14 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\x05\x62rand\x18\x15 \x01(\tH\x0b\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x16 \x01(\tH\x0c\x88\x01\x01\x12\x16\n\tcondition\x18\x17 \x01(\tH\r\x88\x01\x01\x12\x13\n\x06gender\x18\x18 \x01(\tH\x0e\x88\x01\x01\x12$\n\x17google_product_category\x18\x19 \x01(\tH\x0f\x88\x01\x01\x12\x0c\n\x04gtin\x18\x1a \x03(\t\x12\x1a\n\ritem_group_id\x18\x1b \x01(\tH\x10\x88\x01\x01\x12\x15\n\x08material\x18\x1c \x01(\tH\x11\x88\x01\x01\x12\x10\n\x03mpn\x18\x1d \x01(\tH\x12\x88\x01\x01\x12\x14\n\x07pattern\x18\x1e \x01(\tH\x13\x88\x01\x01\x12*\n\x05price\x18\x1f \x01(\x0b\x32\x1b.google.shopping.type.Price\x12J\n\x0binstallment\x18 \x01(\x0b\x32\x35.google.shopping.merchant.products.v1beta.Installment\x12U\n\x11subscription_cost\x18! \x01(\x0b\x32:.google.shopping.merchant.products.v1beta.SubscriptionCost\x12O\n\x0eloyalty_points\x18\" \x01(\x0b\x32\x37.google.shopping.merchant.products.v1beta.LoyaltyPoints\x12S\n\x10loyalty_programs\x18\x88\x01 \x03(\x0b\x32\x38.google.shopping.merchant.products.v1beta.LoyaltyProgram\x12\x15\n\rproduct_types\x18# \x03(\t\x12/\n\nsale_price\x18$ \x01(\x0b\x32\x1b.google.shopping.type.Price\x12\x38\n\x19sale_price_effective_date\x18% \x01(\x0b\x32\x15.google.type.Interval\x12$\n\x17sell_on_google_quantity\x18& \x01(\x03H\x14\x88\x01\x01\x12R\n\x0eproduct_height\x18w \x01(\x0b\x32:.google.shopping.merchant.products.v1beta.ProductDimension\x12R\n\x0eproduct_length\x18x \x01(\x0b\x32:.google.shopping.merchant.products.v1beta.ProductDimension\x12Q\n\rproduct_width\x18y \x01(\x0b\x32:.google.shopping.merchant.products.v1beta.ProductDimension\x12O\n\x0eproduct_weight\x18z \x01(\x0b\x32\x37.google.shopping.merchant.products.v1beta.ProductWeight\x12\x44\n\x08shipping\x18\' \x03(\x0b\x32\x32.google.shopping.merchant.products.v1beta.Shipping\x12\x61\n\x17\x66ree_shipping_threshold\x18\x87\x01 \x03(\x0b\x32?.google.shopping.merchant.products.v1beta.FreeShippingThreshold\x12Q\n\x0fshipping_weight\x18( \x01(\x0b\x32\x38.google.shopping.merchant.products.v1beta.ShippingWeight\x12T\n\x0fshipping_length\x18) \x01(\x0b\x32;.google.shopping.merchant.products.v1beta.ShippingDimension\x12S\n\x0eshipping_width\x18* \x01(\x0b\x32;.google.shopping.merchant.products.v1beta.ShippingDimension\x12T\n\x0fshipping_height\x18+ \x01(\x0b\x32;.google.shopping.merchant.products.v1beta.ShippingDimension\x12\x1e\n\x11max_handling_time\x18, \x01(\x03H\x15\x88\x01\x01\x12\x1e\n\x11min_handling_time\x18- \x01(\x03H\x16\x88\x01\x01\x12\x1b\n\x0eshipping_label\x18. \x01(\tH\x17\x88\x01\x01\x12\x1f\n\x12transit_time_label\x18/ \x01(\tH\x18\x88\x01\x01\x12\x11\n\x04size\x18\x30 \x01(\tH\x19\x88\x01\x01\x12\x18\n\x0bsize_system\x18\x31 \x01(\tH\x1a\x88\x01\x01\x12\x12\n\nsize_types\x18\x32 \x03(\t\x12<\n\x05taxes\x18\x33 \x03(\x0b\x32-.google.shopping.merchant.products.v1beta.Tax\x12\x19\n\x0ctax_category\x18\x34 \x01(\tH\x1b\x88\x01\x01\x12$\n\x17\x65nergy_efficiency_class\x18\x35 \x01(\tH\x1c\x88\x01\x01\x12(\n\x1bmin_energy_efficiency_class\x18\x36 \x01(\tH\x1d\x88\x01\x01\x12(\n\x1bmax_energy_efficiency_class\x18\x37 \x01(\tH\x1e\x88\x01\x01\x12Z\n\x14unit_pricing_measure\x18\x38 \x01(\x0b\x32<.google.shopping.merchant.products.v1beta.UnitPricingMeasure\x12\x63\n\x19unit_pricing_base_measure\x18\x39 \x01(\x0b\x32@.google.shopping.merchant.products.v1beta.UnitPricingBaseMeasure\x12\x16\n\tmultipack\x18: \x01(\x03H\x1f\x88\x01\x01\x12\x19\n\x0c\x61\x64s_grouping\x18; \x01(\tH \x88\x01\x01\x12\x12\n\nads_labels\x18< \x03(\t\x12\x19\n\x0c\x61\x64s_redirect\x18= \x01(\tH!\x88\x01\x01\x12\x37\n\x12\x63ost_of_goods_sold\x18> \x01(\x0b\x32\x1b.google.shopping.type.Price\x12P\n\x0fproduct_details\x18? \x03(\x0b\x32\x37.google.shopping.merchant.products.v1beta.ProductDetail\x12\x1a\n\x12product_highlights\x18@ \x03(\t\x12\x1b\n\x0e\x64isplay_ads_id\x18\x41 \x01(\tH\"\x88\x01\x01\x12\x1f\n\x17\x64isplay_ads_similar_ids\x18\x42 \x03(\t\x12\x1e\n\x11\x64isplay_ads_title\x18\x43 \x01(\tH#\x88\x01\x01\x12\x1d\n\x10\x64isplay_ads_link\x18\x44 \x01(\tH$\x88\x01\x01\x12\x1e\n\x11\x64isplay_ads_value\x18\x45 \x01(\x01H%\x88\x01\x01\x12\x15\n\rpromotion_ids\x18\x46 \x03(\t\x12\x1a\n\rpickup_method\x18P \x01(\tH&\x88\x01\x01\x12\x17\n\npickup_sla\x18Q \x01(\tH\'\x88\x01\x01\x12\x1a\n\rlink_template\x18R \x01(\tH(\x88\x01\x01\x12!\n\x14mobile_link_template\x18S \x01(\tH)\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_0\x18G \x01(\tH*\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_1\x18H \x01(\tH+\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_2\x18I \x01(\tH,\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_3\x18J \x01(\tH-\x88\x01\x01\x12\x1b\n\x0e\x63ustom_label_4\x18K \x01(\tH.\x88\x01\x01\x12\x1d\n\x15included_destinations\x18L \x03(\t\x12\x1d\n\x15\x65xcluded_destinations\x18M \x03(\t\x12\'\n\x1fshopping_ads_excluded_countries\x18N \x03(\t\x12\x1f\n\x12\x65xternal_seller_id\x18\x01 \x01(\tH/\x88\x01\x01\x12\x12\n\x05pause\x18\r \x01(\tH0\x88\x01\x01\x12\x1d\n\x15lifestyle_image_links\x18\x0e \x03(\t\x12u\n\"cloud_export_additional_properties\x18T \x03(\x0b\x32I.google.shopping.merchant.products.v1beta.CloudExportAdditionalProperties\x12 \n\x12virtual_model_link\x18\x82\x01 \x01(\tH1\x88\x01\x01\x12O\n\x0e\x63\x65rtifications\x18{ \x03(\x0b\x32\x37.google.shopping.merchant.products.v1beta.Certification\x12`\n\x10structured_title\x18\x84\x01 \x01(\x0b\x32@.google.shopping.merchant.products.v1beta.ProductStructuredTitleH2\x88\x01\x01\x12l\n\x16structured_description\x18\x85\x01 \x01(\x0b\x32\x46.google.shopping.merchant.products.v1beta.ProductStructuredDescriptionH3\x88\x01\x01\x12;\n\x16\x61uto_pricing_min_price\x18| \x01(\x0b\x32\x1b.google.shopping.type.Price\x12l\n\x19sustainability_incentives\x18\x8a\x01 \x03(\x0b\x32H.google.shopping.merchant.products.v1beta.ProductSustainabilityIncentiveB\x14\n\x12_identifier_existsB\x0c\n\n_is_bundleB\x08\n\x06_titleB\x0e\n\x0c_descriptionB\x07\n\x05_linkB\x0e\n\x0c_mobile_linkB\x11\n\x0f_canonical_linkB\r\n\x0b_image_linkB\x08\n\x06_adultB\x0c\n\n_age_groupB\x0f\n\r_availabilityB\x08\n\x06_brandB\x08\n\x06_colorB\x0c\n\n_conditionB\t\n\x07_genderB\x1a\n\x18_google_product_categoryB\x10\n\x0e_item_group_idB\x0b\n\t_materialB\x06\n\x04_mpnB\n\n\x08_patternB\x1a\n\x18_sell_on_google_quantityB\x14\n\x12_max_handling_timeB\x14\n\x12_min_handling_timeB\x11\n\x0f_shipping_labelB\x15\n\x13_transit_time_labelB\x07\n\x05_sizeB\x0e\n\x0c_size_systemB\x0f\n\r_tax_categoryB\x1a\n\x18_energy_efficiency_classB\x1e\n\x1c_min_energy_efficiency_classB\x1e\n\x1c_max_energy_efficiency_classB\x0c\n\n_multipackB\x0f\n\r_ads_groupingB\x0f\n\r_ads_redirectB\x11\n\x0f_display_ads_idB\x14\n\x12_display_ads_titleB\x13\n\x11_display_ads_linkB\x14\n\x12_display_ads_valueB\x10\n\x0e_pickup_methodB\r\n\x0b_pickup_slaB\x10\n\x0e_link_templateB\x17\n\x15_mobile_link_templateB\x11\n\x0f_custom_label_0B\x11\n\x0f_custom_label_1B\x11\n\x0f_custom_label_2B\x11\n\x0f_custom_label_3B\x11\n\x0f_custom_label_4B\x15\n\x13_external_seller_idB\x08\n\x06_pauseB\x15\n\x13_virtual_model_linkB\x13\n\x11_structured_titleB\x19\n\x17_structured_description\"p\n\x03Tax\x12\x0c\n\x04rate\x18\x01 \x01(\x01\x12\x0f\n\x07\x63ountry\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08tax_ship\x18\x04 \x01(\x08\x12\x13\n\x0blocation_id\x18\x05 \x01(\x03\x12\x13\n\x0bpostal_code\x18\x06 \x01(\t\"-\n\x0eShippingWeight\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x0c\n\x04unit\x18\x02 \x01(\t\"0\n\x11ShippingDimension\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x0c\n\x04unit\x18\x02 \x01(\t\"5\n\x16UnitPricingBaseMeasure\x12\r\n\x05value\x18\x01 \x01(\x03\x12\x0c\n\x04unit\x18\x02 \x01(\t\"1\n\x12UnitPricingMeasure\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x0c\n\x04unit\x18\x02 \x01(\t\"\xa4\x01\n\x10SubscriptionCost\x12L\n\x06period\x18\x01 \x01(\x0e\x32<.google.shopping.merchant.products.v1beta.SubscriptionPeriod\x12\x15\n\rperiod_length\x18\x02 \x01(\x03\x12+\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x1b.google.shopping.type.Price\"\xbb\x01\n\x0bInstallment\x12\x0e\n\x06months\x18\x01 \x01(\x03\x12+\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x1b.google.shopping.type.Price\x12\x35\n\x0b\x64ownpayment\x18\x03 \x01(\x0b\x32\x1b.google.shopping.type.PriceH\x00\x88\x01\x01\x12\x18\n\x0b\x63redit_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_downpaymentB\x0e\n\x0c_credit_type\"B\n\rLoyaltyPoints\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cpoints_value\x18\x02 \x01(\x03\x12\r\n\x05ratio\x18\x03 \x01(\x01\"\xc1\x03\n\x0eLoyaltyProgram\x12\x1a\n\rprogram_label\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ntier_label\x18\x02 \x01(\tH\x01\x88\x01\x01\x12/\n\x05price\x18\x03 \x01(\x0b\x32\x1b.google.shopping.type.PriceH\x02\x88\x01\x01\x12\x41\n\x17\x63\x61shback_for_future_use\x18\x04 \x01(\x0b\x32\x1b.google.shopping.type.PriceH\x03\x88\x01\x01\x12\x1b\n\x0eloyalty_points\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12?\n\x1bmember_price_effective_date\x18\x06 \x01(\x0b\x32\x15.google.type.IntervalH\x05\x88\x01\x01\x12\x1b\n\x0eshipping_label\x18\x07 \x01(\tH\x06\x88\x01\x01\x42\x10\n\x0e_program_labelB\r\n\x0b_tier_labelB\x08\n\x06_priceB\x1a\n\x18_cashback_for_future_useB\x11\n\x0f_loyalty_pointsB\x1e\n\x1c_member_price_effective_dateB\x11\n\x0f_shipping_label\"\x83\x03\n\x08Shipping\x12*\n\x05price\x18\x01 \x01(\x0b\x32\x1b.google.shopping.type.Price\x12\x0f\n\x07\x63ountry\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x0f\n\x07service\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\x03\x12\x1b\n\x13location_group_name\x18\x06 \x01(\t\x12\x13\n\x0bpostal_code\x18\x07 \x01(\t\x12\x1e\n\x11min_handling_time\x18\x08 \x01(\x03H\x00\x88\x01\x01\x12\x1e\n\x11max_handling_time\x18\t \x01(\x03H\x01\x88\x01\x01\x12\x1d\n\x10min_transit_time\x18\n \x01(\x03H\x02\x88\x01\x01\x12\x1d\n\x10max_transit_time\x18\x0b \x01(\x03H\x03\x88\x01\x01\x42\x14\n\x12_min_handling_timeB\x14\n\x12_max_handling_timeB\x13\n\x11_min_transit_timeB\x13\n\x11_max_transit_time\"\x88\x01\n\x15\x46reeShippingThreshold\x12\x14\n\x07\x63ountry\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0fprice_threshold\x18\x02 \x01(\x0b\x32\x1b.google.shopping.type.PriceH\x01\x88\x01\x01\x42\n\n\x08_countryB\x12\n\x10_price_threshold\"V\n\rProductDetail\x12\x14\n\x0csection_name\x18\x01 \x01(\t\x12\x16\n\x0e\x61ttribute_name\x18\x02 \x01(\t\x12\x17\n\x0f\x61ttribute_value\x18\x03 \x01(\t\"\xfb\x01\n\rCertification\x12$\n\x17\x63\x65rtification_authority\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x65rtification_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x63\x65rtification_code\x18\x03 \x01(\tH\x02\x88\x01\x01\x12 \n\x13\x63\x65rtification_value\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x1a\n\x18_certification_authorityB\x15\n\x13_certification_nameB\x15\n\x13_certification_codeB\x16\n\x14_certification_value\"t\n\x16ProductStructuredTitle\x12 \n\x13\x64igital_source_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x63ontent\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_digital_source_typeB\n\n\x08_content\"z\n\x1cProductStructuredDescription\x12 \n\x13\x64igital_source_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x63ontent\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_digital_source_typeB\n\n\x08_content\"9\n\x10ProductDimension\x12\x12\n\x05value\x18\x01 \x01(\x01\x42\x03\xe0\x41\x02\x12\x11\n\x04unit\x18\x02 \x01(\tB\x03\xe0\x41\x02\"6\n\rProductWeight\x12\x12\n\x05value\x18\x01 \x01(\x01\x42\x03\xe0\x41\x02\x12\x11\n\x04unit\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xf7\x07\n\rProductStatus\x12g\n\x14\x64\x65stination_statuses\x18\x03 \x03(\x0b\x32I.google.shopping.merchant.products.v1beta.ProductStatus.DestinationStatus\x12\x61\n\x11item_level_issues\x18\x04 \x03(\x0b\x32\x46.google.shopping.merchant.products.v1beta.ProductStatus.ItemLevelIssue\x12\x31\n\rcreation_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10last_update_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16google_expiration_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\xc1\x01\n\x11\x44\x65stinationStatus\x12V\n\x11reporting_context\x18\x01 \x01(\x0e\x32;.google.shopping.type.ReportingContext.ReportingContextEnum\x12\x1a\n\x12\x61pproved_countries\x18\x02 \x03(\t\x12\x19\n\x11pending_countries\x18\x03 \x03(\t\x12\x1d\n\x15\x64isapproved_countries\x18\x04 \x03(\t\x1a\xb0\x03\n\x0eItemLevelIssue\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\x12\x61\n\x08severity\x18\x02 \x01(\x0e\x32O.google.shopping.merchant.products.v1beta.ProductStatus.ItemLevelIssue.Severity\x12\x12\n\nresolution\x18\x03 \x01(\t\x12\x11\n\tattribute\x18\x04 \x01(\t\x12V\n\x11reporting_context\x18\x05 \x01(\x0e\x32;.google.shopping.type.ReportingContext.ReportingContextEnum\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x0e\n\x06\x64\x65tail\x18\x07 \x01(\t\x12\x15\n\rdocumentation\x18\x08 \x01(\t\x12\x1c\n\x14\x61pplicable_countries\x18\t \x03(\t\"T\n\x08Severity\x12\x18\n\x14SEVERITY_UNSPECIFIED\x10\x00\x12\x10\n\x0cNOT_IMPACTED\x10\x01\x12\x0b\n\x07\x44\x45MOTED\x10\x02\x12\x0f\n\x0b\x44ISAPPROVED\x10\x03\"\xa5\x02\n\x1f\x43loudExportAdditionalProperties\x12\x1a\n\rproperty_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\ntext_value\x18\x02 \x03(\t\x12\x17\n\nbool_value\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x11\n\tint_value\x18\x04 \x03(\x03\x12\x13\n\x0b\x66loat_value\x18\x05 \x03(\x02\x12\x16\n\tmin_value\x18\x06 \x01(\x02H\x02\x88\x01\x01\x12\x16\n\tmax_value\x18\x07 \x01(\x02H\x03\x88\x01\x01\x12\x16\n\tunit_code\x18\x08 \x01(\tH\x04\x88\x01\x01\x42\x10\n\x0e_property_nameB\r\n\x0b_bool_valueB\x0c\n\n_min_valueB\x0c\n\n_max_valueB\x0c\n\n_unit_code\"\xa1\x02\n\x1eProductSustainabilityIncentive\x12-\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x1b.google.shopping.type.PriceH\x00\x12\x14\n\npercentage\x18\x03 \x01(\x01H\x00\x12`\n\x04type\x18\x01 \x01(\x0e\x32M.google.shopping.merchant.products.v1beta.ProductSustainabilityIncentive.TypeH\x01\x88\x01\x01\"F\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rEV_TAX_CREDIT\x10\x01\x12\x15\n\x11\x45V_PRICE_DISCOUNT\x10\x02\x42\x07\n\x05valueB\x07\n\x05_type*N\n\x12SubscriptionPeriod\x12#\n\x1fSUBSCRIPTION_PERIOD_UNSPECIFIED\x10\x00\x12\t\n\x05MONTH\x10\x01\x12\x08\n\x04YEAR\x10\x02\x42\x95\x01\n,com.google.shopping.merchant.products.v1betaB\x13ProductsCommonProtoP\x01ZNcloud.google.com/go/shopping/merchant/products/apiv1beta/productspb;productspbb\x06proto3"
|
14
14
|
|
15
15
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
16
16
|
|
@@ -67,6 +67,8 @@ module Google
|
|
67
67
|
ProductStatus::ItemLevelIssue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.ProductStatus.ItemLevelIssue").msgclass
|
68
68
|
ProductStatus::ItemLevelIssue::Severity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.ProductStatus.ItemLevelIssue.Severity").enummodule
|
69
69
|
CloudExportAdditionalProperties = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.CloudExportAdditionalProperties").msgclass
|
70
|
+
ProductSustainabilityIncentive = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.ProductSustainabilityIncentive").msgclass
|
71
|
+
ProductSustainabilityIncentive::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.ProductSustainabilityIncentive.Type").enummodule
|
70
72
|
SubscriptionPeriod = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.shopping.merchant.products.v1beta.SubscriptionPeriod").enummodule
|
71
73
|
end
|
72
74
|
end
|
@@ -435,6 +435,13 @@ module Google
|
|
435
435
|
# * (`GRPC::Core::Channel`) a gRPC channel with included credentials
|
436
436
|
# * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
|
437
437
|
# * (`nil`) indicating no credentials
|
438
|
+
#
|
439
|
+
# Warning: If you accept a credential configuration (JSON file or Hash) from an
|
440
|
+
# external source for authentication to Google Cloud, you must validate it before
|
441
|
+
# providing it to a Google API client library. Providing an unvalidated credential
|
442
|
+
# configuration to Google APIs can compromise the security of your systems and data.
|
443
|
+
# For more information, refer to [Validate credential configurations from external
|
444
|
+
# sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
|
438
445
|
# @return [::Object]
|
439
446
|
# @!attribute [rw] scope
|
440
447
|
# The OAuth scopes
|
@@ -412,6 +412,13 @@ module Google
|
|
412
412
|
# * (`Signet::OAuth2::Client`) A signet oauth2 client object
|
413
413
|
# (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
|
414
414
|
# * (`nil`) indicating no credentials
|
415
|
+
#
|
416
|
+
# Warning: If you accept a credential configuration (JSON file or Hash) from an
|
417
|
+
# external source for authentication to Google Cloud, you must validate it before
|
418
|
+
# providing it to a Google API client library. Providing an unvalidated credential
|
419
|
+
# configuration to Google APIs can compromise the security of your systems and data.
|
420
|
+
# For more information, refer to [Validate credential configurations from external
|
421
|
+
# sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
|
415
422
|
# @return [::Object]
|
416
423
|
# @!attribute [rw] scope
|
417
424
|
# The OAuth scopes
|
@@ -221,6 +221,12 @@ module Google
|
|
221
221
|
# Pythonic which are included in `protobuf>=5.29.x`. This feature will be
|
222
222
|
# enabled by default 1 month after launching the feature in preview
|
223
223
|
# packages.
|
224
|
+
# @!attribute [rw] unversioned_package_disabled
|
225
|
+
# @return [::Boolean]
|
226
|
+
# Disables generation of an unversioned Python package for this client
|
227
|
+
# library. This means that the module names will need to be versioned in
|
228
|
+
# import statements. For example `import google.cloud.library_v2` instead
|
229
|
+
# of `import google.cloud.library`.
|
224
230
|
class ExperimentalFeatures
|
225
231
|
include ::Google::Protobuf::MessageExts
|
226
232
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -409,6 +415,14 @@ module Google
|
|
409
415
|
# @return [::Array<::String>]
|
410
416
|
# An allowlist of the fully qualified names of RPCs that should be included
|
411
417
|
# on public client surfaces.
|
418
|
+
# @!attribute [rw] generate_omitted_as_internal
|
419
|
+
# @return [::Boolean]
|
420
|
+
# Setting this to true indicates to the client generators that methods
|
421
|
+
# that would be excluded from the generation should instead be generated
|
422
|
+
# in a way that indicates these methods should not be consumed by
|
423
|
+
# end users. How this is expressed is up to individual language
|
424
|
+
# implementations to decide. Some examples may be: added annotations,
|
425
|
+
# obfuscated identifiers, or other language idiomatic patterns.
|
412
426
|
class SelectiveGapicGeneration
|
413
427
|
include ::Google::Protobuf::MessageExts
|
414
428
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -0,0 +1,229 @@
|
|
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
|
+
# `FieldMask` represents a set of symbolic field paths, for example:
|
23
|
+
#
|
24
|
+
# paths: "f.a"
|
25
|
+
# paths: "f.b.d"
|
26
|
+
#
|
27
|
+
# Here `f` represents a field in some root message, `a` and `b`
|
28
|
+
# fields in the message found in `f`, and `d` a field found in the
|
29
|
+
# message in `f.b`.
|
30
|
+
#
|
31
|
+
# Field masks are used to specify a subset of fields that should be
|
32
|
+
# returned by a get operation or modified by an update operation.
|
33
|
+
# Field masks also have a custom JSON encoding (see below).
|
34
|
+
#
|
35
|
+
# # Field Masks in Projections
|
36
|
+
#
|
37
|
+
# When used in the context of a projection, a response message or
|
38
|
+
# sub-message is filtered by the API to only contain those fields as
|
39
|
+
# specified in the mask. For example, if the mask in the previous
|
40
|
+
# example is applied to a response message as follows:
|
41
|
+
#
|
42
|
+
# f {
|
43
|
+
# a : 22
|
44
|
+
# b {
|
45
|
+
# d : 1
|
46
|
+
# x : 2
|
47
|
+
# }
|
48
|
+
# y : 13
|
49
|
+
# }
|
50
|
+
# z: 8
|
51
|
+
#
|
52
|
+
# The result will not contain specific values for fields x,y and z
|
53
|
+
# (their value will be set to the default, and omitted in proto text
|
54
|
+
# output):
|
55
|
+
#
|
56
|
+
#
|
57
|
+
# f {
|
58
|
+
# a : 22
|
59
|
+
# b {
|
60
|
+
# d : 1
|
61
|
+
# }
|
62
|
+
# }
|
63
|
+
#
|
64
|
+
# A repeated field is not allowed except at the last position of a
|
65
|
+
# paths string.
|
66
|
+
#
|
67
|
+
# If a FieldMask object is not present in a get operation, the
|
68
|
+
# operation applies to all fields (as if a FieldMask of all fields
|
69
|
+
# had been specified).
|
70
|
+
#
|
71
|
+
# Note that a field mask does not necessarily apply to the
|
72
|
+
# top-level response message. In case of a REST get operation, the
|
73
|
+
# field mask applies directly to the response, but in case of a REST
|
74
|
+
# list operation, the mask instead applies to each individual message
|
75
|
+
# in the returned resource list. In case of a REST custom method,
|
76
|
+
# other definitions may be used. Where the mask applies will be
|
77
|
+
# clearly documented together with its declaration in the API. In
|
78
|
+
# any case, the effect on the returned resource/resources is required
|
79
|
+
# behavior for APIs.
|
80
|
+
#
|
81
|
+
# # Field Masks in Update Operations
|
82
|
+
#
|
83
|
+
# A field mask in update operations specifies which fields of the
|
84
|
+
# targeted resource are going to be updated. The API is required
|
85
|
+
# to only change the values of the fields as specified in the mask
|
86
|
+
# and leave the others untouched. If a resource is passed in to
|
87
|
+
# describe the updated values, the API ignores the values of all
|
88
|
+
# fields not covered by the mask.
|
89
|
+
#
|
90
|
+
# If a repeated field is specified for an update operation, new values will
|
91
|
+
# be appended to the existing repeated field in the target resource. Note that
|
92
|
+
# a repeated field is only allowed in the last position of a `paths` string.
|
93
|
+
#
|
94
|
+
# If a sub-message is specified in the last position of the field mask for an
|
95
|
+
# update operation, then new value will be merged into the existing sub-message
|
96
|
+
# in the target resource.
|
97
|
+
#
|
98
|
+
# For example, given the target message:
|
99
|
+
#
|
100
|
+
# f {
|
101
|
+
# b {
|
102
|
+
# d: 1
|
103
|
+
# x: 2
|
104
|
+
# }
|
105
|
+
# c: [1]
|
106
|
+
# }
|
107
|
+
#
|
108
|
+
# And an update message:
|
109
|
+
#
|
110
|
+
# f {
|
111
|
+
# b {
|
112
|
+
# d: 10
|
113
|
+
# }
|
114
|
+
# c: [2]
|
115
|
+
# }
|
116
|
+
#
|
117
|
+
# then if the field mask is:
|
118
|
+
#
|
119
|
+
# paths: ["f.b", "f.c"]
|
120
|
+
#
|
121
|
+
# then the result will be:
|
122
|
+
#
|
123
|
+
# f {
|
124
|
+
# b {
|
125
|
+
# d: 10
|
126
|
+
# x: 2
|
127
|
+
# }
|
128
|
+
# c: [1, 2]
|
129
|
+
# }
|
130
|
+
#
|
131
|
+
# An implementation may provide options to override this default behavior for
|
132
|
+
# repeated and message fields.
|
133
|
+
#
|
134
|
+
# In order to reset a field's value to the default, the field must
|
135
|
+
# be in the mask and set to the default value in the provided resource.
|
136
|
+
# Hence, in order to reset all fields of a resource, provide a default
|
137
|
+
# instance of the resource and set all fields in the mask, or do
|
138
|
+
# not provide a mask as described below.
|
139
|
+
#
|
140
|
+
# If a field mask is not present on update, the operation applies to
|
141
|
+
# all fields (as if a field mask of all fields has been specified).
|
142
|
+
# Note that in the presence of schema evolution, this may mean that
|
143
|
+
# fields the client does not know and has therefore not filled into
|
144
|
+
# the request will be reset to their default. If this is unwanted
|
145
|
+
# behavior, a specific service may require a client to always specify
|
146
|
+
# a field mask, producing an error if not.
|
147
|
+
#
|
148
|
+
# As with get operations, the location of the resource which
|
149
|
+
# describes the updated values in the request message depends on the
|
150
|
+
# operation kind. In any case, the effect of the field mask is
|
151
|
+
# required to be honored by the API.
|
152
|
+
#
|
153
|
+
# ## Considerations for HTTP REST
|
154
|
+
#
|
155
|
+
# The HTTP kind of an update operation which uses a field mask must
|
156
|
+
# be set to PATCH instead of PUT in order to satisfy HTTP semantics
|
157
|
+
# (PUT must only be used for full updates).
|
158
|
+
#
|
159
|
+
# # JSON Encoding of Field Masks
|
160
|
+
#
|
161
|
+
# In JSON, a field mask is encoded as a single string where paths are
|
162
|
+
# separated by a comma. Fields name in each path are converted
|
163
|
+
# to/from lower-camel naming conventions.
|
164
|
+
#
|
165
|
+
# As an example, consider the following message declarations:
|
166
|
+
#
|
167
|
+
# message Profile {
|
168
|
+
# User user = 1;
|
169
|
+
# Photo photo = 2;
|
170
|
+
# }
|
171
|
+
# message User {
|
172
|
+
# string display_name = 1;
|
173
|
+
# string address = 2;
|
174
|
+
# }
|
175
|
+
#
|
176
|
+
# In proto a field mask for `Profile` may look as such:
|
177
|
+
#
|
178
|
+
# mask {
|
179
|
+
# paths: "user.display_name"
|
180
|
+
# paths: "photo"
|
181
|
+
# }
|
182
|
+
#
|
183
|
+
# In JSON, the same mask is represented as below:
|
184
|
+
#
|
185
|
+
# {
|
186
|
+
# mask: "user.displayName,photo"
|
187
|
+
# }
|
188
|
+
#
|
189
|
+
# # Field Masks and Oneof Fields
|
190
|
+
#
|
191
|
+
# Field masks treat fields in oneofs just as regular fields. Consider the
|
192
|
+
# following message:
|
193
|
+
#
|
194
|
+
# message SampleMessage {
|
195
|
+
# oneof test_oneof {
|
196
|
+
# string name = 4;
|
197
|
+
# SubMessage sub_message = 9;
|
198
|
+
# }
|
199
|
+
# }
|
200
|
+
#
|
201
|
+
# The field mask can be:
|
202
|
+
#
|
203
|
+
# mask {
|
204
|
+
# paths: "name"
|
205
|
+
# }
|
206
|
+
#
|
207
|
+
# Or:
|
208
|
+
#
|
209
|
+
# mask {
|
210
|
+
# paths: "sub_message"
|
211
|
+
# }
|
212
|
+
#
|
213
|
+
# Note that oneof type names ("test_oneof" in this case) cannot be used in
|
214
|
+
# paths.
|
215
|
+
#
|
216
|
+
# ## Field Mask Verification
|
217
|
+
#
|
218
|
+
# The implementation of any API method which has a FieldMask type field in the
|
219
|
+
# request should verify the included field paths, and return an
|
220
|
+
# `INVALID_ARGUMENT` error if any path is unmappable.
|
221
|
+
# @!attribute [rw] paths
|
222
|
+
# @return [::Array<::String>]
|
223
|
+
# The set of field mask paths.
|
224
|
+
class FieldMask
|
225
|
+
include ::Google::Protobuf::MessageExts
|
226
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
227
|
+
end
|
228
|
+
end
|
229
|
+
end
|
@@ -23,26 +23,26 @@ module Google
|
|
23
23
|
module Products
|
24
24
|
module V1beta
|
25
25
|
# This resource represents input data you submit for a product, not the
|
26
|
-
#
|
27
|
-
# Google surfaces. Product inputs, rules and supplemental data source
|
28
|
-
# combined to create the processed
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
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::V1beta::Product Product}.
|
30
|
+
#
|
31
|
+
# Required product input attributes to pass data validation checks are
|
32
|
+
# primarily defined in the [Products Data
|
33
|
+
# Specification](https://support.google.com/merchants/answer/188494).
|
34
|
+
#
|
35
|
+
# The following attributes are required:
|
36
|
+
# {::Google::Shopping::Merchant::Products::V1beta::Product#feed_label feedLabel},
|
37
|
+
# {::Google::Shopping::Merchant::Products::V1beta::Product#content_language contentLanguage}
|
38
|
+
# and {::Google::Shopping::Merchant::Products::V1beta::Product#offer_id offerId}.
|
39
|
+
#
|
40
|
+
# After inserting, updating, or deleting a product input, it may take several
|
41
|
+
# minutes before the processed product can be retrieved.
|
42
|
+
#
|
43
|
+
# All fields in the product input and its sub-messages match the English name
|
44
|
+
# of their corresponding attribute in the vertical spec with [some
|
45
|
+
# exceptions](https://support.google.com/merchants/answer/7052112).
|
46
46
|
# @!attribute [rw] name
|
47
47
|
# @return [::String]
|
48
48
|
# Identifier. The name of the product input.
|
@@ -59,7 +59,7 @@ module Google
|
|
59
59
|
# `"{product.name=accounts/{account}/products/{product}}"`
|
60
60
|
# @!attribute [rw] channel
|
61
61
|
# @return [::Google::Shopping::Type::Channel::ChannelEnum]
|
62
|
-
#
|
62
|
+
# Immutable. The
|
63
63
|
# [channel](https://support.google.com/merchants/answer/7361332) of the
|
64
64
|
# product.
|
65
65
|
# @!attribute [rw] offer_id
|
@@ -128,13 +128,54 @@ module Google
|
|
128
128
|
# @return [::String]
|
129
129
|
# Required. The primary or supplemental product data source name. If the
|
130
130
|
# product already exists and data source provided is different, then the
|
131
|
-
# product will be moved to a new data source.
|
132
|
-
#
|
131
|
+
# product will be moved to a new data source.
|
132
|
+
#
|
133
|
+
# Only API data sources are supported.
|
134
|
+
#
|
135
|
+
# Format: `accounts/{account}/dataSources/{datasource}`.
|
133
136
|
class InsertProductInputRequest
|
134
137
|
include ::Google::Protobuf::MessageExts
|
135
138
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
136
139
|
end
|
137
140
|
|
141
|
+
# Request message for the UpdateProductInput method.
|
142
|
+
# The product (primary input) must exist for the update to succeed.
|
143
|
+
# If the update is for a primary product input, the existing primary product
|
144
|
+
# input must be from the same data source.
|
145
|
+
# @!attribute [rw] product_input
|
146
|
+
# @return [::Google::Shopping::Merchant::Products::V1beta::ProductInput]
|
147
|
+
# Required. The product input resource to update. Information you submit will
|
148
|
+
# be applied to the processed product as well.
|
149
|
+
# @!attribute [rw] update_mask
|
150
|
+
# @return [::Google::Protobuf::FieldMask]
|
151
|
+
# Optional. The list of product attributes to be updated.
|
152
|
+
#
|
153
|
+
# If the update mask is omitted, then it is treated as implied field mask
|
154
|
+
# equivalent to all fields that are populated (have a non-empty value).
|
155
|
+
#
|
156
|
+
# Attributes specified in the update mask without a value specified in the
|
157
|
+
# body will be deleted from the product.
|
158
|
+
#
|
159
|
+
# Update mask can only be specified for top level fields in
|
160
|
+
# attributes and custom attributes.
|
161
|
+
#
|
162
|
+
# To specify the update mask for custom attributes you need to add the
|
163
|
+
# `custom_attribute.` prefix.
|
164
|
+
#
|
165
|
+
# Providing special "*" value for full product replacement is not supported.
|
166
|
+
# @!attribute [rw] data_source
|
167
|
+
# @return [::String]
|
168
|
+
# Required. The primary or supplemental product data source where
|
169
|
+
# `data_source` name identifies the product input to be updated.
|
170
|
+
#
|
171
|
+
# Only API data sources are supported.
|
172
|
+
#
|
173
|
+
# Format: `accounts/{account}/dataSources/{datasource}`.
|
174
|
+
class UpdateProductInputRequest
|
175
|
+
include ::Google::Protobuf::MessageExts
|
176
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
177
|
+
end
|
178
|
+
|
138
179
|
# Request message for the DeleteProductInput method.
|
139
180
|
# @!attribute [rw] name
|
140
181
|
# @return [::String]
|
@@ -366,6 +366,9 @@ module Google
|
|
366
366
|
# (https://support.google.com/merchants/answer/13949249) projects,
|
367
367
|
# ensuring that discounts on merchants' offers do not fall below this value,
|
368
368
|
# thereby preserving the offer's value and profitability.
|
369
|
+
# @!attribute [rw] sustainability_incentives
|
370
|
+
# @return [::Array<::Google::Shopping::Merchant::Products::V1beta::ProductSustainabilityIncentive>]
|
371
|
+
# The list of sustainability incentive programs.
|
369
372
|
class Attributes
|
370
373
|
include ::Google::Protobuf::MessageExts
|
371
374
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -892,6 +895,43 @@ module Google
|
|
892
895
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
893
896
|
end
|
894
897
|
|
898
|
+
# Information regarding sustainability-related incentive programs such as
|
899
|
+
# rebates or tax relief.
|
900
|
+
# @!attribute [rw] amount
|
901
|
+
# @return [::Google::Shopping::Type::Price]
|
902
|
+
# The fixed amount of the incentive.
|
903
|
+
#
|
904
|
+
# Note: The following fields are mutually exclusive: `amount`, `percentage`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
905
|
+
# @!attribute [rw] percentage
|
906
|
+
# @return [::Float]
|
907
|
+
# The percentage of the sale price that the incentive is applied to.
|
908
|
+
#
|
909
|
+
# Note: The following fields are mutually exclusive: `percentage`, `amount`. If a field in that set is populated, all other fields in the set will automatically be cleared.
|
910
|
+
# @!attribute [rw] type
|
911
|
+
# @return [::Google::Shopping::Merchant::Products::V1beta::ProductSustainabilityIncentive::Type]
|
912
|
+
# Sustainability incentive program.
|
913
|
+
class ProductSustainabilityIncentive
|
914
|
+
include ::Google::Protobuf::MessageExts
|
915
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
916
|
+
|
917
|
+
# Types of supported sustainability incentive programs.
|
918
|
+
module Type
|
919
|
+
# Unspecified or unknown sustainability incentive type.
|
920
|
+
TYPE_UNSPECIFIED = 0
|
921
|
+
|
922
|
+
# Program offering tax liability reductions for electric vehicles and, in
|
923
|
+
# some countries, plug-in hybrids. These reductions can be based on a
|
924
|
+
# specific amount or a percentage of the sale price.
|
925
|
+
EV_TAX_CREDIT = 1
|
926
|
+
|
927
|
+
# A subsidy program, often called an environmental bonus, provides a
|
928
|
+
# purchase grant for electric vehicles and, in some countries, plug-in
|
929
|
+
# hybrids. The grant amount may be a fixed sum or a percentage of the sale
|
930
|
+
# price.
|
931
|
+
EV_PRICE_DISCOUNT = 2
|
932
|
+
end
|
933
|
+
end
|
934
|
+
|
895
935
|
# The subscription period of the product.
|
896
936
|
module SubscriptionPeriod
|
897
937
|
# Indicates that the subscription period is unspecified.
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-shopping-merchant-products-v1beta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-03-18 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: gapic-common
|
@@ -16,7 +15,7 @@ dependencies:
|
|
16
15
|
requirements:
|
17
16
|
- - ">="
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
18
|
+
version: 0.25.0
|
20
19
|
- - "<"
|
21
20
|
- !ruby/object:Gem::Version
|
22
21
|
version: 2.a
|
@@ -26,7 +25,7 @@ dependencies:
|
|
26
25
|
requirements:
|
27
26
|
- - ">="
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
28
|
+
version: 0.25.0
|
30
29
|
- - "<"
|
31
30
|
- !ruby/object:Gem::Version
|
32
31
|
version: 2.a
|
@@ -119,6 +118,7 @@ files:
|
|
119
118
|
- proto_docs/google/api/resource.rb
|
120
119
|
- proto_docs/google/protobuf/duration.rb
|
121
120
|
- proto_docs/google/protobuf/empty.rb
|
121
|
+
- proto_docs/google/protobuf/field_mask.rb
|
122
122
|
- proto_docs/google/protobuf/timestamp.rb
|
123
123
|
- proto_docs/google/shopping/merchant/products/v1beta/productinputs.rb
|
124
124
|
- proto_docs/google/shopping/merchant/products/v1beta/products.rb
|
@@ -129,7 +129,6 @@ homepage: https://github.com/googleapis/google-cloud-ruby
|
|
129
129
|
licenses:
|
130
130
|
- Apache-2.0
|
131
131
|
metadata: {}
|
132
|
-
post_install_message:
|
133
132
|
rdoc_options: []
|
134
133
|
require_paths:
|
135
134
|
- lib
|
@@ -137,15 +136,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
136
|
requirements:
|
138
137
|
- - ">="
|
139
138
|
- !ruby/object:Gem::Version
|
140
|
-
version: '
|
139
|
+
version: '3.0'
|
141
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
141
|
requirements:
|
143
142
|
- - ">="
|
144
143
|
- !ruby/object:Gem::Version
|
145
144
|
version: '0'
|
146
145
|
requirements: []
|
147
|
-
rubygems_version: 3.5
|
148
|
-
signing_key:
|
146
|
+
rubygems_version: 3.6.5
|
149
147
|
specification_version: 4
|
150
148
|
summary: Programmatically manage your Merchant Center Accounts.
|
151
149
|
test_files: []
|