# Path: google/cloud/servicedirectory_v1/types/lookup_service.py
# class ResolveServiceRequest(proto.Message):
# class ResolveServiceResponse(proto.Message):
# 
# Path: google/cloud/servicedirectory_v1/services/lookup_service/transports/base.py
# class LookupServiceTransport(abc.ABC):
#     """Abstract transport class for LookupService."""
# 
#     AUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",)
# 
#     DEFAULT_HOST: str = "servicedirectory.googleapis.com"
# 
#     def __init__(
#         self,
#         *,
#         host: str = DEFAULT_HOST,
#         credentials: ga_credentials.Credentials = None,
#         credentials_file: Optional[str] = None,
#         scopes: Optional[Sequence[str]] = None,
#         quota_project_id: Optional[str] = None,
#         client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
#         always_use_jwt_access: Optional[bool] = False,
#         **kwargs,
#     ) -> None:
#         """Instantiate the transport.
# 
#         Args:
#             host (Optional[str]):
#                  The hostname to connect to.
#             credentials (Optional[google.auth.credentials.Credentials]): The
#                 authorization credentials to attach to requests. These
#                 credentials identify the application to the service; if none
#                 are specified, the client will attempt to ascertain the
#                 credentials from the environment.
#             credentials_file (Optional[str]): A file with credentials that can
#                 be loaded with :func:`google.auth.load_credentials_from_file`.
#                 This argument is mutually exclusive with credentials.
#             scopes (Optional[Sequence[str]]): A list of scopes.
#             quota_project_id (Optional[str]): An optional project to use for billing
#                 and quota.
#             client_info (google.api_core.gapic_v1.client_info.ClientInfo):
#                 The client info used to send a user-agent string along with
#                 API requests. If ``None``, then default info will be used.
#                 Generally, you only need to set this if you're developing
#                 your own client library.
#             always_use_jwt_access (Optional[bool]): Whether self signed JWT should
#                 be used for service account credentials.
#         """
#         # Save the hostname. Default to port 443 (HTTPS) if none is specified.
#         if ":" not in host:
#             host += ":443"
#         self._host = host
# 
#         scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
# 
#         # Save the scopes.
#         self._scopes = scopes
# 
#         # If no credentials are provided, then determine the appropriate
#         # defaults.
#         if credentials and credentials_file:
#             raise core_exceptions.DuplicateCredentialArgs(
#                 "'credentials_file' and 'credentials' are mutually exclusive"
#             )
# 
#         if credentials_file is not None:
#             credentials, _ = google.auth.load_credentials_from_file(
#                 credentials_file, **scopes_kwargs, quota_project_id=quota_project_id
#             )
#         elif credentials is None:
#             credentials, _ = google.auth.default(
#                 **scopes_kwargs, quota_project_id=quota_project_id
#             )
# 
#         # If the credentials are service account credentials, then always try to use self signed JWT.
#         if (
#             always_use_jwt_access
#             and isinstance(credentials, service_account.Credentials)
#             and hasattr(service_account.Credentials, "with_always_use_jwt_access")
#         ):
#             credentials = credentials.with_always_use_jwt_access(True)
# 
#         # Save the credentials.
#         self._credentials = credentials
# 
#     def _prep_wrapped_messages(self, client_info):
#         # Precompute the wrapped methods.
#         self._wrapped_methods = {
#             self.resolve_service: gapic_v1.method.wrap_method(
#                 self.resolve_service, default_timeout=None, 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 resolve_service(
#         self,
#     ) -> Callable[
#         [lookup_service.ResolveServiceRequest],
#         Union[
#             lookup_service.ResolveServiceResponse,
#             Awaitable[lookup_service.ResolveServiceResponse],
#         ],
#     ]:
#         raise NotImplementedError()
# 
# DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
#     gapic_version=pkg_resources.get_distribution(
#         "google-cloud-service-directory",
#     ).version,
# )


