# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
import grpc

from google.cloud.talent_v4beta1.proto import (
    profile_pb2 as google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__pb2,
)
from google.cloud.talent_v4beta1.proto import (
    profile_service_pb2 as google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2,
)
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2


class ProfileServiceStub(object):
    """A service that handles profile management, including profile CRUD,
  enumeration and search.
  """

    def __init__(self, channel):
        """Constructor.

    Args:
      channel: A grpc.Channel.
    """
        self.ListProfiles = channel.unary_unary(
            "/google.cloud.talent.v4beta1.ProfileService/ListProfiles",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.ListProfilesRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.ListProfilesResponse.FromString,
        )
        self.CreateProfile = channel.unary_unary(
            "/google.cloud.talent.v4beta1.ProfileService/CreateProfile",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.CreateProfileRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__pb2.Profile.FromString,
        )
        self.GetProfile = channel.unary_unary(
            "/google.cloud.talent.v4beta1.ProfileService/GetProfile",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.GetProfileRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__pb2.Profile.FromString,
        )
        self.UpdateProfile = channel.unary_unary(
            "/google.cloud.talent.v4beta1.ProfileService/UpdateProfile",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.UpdateProfileRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__pb2.Profile.FromString,
        )
        self.DeleteProfile = channel.unary_unary(
            "/google.cloud.talent.v4beta1.ProfileService/DeleteProfile",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.DeleteProfileRequest.SerializeToString,
            response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
        )
        self.SearchProfiles = channel.unary_unary(
            "/google.cloud.talent.v4beta1.ProfileService/SearchProfiles",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.SearchProfilesRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.SearchProfilesResponse.FromString,
        )


class ProfileServiceServicer(object):
    """A service that handles profile management, including profile CRUD,
  enumeration and search.
  """

    def ListProfiles(self, request, context):
        """Lists profiles by filter. The order is unspecified.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def CreateProfile(self, request, context):
        """Creates and returns a new profile.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetProfile(self, request, context):
        """Gets the specified profile.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def UpdateProfile(self, request, context):
        """Updates the specified profile and returns the updated result.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def DeleteProfile(self, request, context):
        """Deletes the specified profile.
    Prerequisite: The profile has no associated applications or assignments
    associated.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def SearchProfiles(self, request, context):
        """Searches for profiles within a tenant.

    For example, search by raw queries "software engineer in Mountain View" or
    search by structured filters (location filter, education filter, etc.).

    See [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest] for more information.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")


def add_ProfileServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
        "ListProfiles": grpc.unary_unary_rpc_method_handler(
            servicer.ListProfiles,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.ListProfilesRequest.FromString,
            response_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.ListProfilesResponse.SerializeToString,
        ),
        "CreateProfile": grpc.unary_unary_rpc_method_handler(
            servicer.CreateProfile,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.CreateProfileRequest.FromString,
            response_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__pb2.Profile.SerializeToString,
        ),
        "GetProfile": grpc.unary_unary_rpc_method_handler(
            servicer.GetProfile,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.GetProfileRequest.FromString,
            response_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__pb2.Profile.SerializeToString,
        ),
        "UpdateProfile": grpc.unary_unary_rpc_method_handler(
            servicer.UpdateProfile,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.UpdateProfileRequest.FromString,
            response_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__pb2.Profile.SerializeToString,
        ),
        "DeleteProfile": grpc.unary_unary_rpc_method_handler(
            servicer.DeleteProfile,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.DeleteProfileRequest.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        "SearchProfiles": grpc.unary_unary_rpc_method_handler(
            servicer.SearchProfiles,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.SearchProfilesRequest.FromString,
            response_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_profile__service__pb2.SearchProfilesResponse.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        "google.cloud.talent.v4beta1.ProfileService", rpc_method_handlers
    )
    server.add_generic_rpc_handlers((generic_handler,))
