# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/vision_v1/proto/product_search_service.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.cloud.vision_v1.proto import geometry_pb2 as google_dot_cloud_dot_vision__v1_dot_proto_dot_geometry__pb2
from google.longrunning import operations_pb2 as google_dot_longrunning_dot_operations__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/cloud/vision_v1/proto/product_search_service.proto',
  package='google.cloud.vision.v1',
  syntax='proto3',
  serialized_pb=_b('\n9google/cloud/vision_v1/proto/product_search_service.proto\x12\x16google.cloud.vision.v1\x1a\x1cgoogle/api/annotations.proto\x1a+google/cloud/vision_v1/proto/geometry.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xc6\x01\n\x07Product\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x18\n\x10product_category\x18\x04 \x01(\t\x12@\n\x0eproduct_labels\x18\x05 \x03(\x0b\x32(.google.cloud.vision.v1.Product.KeyValue\x1a&\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x89\x01\n\nProductSet\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12.\n\nindex_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x0bindex_error\x18\x04 \x01(\x0b\x32\x12.google.rpc.Status\"i\n\x0eReferenceImage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12<\n\x0e\x62ounding_polys\x18\x03 \x03(\x0b\x32$.google.cloud.vision.v1.BoundingPoly\"l\n\x14\x43reateProductRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x30\n\x07product\x18\x02 \x01(\x0b\x32\x1f.google.cloud.vision.v1.Product\x12\x12\n\nproduct_id\x18\x03 \x01(\t\"L\n\x13ListProductsRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"b\n\x14ListProductsResponse\x12\x31\n\x08products\x18\x01 \x03(\x0b\x32\x1f.google.cloud.vision.v1.Product\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"!\n\x11GetProductRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"y\n\x14UpdateProductRequest\x12\x30\n\x07product\x18\x01 \x01(\x0b\x32\x1f.google.cloud.vision.v1.Product\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"$\n\x14\x44\x65leteProductRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"z\n\x17\x43reateProductSetRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x37\n\x0bproduct_set\x18\x02 \x01(\x0b\x32\".google.cloud.vision.v1.ProductSet\x12\x16\n\x0eproduct_set_id\x18\x03 \x01(\t\"O\n\x16ListProductSetsRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"l\n\x17ListProductSetsResponse\x12\x38\n\x0cproduct_sets\x18\x01 \x03(\x0b\x32\".google.cloud.vision.v1.ProductSet\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"$\n\x14GetProductSetRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x83\x01\n\x17UpdateProductSetRequest\x12\x37\n\x0bproduct_set\x18\x01 \x01(\x0b\x32\".google.cloud.vision.v1.ProductSet\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"\'\n\x17\x44\x65leteProductSetRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x8a\x01\n\x1b\x43reateReferenceImageRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12?\n\x0freference_image\x18\x02 \x01(\x0b\x32&.google.cloud.vision.v1.ReferenceImage\x12\x1a\n\x12reference_image_id\x18\x03 \x01(\t\"S\n\x1aListReferenceImagesRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"\x8b\x01\n\x1bListReferenceImagesResponse\x12@\n\x10reference_images\x18\x01 \x03(\x0b\x32&.google.cloud.vision.v1.ReferenceImage\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\t\"(\n\x18GetReferenceImageRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"+\n\x1b\x44\x65leteReferenceImageRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\">\n\x1d\x41\x64\x64ProductToProductSetRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07product\x18\x02 \x01(\t\"C\n\"RemoveProductFromProductSetRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07product\x18\x02 \x01(\t\"V\n\x1fListProductsInProductSetRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"n\n ListProductsInProductSetResponse\x12\x31\n\x08products\x18\x01 \x03(\x0b\x32\x1f.google.cloud.vision.v1.Product\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"2\n\x1aImportProductSetsGcsSource\x12\x14\n\x0c\x63sv_file_uri\x18\x01 \x01(\t\"r\n\x1cImportProductSetsInputConfig\x12H\n\ngcs_source\x18\x01 \x01(\x0b\x32\x32.google.cloud.vision.v1.ImportProductSetsGcsSourceH\x00\x42\x08\n\x06source\"v\n\x18ImportProductSetsRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12J\n\x0cinput_config\x18\x02 \x01(\x0b\x32\x34.google.cloud.vision.v1.ImportProductSetsInputConfig\"\x83\x01\n\x19ImportProductSetsResponse\x12@\n\x10reference_images\x18\x01 \x03(\x0b\x32&.google.cloud.vision.v1.ReferenceImage\x12$\n\x08statuses\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\"\x97\x02\n\x16\x42\x61tchOperationMetadata\x12\x43\n\x05state\x18\x01 \x01(\x0e\x32\x34.google.cloud.vision.v1.BatchOperationMetadata.State\x12/\n\x0bsubmit_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"Y\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0e\n\nPROCESSING\x10\x01\x12\x0e\n\nSUCCESSFUL\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\r\n\tCANCELLED\x10\x04\x32\xcf\x18\n\rProductSearch\x12\xad\x01\n\x10\x43reateProductSet\x12/.google.cloud.vision.v1.CreateProductSetRequest\x1a\".google.cloud.vision.v1.ProductSet\"D\x82\xd3\xe4\x93\x02>\"//v1/{parent=projects/*/locations/*}/productSets:\x0bproduct_set\x12\xab\x01\n\x0fListProductSets\x12..google.cloud.vision.v1.ListProductSetsRequest\x1a/.google.cloud.vision.v1.ListProductSetsResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/productSets\x12\x9a\x01\n\rGetProductSet\x12,.google.cloud.vision.v1.GetProductSetRequest\x1a\".google.cloud.vision.v1.ProductSet\"7\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/productSets/*}\x12\xb9\x01\n\x10UpdateProductSet\x12/.google.cloud.vision.v1.UpdateProductSetRequest\x1a\".google.cloud.vision.v1.ProductSet\"P\x82\xd3\xe4\x93\x02J2;/v1/{product_set.name=projects/*/locations/*/productSets/*}:\x0bproduct_set\x12\x94\x01\n\x10\x44\x65leteProductSet\x12/.google.cloud.vision.v1.DeleteProductSetRequest\x1a\x16.google.protobuf.Empty\"7\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/productSets/*}\x12\x9d\x01\n\rCreateProduct\x12,.google.cloud.vision.v1.CreateProductRequest\x1a\x1f.google.cloud.vision.v1.Product\"=\x82\xd3\xe4\x93\x02\x37\",/v1/{parent=projects/*/locations/*}/products:\x07product\x12\x9f\x01\n\x0cListProducts\x12+.google.cloud.vision.v1.ListProductsRequest\x1a,.google.cloud.vision.v1.ListProductsResponse\"4\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/products\x12\x8e\x01\n\nGetProduct\x12).google.cloud.vision.v1.GetProductRequest\x1a\x1f.google.cloud.vision.v1.Product\"4\x82\xd3\xe4\x93\x02.\x12,/v1/{name=projects/*/locations/*/products/*}\x12\xa5\x01\n\rUpdateProduct\x12,.google.cloud.vision.v1.UpdateProductRequest\x1a\x1f.google.cloud.vision.v1.Product\"E\x82\xd3\xe4\x93\x02?24/v1/{product.name=projects/*/locations/*/products/*}:\x07product\x12\x8b\x01\n\rDeleteProduct\x12,.google.cloud.vision.v1.DeleteProductRequest\x1a\x16.google.protobuf.Empty\"4\x82\xd3\xe4\x93\x02.*,/v1/{name=projects/*/locations/*/products/*}\x12\xcc\x01\n\x14\x43reateReferenceImage\x12\x33.google.cloud.vision.v1.CreateReferenceImageRequest\x1a&.google.cloud.vision.v1.ReferenceImage\"W\x82\xd3\xe4\x93\x02Q\">/v1/{parent=projects/*/locations/*/products/*}/referenceImages:\x0freference_image\x12\xab\x01\n\x14\x44\x65leteReferenceImage\x12\x33.google.cloud.vision.v1.DeleteReferenceImageRequest\x1a\x16.google.protobuf.Empty\"F\x82\xd3\xe4\x93\x02@*>/v1/{name=projects/*/locations/*/products/*/referenceImages/*}\x12\xc6\x01\n\x13ListReferenceImages\x12\x32.google.cloud.vision.v1.ListReferenceImagesRequest\x1a\x33.google.cloud.vision.v1.ListReferenceImagesResponse\"F\x82\xd3\xe4\x93\x02@\x12>/v1/{parent=projects/*/locations/*/products/*}/referenceImages\x12\xb5\x01\n\x11GetReferenceImage\x12\x30.google.cloud.vision.v1.GetReferenceImageRequest\x1a&.google.cloud.vision.v1.ReferenceImage\"F\x82\xd3\xe4\x93\x02@\x12>/v1/{name=projects/*/locations/*/products/*/referenceImages/*}\x12\xae\x01\n\x16\x41\x64\x64ProductToProductSet\x12\x35.google.cloud.vision.v1.AddProductToProductSetRequest\x1a\x16.google.protobuf.Empty\"E\x82\xd3\xe4\x93\x02?\":/v1/{name=projects/*/locations/*/productSets/*}:addProduct:\x01*\x12\xbb\x01\n\x1bRemoveProductFromProductSet\x12:.google.cloud.vision.v1.RemoveProductFromProductSetRequest\x1a\x16.google.protobuf.Empty\"H\x82\xd3\xe4\x93\x02\x42\"=/v1/{name=projects/*/locations/*/productSets/*}:removeProduct:\x01*\x12\xcf\x01\n\x18ListProductsInProductSet\x12\x37.google.cloud.vision.v1.ListProductsInProductSetRequest\x1a\x38.google.cloud.vision.v1.ListProductsInProductSetResponse\"@\x82\xd3\xe4\x93\x02:\x12\x38/v1/{name=projects/*/locations/*/productSets/*}/products\x12\xa7\x01\n\x11ImportProductSets\x12\x30.google.cloud.vision.v1.ImportProductSetsRequest\x1a\x1d.google.longrunning.Operation\"A\x82\xd3\xe4\x93\x02;\"6/v1/{parent=projects/*/locations/*}/productSets:import:\x01*B\x81\x01\n\x1a\x63om.google.cloud.vision.v1B\x19ProductSearchServiceProtoP\x01Z<google.golang.org/genproto/googleapis/cloud/vision/v1;vision\xf8\x01\x01\xa2\x02\x04GCVNb\x06proto3')
  ,
  dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_cloud_dot_vision__v1_dot_proto_dot_geometry__pb2.DESCRIPTOR,google_dot_longrunning_dot_operations__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,])



