# Generated by the protocol buffer compiler. DO NOT EDIT! # Source: google/cloud/vision/v1/product_search_service.proto for package 'google.cloud.vision.v1' # Original file comments: # Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # require 'grpc' require 'google/cloud/vision/v1/product_search_service_pb' module Google module Cloud module Vision module V1 module ProductSearch # Manages Products and ProductSets of reference images for use in product # search. It uses the following resource model: # # - The API has a collection of [ProductSet][google.cloud.vision.v1.ProductSet] # resources, named `projects/*/locations/*/productSets/*`, which acts as a way # to put different products into groups to limit identification. # # In parallel, # # - The API has a collection of [Product][google.cloud.vision.v1.Product] # resources, named # `projects/*/locations/*/products/*` # # - Each [Product][google.cloud.vision.v1.Product] has a collection of # [ReferenceImage][google.cloud.vision.v1.ReferenceImage] resources, named # `projects/*/locations/*/products/*/referenceImages/*` class Service include ::GRPC::GenericService self.marshal_class_method = :encode self.unmarshal_class_method = :decode self.service_name = 'google.cloud.vision.v1.ProductSearch' # Creates and returns a new ProductSet resource. # # Possible errors: # # * Returns INVALID_ARGUMENT if display_name is missing, or is longer than # 4096 characters. rpc :CreateProductSet, ::Google::Cloud::Vision::V1::CreateProductSetRequest, ::Google::Cloud::Vision::V1::ProductSet # Lists ProductSets in an unspecified order. # # Possible errors: # # * Returns INVALID_ARGUMENT if page_size is greater than 100, or less # than 1. rpc :ListProductSets, ::Google::Cloud::Vision::V1::ListProductSetsRequest, ::Google::Cloud::Vision::V1::ListProductSetsResponse # Gets information associated with a ProductSet. # # Possible errors: # # * Returns NOT_FOUND if the ProductSet does not exist. rpc :GetProductSet, ::Google::Cloud::Vision::V1::GetProductSetRequest, ::Google::Cloud::Vision::V1::ProductSet # Makes changes to a ProductSet resource. # Only display_name can be updated currently. # # Possible errors: # # * Returns NOT_FOUND if the ProductSet does not exist. # * Returns INVALID_ARGUMENT if display_name is present in update_mask but # missing from the request or longer than 4096 characters. rpc :UpdateProductSet, ::Google::Cloud::Vision::V1::UpdateProductSetRequest, ::Google::Cloud::Vision::V1::ProductSet # Permanently deletes a ProductSet. Products and ReferenceImages in the # ProductSet are not deleted. # # The actual image files are not deleted from Google Cloud Storage. rpc :DeleteProductSet, ::Google::Cloud::Vision::V1::DeleteProductSetRequest, ::Google::Protobuf::Empty # Creates and returns a new product resource. # # Possible errors: # # * Returns INVALID_ARGUMENT if display_name is missing or longer than 4096 # characters. # * Returns INVALID_ARGUMENT if description is longer than 4096 characters. # * Returns INVALID_ARGUMENT if product_category is missing or invalid. rpc :CreateProduct, ::Google::Cloud::Vision::V1::CreateProductRequest, ::Google::Cloud::Vision::V1::Product # Lists products in an unspecified order. # # Possible errors: # # * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1. rpc :ListProducts, ::Google::Cloud::Vision::V1::ListProductsRequest, ::Google::Cloud::Vision::V1::ListProductsResponse # Gets information associated with a Product. # # Possible errors: # # * Returns NOT_FOUND if the Product does not exist. rpc :GetProduct, ::Google::Cloud::Vision::V1::GetProductRequest, ::Google::Cloud::Vision::V1::Product # Makes changes to a Product resource. # Only the `display_name`, `description`, and `labels` fields can be updated # right now. # # If labels are updated, the change will not be reflected in queries until # the next index time. # # Possible errors: # # * Returns NOT_FOUND if the Product does not exist. # * Returns INVALID_ARGUMENT if display_name is present in update_mask but is # missing from the request or longer than 4096 characters. # * Returns INVALID_ARGUMENT if description is present in update_mask but is # longer than 4096 characters. # * Returns INVALID_ARGUMENT if product_category is present in update_mask. rpc :UpdateProduct, ::Google::Cloud::Vision::V1::UpdateProductRequest, ::Google::Cloud::Vision::V1::Product # Permanently deletes a product and its reference images. # # Metadata of the product and all its images will be deleted right away, but # search queries against ProductSets containing the product may still work # until all related caches are refreshed. rpc :DeleteProduct, ::Google::Cloud::Vision::V1::DeleteProductRequest, ::Google::Protobuf::Empty # Creates and returns a new ReferenceImage resource. # # The `bounding_poly` field is optional. If `bounding_poly` is not specified, # the system will try to detect regions of interest in the image that are # compatible with the product_category on the parent product. If it is # specified, detection is ALWAYS skipped. The system converts polygons into # non-rotated rectangles. # # Note that the pipeline will resize the image if the image resolution is too # large to process (above 50MP). # # Possible errors: # # * Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096 # characters. # * Returns INVALID_ARGUMENT if the product does not exist. # * Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing # compatible with the parent product's product_category is detected. # * Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons. rpc :CreateReferenceImage, ::Google::Cloud::Vision::V1::CreateReferenceImageRequest, ::Google::Cloud::Vision::V1::ReferenceImage # Permanently deletes a reference image. # # The image metadata will be deleted right away, but search queries # against ProductSets containing the image may still work until all related # caches are refreshed. # # The actual image files are not deleted from Google Cloud Storage. rpc :DeleteReferenceImage, ::Google::Cloud::Vision::V1::DeleteReferenceImageRequest, ::Google::Protobuf::Empty # Lists reference images. # # Possible errors: # # * Returns NOT_FOUND if the parent product does not exist. # * Returns INVALID_ARGUMENT if the page_size is greater than 100, or less # than 1. rpc :ListReferenceImages, ::Google::Cloud::Vision::V1::ListReferenceImagesRequest, ::Google::Cloud::Vision::V1::ListReferenceImagesResponse # Gets information associated with a ReferenceImage. # # Possible errors: # # * Returns NOT_FOUND if the specified image does not exist. rpc :GetReferenceImage, ::Google::Cloud::Vision::V1::GetReferenceImageRequest, ::Google::Cloud::Vision::V1::ReferenceImage # Adds a Product to the specified ProductSet. If the Product is already # present, no change is made. # # One Product can be added to at most 100 ProductSets. # # Possible errors: # # * Returns NOT_FOUND if the Product or the ProductSet doesn't exist. rpc :AddProductToProductSet, ::Google::Cloud::Vision::V1::AddProductToProductSetRequest, ::Google::Protobuf::Empty # Removes a Product from the specified ProductSet. rpc :RemoveProductFromProductSet, ::Google::Cloud::Vision::V1::RemoveProductFromProductSetRequest, ::Google::Protobuf::Empty # Lists the Products in a ProductSet, in an unspecified order. If the # ProductSet does not exist, the products field of the response will be # empty. # # Possible errors: # # * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1. rpc :ListProductsInProductSet, ::Google::Cloud::Vision::V1::ListProductsInProductSetRequest, ::Google::Cloud::Vision::V1::ListProductsInProductSetResponse # Asynchronous API that imports a list of reference images to specified # product sets based on a list of image information. # # The [google.longrunning.Operation][google.longrunning.Operation] API can be # used to keep track of the progress and results of the request. # `Operation.metadata` contains `BatchOperationMetadata`. (progress) # `Operation.response` contains `ImportProductSetsResponse`. (results) # # The input source of this method is a csv file on Google Cloud Storage. # For the format of the csv file please see # [ImportProductSetsGcsSource.csv_file_uri][google.cloud.vision.v1.ImportProductSetsGcsSource.csv_file_uri]. rpc :ImportProductSets, ::Google::Cloud::Vision::V1::ImportProductSetsRequest, ::Google::Longrunning::Operation # Asynchronous API to delete all Products in a ProductSet or all Products # that are in no ProductSet. # # If a Product is a member of the specified ProductSet in addition to other # ProductSets, the Product will still be deleted. # # It is recommended to not delete the specified ProductSet until after this # operation has completed. It is also recommended to not add any of the # Products involved in the batch delete to a new ProductSet while this # operation is running because those Products may still end up deleted. # # It's not possible to undo the PurgeProducts operation. Therefore, it is # recommended to keep the csv files used in ImportProductSets (if that was # how you originally built the Product Set) before starting PurgeProducts, in # case you need to re-import the data after deletion. # # If the plan is to purge all of the Products from a ProductSet and then # re-use the empty ProductSet to re-import new Products into the empty # ProductSet, you must wait until the PurgeProducts operation has finished # for that ProductSet. # # The [google.longrunning.Operation][google.longrunning.Operation] API can be # used to keep track of the progress and results of the request. # `Operation.metadata` contains `BatchOperationMetadata`. (progress) rpc :PurgeProducts, ::Google::Cloud::Vision::V1::PurgeProductsRequest, ::Google::Longrunning::Operation end Stub = Service.rpc_stub_class end end end end end