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

from google.cloud.talent_v4beta1.proto import (
    company_pb2 as google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__pb2,
)
from google.cloud.talent_v4beta1.proto import (
    company_service_pb2 as google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2,
)
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2


class CompanyServiceStub(object):
    """A service that handles company management, including CRUD and enumeration.
  """

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

    Args:
      channel: A grpc.Channel.
    """
        self.CreateCompany = channel.unary_unary(
            "/google.cloud.talent.v4beta1.CompanyService/CreateCompany",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.CreateCompanyRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__pb2.Company.FromString,
        )
        self.GetCompany = channel.unary_unary(
            "/google.cloud.talent.v4beta1.CompanyService/GetCompany",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.GetCompanyRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__pb2.Company.FromString,
        )
        self.UpdateCompany = channel.unary_unary(
            "/google.cloud.talent.v4beta1.CompanyService/UpdateCompany",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.UpdateCompanyRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__pb2.Company.FromString,
        )
        self.DeleteCompany = channel.unary_unary(
            "/google.cloud.talent.v4beta1.CompanyService/DeleteCompany",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.DeleteCompanyRequest.SerializeToString,
            response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
        )
        self.ListCompanies = channel.unary_unary(
            "/google.cloud.talent.v4beta1.CompanyService/ListCompanies",
            request_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.ListCompaniesRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.ListCompaniesResponse.FromString,
        )


class CompanyServiceServicer(object):
    """A service that handles company management, including CRUD and enumeration.
  """

    def CreateCompany(self, request, context):
        """Creates a new company entity.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetCompany(self, request, context):
        """Retrieves specified company.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def UpdateCompany(self, request, context):
        """Updates specified company.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def DeleteCompany(self, request, context):
        """Deletes specified company.
    Prerequisite: The company has no jobs associated with it.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def ListCompanies(self, request, context):
        """Lists all companies associated with the project.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")


def add_CompanyServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
        "CreateCompany": grpc.unary_unary_rpc_method_handler(
            servicer.CreateCompany,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.CreateCompanyRequest.FromString,
            response_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__pb2.Company.SerializeToString,
        ),
        "GetCompany": grpc.unary_unary_rpc_method_handler(
            servicer.GetCompany,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.GetCompanyRequest.FromString,
            response_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__pb2.Company.SerializeToString,
        ),
        "UpdateCompany": grpc.unary_unary_rpc_method_handler(
            servicer.UpdateCompany,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.UpdateCompanyRequest.FromString,
            response_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__pb2.Company.SerializeToString,
        ),
        "DeleteCompany": grpc.unary_unary_rpc_method_handler(
            servicer.DeleteCompany,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.DeleteCompanyRequest.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        "ListCompanies": grpc.unary_unary_rpc_method_handler(
            servicer.ListCompanies,
            request_deserializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.ListCompaniesRequest.FromString,
            response_serializer=google_dot_cloud_dot_talent__v4beta1_dot_proto_dot_company__service__pb2.ListCompaniesResponse.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        "google.cloud.talent.v4beta1.CompanyService", rpc_method_handlers
    )
    server.add_generic_rpc_handlers((generic_handler,))
