# 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 2019 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, CreateProductSetRequest, 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, ListProductSetsRequest, ListProductSetsResponse # Gets information associated with a ProductSet. # # Possible errors: # # * Returns NOT_FOUND if the ProductSet does not exist. rpc :GetProductSet, GetProductSetRequest, 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, UpdateProductSetRequest, 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, 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, CreateProductRequest, 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, ListProductsRequest, ListProductsResponse # Gets information associated with a Product. # # Possible errors: # # * Returns NOT_FOUND if the Product does not exist. rpc :GetProduct, GetProductRequest, 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, UpdateProductRequest, 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, 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, CreateReferenceImageRequest, 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, 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, ListReferenceImagesRequest, ListReferenceImagesResponse # Gets information associated with a ReferenceImage. # # Possible errors: # # * Returns NOT_FOUND if the specified image does not exist. rpc :GetReferenceImage, GetReferenceImageRequest, 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, AddProductToProductSetRequest, Google::Protobuf::Empty # Removes a Product from the specified ProductSet. rpc :RemoveProductFromProductSet, 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, ListProductsInProductSetRequest, 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, 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, PurgeProductsRequest, Google::Longrunning::Operation end Stub = Service.rpc_stub_class end end end end end