import warnings
import google.auth  # type: ignore
import grpc  # type: ignore
from typing import Callable, Dict, Optional, Sequence, Tuple, Union
from google.api_core import grpc_helpers
from google.api_core import gapic_v1
from google.auth import credentials as ga_credentials  # type: ignore
from google.auth.transport.grpc import SslCredentials  # type: ignore
from google.cloud.servicedirectory_v1.types import lookup_service
from .base import LookupServiceTransport, DEFAULT_CLIENT_INFO
                channel creation.
        Returns:
            grpc.Channel: A gRPC channel object.

        Raises:
            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
              and ``credentials_file`` are passed.
        """

        return grpc_helpers.create_channel(
            host,
            credentials=credentials,
            credentials_file=credentials_file,
            quota_project_id=quota_project_id,
            default_scopes=cls.AUTH_SCOPES,
            scopes=scopes,
            default_host=cls.DEFAULT_HOST,
            **kwargs,
        )

    @property
    def grpc_channel(self) -> grpc.Channel:
        """Return the channel designed to connect to this service.
        """
        return self._grpc_channel

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

# Path: google/cloud/servicedirectory_v1/types/lookup_service.py
# class ResolveServiceRequest(proto.Message):
# class ResolveServiceResponse(proto.Message):
# 
# Path: google/cloud/servicedirectory_v1/services/lookup_service/transports/base.py
# class LookupServiceTransport(abc.ABC):
#     """Abstract transport class for LookupService."""
# 
#     AUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",)
# 
#     DEFAULT_HOST: str = "servicedirectory.googleapis.com"
# 
#     def __init__(
#         self,
#         *,
#         host: str = DEFAULT_HOST,
#         credentials: ga_credentials.Credentials = None,
#         credentials_file: Optional[str] = None,
#         scopes: Optional[Sequence[str]] = None,
#         quota_project_id: Optional[str] = None,
#         client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
#         always_use_jwt_access: Optional[bool] = False,
#         **kwargs,
#     ) -> None:
#         """Instantiate the transport.
# 
#         Args:
#             host (Optional[str]):
#                  The hostname to connect to.
#             credentials (Optional[google.auth.credentials.Credentials]): The
#                 authorization credentials to attach to requests. These
#                 credentials identify the application to the service; if none
#                 are specified, the client will attempt to ascertain the
#                 credentials from the environment.
#             credentials_file (Optional[str]): A file with credentials that can
#                 be loaded with :func:`google.auth.load_credentials_from_file`.
#                 This argument is mutually exclusive with credentials.
#             scopes (Optional[Sequence[str]]): A list of scopes.
#             quota_project_id (Optional[str]): An optional project to use for billing
#                 and quota.
#             client_info (google.api_core.gapic_v1.client_info.ClientInfo):
#                 The client info used to send a user-agent string along with
#                 API requests. If ``None``, then default info will be used.
#                 Generally, you only need to set this if you're developing
#                 your own client library.
#             always_use_jwt_access (Optional[bool]): Whether self signed JWT should
#                 be used for service account credentials.
#         """
#         # Save the hostname. Default to port 443 (HTTPS) if none is specified.
#         if ":" not in host:
#             host += ":443"
#         self._host = host
# 
#         scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
# 
#         # Save the scopes.
#         self._scopes = scopes
# 
#         # If no credentials are provided, then determine the appropriate
#         # defaults.
#         if credentials and credentials_file:
#             raise core_exceptions.DuplicateCredentialArgs(
#                 "'credentials_file' and 'credentials' are mutually exclusive"
#             )
# 
#         if credentials_file is not None:
#             credentials, _ = google.auth.load_credentials_from_file(
#                 credentials_file, **scopes_kwargs, quota_project_id=quota_project_id
#             )
#         elif credentials is None:
#             credentials, _ = google.auth.default(
#                 **scopes_kwargs, quota_project_id=quota_project_id
#             )
# 
#         # If the credentials are service account credentials, then always try to use self signed JWT.
#         if (
#             always_use_jwt_access
#             and isinstance(credentials, service_account.Credentials)
#             and hasattr(service_account.Credentials, "with_always_use_jwt_access")
#         ):
#             credentials = credentials.with_always_use_jwt_access(True)
# 
#         # Save the credentials.
#         self._credentials = credentials
# 
#     def _prep_wrapped_messages(self, client_info):
#         # Precompute the wrapped methods.
#         self._wrapped_methods = {
#             self.resolve_service: gapic_v1.method.wrap_method(
#                 self.resolve_service, default_timeout=None, 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 resolve_service(
#         self,
#     ) -> Callable[
#         [lookup_service.ResolveServiceRequest],
#         Union[
#             lookup_service.ResolveServiceResponse,
#             Awaitable[lookup_service.ResolveServiceResponse],
#         ],
#     ]:
#         raise NotImplementedError()
# 
# DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
#     gapic_version=pkg_resources.get_distribution(
#         "google-cloud-service-directory",
#     ).version,
# )


# Path: google/cloud/servicedirectory_v1/services/lookup_service/transports/grpc.py
import warnings
import google.auth  # type: ignore
import grpc  # type: ignore
from typing import Callable, Dict, Optional, Sequence, Tuple, Union
from google.api_core import grpc_helpers
from google.api_core import gapic_v1
from google.auth import credentials as ga_credentials  # type: ignore
from google.auth.transport.grpc import SslCredentials  # type: ignore
from google.cloud.servicedirectory_v1.types import lookup_service
from .base import LookupServiceTransport, DEFAULT_CLIENT_INFO

                channel creation.
        Returns:
            grpc.Channel: A gRPC channel object.

        Raises:
            google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials``
              and ``credentials_file`` are passed.
        """

        return grpc_helpers.create_channel(
            host,
            credentials=credentials,
            credentials_file=credentials_file,
            quota_project_id=quota_project_id,
            default_scopes=cls.AUTH_SCOPES,
            scopes=scopes,
            default_host=cls.DEFAULT_HOST,
            **kwargs,
        )

    @property
    def grpc_channel(self) -> grpc.Channel:
        """Return the channel designed to connect to this service.
        """
        return self._grpc_channel

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

        [lookup_service.ResolveServiceRequest], lookup_service.ResolveServiceResponse