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

from google.cloud.monitoring_v3.proto import (
    notification_pb2 as google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2,
)
from google.cloud.monitoring_v3.proto import (
    notification_service_pb2 as google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2,
)
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2


class NotificationChannelServiceStub(object):
    """The Notification Channel API provides access to configuration that
  controls how messages related to incidents are sent.
  """

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

    Args:
      channel: A grpc.Channel.
    """
        self.ListNotificationChannelDescriptors = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/ListNotificationChannelDescriptors",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.ListNotificationChannelDescriptorsRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.ListNotificationChannelDescriptorsResponse.FromString,
        )
        self.GetNotificationChannelDescriptor = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/GetNotificationChannelDescriptor",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.GetNotificationChannelDescriptorRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannelDescriptor.FromString,
        )
        self.ListNotificationChannels = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/ListNotificationChannels",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.ListNotificationChannelsRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.ListNotificationChannelsResponse.FromString,
        )
        self.GetNotificationChannel = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/GetNotificationChannel",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.GetNotificationChannelRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannel.FromString,
        )
        self.CreateNotificationChannel = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/CreateNotificationChannel",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.CreateNotificationChannelRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannel.FromString,
        )
        self.UpdateNotificationChannel = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/UpdateNotificationChannel",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.UpdateNotificationChannelRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannel.FromString,
        )
        self.DeleteNotificationChannel = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/DeleteNotificationChannel",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.DeleteNotificationChannelRequest.SerializeToString,
            response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
        )
        self.SendNotificationChannelVerificationCode = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/SendNotificationChannelVerificationCode",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.SendNotificationChannelVerificationCodeRequest.SerializeToString,
            response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
        )
        self.GetNotificationChannelVerificationCode = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/GetNotificationChannelVerificationCode",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.GetNotificationChannelVerificationCodeRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.GetNotificationChannelVerificationCodeResponse.FromString,
        )
        self.VerifyNotificationChannel = channel.unary_unary(
            "/google.monitoring.v3.NotificationChannelService/VerifyNotificationChannel",
            request_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.VerifyNotificationChannelRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannel.FromString,
        )


class NotificationChannelServiceServicer(object):
    """The Notification Channel API provides access to configuration that
  controls how messages related to incidents are sent.
  """

    def ListNotificationChannelDescriptors(self, request, context):
        """Lists the descriptors for supported channel types. The use of descriptors
    makes it possible for new channel types to be dynamically added.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetNotificationChannelDescriptor(self, request, context):
        """Gets a single channel descriptor. The descriptor indicates which fields
    are expected / permitted for a notification channel of the given type.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def ListNotificationChannels(self, request, context):
        """Lists the notification channels that have been created for the project.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetNotificationChannel(self, request, context):
        """Gets a single notification channel. The channel includes the relevant
    configuration details with which the channel was created. However, the
    response may truncate or omit passwords, API keys, or other private key
    matter and thus the response may not be 100% identical to the information
    that was supplied in the call to the create method.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def CreateNotificationChannel(self, request, context):
        """Creates a new notification channel, representing a single notification
    endpoint such as an email address, SMS number, or PagerDuty service.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def UpdateNotificationChannel(self, request, context):
        """Updates a notification channel. Fields not specified in the field mask
    remain unchanged.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def DeleteNotificationChannel(self, request, context):
        """Deletes a notification channel.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def SendNotificationChannelVerificationCode(self, request, context):
        """Causes a verification code to be delivered to the channel. The code
    can then be supplied in `VerifyNotificationChannel` to verify the channel.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetNotificationChannelVerificationCode(self, request, context):
        """Requests a verification code for an already verified channel that can then
    be used in a call to VerifyNotificationChannel() on a different channel
    with an equivalent identity in the same or in a different project. This
    makes it possible to copy a channel between projects without requiring
    manual reverification of the channel. If the channel is not in the
    verified state, this method will fail (in other words, this may only be
    used if the SendNotificationChannelVerificationCode and
    VerifyNotificationChannel paths have already been used to put the given
    channel into the verified state).

    There is no guarantee that the verification codes returned by this method
    will be of a similar structure or form as the ones that are delivered
    to the channel via SendNotificationChannelVerificationCode; while
    VerifyNotificationChannel() will recognize both the codes delivered via
    SendNotificationChannelVerificationCode() and returned from
    GetNotificationChannelVerificationCode(), it is typically the case that
    the verification codes delivered via
    SendNotificationChannelVerificationCode() will be shorter and also
    have a shorter expiration (e.g. codes such as "G-123456") whereas
    GetVerificationCode() will typically return a much longer, websafe base
    64 encoded string that has a longer expiration time.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def VerifyNotificationChannel(self, request, context):
        """Verifies a `NotificationChannel` by proving receipt of the code
    delivered to the channel as a result of calling
    `SendNotificationChannelVerificationCode`.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")


def add_NotificationChannelServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
        "ListNotificationChannelDescriptors": grpc.unary_unary_rpc_method_handler(
            servicer.ListNotificationChannelDescriptors,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.ListNotificationChannelDescriptorsRequest.FromString,
            response_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.ListNotificationChannelDescriptorsResponse.SerializeToString,
        ),
        "GetNotificationChannelDescriptor": grpc.unary_unary_rpc_method_handler(
            servicer.GetNotificationChannelDescriptor,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.GetNotificationChannelDescriptorRequest.FromString,
            response_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannelDescriptor.SerializeToString,
        ),
        "ListNotificationChannels": grpc.unary_unary_rpc_method_handler(
            servicer.ListNotificationChannels,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.ListNotificationChannelsRequest.FromString,
            response_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.ListNotificationChannelsResponse.SerializeToString,
        ),
        "GetNotificationChannel": grpc.unary_unary_rpc_method_handler(
            servicer.GetNotificationChannel,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.GetNotificationChannelRequest.FromString,
            response_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannel.SerializeToString,
        ),
        "CreateNotificationChannel": grpc.unary_unary_rpc_method_handler(
            servicer.CreateNotificationChannel,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.CreateNotificationChannelRequest.FromString,
            response_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannel.SerializeToString,
        ),
        "UpdateNotificationChannel": grpc.unary_unary_rpc_method_handler(
            servicer.UpdateNotificationChannel,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.UpdateNotificationChannelRequest.FromString,
            response_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannel.SerializeToString,
        ),
        "DeleteNotificationChannel": grpc.unary_unary_rpc_method_handler(
            servicer.DeleteNotificationChannel,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.DeleteNotificationChannelRequest.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        "SendNotificationChannelVerificationCode": grpc.unary_unary_rpc_method_handler(
            servicer.SendNotificationChannelVerificationCode,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.SendNotificationChannelVerificationCodeRequest.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        "GetNotificationChannelVerificationCode": grpc.unary_unary_rpc_method_handler(
            servicer.GetNotificationChannelVerificationCode,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.GetNotificationChannelVerificationCodeRequest.FromString,
            response_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.GetNotificationChannelVerificationCodeResponse.SerializeToString,
        ),
        "VerifyNotificationChannel": grpc.unary_unary_rpc_method_handler(
            servicer.VerifyNotificationChannel,
            request_deserializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__service__pb2.VerifyNotificationChannelRequest.FromString,
            response_serializer=google_dot_cloud_dot_monitoring__v3_dot_proto_dot_notification__pb2.NotificationChannel.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        "google.monitoring.v3.NotificationChannelService", rpc_method_handlers
    )
    server.add_generic_rpc_handlers((generic_handler,))