_BATCHOPERATIONMETADATA_STATE = _descriptor.EnumDescriptor(
  name='State',
  full_name='google.cloud.vision.v1.BatchOperationMetadata.State',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='STATE_UNSPECIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PROCESSING', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SUCCESSFUL', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FAILED', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CANCELLED', index=4, number=4,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3179,
  serialized_end=3268,
)
_sym_db.RegisterEnumDescriptor(_BATCHOPERATIONMETADATA_STATE)


_PRODUCT_KEYVALUE = _descriptor.Descriptor(
  name='KeyValue',
  full_name='google.cloud.vision.v1.Product.KeyValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='google.cloud.vision.v1.Product.KeyValue.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='google.cloud.vision.v1.Product.KeyValue.value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=479,
  serialized_end=517,
)

_PRODUCT = _descriptor.Descriptor(
  name='Product',
  full_name='google.cloud.vision.v1.Product',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.Product.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='display_name', full_name='google.cloud.vision.v1.Product.display_name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='description', full_name='google.cloud.vision.v1.Product.description', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='product_category', full_name='google.cloud.vision.v1.Product.product_category', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='product_labels', full_name='google.cloud.vision.v1.Product.product_labels', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_PRODUCT_KEYVALUE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=319,
  serialized_end=517,
)


_PRODUCTSET = _descriptor.Descriptor(
  name='ProductSet',
  full_name='google.cloud.vision.v1.ProductSet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.ProductSet.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='display_name', full_name='google.cloud.vision.v1.ProductSet.display_name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='index_time', full_name='google.cloud.vision.v1.ProductSet.index_time', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='index_error', full_name='google.cloud.vision.v1.ProductSet.index_error', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=520,
  serialized_end=657,
)


_REFERENCEIMAGE = _descriptor.Descriptor(
  name='ReferenceImage',
  full_name='google.cloud.vision.v1.ReferenceImage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.ReferenceImage.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uri', full_name='google.cloud.vision.v1.ReferenceImage.uri', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bounding_polys', full_name='google.cloud.vision.v1.ReferenceImage.bounding_polys', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=659,
  serialized_end=764,
)


_CREATEPRODUCTREQUEST = _descriptor.Descriptor(
  name='CreateProductRequest',
  full_name='google.cloud.vision.v1.CreateProductRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='parent', full_name='google.cloud.vision.v1.CreateProductRequest.parent', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='product', full_name='google.cloud.vision.v1.CreateProductRequest.product', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='product_id', full_name='google.cloud.vision.v1.CreateProductRequest.product_id', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=766,
  serialized_end=874,
)


_LISTPRODUCTSREQUEST = _descriptor.Descriptor(
  name='ListProductsRequest',
  full_name='google.cloud.vision.v1.ListProductsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='parent', full_name='google.cloud.vision.v1.ListProductsRequest.parent', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_size', full_name='google.cloud.vision.v1.ListProductsRequest.page_size', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_token', full_name='google.cloud.vision.v1.ListProductsRequest.page_token', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=876,
  serialized_end=952,
)


_LISTPRODUCTSRESPONSE = _descriptor.Descriptor(
  name='ListProductsResponse',
  full_name='google.cloud.vision.v1.ListProductsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='products', full_name='google.cloud.vision.v1.ListProductsResponse.products', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='next_page_token', full_name='google.cloud.vision.v1.ListProductsResponse.next_page_token', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=954,
  serialized_end=1052,
)


_GETPRODUCTREQUEST = _descriptor.Descriptor(
  name='GetProductRequest',
  full_name='google.cloud.vision.v1.GetProductRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.GetProductRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1054,
  serialized_end=1087,
)


_UPDATEPRODUCTREQUEST = _descriptor.Descriptor(
  name='UpdateProductRequest',
  full_name='google.cloud.vision.v1.UpdateProductRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='product', full_name='google.cloud.vision.v1.UpdateProductRequest.product', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='update_mask', full_name='google.cloud.vision.v1.UpdateProductRequest.update_mask', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1089,
  serialized_end=1210,
)


_DELETEPRODUCTREQUEST = _descriptor.Descriptor(
  name='DeleteProductRequest',
  full_name='google.cloud.vision.v1.DeleteProductRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.DeleteProductRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1212,
  serialized_end=1248,
)


