# 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/types/user_event.py
# class UserEvent(proto.Message):
#     class EventSource(proto.Enum):
# class UserInfo(proto.Message):
# class EventDetail(proto.Message):
# class ProductEventDetail(proto.Message):
# class PurchaseTransaction(proto.Message):
# class ProductDetail(proto.Message):
#         EVENT_SOURCE_UNSPECIFIED = 0
#         AUTOML = 1
#         ECOMMERCE = 2
#         BATCH_UPLOAD = 3
# 
# Path: google/cloud/recommendationengine_v1beta1/types/user_event_service.py
# class PurgeUserEventsRequest(proto.Message):
# class PurgeUserEventsMetadata(proto.Message):
# class PurgeUserEventsResponse(proto.Message):
# class WriteUserEventRequest(proto.Message):
# class CollectUserEventRequest(proto.Message):
# class ListUserEventsRequest(proto.Message):
# class ListUserEventsResponse(proto.Message):
#     def raw_page(self):


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.api import httpbody_pb2  # type: ignore
from google.cloud.recommendationengine_v1beta1.types import import_
from google.cloud.recommendationengine_v1beta1.types import user_event as gcr_user_event
from google.cloud.recommendationengine_v1beta1.types import user_event_service
from google.longrunning import operations_pb2  # type: ignore
                    multiplier=1.3,
                    predicate=retries.if_exception_type(
                        core_exceptions.DeadlineExceeded,
                        core_exceptions.ServiceUnavailable,
                    ),
                    deadline=600.0,
                ),
                default_timeout=600.0,
                client_info=client_info,
            ),
        }

    def close(self):
        """Closes resources associated with the transport.

       .. warning::
            Only call this method if the transport is NOT shared
            with other clients - this may cause errors in other clients!
        """
        raise NotImplementedError()

    @property
    def operations_client(self):
        """Return the client designed to process long-running operations."""
        raise NotImplementedError()

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

# 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/types/user_event.py
# class UserEvent(proto.Message):
#     class EventSource(proto.Enum):
# class UserInfo(proto.Message):
# class EventDetail(proto.Message):
# class ProductEventDetail(proto.Message):
# class PurchaseTransaction(proto.Message):
# class ProductDetail(proto.Message):
#         EVENT_SOURCE_UNSPECIFIED = 0
#         AUTOML = 1
#         ECOMMERCE = 2
#         BATCH_UPLOAD = 3
# 
# Path: google/cloud/recommendationengine_v1beta1/types/user_event_service.py
# class PurgeUserEventsRequest(proto.Message):
# class PurgeUserEventsMetadata(proto.Message):
# class PurgeUserEventsResponse(proto.Message):
# class WriteUserEventRequest(proto.Message):
# class CollectUserEventRequest(proto.Message):
# class ListUserEventsRequest(proto.Message):
# class ListUserEventsResponse(proto.Message):
#     def raw_page(self):


# Path: google/cloud/recommendationengine_v1beta1/services/user_event_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.api import httpbody_pb2  # type: ignore
from google.cloud.recommendationengine_v1beta1.types import import_
from google.cloud.recommendationengine_v1beta1.types import user_event as gcr_user_event
from google.cloud.recommendationengine_v1beta1.types import user_event_service
from google.longrunning import operations_pb2  # type: ignore

                    multiplier=1.3,
                    predicate=retries.if_exception_type(
                        core_exceptions.DeadlineExceeded,
                        core_exceptions.ServiceUnavailable,
                    ),
                    deadline=600.0,
                ),
                default_timeout=600.0,
                client_info=client_info,
            ),
        }

    def close(self):
        """Closes resources associated with the transport.

       .. warning::
            Only call this method if the transport is NOT shared
            with other clients - this may cause errors in other clients!
        """
        raise NotImplementedError()

    @property
    def operations_client(self):
        """Return the client designed to process long-running operations."""
        raise NotImplementedError()

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

        [user_event_service.WriteUserEventRequest],