# Path: google/cloud/recommendationengine_v1beta1/types/catalog.py
# class CatalogItem(proto.Message):
#     class CategoryHierarchy(proto.Message):
# class ProductCatalogItem(proto.Message):
#     class StockState(proto.Enum):
#     class ExactPrice(proto.Message):
#     class PriceRange(proto.Message):
# class Image(proto.Message):
#         STOCK_STATE_UNSPECIFIED = 0
#         IN_STOCK = 0
#         OUT_OF_STOCK = 1
#         PREORDER = 2
#         BACKORDER = 3
# 
# Path: google/cloud/recommendationengine_v1beta1/types/catalog_service.py
# class CreateCatalogItemRequest(proto.Message):
# class GetCatalogItemRequest(proto.Message):
# class ListCatalogItemsRequest(proto.Message):
# class ListCatalogItemsResponse(proto.Message):
# class UpdateCatalogItemRequest(proto.Message):
# class DeleteCatalogItemRequest(proto.Message):
#     def raw_page(self):
# 
# Path: google/cloud/recommendationengine_v1beta1/types/import_.py
# class GcsSource(proto.Message):
# class CatalogInlineSource(proto.Message):
# class UserEventInlineSource(proto.Message):
# class ImportErrorsConfig(proto.Message):
# class ImportCatalogItemsRequest(proto.Message):
# class ImportUserEventsRequest(proto.Message):
# class InputConfig(proto.Message):
# class ImportMetadata(proto.Message):
# class ImportCatalogItemsResponse(proto.Message):
# class ImportUserEventsResponse(proto.Message):
# class UserEventImportSummary(proto.Message):


import abc
import pkg_resources
import google.auth  # type: ignore
import google.api_core
from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
from google.api_core import exceptions as core_exceptions
from google.api_core import gapic_v1
from google.api_core import retry as retries
from google.api_core import operations_v1
from google.auth import credentials as ga_credentials  # type: ignore
from google.oauth2 import service_account  # type: ignore
from google.cloud.recommendationengine_v1beta1.types import catalog
from google.cloud.recommendationengine_v1beta1.types import catalog_service
from google.cloud.recommendationengine_v1beta1.types import import_
from google.longrunning import operations_pb2  # type: ignore
from google.protobuf import empty_pb2  # type: ignore
        [catalog_service.ListCatalogItemsRequest],
        Union[
            catalog_service.ListCatalogItemsResponse,
            Awaitable[catalog_service.ListCatalogItemsResponse],
        ],
    ]:
        raise NotImplementedError()

    @property
    def update_catalog_item(
        self,
    ) -> Callable[
        [catalog_service.UpdateCatalogItemRequest],
        Union[catalog.CatalogItem, Awaitable[catalog.CatalogItem]],
    ]:
        raise NotImplementedError()

    @property
    def delete_catalog_item(
        self,
    ) -> Callable[
        [catalog_service.DeleteCatalogItemRequest],
        Union[empty_pb2.Empty, Awaitable[empty_pb2.Empty]],
    ]:
        raise NotImplementedError()

    @property
    def import_catalog_items(
        self,
    ) -> Callable[

# Path: google/cloud/recommendationengine_v1beta1/types/catalog.py
# class CatalogItem(proto.Message):
#     class CategoryHierarchy(proto.Message):
# class ProductCatalogItem(proto.Message):
#     class StockState(proto.Enum):
#     class ExactPrice(proto.Message):
#     class PriceRange(proto.Message):
# class Image(proto.Message):
#         STOCK_STATE_UNSPECIFIED = 0
#         IN_STOCK = 0
#         OUT_OF_STOCK = 1
#         PREORDER = 2
#         BACKORDER = 3
# 
# Path: google/cloud/recommendationengine_v1beta1/types/catalog_service.py
# class CreateCatalogItemRequest(proto.Message):
# class GetCatalogItemRequest(proto.Message):
# class ListCatalogItemsRequest(proto.Message):
# class ListCatalogItemsResponse(proto.Message):
# class UpdateCatalogItemRequest(proto.Message):
# class DeleteCatalogItemRequest(proto.Message):
#     def raw_page(self):
# 
# Path: google/cloud/recommendationengine_v1beta1/types/import_.py
# class GcsSource(proto.Message):
# class CatalogInlineSource(proto.Message):
# class UserEventInlineSource(proto.Message):
# class ImportErrorsConfig(proto.Message):
# class ImportCatalogItemsRequest(proto.Message):
# class ImportUserEventsRequest(proto.Message):
# class InputConfig(proto.Message):
# class ImportMetadata(proto.Message):
# class ImportCatalogItemsResponse(proto.Message):
# class ImportUserEventsResponse(proto.Message):
# class UserEventImportSummary(proto.Message):


# Path: google/cloud/recommendationengine_v1beta1/services/catalog_service/transports/base.py
import abc
import pkg_resources
import google.auth  # type: ignore
import google.api_core
from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
from google.api_core import exceptions as core_exceptions
from google.api_core import gapic_v1
from google.api_core import retry as retries
from google.api_core import operations_v1
from google.auth import credentials as ga_credentials  # type: ignore
from google.oauth2 import service_account  # type: ignore
from google.cloud.recommendationengine_v1beta1.types import catalog
from google.cloud.recommendationengine_v1beta1.types import catalog_service
from google.cloud.recommendationengine_v1beta1.types import import_
from google.longrunning import operations_pb2  # type: ignore
from google.protobuf import empty_pb2  # type: ignore

        [catalog_service.ListCatalogItemsRequest],
        Union[
            catalog_service.ListCatalogItemsResponse,
            Awaitable[catalog_service.ListCatalogItemsResponse],
        ],
    ]:
        raise NotImplementedError()

    @property
    def update_catalog_item(
        self,
    ) -> Callable[
        [catalog_service.UpdateCatalogItemRequest],
        Union[catalog.CatalogItem, Awaitable[catalog.CatalogItem]],
    ]:
        raise NotImplementedError()

    @property
    def delete_catalog_item(
        self,
    ) -> Callable[
        [catalog_service.DeleteCatalogItemRequest],
        Union[empty_pb2.Empty, Awaitable[empty_pb2.Empty]],
    ]:
        raise NotImplementedError()

    @property
    def import_catalog_items(
        self,
    ) -> Callable[

        [import_.ImportCatalogItemsRequest],