_CREATEPRODUCTSETREQUEST = _descriptor.Descriptor(
  name='CreateProductSetRequest',
  full_name='google.cloud.vision.v1.CreateProductSetRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='parent', full_name='google.cloud.vision.v1.CreateProductSetRequest.parent', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='product_set', full_name='google.cloud.vision.v1.CreateProductSetRequest.product_set', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='product_set_id', full_name='google.cloud.vision.v1.CreateProductSetRequest.product_set_id', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1250,
  serialized_end=1372,
)


_LISTPRODUCTSETSREQUEST = _descriptor.Descriptor(
  name='ListProductSetsRequest',
  full_name='google.cloud.vision.v1.ListProductSetsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='parent', full_name='google.cloud.vision.v1.ListProductSetsRequest.parent', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_size', full_name='google.cloud.vision.v1.ListProductSetsRequest.page_size', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_token', full_name='google.cloud.vision.v1.ListProductSetsRequest.page_token', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1374,
  serialized_end=1453,
)


_LISTPRODUCTSETSRESPONSE = _descriptor.Descriptor(
  name='ListProductSetsResponse',
  full_name='google.cloud.vision.v1.ListProductSetsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='product_sets', full_name='google.cloud.vision.v1.ListProductSetsResponse.product_sets', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='next_page_token', full_name='google.cloud.vision.v1.ListProductSetsResponse.next_page_token', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1455,
  serialized_end=1563,
)


_GETPRODUCTSETREQUEST = _descriptor.Descriptor(
  name='GetProductSetRequest',
  full_name='google.cloud.vision.v1.GetProductSetRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.GetProductSetRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1565,
  serialized_end=1601,
)


_UPDATEPRODUCTSETREQUEST = _descriptor.Descriptor(
  name='UpdateProductSetRequest',
  full_name='google.cloud.vision.v1.UpdateProductSetRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='product_set', full_name='google.cloud.vision.v1.UpdateProductSetRequest.product_set', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='update_mask', full_name='google.cloud.vision.v1.UpdateProductSetRequest.update_mask', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1604,
  serialized_end=1735,
)


_DELETEPRODUCTSETREQUEST = _descriptor.Descriptor(
  name='DeleteProductSetRequest',
  full_name='google.cloud.vision.v1.DeleteProductSetRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.DeleteProductSetRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1737,
  serialized_end=1776,
)


_CREATEREFERENCEIMAGEREQUEST = _descriptor.Descriptor(
  name='CreateReferenceImageRequest',
  full_name='google.cloud.vision.v1.CreateReferenceImageRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='parent', full_name='google.cloud.vision.v1.CreateReferenceImageRequest.parent', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='reference_image', full_name='google.cloud.vision.v1.CreateReferenceImageRequest.reference_image', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='reference_image_id', full_name='google.cloud.vision.v1.CreateReferenceImageRequest.reference_image_id', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1779,
  serialized_end=1917,
)


_LISTREFERENCEIMAGESREQUEST = _descriptor.Descriptor(
  name='ListReferenceImagesRequest',
  full_name='google.cloud.vision.v1.ListReferenceImagesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='parent', full_name='google.cloud.vision.v1.ListReferenceImagesRequest.parent', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_size', full_name='google.cloud.vision.v1.ListReferenceImagesRequest.page_size', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_token', full_name='google.cloud.vision.v1.ListReferenceImagesRequest.page_token', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1919,
  serialized_end=2002,
)


_LISTREFERENCEIMAGESRESPONSE = _descriptor.Descriptor(
  name='ListReferenceImagesResponse',
  full_name='google.cloud.vision.v1.ListReferenceImagesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='reference_images', full_name='google.cloud.vision.v1.ListReferenceImagesResponse.reference_images', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_size', full_name='google.cloud.vision.v1.ListReferenceImagesResponse.page_size', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='next_page_token', full_name='google.cloud.vision.v1.ListReferenceImagesResponse.next_page_token', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2005,
  serialized_end=2144,
)


_GETREFERENCEIMAGEREQUEST = _descriptor.Descriptor(
  name='GetReferenceImageRequest',
  full_name='google.cloud.vision.v1.GetReferenceImageRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.GetReferenceImageRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2146,
  serialized_end=2186,
)


_DELETEREFERENCEIMAGEREQUEST = _descriptor.Descriptor(
  name='DeleteReferenceImageRequest',
  full_name='google.cloud.vision.v1.DeleteReferenceImageRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.DeleteReferenceImageRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2188,
  serialized_end=2231,
)


_ADDPRODUCTTOPRODUCTSETREQUEST = _descriptor.Descriptor(
  name='AddProductToProductSetRequest',
  full_name='google.cloud.vision.v1.AddProductToProductSetRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.AddProductToProductSetRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='product', full_name='google.cloud.vision.v1.AddProductToProductSetRequest.product', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2233,
  serialized_end=2295,
)


_REMOVEPRODUCTFROMPRODUCTSETREQUEST = _descriptor.Descriptor(
  name='RemoveProductFromProductSetRequest',
  full_name='google.cloud.vision.v1.RemoveProductFromProductSetRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.RemoveProductFromProductSetRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='product', full_name='google.cloud.vision.v1.RemoveProductFromProductSetRequest.product', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2297,
  serialized_end=2364,
)


_LISTPRODUCTSINPRODUCTSETREQUEST = _descriptor.Descriptor(
  name='ListProductsInProductSetRequest',
  full_name='google.cloud.vision.v1.ListProductsInProductSetRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.cloud.vision.v1.ListProductsInProductSetRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_size', full_name='google.cloud.vision.v1.ListProductsInProductSetRequest.page_size', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_token', full_name='google.cloud.vision.v1.ListProductsInProductSetRequest.page_token', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2366,
  serialized_end=2452,
)


_LISTPRODUCTSINPRODUCTSETRESPONSE = _descriptor.Descriptor(
  name='ListProductsInProductSetResponse',
  full_name='google.cloud.vision.v1.ListProductsInProductSetResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='products', full_name='google.cloud.vision.v1.ListProductsInProductSetResponse.products', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='next_page_token', full_name='google.cloud.vision.v1.ListProductsInProductSetResponse.next_page_token', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2454,
  serialized_end=2564,
)


_IMPORTPRODUCTSETSGCSSOURCE = _descriptor.Descriptor(
  name='ImportProductSetsGcsSource',
  full_name='google.cloud.vision.v1.ImportProductSetsGcsSource',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='csv_file_uri', full_name='google.cloud.vision.v1.ImportProductSetsGcsSource.csv_file_uri', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2566,
  serialized_end=2616,
)


_IMPORTPRODUCTSETSINPUTCONFIG = _descriptor.Descriptor(
  name='ImportProductSetsInputConfig',
  full_name='google.cloud.vision.v1.ImportProductSetsInputConfig',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='gcs_source', full_name='google.cloud.vision.v1.ImportProductSetsInputConfig.gcs_source', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='source', full_name='google.cloud.vision.v1.ImportProductSetsInputConfig.source',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=2618,
  serialized_end=2732,
)


_IMPORTPRODUCTSETSREQUEST = _descriptor.Descriptor(
  name='ImportProductSetsRequest',
  full_name='google.cloud.vision.v1.ImportProductSetsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='parent', full_name='google.cloud.vision.v1.ImportProductSetsRequest.parent', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='input_config', full_name='google.cloud.vision.v1.ImportProductSetsRequest.input_config', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2734,
  serialized_end=2852,
)


