class Google::Cloud::Retail::V2::ProductService::Client
Client
for the ProductService
service.
Service
for ingesting {::Google::Cloud::Retail::V2::Product Product} information of the customer's website.
Attributes
Get the associated client for long-running operations.
@return [::Google::Cloud::Retail::V2::ProductService::Operations]
@private
Public Class Methods
Configure the ProductService
Client
class.
See {::Google::Cloud::Retail::V2::ProductService::Client::Configuration} for a description of the configuration fields.
@example
# Modify the configuration for all ProductService clients ::Google::Cloud::Retail::V2::ProductService::Client.configure do |config| config.timeout = 10.0 end
@yield [config] Configure the Client
client. @yieldparam config [Client::Configuration]
@return [Client::Configuration]
# File lib/google/cloud/retail/v2/product_service/client.rb, line 57 def self.configure @configure ||= begin namespace = ["Google", "Cloud", "Retail", "V2"] parent_config = while namespace.any? parent_name = namespace.join "::" parent_const = const_get parent_name break parent_const.configure if parent_const.respond_to? :configure namespace.pop end default_config = Client::Configuration.new parent_config default_config.timeout = 30.0 default_config.retry_policy = { initial_delay: 0.1, max_delay: 30.0, multiplier: 1.3, retry_codes: [14, 4] } default_config.rpcs.import_products.timeout = 300.0 default_config.rpcs.import_products.retry_policy = { initial_delay: 0.1, max_delay: 300.0, multiplier: 1.3, retry_codes: [14, 4] } default_config end yield @configure if block_given? @configure end
Create a new ProductService
client object.
@example
# Create a client using the default configuration client = ::Google::Cloud::Retail::V2::ProductService::Client.new # Create a client using a custom configuration client = ::Google::Cloud::Retail::V2::ProductService::Client.new do |config| config.timeout = 10.0 end
@yield [config] Configure the ProductService
client. @yieldparam config [Client::Configuration]
# File lib/google/cloud/retail/v2/product_service/client.rb, line 120 def initialize # These require statements are intentionally placed here to initialize # the gRPC module only when it's required. # See https://github.com/googleapis/toolkit/issues/446 require "gapic/grpc" require "google/cloud/retail/v2/product_service_services_pb" # Create the configuration object @config = Configuration.new Client.configure # Yield the configuration if needed yield @config if block_given? # Create credentials credentials = @config.credentials # Use self-signed JWT if the endpoint is unchanged from default, # but only if the default endpoint does not have a region prefix. enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint && !@config.endpoint.split(".").first.include?("-") credentials ||= Credentials.default scope: @config.scope, enable_self_signed_jwt: enable_self_signed_jwt if credentials.is_a?(::String) || credentials.is_a?(::Hash) credentials = Credentials.new credentials, scope: @config.scope end @quota_project_id = @config.quota_project @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id @operations_client = Operations.new do |config| config.credentials = credentials config.endpoint = @config.endpoint end @product_service_stub = ::Gapic::ServiceStub.new( ::Google::Cloud::Retail::V2::ProductService::Stub, credentials: credentials, endpoint: @config.endpoint, channel_args: @config.channel_args, interceptors: @config.interceptors ) end
Public Instance Methods
Incrementally adds place IDs to {::Google::Cloud::Retail::V2::FulfillmentInfo#place_ids Product.fulfillment_info.place_ids}.
This process is asynchronous and does not require the {::Google::Cloud::Retail::V2::Product Product} to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the {::Google::Cloud::Retail::V2::Product Product} queried by {::Google::Cloud::Retail::V2::ProductService::Client#get_product GetProduct} or {::Google::Cloud::Retail::V2::ProductService::Client#list_products ListProducts}.
This feature is only available for users who have Retail
Search enabled. Please submit a form [here](cloud.google.com/contact) to contact cloud sales if you are interested in using Retail
Search.
@overload add_fulfillment_places
(request, options = nil)
Pass arguments to `add_fulfillment_places` via a request object, either of type {::Google::Cloud::Retail::V2::AddFulfillmentPlacesRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::AddFulfillmentPlacesRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload add_fulfillment_places
(product: nil, type: nil, place_ids: nil, add_time: nil, allow_missing: nil)
Pass arguments to `add_fulfillment_places` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param product [::String] Required. Full resource name of {::Google::Cloud::Retail::V2::Product Product}, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the {::Google::Cloud::Retail::V2::Product Product}, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. @param type [::String] Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to [Product.fulfillment_info.type][]. @param place_ids [::Array<::String>] Required. The IDs for this {::Google::Cloud::Retail::V2::AddFulfillmentPlacesRequest#type type}, such as the store IDs for "pickup-in-store" or the region IDs for "same-day-delivery" to be added for this {::Google::Cloud::Retail::V2::AddFulfillmentPlacesRequest#type type}. Duplicate IDs will be automatically ignored. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. If the total number of place IDs exceeds 2000 for this {::Google::Cloud::Retail::V2::AddFulfillmentPlacesRequest#type type} after adding, then the update will be rejected. @param add_time [::Google::Protobuf::Timestamp, ::Hash] The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used. @param allow_missing [::Boolean] If set to true, and the {::Google::Cloud::Retail::V2::Product Product} is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the {::Google::Cloud::Retail::V2::Product Product} is created. If set to false, an INVALID_ARGUMENT error is returned if the {::Google::Cloud::Retail::V2::Product Product} is not found.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Gapic::Operation]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/product_service/client.rb, line 1017 def add_fulfillment_places request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::AddFulfillmentPlacesRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.add_fulfillment_places.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "product" => request.product } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.add_fulfillment_places.timeout, metadata: metadata, retry_policy: @config.rpcs.add_fulfillment_places.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @product_service_stub.call_rpc :add_fulfillment_places, request, options: options do |response, operation| response = ::Gapic::Operation.new response, @operations_client, options: options yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Configure the ProductService
Client
instance.
The configuration is set to the derived mode, meaning that values can be changed, but structural changes (adding new fields, etc.) are not allowed. Structural changes should be made on {Client.configure}.
See {::Google::Cloud::Retail::V2::ProductService::Client::Configuration} for a description of the configuration fields.
@yield [config] Configure the Client
client. @yieldparam config [Client::Configuration]
@return [Client::Configuration]
# File lib/google/cloud/retail/v2/product_service/client.rb, line 99 def configure yield @config if block_given? @config end
Creates a {::Google::Cloud::Retail::V2::Product Product}.
@overload create_product
(request, options = nil)
Pass arguments to `create_product` via a request object, either of type {::Google::Cloud::Retail::V2::CreateProductRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::CreateProductRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload create_product
(parent: nil, product: nil, product_id: nil)
Pass arguments to `create_product` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param parent [::String] Required. The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. @param product [::Google::Cloud::Retail::V2::Product, ::Hash] Required. The {::Google::Cloud::Retail::V2::Product Product} to create. @param product_id [::String] Required. The ID to use for the {::Google::Cloud::Retail::V2::Product Product}, which will become the final component of the {::Google::Cloud::Retail::V2::Product#name Product.name}. If the caller does not have permission to create the {::Google::Cloud::Retail::V2::Product Product}, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. This field must be unique among all {::Google::Cloud::Retail::V2::Product Product}s with the same {::Google::Cloud::Retail::V2::CreateProductRequest#parent parent}. Otherwise, an ALREADY_EXISTS error is returned. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::Retail::V2::Product] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Google::Cloud::Retail::V2::Product]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/product_service/client.rb, line 218 def create_product request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::CreateProductRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.create_product.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "parent" => request.parent } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.create_product.timeout, metadata: metadata, retry_policy: @config.rpcs.create_product.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @product_service_stub.call_rpc :create_product, request, options: options do |response, operation| yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Deletes a {::Google::Cloud::Retail::V2::Product Product}.
@overload delete_product
(request, options = nil)
Pass arguments to `delete_product` via a request object, either of type {::Google::Cloud::Retail::V2::DeleteProductRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::DeleteProductRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload delete_product
(name: nil)
Pass arguments to `delete_product` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param name [::String] Required. Full resource name of {::Google::Cloud::Retail::V2::Product Product}, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to delete the {::Google::Cloud::Retail::V2::Product Product}, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the {::Google::Cloud::Retail::V2::Product Product} to delete does not exist, a NOT_FOUND error is returned. The {::Google::Cloud::Retail::V2::Product Product} to delete can neither be a {::Google::Cloud::Retail::V2::Product::Type::COLLECTION Product.Type.COLLECTION} {::Google::Cloud::Retail::V2::Product Product} member nor a {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Product.Type.PRIMARY} {::Google::Cloud::Retail::V2::Product Product} with more than one {::Google::Cloud::Retail::V2::Product::Type::VARIANT variants}. Otherwise, an INVALID_ARGUMENT error is returned. All inventory information for the named {::Google::Cloud::Retail::V2::Product Product} will be deleted.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Protobuf::Empty] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Google::Protobuf::Empty]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/product_service/client.rb, line 612 def delete_product request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::DeleteProductRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.delete_product.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "name" => request.name } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.delete_product.timeout, metadata: metadata, retry_policy: @config.rpcs.delete_product.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @product_service_stub.call_rpc :delete_product, request, options: options do |response, operation| yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Gets a {::Google::Cloud::Retail::V2::Product Product}.
@overload get_product
(request, options = nil)
Pass arguments to `get_product` via a request object, either of type {::Google::Cloud::Retail::V2::GetProductRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::GetProductRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload get_product
(name: nil)
Pass arguments to `get_product` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param name [::String] Required. Full resource name of {::Google::Cloud::Retail::V2::Product Product}, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the {::Google::Cloud::Retail::V2::Product Product}, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the requested {::Google::Cloud::Retail::V2::Product Product} does not exist, a NOT_FOUND error is returned.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::Retail::V2::Product] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Google::Cloud::Retail::V2::Product]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/product_service/client.rb, line 295 def get_product request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::GetProductRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.get_product.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "name" => request.name } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.get_product.timeout, metadata: metadata, retry_policy: @config.rpcs.get_product.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @product_service_stub.call_rpc :get_product, request, options: options do |response, operation| yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Bulk import of multiple {::Google::Cloud::Retail::V2::Product Product}s.
Request processing may be synchronous. No partial updating is supported. Non-existing items are created.
Note that it is possible for a subset of the {::Google::Cloud::Retail::V2::Product Product}s to be successfully updated.
@overload import_products
(request, options = nil)
Pass arguments to `import_products` via a request object, either of type {::Google::Cloud::Retail::V2::ImportProductsRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::ImportProductsRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload import_products
(parent: nil, request_id: nil, input_config: nil, errors_config: nil, update_mask: nil, reconciliation_mode: nil, notification_pubsub_topic: nil)
Pass arguments to `import_products` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param parent [::String] Required. `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` If no updateMask is specified, requires products.create permission. If updateMask is specified, requires products.update permission. @param request_id [::String] Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: "[a-zA-Z0-9_]+". This is returned as [Operation.name][] in {::Google::Cloud::Retail::V2::ImportMetadata ImportMetadata}. Only supported when {::Google::Cloud::Retail::V2::ImportProductsRequest#reconciliation_mode ImportProductsRequest.reconciliation_mode} is set to `FULL`. @param input_config [::Google::Cloud::Retail::V2::ProductInputConfig, ::Hash] Required. The desired input location of the data. @param errors_config [::Google::Cloud::Retail::V2::ImportErrorsConfig, ::Hash] The desired location of errors incurred during the Import. @param update_mask [::Google::Protobuf::FieldMask, ::Hash] Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields. @param reconciliation_mode [::Google::Cloud::Retail::V2::ImportProductsRequest::ReconciliationMode] The mode of reconciliation between existing products and the products to be imported. Defaults to {::Google::Cloud::Retail::V2::ImportProductsRequest::ReconciliationMode::INCREMENTAL ReconciliationMode.INCREMENTAL}. @param notification_pubsub_topic [::String] Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a {::Google::Longrunning::Operation Operation}. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when {::Google::Cloud::Retail::V2::ImportProductsRequest#reconciliation_mode ImportProductsRequest.reconciliation_mode} is set to `FULL`.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Gapic::Operation]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/product_service/client.rb, line 721 def import_products request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::ImportProductsRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.import_products.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "parent" => request.parent } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.import_products.timeout, metadata: metadata, retry_policy: @config.rpcs.import_products.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @product_service_stub.call_rpc :import_products, request, options: options do |response, operation| response = ::Gapic::Operation.new response, @operations_client, options: options yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Gets a list of {::Google::Cloud::Retail::V2::Product Product}s.
@overload list_products
(request, options = nil)
Pass arguments to `list_products` via a request object, either of type {::Google::Cloud::Retail::V2::ListProductsRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::ListProductsRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload list_products
(parent: nil, page_size: nil, page_token: nil, filter: nil, read_mask: nil)
Pass arguments to `list_products` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param parent [::String] Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch` as the branch ID, to list products under the default branch. If the caller does not have permission to list {::Google::Cloud::Retail::V2::Product Product}s under this branch, regardless of whether or not this branch exists, a PERMISSION_DENIED error is returned. @param page_size [::Integer] Maximum number of {::Google::Cloud::Retail::V2::Product Product}s to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is returned. @param page_token [::String] A page token {::Google::Cloud::Retail::V2::ListProductsResponse#next_page_token ListProductsResponse.next_page_token}, received from a previous {::Google::Cloud::Retail::V2::ProductService::Client#list_products ProductService.ListProducts} call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to {::Google::Cloud::Retail::V2::ProductService::Client#list_products ProductService.ListProducts} must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned. @param filter [::String] A filter to apply on the list results. Supported features: * List all the products under the parent branch if {::Google::Cloud::Retail::V2::ListProductsRequest#filter filter} is unset. * List {::Google::Cloud::Retail::V2::Product::Type::VARIANT Product.Type.VARIANT} {::Google::Cloud::Retail::V2::Product Product}s sharing the same {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Product.Type.PRIMARY} {::Google::Cloud::Retail::V2::Product Product}. For example: `primary_product_id = "some_product_id"` * List {::Google::Cloud::Retail::V2::Product Product}s bundled in a {::Google::Cloud::Retail::V2::Product::Type::COLLECTION Product.Type.COLLECTION} {::Google::Cloud::Retail::V2::Product Product}. For example: `collection_product_id = "some_product_id"` * List {::Google::Cloud::Retail::V2::Product Product}s with a partibular type. For example: `type = "PRIMARY"` `type = "VARIANT"` `type = "COLLECTION"` If the field is unrecognizable, an INVALID_ARGUMENT error is returned. If the specified {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Product.Type.PRIMARY} {::Google::Cloud::Retail::V2::Product Product} or {::Google::Cloud::Retail::V2::Product::Type::COLLECTION Product.Type.COLLECTION} {::Google::Cloud::Retail::V2::Product Product} does not exist, a NOT_FOUND error is returned. @param read_mask [::Google::Protobuf::FieldMask, ::Hash] The fields of {::Google::Cloud::Retail::V2::Product Product} to return in the responses. If not set or empty, the following fields are returned: * {::Google::Cloud::Retail::V2::Product#name Product.name} * {::Google::Cloud::Retail::V2::Product#id Product.id} * {::Google::Cloud::Retail::V2::Product#title Product.title} * {::Google::Cloud::Retail::V2::Product#uri Product.uri} * {::Google::Cloud::Retail::V2::Product#images Product.images} * {::Google::Cloud::Retail::V2::Product#price_info Product.price_info} * {::Google::Cloud::Retail::V2::Product#brands Product.brands} If "*" is provided, all fields are returned. {::Google::Cloud::Retail::V2::Product#name Product.name} is always returned no matter what mask is set. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Retail::V2::Product>] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Gapic::PagedEnumerable<::Google::Cloud::Retail::V2::Product>]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/product_service/client.rb, line 434 def list_products request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::ListProductsRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.list_products.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "parent" => request.parent } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.list_products.timeout, metadata: metadata, retry_policy: @config.rpcs.list_products.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @product_service_stub.call_rpc :list_products, request, options: options do |response, operation| response = ::Gapic::PagedEnumerable.new @product_service_stub, :list_products, request, response, operation, options yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Incrementally removes place IDs from a {::Google::Cloud::Retail::V2::FulfillmentInfo#place_ids Product.fulfillment_info.place_ids}.
This process is asynchronous and does not require the {::Google::Cloud::Retail::V2::Product Product} to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the {::Google::Cloud::Retail::V2::Product Product} queried by {::Google::Cloud::Retail::V2::ProductService::Client#get_product GetProduct} or {::Google::Cloud::Retail::V2::ProductService::Client#list_products ListProducts}.
This feature is only available for users who have Retail
Search enabled. Please submit a form [here](cloud.google.com/contact) to contact cloud sales if you are interested in using Retail
Search.
@overload remove_fulfillment_places
(request, options = nil)
Pass arguments to `remove_fulfillment_places` via a request object, either of type {::Google::Cloud::Retail::V2::RemoveFulfillmentPlacesRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::RemoveFulfillmentPlacesRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload remove_fulfillment_places
(product: nil, type: nil, place_ids: nil, remove_time: nil, allow_missing: nil)
Pass arguments to `remove_fulfillment_places` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param product [::String] Required. Full resource name of {::Google::Cloud::Retail::V2::Product Product}, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the {::Google::Cloud::Retail::V2::Product Product}, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. @param type [::String] Required. The fulfillment type, including commonly used types (such as pickup in store and same day delivery), and custom types. Supported values: * "pickup-in-store" * "ship-to-store" * "same-day-delivery" * "next-day-delivery" * "custom-type-1" * "custom-type-2" * "custom-type-3" * "custom-type-4" * "custom-type-5" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. This field directly corresponds to [Product.fulfillment_info.type][]. @param place_ids [::Array<::String>] Required. The IDs for this {::Google::Cloud::Retail::V2::RemoveFulfillmentPlacesRequest#type type}, such as the store IDs for "pickup-in-store" or the region IDs for "same-day-delivery", to be removed for this {::Google::Cloud::Retail::V2::RemoveFulfillmentPlacesRequest#type type}. At least 1 value is required, and a maximum of 2000 values are allowed. Each value must be a string with a length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned. @param remove_time [::Google::Protobuf::Timestamp, ::Hash] The time when the fulfillment updates are issued, used to prevent out-of-order updates on fulfillment information. If not provided, the internal system time will be used. @param allow_missing [::Boolean] If set to true, and the {::Google::Cloud::Retail::V2::Product Product} is not found, the fulfillment information will still be processed and retained for at most 1 day and processed once the {::Google::Cloud::Retail::V2::Product Product} is created. If set to false, an INVALID_ARGUMENT error is returned if the {::Google::Cloud::Retail::V2::Product Product} is not found.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Gapic::Operation]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/product_service/client.rb, line 1148 def remove_fulfillment_places request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::RemoveFulfillmentPlacesRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.remove_fulfillment_places.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "product" => request.product } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.remove_fulfillment_places.timeout, metadata: metadata, retry_policy: @config.rpcs.remove_fulfillment_places.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @product_service_stub.call_rpc :remove_fulfillment_places, request, options: options do |response, operation| response = ::Gapic::Operation.new response, @operations_client, options: options yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Updates inventory information for a {::Google::Cloud::Retail::V2::Product Product} while respecting the last update timestamps of each inventory field.
This process is asynchronous and does not require the {::Google::Cloud::Retail::V2::Product Product} to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the {::Google::Cloud::Retail::V2::Product Product} queried by {::Google::Cloud::Retail::V2::ProductService::Client#get_product GetProduct} or {::Google::Cloud::Retail::V2::ProductService::Client#list_products ListProducts}.
When inventory is updated with {::Google::Cloud::Retail::V2::ProductService::Client#create_product CreateProduct} and {::Google::Cloud::Retail::V2::ProductService::Client#update_product UpdateProduct}, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the {::Google::Cloud::Retail::V2::ProductService::Client#create_product CreateProduct} or {::Google::Cloud::Retail::V2::ProductService::Client#update_product UpdateProduct} request.
If no inventory fields are set in {::Google::Cloud::Retail::V2::CreateProductRequest#product CreateProductRequest.product}, then any pre-existing inventory information for this product will be used.
If no inventory fields are set in [UpdateProductRequest.set_mask][], then any existing inventory information will be preserved.
Pre-existing inventory information can only be updated with {::Google::Cloud::Retail::V2::ProductService::Client#set_inventory SetInventory}, {::Google::Cloud::Retail::V2::ProductService::Client#add_fulfillment_places AddFulfillmentPlaces}, and {::Google::Cloud::Retail::V2::ProductService::Client#remove_fulfillment_places RemoveFulfillmentPlaces}.
This feature is only available for users who have Retail
Search enabled. Please submit a form [here](cloud.google.com/contact) to contact cloud sales if you are interested in using Retail
Search.
@overload set_inventory
(request, options = nil)
Pass arguments to `set_inventory` via a request object, either of type {::Google::Cloud::Retail::V2::SetInventoryRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::SetInventoryRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload set_inventory
(inventory: nil, set_mask: nil, set_time: nil, allow_missing: nil)
Pass arguments to `set_inventory` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param inventory [::Google::Cloud::Retail::V2::Product, ::Hash] Required. The inventory information to update. The allowable fields to update are: * {::Google::Cloud::Retail::V2::Product#price_info Product.price_info} * {::Google::Cloud::Retail::V2::Product#availability Product.availability} * {::Google::Cloud::Retail::V2::Product#available_quantity Product.available_quantity} * {::Google::Cloud::Retail::V2::Product#fulfillment_info Product.fulfillment_info} The updated inventory fields must be specified in {::Google::Cloud::Retail::V2::SetInventoryRequest#set_mask SetInventoryRequest.set_mask}. If [SetInventoryRequest.inventory.name][] is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the {::Google::Cloud::Retail::V2::Product Product} named in {::Google::Cloud::Retail::V2::Product#name Product.name}, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the {::Google::Cloud::Retail::V2::Product Product} to update does not have existing inventory information, the provided inventory information will be inserted. If the {::Google::Cloud::Retail::V2::Product Product} to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for {::Google::Cloud::Retail::V2::SetInventoryRequest#set_time SetInventoryRequest.set_time}. The last update time is recorded for the following inventory fields: * {::Google::Cloud::Retail::V2::Product#price_info Product.price_info} * {::Google::Cloud::Retail::V2::Product#availability Product.availability} * {::Google::Cloud::Retail::V2::Product#available_quantity Product.available_quantity} * {::Google::Cloud::Retail::V2::Product#fulfillment_info Product.fulfillment_info} If a full overwrite of inventory information while ignoring timestamps is needed, [UpdateProduct][] should be invoked instead. @param set_mask [::Google::Protobuf::FieldMask, ::Hash] Indicates which inventory fields in the provided {::Google::Cloud::Retail::V2::Product Product} to update. If not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored. @param set_time [::Google::Protobuf::Timestamp, ::Hash] The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used. @param allow_missing [::Boolean] If set to true, and the {::Google::Cloud::Retail::V2::Product Product} with name {::Google::Cloud::Retail::V2::Product#name Product.name} is not found, the inventory update will still be processed and retained for at most 1 day until the {::Google::Cloud::Retail::V2::Product Product} is created. If set to false, an INVALID_ARGUMENT error is returned if the {::Google::Cloud::Retail::V2::Product Product} is not found.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Gapic::Operation]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/product_service/client.rb, line 881 def set_inventory request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::SetInventoryRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.set_inventory.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "inventory.name" => request.inventory.name } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.set_inventory.timeout, metadata: metadata, retry_policy: @config.rpcs.set_inventory.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @product_service_stub.call_rpc :set_inventory, request, options: options do |response, operation| response = ::Gapic::Operation.new response, @operations_client, options: options yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Updates a {::Google::Cloud::Retail::V2::Product Product}.
@overload update_product
(request, options = nil)
Pass arguments to `update_product` via a request object, either of type {::Google::Cloud::Retail::V2::UpdateProductRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::UpdateProductRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload update_product
(product: nil, update_mask: nil, allow_missing: nil)
Pass arguments to `update_product` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param product [::Google::Cloud::Retail::V2::Product, ::Hash] Required. The product to update/create. If the caller does not have permission to update the {::Google::Cloud::Retail::V2::Product Product}, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the {::Google::Cloud::Retail::V2::Product Product} to update does not exist and {::Google::Cloud::Retail::V2::UpdateProductRequest#allow_missing allow_missing} is not set, a NOT_FOUND error is returned. @param update_mask [::Google::Protobuf::FieldMask, ::Hash] Indicates which fields in the provided {::Google::Cloud::Retail::V2::Product Product} to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned. @param allow_missing [::Boolean] If set to true, and the {::Google::Cloud::Retail::V2::Product Product} is not found, a new {::Google::Cloud::Retail::V2::Product Product} will be created. In this situation, `update_mask` is ignored.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::Retail::V2::Product] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Google::Cloud::Retail::V2::Product]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/product_service/client.rb, line 524 def update_product request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::UpdateProductRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.update_product.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "product.name" => request.product.name } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.update_product.timeout, metadata: metadata, retry_policy: @config.rpcs.update_product.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @product_service_stub.call_rpc :update_product, request, options: options do |response, operation| yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end