_IMPORTPRODUCTSETSRESPONSE = _descriptor.Descriptor(
  name='ImportProductSetsResponse',
  full_name='google.cloud.vision.v1.ImportProductSetsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='reference_images', full_name='google.cloud.vision.v1.ImportProductSetsResponse.reference_images', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='statuses', full_name='google.cloud.vision.v1.ImportProductSetsResponse.statuses', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2855,
  serialized_end=2986,
)


_BATCHOPERATIONMETADATA = _descriptor.Descriptor(
  name='BatchOperationMetadata',
  full_name='google.cloud.vision.v1.BatchOperationMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='state', full_name='google.cloud.vision.v1.BatchOperationMetadata.state', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='submit_time', full_name='google.cloud.vision.v1.BatchOperationMetadata.submit_time', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='end_time', full_name='google.cloud.vision.v1.BatchOperationMetadata.end_time', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BATCHOPERATIONMETADATA_STATE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2989,
  serialized_end=3268,
)

_PRODUCT_KEYVALUE.containing_type = _PRODUCT
_PRODUCT.fields_by_name['product_labels'].message_type = _PRODUCT_KEYVALUE
_PRODUCTSET.fields_by_name['index_time'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_PRODUCTSET.fields_by_name['index_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS
_REFERENCEIMAGE.fields_by_name['bounding_polys'].message_type = google_dot_cloud_dot_vision__v1_dot_proto_dot_geometry__pb2._BOUNDINGPOLY
_CREATEPRODUCTREQUEST.fields_by_name['product'].message_type = _PRODUCT
_LISTPRODUCTSRESPONSE.fields_by_name['products'].message_type = _PRODUCT
_UPDATEPRODUCTREQUEST.fields_by_name['product'].message_type = _PRODUCT
_UPDATEPRODUCTREQUEST.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
_CREATEPRODUCTSETREQUEST.fields_by_name['product_set'].message_type = _PRODUCTSET
_LISTPRODUCTSETSRESPONSE.fields_by_name['product_sets'].message_type = _PRODUCTSET
_UPDATEPRODUCTSETREQUEST.fields_by_name['product_set'].message_type = _PRODUCTSET
_UPDATEPRODUCTSETREQUEST.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
_CREATEREFERENCEIMAGEREQUEST.fields_by_name['reference_image'].message_type = _REFERENCEIMAGE
_LISTREFERENCEIMAGESRESPONSE.fields_by_name['reference_images'].message_type = _REFERENCEIMAGE
_LISTPRODUCTSINPRODUCTSETRESPONSE.fields_by_name['products'].message_type = _PRODUCT
_IMPORTPRODUCTSETSINPUTCONFIG.fields_by_name['gcs_source'].message_type = _IMPORTPRODUCTSETSGCSSOURCE
_IMPORTPRODUCTSETSINPUTCONFIG.oneofs_by_name['source'].fields.append(
  _IMPORTPRODUCTSETSINPUTCONFIG.fields_by_name['gcs_source'])
_IMPORTPRODUCTSETSINPUTCONFIG.fields_by_name['gcs_source'].containing_oneof = _IMPORTPRODUCTSETSINPUTCONFIG.oneofs_by_name['source']
_IMPORTPRODUCTSETSREQUEST.fields_by_name['input_config'].message_type = _IMPORTPRODUCTSETSINPUTCONFIG
_IMPORTPRODUCTSETSRESPONSE.fields_by_name['reference_images'].message_type = _REFERENCEIMAGE
_IMPORTPRODUCTSETSRESPONSE.fields_by_name['statuses'].message_type = google_dot_rpc_dot_status__pb2._STATUS
_BATCHOPERATIONMETADATA.fields_by_name['state'].enum_type = _BATCHOPERATIONMETADATA_STATE
_BATCHOPERATIONMETADATA.fields_by_name['submit_time'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_BATCHOPERATIONMETADATA.fields_by_name['end_time'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_BATCHOPERATIONMETADATA_STATE.containing_type = _BATCHOPERATIONMETADATA
DESCRIPTOR.message_types_by_name['Product'] = _PRODUCT
DESCRIPTOR.message_types_by_name['ProductSet'] = _PRODUCTSET
DESCRIPTOR.message_types_by_name['ReferenceImage'] = _REFERENCEIMAGE
DESCRIPTOR.message_types_by_name['CreateProductRequest'] = _CREATEPRODUCTREQUEST
DESCRIPTOR.message_types_by_name['ListProductsRequest'] = _LISTPRODUCTSREQUEST
DESCRIPTOR.message_types_by_name['ListProductsResponse'] = _LISTPRODUCTSRESPONSE
DESCRIPTOR.message_types_by_name['GetProductRequest'] = _GETPRODUCTREQUEST
DESCRIPTOR.message_types_by_name['UpdateProductRequest'] = _UPDATEPRODUCTREQUEST
DESCRIPTOR.message_types_by_name['DeleteProductRequest'] = _DELETEPRODUCTREQUEST
DESCRIPTOR.message_types_by_name['CreateProductSetRequest'] = _CREATEPRODUCTSETREQUEST
DESCRIPTOR.message_types_by_name['ListProductSetsRequest'] = _LISTPRODUCTSETSREQUEST
DESCRIPTOR.message_types_by_name['ListProductSetsResponse'] = _LISTPRODUCTSETSRESPONSE
DESCRIPTOR.message_types_by_name['GetProductSetRequest'] = _GETPRODUCTSETREQUEST
DESCRIPTOR.message_types_by_name['UpdateProductSetRequest'] = _UPDATEPRODUCTSETREQUEST
DESCRIPTOR.message_types_by_name['DeleteProductSetRequest'] = _DELETEPRODUCTSETREQUEST
DESCRIPTOR.message_types_by_name['CreateReferenceImageRequest'] = _CREATEREFERENCEIMAGEREQUEST
DESCRIPTOR.message_types_by_name['ListReferenceImagesRequest'] = _LISTREFERENCEIMAGESREQUEST
DESCRIPTOR.message_types_by_name['ListReferenceImagesResponse'] = _LISTREFERENCEIMAGESRESPONSE
DESCRIPTOR.message_types_by_name['GetReferenceImageRequest'] = _GETREFERENCEIMAGEREQUEST
DESCRIPTOR.message_types_by_name['DeleteReferenceImageRequest'] = _DELETEREFERENCEIMAGEREQUEST
DESCRIPTOR.message_types_by_name['AddProductToProductSetRequest'] = _ADDPRODUCTTOPRODUCTSETREQUEST
DESCRIPTOR.message_types_by_name['RemoveProductFromProductSetRequest'] = _REMOVEPRODUCTFROMPRODUCTSETREQUEST
DESCRIPTOR.message_types_by_name['ListProductsInProductSetRequest'] = _LISTPRODUCTSINPRODUCTSETREQUEST
DESCRIPTOR.message_types_by_name['ListProductsInProductSetResponse'] = _LISTPRODUCTSINPRODUCTSETRESPONSE
DESCRIPTOR.message_types_by_name['ImportProductSetsGcsSource'] = _IMPORTPRODUCTSETSGCSSOURCE
DESCRIPTOR.message_types_by_name['ImportProductSetsInputConfig'] = _IMPORTPRODUCTSETSINPUTCONFIG
DESCRIPTOR.message_types_by_name['ImportProductSetsRequest'] = _IMPORTPRODUCTSETSREQUEST
DESCRIPTOR.message_types_by_name['ImportProductSetsResponse'] = _IMPORTPRODUCTSETSRESPONSE
DESCRIPTOR.message_types_by_name['BatchOperationMetadata'] = _BATCHOPERATIONMETADATA
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Product = _reflection.GeneratedProtocolMessageType('Product', (_message.Message,), dict(

  KeyValue = _reflection.GeneratedProtocolMessageType('KeyValue', (_message.Message,), dict(
    DESCRIPTOR = _PRODUCT_KEYVALUE,
    __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
    ,
    __doc__ = """A product label represented as a key-value pair.
    
    
    Attributes:
        key:
            The key of the label attached to the product. Cannot be empty
            and cannot exceed 128 bytes.
        value:
            The value of the label attached to the product. Cannot be
            empty and cannot exceed 128 bytes.
    """,
    # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.Product.KeyValue)
    ))
  ,
  DESCRIPTOR = _PRODUCT,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """A Product contains ReferenceImages.
  
  
  Attributes:
      name:
          The resource name of the product.  Format is:
          ``projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID``.
          This field is ignored when creating a product.
      display_name:
          The user-provided name for this Product. Must not be empty.
          Must be at most 4096 characters long.
      description:
          User-provided metadata to be stored with this product. Must be
          at most 4096 characters long.
      product_category:
          The category for the product identified by the reference
          image. This should be either "homegoods", "apparel", or
          "toys".  This field is immutable.
      product_labels:
          Key-value pairs that can be attached to a product. At query
          time, constraints can be specified based on the
          product\_labels.  Note that integer values can be provided as
          strings, e.g. "1199". Only strings with integer values can
          match a range-based restriction which is to be supported soon.
          Multiple values can be assigned to the same key. One product
          may have up to 100 product\_labels.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.Product)
  ))
_sym_db.RegisterMessage(Product)
_sym_db.RegisterMessage(Product.KeyValue)

ProductSet = _reflection.GeneratedProtocolMessageType('ProductSet', (_message.Message,), dict(
  DESCRIPTOR = _PRODUCTSET,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """A ProductSet contains Products. A ProductSet can contain a maximum of 1
  million reference images. If the limit is exceeded, periodic indexing
  will fail.
  
  
  Attributes:
      name:
          The resource name of the ProductSet.  Format is: ``projects/PR
          OJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID``.  This
          field is ignored when creating a ProductSet.
      display_name:
          The user-provided name for this ProductSet. Must not be empty.
          Must be at most 4096 characters long.
      index_time:
          Output only. The time at which this ProductSet was last
          indexed. Query results will reflect all updates before this
          time. If this ProductSet has never been indexed, this field is
          0.  This field is ignored when creating a ProductSet.
      index_error:
          Output only. If there was an error with indexing the product
          set, the field is populated.  This field is ignored when
          creating a ProductSet.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ProductSet)
  ))
_sym_db.RegisterMessage(ProductSet)

ReferenceImage = _reflection.GeneratedProtocolMessageType('ReferenceImage', (_message.Message,), dict(
  DESCRIPTOR = _REFERENCEIMAGE,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """A ``ReferenceImage`` represents a product image and its associated
  metadata, such as bounding boxes.
  
  
  Attributes:
      name:
          The resource name of the reference image.  Format is:  ``proje
          cts/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceI
          mages/IMAGE_ID``.  This field is ignored when creating a
          reference image.
      uri:
          The Google Cloud Storage URI of the reference image.  The URI
          must start with ``gs://``.  Required.
      bounding_polys:
          Bounding polygons around the areas of interest in the
          reference image. Optional. If this field is empty, the system
          will try to detect regions of interest. At most 10 bounding
          polygons will be used.  The provided shape is converted into a
          non-rotated rectangle. Once converted, the small edge of the
          rectangle must be greater than or equal to 300 pixels. The
          aspect ratio must be 1:4 or less (i.e. 1:3 is ok; 1:5 is not).
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ReferenceImage)
  ))
_sym_db.RegisterMessage(ReferenceImage)

CreateProductRequest = _reflection.GeneratedProtocolMessageType('CreateProductRequest', (_message.Message,), dict(
  DESCRIPTOR = _CREATEPRODUCTREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``CreateProduct`` method.
  
  
  Attributes:
      parent:
          The project in which the Product should be created.  Format is
          ``projects/PROJECT_ID/locations/LOC_ID``.
      product:
          The product to create.
      product_id:
          A user-supplied resource id for this Product. If set, the
          server will attempt to use this value as the resource id. If
          it is already in use, an error is returned with code
          ALREADY\_EXISTS. Must be at most 128 characters long. It
          cannot contain the character ``/``.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.CreateProductRequest)
  ))
_sym_db.RegisterMessage(CreateProductRequest)

ListProductsRequest = _reflection.GeneratedProtocolMessageType('ListProductsRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTPRODUCTSREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``ListProducts`` method.
  
  
  Attributes:
      parent:
          The project OR ProductSet from which Products should be
          listed.  Format: ``projects/PROJECT_ID/locations/LOC_ID``
      page_size:
          The maximum number of items to return. Default 10, maximum
          100.
      page_token:
          The next\_page\_token returned from a previous List request,
          if any.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ListProductsRequest)
  ))
_sym_db.RegisterMessage(ListProductsRequest)

ListProductsResponse = _reflection.GeneratedProtocolMessageType('ListProductsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTPRODUCTSRESPONSE,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Response message for the ``ListProducts`` method.
  
  
  Attributes:
      products:
          List of products.
      next_page_token:
          Token to retrieve the next page of results, or empty if there
          are no more results in the list.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ListProductsResponse)
  ))
_sym_db.RegisterMessage(ListProductsResponse)

GetProductRequest = _reflection.GeneratedProtocolMessageType('GetProductRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETPRODUCTREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``GetProduct`` method.
  
  
  Attributes:
      name:
          Resource name of the Product to get.  Format is:
          ``projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID``
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.GetProductRequest)
  ))
_sym_db.RegisterMessage(GetProductRequest)

UpdateProductRequest = _reflection.GeneratedProtocolMessageType('UpdateProductRequest', (_message.Message,), dict(
  DESCRIPTOR = _UPDATEPRODUCTREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``UpdateProduct`` method.
  
  
  Attributes:
      product:
          The Product resource which replaces the one on the server.
          product.name is immutable.
      update_mask:
          The [FieldMask][google.protobuf.FieldMask] that specifies
          which fields to update. If update\_mask isn't specified, all
          mutable fields are to be updated. Valid mask paths include
          ``product_labels``, ``display_name``, and ``description``.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.UpdateProductRequest)
  ))
_sym_db.RegisterMessage(UpdateProductRequest)

DeleteProductRequest = _reflection.GeneratedProtocolMessageType('DeleteProductRequest', (_message.Message,), dict(
  DESCRIPTOR = _DELETEPRODUCTREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``DeleteProduct`` method.
  
  
  Attributes:
      name:
          Resource name of product to delete.  Format is:
          ``projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID``
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.DeleteProductRequest)
  ))
_sym_db.RegisterMessage(DeleteProductRequest)

CreateProductSetRequest = _reflection.GeneratedProtocolMessageType('CreateProductSetRequest', (_message.Message,), dict(
  DESCRIPTOR = _CREATEPRODUCTSETREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``CreateProductSet`` method.
  
  
  Attributes:
      parent:
          The project in which the ProductSet should be created.  Format
          is ``projects/PROJECT_ID/locations/LOC_ID``.
      product_set:
          The ProductSet to create.
      product_set_id:
          A user-supplied resource id for this ProductSet. If set, the
          server will attempt to use this value as the resource id. If
          it is already in use, an error is returned with code
          ALREADY\_EXISTS. Must be at most 128 characters long. It
          cannot contain the character ``/``.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.CreateProductSetRequest)
  ))
_sym_db.RegisterMessage(CreateProductSetRequest)

ListProductSetsRequest = _reflection.GeneratedProtocolMessageType('ListProductSetsRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTPRODUCTSETSREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``ListProductSets`` method.
  
  
  Attributes:
      parent:
          The project from which ProductSets should be listed.  Format
          is ``projects/PROJECT_ID/locations/LOC_ID``.
      page_size:
          The maximum number of items to return. Default 10, maximum
          100.
      page_token:
          The next\_page\_token returned from a previous List request,
          if any.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ListProductSetsRequest)
  ))
_sym_db.RegisterMessage(ListProductSetsRequest)

ListProductSetsResponse = _reflection.GeneratedProtocolMessageType('ListProductSetsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTPRODUCTSETSRESPONSE,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Response message for the ``ListProductSets`` method.
  
  
  Attributes:
      product_sets:
          List of ProductSets.
      next_page_token:
          Token to retrieve the next page of results, or empty if there
          are no more results in the list.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ListProductSetsResponse)
  ))
_sym_db.RegisterMessage(ListProductSetsResponse)

GetProductSetRequest = _reflection.GeneratedProtocolMessageType('GetProductSetRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETPRODUCTSETREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``GetProductSet`` method.
  
  
  Attributes:
      name:
          Resource name of the ProductSet to get.  Format is: ``projects
          /PROJECT_ID/locations/LOG_ID/productSets/PRODUCT_SET_ID``
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.GetProductSetRequest)
  ))
_sym_db.RegisterMessage(GetProductSetRequest)

UpdateProductSetRequest = _reflection.GeneratedProtocolMessageType('UpdateProductSetRequest', (_message.Message,), dict(
  DESCRIPTOR = _UPDATEPRODUCTSETREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``UpdateProductSet`` method.
  
  
  Attributes:
      product_set:
          The ProductSet resource which replaces the one on the server.
      update_mask:
          The [FieldMask][google.protobuf.FieldMask] that specifies
          which fields to update. If update\_mask isn't specified, all
          mutable fields are to be updated. Valid mask path is
          ``display_name``.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.UpdateProductSetRequest)
  ))
_sym_db.RegisterMessage(UpdateProductSetRequest)

DeleteProductSetRequest = _reflection.GeneratedProtocolMessageType('DeleteProductSetRequest', (_message.Message,), dict(
  DESCRIPTOR = _DELETEPRODUCTSETREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``DeleteProductSet`` method.
  
  
  Attributes:
      name:
          Resource name of the ProductSet to delete.  Format is: ``proje
          cts/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID``
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.DeleteProductSetRequest)
  ))
_sym_db.RegisterMessage(DeleteProductSetRequest)

CreateReferenceImageRequest = _reflection.GeneratedProtocolMessageType('CreateReferenceImageRequest', (_message.Message,), dict(
  DESCRIPTOR = _CREATEREFERENCEIMAGEREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``CreateReferenceImage`` method.
  
  
  Attributes:
      parent:
          Resource name of the product in which to create the reference
          image.  Format is
          ``projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID``.
      reference_image:
          The reference image to create. If an image ID is specified, it
          is ignored.
      reference_image_id:
          A user-supplied resource id for the ReferenceImage to be
          added. If set, the server will attempt to use this value as
          the resource id. If it is already in use, an error is returned
          with code ALREADY\_EXISTS. Must be at most 128 characters
          long. It cannot contain the character ``/``.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.CreateReferenceImageRequest)
  ))
_sym_db.RegisterMessage(CreateReferenceImageRequest)

ListReferenceImagesRequest = _reflection.GeneratedProtocolMessageType('ListReferenceImagesRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTREFERENCEIMAGESREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``ListReferenceImages`` method.
  
  
  Attributes:
      parent:
          Resource name of the product containing the reference images.
          Format is
          ``projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID``.
      page_size:
          The maximum number of items to return. Default 10, maximum
          100.
      page_token:
          A token identifying a page of results to be returned. This is
          the value of ``nextPageToken`` returned in a previous
          reference image list request.  Defaults to the first page if
          not specified.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ListReferenceImagesRequest)
  ))
_sym_db.RegisterMessage(ListReferenceImagesRequest)

ListReferenceImagesResponse = _reflection.GeneratedProtocolMessageType('ListReferenceImagesResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTREFERENCEIMAGESRESPONSE,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Response message for the ``ListReferenceImages`` method.
  
  
  Attributes:
      reference_images:
          The list of reference images.
      page_size:
          The maximum number of items to return. Default 10, maximum
          100.
      next_page_token:
          The next\_page\_token returned from a previous List request,
          if any.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ListReferenceImagesResponse)
  ))
_sym_db.RegisterMessage(ListReferenceImagesResponse)

GetReferenceImageRequest = _reflection.GeneratedProtocolMessageType('GetReferenceImageRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETREFERENCEIMAGEREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``GetReferenceImage`` method.
  
  
  Attributes:
      name:
          The resource name of the ReferenceImage to get.  Format is:  `
          `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/refe
          renceImages/IMAGE_ID``.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.GetReferenceImageRequest)
  ))
_sym_db.RegisterMessage(GetReferenceImageRequest)

DeleteReferenceImageRequest = _reflection.GeneratedProtocolMessageType('DeleteReferenceImageRequest', (_message.Message,), dict(
  DESCRIPTOR = _DELETEREFERENCEIMAGEREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``DeleteReferenceImage`` method.
  
  
  Attributes:
      name:
          The resource name of the reference image to delete.  Format
          is:  ``projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_I
          D/referenceImages/IMAGE_ID``
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.DeleteReferenceImageRequest)
  ))
_sym_db.RegisterMessage(DeleteReferenceImageRequest)

AddProductToProductSetRequest = _reflection.GeneratedProtocolMessageType('AddProductToProductSetRequest', (_message.Message,), dict(
  DESCRIPTOR = _ADDPRODUCTTOPRODUCTSETREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``AddProductToProductSet`` method.
  
  
  Attributes:
      name:
          The resource name for the ProductSet to modify.  Format is: ``
          projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_I
          D``
      product:
          The resource name for the Product to be added to this
          ProductSet.  Format is:
          ``projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID``
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.AddProductToProductSetRequest)
  ))
_sym_db.RegisterMessage(AddProductToProductSetRequest)

RemoveProductFromProductSetRequest = _reflection.GeneratedProtocolMessageType('RemoveProductFromProductSetRequest', (_message.Message,), dict(
  DESCRIPTOR = _REMOVEPRODUCTFROMPRODUCTSETREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``RemoveProductFromProductSet`` method.
  
  
  Attributes:
      name:
          The resource name for the ProductSet to modify.  Format is: ``
          projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_I
          D``
      product:
          The resource name for the Product to be removed from this
          ProductSet.  Format is:
          ``projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID``
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.RemoveProductFromProductSetRequest)
  ))
_sym_db.RegisterMessage(RemoveProductFromProductSetRequest)

ListProductsInProductSetRequest = _reflection.GeneratedProtocolMessageType('ListProductsInProductSetRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTPRODUCTSINPRODUCTSETREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``ListProductsInProductSet`` method.
  
  
  Attributes:
      name:
          The ProductSet resource for which to retrieve Products.
          Format is: ``projects/PROJECT_ID/locations/LOC_ID/productSets/
          PRODUCT_SET_ID``
      page_size:
          The maximum number of items to return. Default 10, maximum
          100.
      page_token:
          The next\_page\_token returned from a previous List request,
          if any.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ListProductsInProductSetRequest)
  ))
_sym_db.RegisterMessage(ListProductsInProductSetRequest)

ListProductsInProductSetResponse = _reflection.GeneratedProtocolMessageType('ListProductsInProductSetResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTPRODUCTSINPRODUCTSETRESPONSE,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Response message for the ``ListProductsInProductSet`` method.
  
  
  Attributes:
      products:
          The list of Products.
      next_page_token:
          Token to retrieve the next page of results, or empty if there
          are no more results in the list.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ListProductsInProductSetResponse)
  ))
_sym_db.RegisterMessage(ListProductsInProductSetResponse)

ImportProductSetsGcsSource = _reflection.GeneratedProtocolMessageType('ImportProductSetsGcsSource', (_message.Message,), dict(
  DESCRIPTOR = _IMPORTPRODUCTSETSGCSSOURCE,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """The Google Cloud Storage location for a csv file which preserves a list
  of ImportProductSetRequests in each line.
  
  
  Attributes:
      csv_file_uri:
          The Google Cloud Storage URI of the input csv file.  The URI
          must start with ``gs://``.  The format of the input csv file
          should be one image per line. In each line, there are 8
          columns.  1. image-uri 2. image-id 3. product-set-id 4.
          product-id 5. product-category 6. product-display-name 7.
          labels 8. bounding-poly  The ``image-uri``, ``product-set-
          id``, ``product-id``, and ``product-category`` columns are
          required. All other columns are optional.  If the
          ``ProductSet`` or ``Product`` specified by the ``product-set-
          id`` and ``product-id`` values does not exist, then the system
          will create a new ``ProductSet`` or ``Product`` for the image.
          In this case, the ``product-display-name`` column refers to
          [display\_name][google.cloud.vision.v1.Product.display\_name],
          the ``product-category`` column refers to [product\_category][
          google.cloud.vision.v1.Product.product\_category], and the
          ``labels`` column refers to [product\_labels][google.cloud.vis
          ion.v1.Product.product\_labels].  The ``image-id`` column is
          optional but must be unique if provided. If it is empty, the
          system will automatically assign a unique id to the image.
          The ``product-display-name`` column is optional. If it is
          empty, the system sets the
          [display\_name][google.cloud.vision.v1.Product.display\_name]
          field for the product to a space (" "). You can update the
          ``display_name`` later by using the API.  If a ``Product``
          with the specified ``product-id`` already exists, then the
          system ignores the ``product-display-name``, ``product-
          category``, and ``labels`` columns.  The ``labels`` column
          (optional) is a line containing a list of comma-separated key-
          value pairs, in the following format:  ::
          "key_1=value_1,key_2=value_2,...,key_n=value_n"  The
          ``bounding-poly`` column (optional) identifies one region of
          interest from the image in the same manner as
          ``CreateReferenceImage``. If you do not specify the
          ``bounding-poly`` column, then the system will try to detect
          regions of interest automatically.  At most one ``bounding-
          poly`` column is allowed per line. If the image contains
          multiple regions of interest, add a line to the CSV file that
          includes the same product information, and the ``bounding-
          poly`` values for each region of interest.  The ``bounding-
          poly`` column must contain an even number of comma-separated
          numbers, in the format
          "p1\_x,p1\_y,p2\_x,p2\_y,...,pn\_x,pn\_y". Use non-negative
          integers for absolute bounding polygons, and float values in
          [0, 1] for normalized bounding polygons.  The system will
          resize the image if the image resolution is too large to
          process (larger than 20MP).
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ImportProductSetsGcsSource)
  ))
_sym_db.RegisterMessage(ImportProductSetsGcsSource)

ImportProductSetsInputConfig = _reflection.GeneratedProtocolMessageType('ImportProductSetsInputConfig', (_message.Message,), dict(
  DESCRIPTOR = _IMPORTPRODUCTSETSINPUTCONFIG,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """The input content for the ``ImportProductSets`` method.
  
  
  Attributes:
      source:
          The source of the input.
      gcs_source:
          The Google Cloud Storage location for a csv file which
          preserves a list of ImportProductSetRequests in each line.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ImportProductSetsInputConfig)
  ))
_sym_db.RegisterMessage(ImportProductSetsInputConfig)

ImportProductSetsRequest = _reflection.GeneratedProtocolMessageType('ImportProductSetsRequest', (_message.Message,), dict(
  DESCRIPTOR = _IMPORTPRODUCTSETSREQUEST,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Request message for the ``ImportProductSets`` method.
  
  
  Attributes:
      parent:
          The project in which the ProductSets should be imported.
          Format is ``projects/PROJECT_ID/locations/LOC_ID``.
      input_config:
          The input content for the list of requests.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ImportProductSetsRequest)
  ))
_sym_db.RegisterMessage(ImportProductSetsRequest)

ImportProductSetsResponse = _reflection.GeneratedProtocolMessageType('ImportProductSetsResponse', (_message.Message,), dict(
  DESCRIPTOR = _IMPORTPRODUCTSETSRESPONSE,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Response message for the ``ImportProductSets`` method.
  
  This message is returned by the
  [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation]
  method in the returned
  [google.longrunning.Operation.response][google.longrunning.Operation.response]
  field.
  
  
  Attributes:
      reference_images:
          The list of reference\_images that are imported successfully.
      statuses:
          The rpc status for each ImportProductSet request, including
          both successes and errors.  The number of statuses here
          matches the number of lines in the csv file, and statuses[i]
          stores the success or failure status of processing the i-th
          line of the csv, starting from line 0.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.ImportProductSetsResponse)
  ))
_sym_db.RegisterMessage(ImportProductSetsResponse)

BatchOperationMetadata = _reflection.GeneratedProtocolMessageType('BatchOperationMetadata', (_message.Message,), dict(
  DESCRIPTOR = _BATCHOPERATIONMETADATA,
  __module__ = 'google.cloud.vision_v1.proto.product_search_service_pb2'
  ,
  __doc__ = """Metadata for the batch operations such as the current state.
  
  This is included in the ``metadata`` field of the ``Operation`` returned
  by the ``GetOperation`` call of the ``google::longrunning::Operations``
  service.
  
  
  Attributes:
      state:
          The current state of the batch operation.
      submit_time:
          The time when the batch request was submitted to the server.
      end_time:
          The time when the batch request is finished and [google.longru
          nning.Operation.done][google.longrunning.Operation.done] is
          set to true.
  """,
  # @@protoc_insertion_point(class_scope:google.cloud.vision.v1.BatchOperationMetadata)
  ))
_sym_db.RegisterMessage(BatchOperationMetadata)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\032com.google.cloud.vision.v1B\031ProductSearchServiceProtoP\001Z<google.golang.org/genproto/googleapis/cloud/vision/v1;vision\370\001\001\242\002\004GCVN'))

_PRODUCTSEARCH = _descriptor.ServiceDescriptor(
  name='ProductSearch',
  full_name='google.cloud.vision.v1.ProductSearch',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=3271,
  serialized_end=6422,
  methods=[
  _descriptor.MethodDescriptor(
    name='CreateProductSet',
    full_name='google.cloud.vision.v1.ProductSearch.CreateProductSet',
    index=0,
    containing_service=None,
    input_type=_CREATEPRODUCTSETREQUEST,
    output_type=_PRODUCTSET,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002>\"//v1/{parent=projects/*/locations/*}/productSets:\013product_set')),
  ),
  _descriptor.MethodDescriptor(
    name='ListProductSets',
    full_name='google.cloud.vision.v1.ProductSearch.ListProductSets',
    index=1,
    containing_service=None,
    input_type=_LISTPRODUCTSETSREQUEST,
    output_type=_LISTPRODUCTSETSRESPONSE,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0021\022//v1/{parent=projects/*/locations/*}/productSets')),
  ),
  _descriptor.MethodDescriptor(
    name='GetProductSet',
    full_name='google.cloud.vision.v1.ProductSearch.GetProductSet',
    index=2,
    containing_service=None,
    input_type=_GETPRODUCTSETREQUEST,
    output_type=_PRODUCTSET,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0021\022//v1/{name=projects/*/locations/*/productSets/*}')),
  ),
  _descriptor.MethodDescriptor(
    name='UpdateProductSet',
    full_name='google.cloud.vision.v1.ProductSearch.UpdateProductSet',
    index=3,
    containing_service=None,
    input_type=_UPDATEPRODUCTSETREQUEST,
    output_type=_PRODUCTSET,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002J2;/v1/{product_set.name=projects/*/locations/*/productSets/*}:\013product_set')),
  ),
  _descriptor.MethodDescriptor(
    name='DeleteProductSet',
    full_name='google.cloud.vision.v1.ProductSearch.DeleteProductSet',
    index=4,
    containing_service=None,
    input_type=_DELETEPRODUCTSETREQUEST,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0021*//v1/{name=projects/*/locations/*/productSets/*}')),
  ),
  _descriptor.MethodDescriptor(
    name='CreateProduct',
    full_name='google.cloud.vision.v1.ProductSearch.CreateProduct',
    index=5,
    containing_service=None,
    input_type=_CREATEPRODUCTREQUEST,
    output_type=_PRODUCT,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0027\",/v1/{parent=projects/*/locations/*}/products:\007product')),
  ),
  _descriptor.MethodDescriptor(
    name='ListProducts',
    full_name='google.cloud.vision.v1.ProductSearch.ListProducts',
    index=6,
    containing_service=None,
    input_type=_LISTPRODUCTSREQUEST,
    output_type=_LISTPRODUCTSRESPONSE,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002.\022,/v1/{parent=projects/*/locations/*}/products')),
  ),
  _descriptor.MethodDescriptor(
    name='GetProduct',
    full_name='google.cloud.vision.v1.ProductSearch.GetProduct',
    index=7,
    containing_service=None,
    input_type=_GETPRODUCTREQUEST,
    output_type=_PRODUCT,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002.\022,/v1/{name=projects/*/locations/*/products/*}')),
  ),
  _descriptor.MethodDescriptor(
    name='UpdateProduct',
    full_name='google.cloud.vision.v1.ProductSearch.UpdateProduct',
    index=8,
    containing_service=None,
    input_type=_UPDATEPRODUCTREQUEST,
    output_type=_PRODUCT,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002?24/v1/{product.name=projects/*/locations/*/products/*}:\007product')),
  ),
  _descriptor.MethodDescriptor(
    name='DeleteProduct',
    full_name='google.cloud.vision.v1.ProductSearch.DeleteProduct',
    index=9,
    containing_service=None,
    input_type=_DELETEPRODUCTREQUEST,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002.*,/v1/{name=projects/*/locations/*/products/*}')),
  ),
  _descriptor.MethodDescriptor(
    name='CreateReferenceImage',
    full_name='google.cloud.vision.v1.ProductSearch.CreateReferenceImage',
    index=10,
    containing_service=None,
    input_type=_CREATEREFERENCEIMAGEREQUEST,
    output_type=_REFERENCEIMAGE,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002Q\">/v1/{parent=projects/*/locations/*/products/*}/referenceImages:\017reference_image')),
  ),
  _descriptor.MethodDescriptor(
    name='DeleteReferenceImage',
    full_name='google.cloud.vision.v1.ProductSearch.DeleteReferenceImage',
    index=11,
    containing_service=None,
    input_type=_DELETEREFERENCEIMAGEREQUEST,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002@*>/v1/{name=projects/*/locations/*/products/*/referenceImages/*}')),
  ),
  _descriptor.MethodDescriptor(
    name='ListReferenceImages',
    full_name='google.cloud.vision.v1.ProductSearch.ListReferenceImages',
    index=12,
    containing_service=None,
    input_type=_LISTREFERENCEIMAGESREQUEST,
    output_type=_LISTREFERENCEIMAGESRESPONSE,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002@\022>/v1/{parent=projects/*/locations/*/products/*}/referenceImages')),
  ),
  _descriptor.MethodDescriptor(
    name='GetReferenceImage',
    full_name='google.cloud.vision.v1.ProductSearch.GetReferenceImage',
    index=13,
    containing_service=None,
    input_type=_GETREFERENCEIMAGEREQUEST,
    output_type=_REFERENCEIMAGE,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002@\022>/v1/{name=projects/*/locations/*/products/*/referenceImages/*}')),
  ),
  _descriptor.MethodDescriptor(
    name='AddProductToProductSet',
    full_name='google.cloud.vision.v1.ProductSearch.AddProductToProductSet',
    index=14,
    containing_service=None,
    input_type=_ADDPRODUCTTOPRODUCTSETREQUEST,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002?\":/v1/{name=projects/*/locations/*/productSets/*}:addProduct:\001*')),
  ),
  _descriptor.MethodDescriptor(
    name='RemoveProductFromProductSet',
    full_name='google.cloud.vision.v1.ProductSearch.RemoveProductFromProductSet',
    index=15,
    containing_service=None,
    input_type=_REMOVEPRODUCTFROMPRODUCTSETREQUEST,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002B\"=/v1/{name=projects/*/locations/*/productSets/*}:removeProduct:\001*')),
  ),
  _descriptor.MethodDescriptor(
    name='ListProductsInProductSet',
    full_name='google.cloud.vision.v1.ProductSearch.ListProductsInProductSet',
    index=16,
    containing_service=None,
    input_type=_LISTPRODUCTSINPRODUCTSETREQUEST,
    output_type=_LISTPRODUCTSINPRODUCTSETRESPONSE,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002:\0228/v1/{name=projects/*/locations/*/productSets/*}/products')),
  ),
  _descriptor.MethodDescriptor(
    name='ImportProductSets',
    full_name='google.cloud.vision.v1.ProductSearch.ImportProductSets',
    index=17,
    containing_service=None,
    input_type=_IMPORTPRODUCTSETSREQUEST,
    output_type=google_dot_longrunning_dot_operations__pb2._OPERATION,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002;\"6/v1/{parent=projects/*/locations/*}/productSets:import:\001*')),
  ),
])
_sym_db.RegisterServiceDescriptor(_PRODUCTSEARCH)

DESCRIPTOR.services_by_name['ProductSearch'] = _PRODUCTSEARCH

# @@protoc_insertion_point(module_scope)
