// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v6.33.0
// source: api/grpc/notifier.proto

package pb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// NotificationType defines the channel for notification delivery
type NotificationType int32

const (
	NotificationType_NOTIFICATION_TYPE_UNSPECIFIED NotificationType = 0
	NotificationType_NOTIFICATION_TYPE_EMAIL       NotificationType = 1
	NotificationType_NOTIFICATION_TYPE_SLACK       NotificationType = 2
	NotificationType_NOTIFICATION_TYPE_NTFY        NotificationType = 3
	NotificationType_NOTIFICATION_TYPE_STDOUT      NotificationType = 4
)

// Enum value maps for NotificationType.
var (
	NotificationType_name = map[int32]string{
		0: "NOTIFICATION_TYPE_UNSPECIFIED",
		1: "NOTIFICATION_TYPE_EMAIL",
		2: "NOTIFICATION_TYPE_SLACK",
		3: "NOTIFICATION_TYPE_NTFY",
		4: "NOTIFICATION_TYPE_STDOUT",
	}
	NotificationType_value = map[string]int32{
		"NOTIFICATION_TYPE_UNSPECIFIED": 0,
		"NOTIFICATION_TYPE_EMAIL":       1,
		"NOTIFICATION_TYPE_SLACK":       2,
		"NOTIFICATION_TYPE_NTFY":        3,
		"NOTIFICATION_TYPE_STDOUT":      4,
	}
)

func (x NotificationType) Enum() *NotificationType {
	p := new(NotificationType)
	*p = x
	return p
}

func (x NotificationType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NotificationType) Descriptor() protoreflect.EnumDescriptor {
	return file_api_grpc_notifier_proto_enumTypes[0].Descriptor()
}

func (NotificationType) Type() protoreflect.EnumType {
	return &file_api_grpc_notifier_proto_enumTypes[0]
}

func (x NotificationType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NotificationType.Descriptor instead.
func (NotificationType) EnumDescriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{0}
}

// Priority defines the urgency level
type Priority int32

const (
	Priority_PRIORITY_UNSPECIFIED Priority = 0
	Priority_PRIORITY_LOW         Priority = 1
	Priority_PRIORITY_NORMAL      Priority = 2
	Priority_PRIORITY_HIGH        Priority = 3
	Priority_PRIORITY_CRITICAL    Priority = 4
)

// Enum value maps for Priority.
var (
	Priority_name = map[int32]string{
		0: "PRIORITY_UNSPECIFIED",
		1: "PRIORITY_LOW",
		2: "PRIORITY_NORMAL",
		3: "PRIORITY_HIGH",
		4: "PRIORITY_CRITICAL",
	}
	Priority_value = map[string]int32{
		"PRIORITY_UNSPECIFIED": 0,
		"PRIORITY_LOW":         1,
		"PRIORITY_NORMAL":      2,
		"PRIORITY_HIGH":        3,
		"PRIORITY_CRITICAL":    4,
	}
)

func (x Priority) Enum() *Priority {
	p := new(Priority)
	*p = x
	return p
}

func (x Priority) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Priority) Descriptor() protoreflect.EnumDescriptor {
	return file_api_grpc_notifier_proto_enumTypes[1].Descriptor()
}

func (Priority) Type() protoreflect.EnumType {
	return &file_api_grpc_notifier_proto_enumTypes[1]
}

func (x Priority) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Priority.Descriptor instead.
func (Priority) EnumDescriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{1}
}

// NotificationStatus represents the state of a notification
type NotificationStatus int32

const (
	NotificationStatus_NOTIFICATION_STATUS_UNSPECIFIED NotificationStatus = 0
	NotificationStatus_NOTIFICATION_STATUS_PENDING     NotificationStatus = 1
	NotificationStatus_NOTIFICATION_STATUS_QUEUED      NotificationStatus = 2
	NotificationStatus_NOTIFICATION_STATUS_PROCESSING  NotificationStatus = 3
	NotificationStatus_NOTIFICATION_STATUS_SENT        NotificationStatus = 4
	NotificationStatus_NOTIFICATION_STATUS_FAILED      NotificationStatus = 5
	NotificationStatus_NOTIFICATION_STATUS_RETRYING    NotificationStatus = 6
)

// Enum value maps for NotificationStatus.
var (
	NotificationStatus_name = map[int32]string{
		0: "NOTIFICATION_STATUS_UNSPECIFIED",
		1: "NOTIFICATION_STATUS_PENDING",
		2: "NOTIFICATION_STATUS_QUEUED",
		3: "NOTIFICATION_STATUS_PROCESSING",
		4: "NOTIFICATION_STATUS_SENT",
		5: "NOTIFICATION_STATUS_FAILED",
		6: "NOTIFICATION_STATUS_RETRYING",
	}
	NotificationStatus_value = map[string]int32{
		"NOTIFICATION_STATUS_UNSPECIFIED": 0,
		"NOTIFICATION_STATUS_PENDING":     1,
		"NOTIFICATION_STATUS_QUEUED":      2,
		"NOTIFICATION_STATUS_PROCESSING":  3,
		"NOTIFICATION_STATUS_SENT":        4,
		"NOTIFICATION_STATUS_FAILED":      5,
		"NOTIFICATION_STATUS_RETRYING":    6,
	}
)

func (x NotificationStatus) Enum() *NotificationStatus {
	p := new(NotificationStatus)
	*p = x
	return p
}

func (x NotificationStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NotificationStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_api_grpc_notifier_proto_enumTypes[2].Descriptor()
}

func (NotificationStatus) Type() protoreflect.EnumType {
	return &file_api_grpc_notifier_proto_enumTypes[2]
}

func (x NotificationStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NotificationStatus.Descriptor instead.
func (NotificationStatus) EnumDescriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{2}
}

// Notification represents a notification message
type Notification struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Type          NotificationType       `protobuf:"varint,2,opt,name=type,proto3,enum=notifier.v1.NotificationType" json:"type,omitempty"`
	Priority      Priority               `protobuf:"varint,3,opt,name=priority,proto3,enum=notifier.v1.Priority" json:"priority,omitempty"`
	Status        NotificationStatus     `protobuf:"varint,4,opt,name=status,proto3,enum=notifier.v1.NotificationStatus" json:"status,omitempty"`
	Subject       string                 `protobuf:"bytes,5,opt,name=subject,proto3" json:"subject,omitempty"`
	Body          string                 `protobuf:"bytes,6,opt,name=body,proto3" json:"body,omitempty"`
	Recipients    []string               `protobuf:"bytes,7,rep,name=recipients,proto3" json:"recipients,omitempty"`
	Metadata      map[string]string      `protobuf:"bytes,8,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	ScheduledFor  *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=scheduled_for,json=scheduledFor,proto3" json:"scheduled_for,omitempty"`
	SentAt        *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=sent_at,json=sentAt,proto3" json:"sent_at,omitempty"`
	RetryCount    int32                  `protobuf:"varint,12,opt,name=retry_count,json=retryCount,proto3" json:"retry_count,omitempty"`
	MaxRetries    int32                  `protobuf:"varint,13,opt,name=max_retries,json=maxRetries,proto3" json:"max_retries,omitempty"`
	LastError     string                 `protobuf:"bytes,14,opt,name=last_error,json=lastError,proto3" json:"last_error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Notification) Reset() {
	*x = Notification{}
	mi := &file_api_grpc_notifier_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Notification) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Notification) ProtoMessage() {}

func (x *Notification) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Notification.ProtoReflect.Descriptor instead.
func (*Notification) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{0}
}

func (x *Notification) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Notification) GetType() NotificationType {
	if x != nil {
		return x.Type
	}
	return NotificationType_NOTIFICATION_TYPE_UNSPECIFIED
}

func (x *Notification) GetPriority() Priority {
	if x != nil {
		return x.Priority
	}
	return Priority_PRIORITY_UNSPECIFIED
}

func (x *Notification) GetStatus() NotificationStatus {
	if x != nil {
		return x.Status
	}
	return NotificationStatus_NOTIFICATION_STATUS_UNSPECIFIED
}

func (x *Notification) GetSubject() string {
	if x != nil {
		return x.Subject
	}
	return ""
}

func (x *Notification) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *Notification) GetRecipients() []string {
	if x != nil {
		return x.Recipients
	}
	return nil
}

func (x *Notification) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *Notification) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Notification) GetScheduledFor() *timestamppb.Timestamp {
	if x != nil {
		return x.ScheduledFor
	}
	return nil
}

func (x *Notification) GetSentAt() *timestamppb.Timestamp {
	if x != nil {
		return x.SentAt
	}
	return nil
}

func (x *Notification) GetRetryCount() int32 {
	if x != nil {
		return x.RetryCount
	}
	return 0
}

func (x *Notification) GetMaxRetries() int32 {
	if x != nil {
		return x.MaxRetries
	}
	return 0
}

func (x *Notification) GetLastError() string {
	if x != nil {
		return x.LastError
	}
	return ""
}

// NotificationResult represents the outcome of sending a notification
type NotificationResult struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	NotificationId   string                 `protobuf:"bytes,1,opt,name=notification_id,json=notificationId,proto3" json:"notification_id,omitempty"`
	Success          bool                   `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"`
	Message          string                 `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
	Error            string                 `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"`
	SentAt           *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=sent_at,json=sentAt,proto3" json:"sent_at,omitempty"`
	ProviderResponse map[string]string      `protobuf:"bytes,6,rep,name=provider_response,json=providerResponse,proto3" json:"provider_response,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *NotificationResult) Reset() {
	*x = NotificationResult{}
	mi := &file_api_grpc_notifier_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotificationResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotificationResult) ProtoMessage() {}

func (x *NotificationResult) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotificationResult.ProtoReflect.Descriptor instead.
func (*NotificationResult) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{1}
}

func (x *NotificationResult) GetNotificationId() string {
	if x != nil {
		return x.NotificationId
	}
	return ""
}

func (x *NotificationResult) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *NotificationResult) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *NotificationResult) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *NotificationResult) GetSentAt() *timestamppb.Timestamp {
	if x != nil {
		return x.SentAt
	}
	return nil
}

func (x *NotificationResult) GetProviderResponse() map[string]string {
	if x != nil {
		return x.ProviderResponse
	}
	return nil
}

// SendNotificationRequest sends a single notification
type SendNotificationRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Type          NotificationType       `protobuf:"varint,1,opt,name=type,proto3,enum=notifier.v1.NotificationType" json:"type,omitempty"`
	Priority      Priority               `protobuf:"varint,2,opt,name=priority,proto3,enum=notifier.v1.Priority" json:"priority,omitempty"`
	Subject       string                 `protobuf:"bytes,3,opt,name=subject,proto3" json:"subject,omitempty"`
	Body          string                 `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"`
	Recipients    []string               `protobuf:"bytes,5,rep,name=recipients,proto3" json:"recipients,omitempty"`
	Metadata      map[string]string      `protobuf:"bytes,6,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	ScheduledFor  *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=scheduled_for,json=scheduledFor,proto3" json:"scheduled_for,omitempty"`
	MaxRetries    int32                  `protobuf:"varint,8,opt,name=max_retries,json=maxRetries,proto3" json:"max_retries,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SendNotificationRequest) Reset() {
	*x = SendNotificationRequest{}
	mi := &file_api_grpc_notifier_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendNotificationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendNotificationRequest) ProtoMessage() {}

func (x *SendNotificationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendNotificationRequest.ProtoReflect.Descriptor instead.
func (*SendNotificationRequest) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{2}
}

func (x *SendNotificationRequest) GetType() NotificationType {
	if x != nil {
		return x.Type
	}
	return NotificationType_NOTIFICATION_TYPE_UNSPECIFIED
}

func (x *SendNotificationRequest) GetPriority() Priority {
	if x != nil {
		return x.Priority
	}
	return Priority_PRIORITY_UNSPECIFIED
}

func (x *SendNotificationRequest) GetSubject() string {
	if x != nil {
		return x.Subject
	}
	return ""
}

func (x *SendNotificationRequest) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *SendNotificationRequest) GetRecipients() []string {
	if x != nil {
		return x.Recipients
	}
	return nil
}

func (x *SendNotificationRequest) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *SendNotificationRequest) GetScheduledFor() *timestamppb.Timestamp {
	if x != nil {
		return x.ScheduledFor
	}
	return nil
}

func (x *SendNotificationRequest) GetMaxRetries() int32 {
	if x != nil {
		return x.MaxRetries
	}
	return 0
}

// SendNotificationResponse returns the result of sending a notification
type SendNotificationResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Result        *NotificationResult    `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SendNotificationResponse) Reset() {
	*x = SendNotificationResponse{}
	mi := &file_api_grpc_notifier_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendNotificationResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendNotificationResponse) ProtoMessage() {}

func (x *SendNotificationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendNotificationResponse.ProtoReflect.Descriptor instead.
func (*SendNotificationResponse) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{3}
}

func (x *SendNotificationResponse) GetResult() *NotificationResult {
	if x != nil {
		return x.Result
	}
	return nil
}

// SendBatchNotificationsRequest sends multiple notifications
type SendBatchNotificationsRequest struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Notifications []*SendNotificationRequest `protobuf:"bytes,1,rep,name=notifications,proto3" json:"notifications,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SendBatchNotificationsRequest) Reset() {
	*x = SendBatchNotificationsRequest{}
	mi := &file_api_grpc_notifier_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendBatchNotificationsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendBatchNotificationsRequest) ProtoMessage() {}

func (x *SendBatchNotificationsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendBatchNotificationsRequest.ProtoReflect.Descriptor instead.
func (*SendBatchNotificationsRequest) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{4}
}

func (x *SendBatchNotificationsRequest) GetNotifications() []*SendNotificationRequest {
	if x != nil {
		return x.Notifications
	}
	return nil
}

// SendBatchNotificationsResponse returns the results of sending multiple notifications
type SendBatchNotificationsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Results       []*NotificationResult  `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SendBatchNotificationsResponse) Reset() {
	*x = SendBatchNotificationsResponse{}
	mi := &file_api_grpc_notifier_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendBatchNotificationsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendBatchNotificationsResponse) ProtoMessage() {}

func (x *SendBatchNotificationsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendBatchNotificationsResponse.ProtoReflect.Descriptor instead.
func (*SendBatchNotificationsResponse) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{5}
}

func (x *SendBatchNotificationsResponse) GetResults() []*NotificationResult {
	if x != nil {
		return x.Results
	}
	return nil
}

// GetNotificationRequest retrieves a notification by ID
type GetNotificationRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetNotificationRequest) Reset() {
	*x = GetNotificationRequest{}
	mi := &file_api_grpc_notifier_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetNotificationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetNotificationRequest) ProtoMessage() {}

func (x *GetNotificationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetNotificationRequest.ProtoReflect.Descriptor instead.
func (*GetNotificationRequest) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{6}
}

func (x *GetNotificationRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// GetNotificationResponse returns a notification
type GetNotificationResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Notification  *Notification          `protobuf:"bytes,1,opt,name=notification,proto3" json:"notification,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetNotificationResponse) Reset() {
	*x = GetNotificationResponse{}
	mi := &file_api_grpc_notifier_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetNotificationResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetNotificationResponse) ProtoMessage() {}

func (x *GetNotificationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetNotificationResponse.ProtoReflect.Descriptor instead.
func (*GetNotificationResponse) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{7}
}

func (x *GetNotificationResponse) GetNotification() *Notification {
	if x != nil {
		return x.Notification
	}
	return nil
}

// NotificationFilter is used for querying notifications
type NotificationFilter struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Ids           []string               `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
	Types         []NotificationType     `protobuf:"varint,2,rep,packed,name=types,proto3,enum=notifier.v1.NotificationType" json:"types,omitempty"`
	Statuses      []NotificationStatus   `protobuf:"varint,3,rep,packed,name=statuses,proto3,enum=notifier.v1.NotificationStatus" json:"statuses,omitempty"`
	Recipients    []string               `protobuf:"bytes,4,rep,name=recipients,proto3" json:"recipients,omitempty"`
	CreatedAfter  *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_after,json=createdAfter,proto3" json:"created_after,omitempty"`
	CreatedBefore *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_before,json=createdBefore,proto3" json:"created_before,omitempty"`
	Limit         int32                  `protobuf:"varint,7,opt,name=limit,proto3" json:"limit,omitempty"`
	Offset        int32                  `protobuf:"varint,8,opt,name=offset,proto3" json:"offset,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NotificationFilter) Reset() {
	*x = NotificationFilter{}
	mi := &file_api_grpc_notifier_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NotificationFilter) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NotificationFilter) ProtoMessage() {}

func (x *NotificationFilter) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NotificationFilter.ProtoReflect.Descriptor instead.
func (*NotificationFilter) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{8}
}

func (x *NotificationFilter) GetIds() []string {
	if x != nil {
		return x.Ids
	}
	return nil
}

func (x *NotificationFilter) GetTypes() []NotificationType {
	if x != nil {
		return x.Types
	}
	return nil
}

func (x *NotificationFilter) GetStatuses() []NotificationStatus {
	if x != nil {
		return x.Statuses
	}
	return nil
}

func (x *NotificationFilter) GetRecipients() []string {
	if x != nil {
		return x.Recipients
	}
	return nil
}

func (x *NotificationFilter) GetCreatedAfter() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAfter
	}
	return nil
}

func (x *NotificationFilter) GetCreatedBefore() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedBefore
	}
	return nil
}

func (x *NotificationFilter) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *NotificationFilter) GetOffset() int32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

// ListNotificationsRequest retrieves notifications matching a filter
type ListNotificationsRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Filter        *NotificationFilter    `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListNotificationsRequest) Reset() {
	*x = ListNotificationsRequest{}
	mi := &file_api_grpc_notifier_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListNotificationsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListNotificationsRequest) ProtoMessage() {}

func (x *ListNotificationsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListNotificationsRequest.ProtoReflect.Descriptor instead.
func (*ListNotificationsRequest) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{9}
}

func (x *ListNotificationsRequest) GetFilter() *NotificationFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

// ListNotificationsResponse returns a list of notifications
type ListNotificationsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Notifications []*Notification        `protobuf:"bytes,1,rep,name=notifications,proto3" json:"notifications,omitempty"`
	Total         int64                  `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListNotificationsResponse) Reset() {
	*x = ListNotificationsResponse{}
	mi := &file_api_grpc_notifier_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListNotificationsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListNotificationsResponse) ProtoMessage() {}

func (x *ListNotificationsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListNotificationsResponse.ProtoReflect.Descriptor instead.
func (*ListNotificationsResponse) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{10}
}

func (x *ListNotificationsResponse) GetNotifications() []*Notification {
	if x != nil {
		return x.Notifications
	}
	return nil
}

func (x *ListNotificationsResponse) GetTotal() int64 {
	if x != nil {
		return x.Total
	}
	return 0
}

// CancelNotificationRequest cancels a pending notification
type CancelNotificationRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CancelNotificationRequest) Reset() {
	*x = CancelNotificationRequest{}
	mi := &file_api_grpc_notifier_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CancelNotificationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CancelNotificationRequest) ProtoMessage() {}

func (x *CancelNotificationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CancelNotificationRequest.ProtoReflect.Descriptor instead.
func (*CancelNotificationRequest) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{11}
}

func (x *CancelNotificationRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// CancelNotificationResponse returns the result of canceling a notification
type CancelNotificationResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	Message       string                 `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CancelNotificationResponse) Reset() {
	*x = CancelNotificationResponse{}
	mi := &file_api_grpc_notifier_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CancelNotificationResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CancelNotificationResponse) ProtoMessage() {}

func (x *CancelNotificationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CancelNotificationResponse.ProtoReflect.Descriptor instead.
func (*CancelNotificationResponse) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{12}
}

func (x *CancelNotificationResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *CancelNotificationResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// RetryNotificationRequest retries a failed notification
type RetryNotificationRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RetryNotificationRequest) Reset() {
	*x = RetryNotificationRequest{}
	mi := &file_api_grpc_notifier_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RetryNotificationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RetryNotificationRequest) ProtoMessage() {}

func (x *RetryNotificationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RetryNotificationRequest.ProtoReflect.Descriptor instead.
func (*RetryNotificationRequest) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{13}
}

func (x *RetryNotificationRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// RetryNotificationResponse returns the result of retrying a notification
type RetryNotificationResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Result        *NotificationResult    `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RetryNotificationResponse) Reset() {
	*x = RetryNotificationResponse{}
	mi := &file_api_grpc_notifier_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RetryNotificationResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RetryNotificationResponse) ProtoMessage() {}

func (x *RetryNotificationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RetryNotificationResponse.ProtoReflect.Descriptor instead.
func (*RetryNotificationResponse) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{14}
}

func (x *RetryNotificationResponse) GetResult() *NotificationResult {
	if x != nil {
		return x.Result
	}
	return nil
}

// GetStatsRequest requests notification statistics
type GetStatsRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetStatsRequest) Reset() {
	*x = GetStatsRequest{}
	mi := &file_api_grpc_notifier_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetStatsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetStatsRequest) ProtoMessage() {}

func (x *GetStatsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetStatsRequest.ProtoReflect.Descriptor instead.
func (*GetStatsRequest) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{15}
}

// GetStatsResponse returns notification statistics
type GetStatsResponse struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	TotalSent        int64                  `protobuf:"varint,1,opt,name=total_sent,json=totalSent,proto3" json:"total_sent,omitempty"`
	TotalFailed      int64                  `protobuf:"varint,2,opt,name=total_failed,json=totalFailed,proto3" json:"total_failed,omitempty"`
	TotalPending     int64                  `protobuf:"varint,3,opt,name=total_pending,json=totalPending,proto3" json:"total_pending,omitempty"`
	TotalQueued      int64                  `protobuf:"varint,4,opt,name=total_queued,json=totalQueued,proto3" json:"total_queued,omitempty"`
	ByType           map[string]int64       `protobuf:"bytes,5,rep,name=by_type,json=byType,proto3" json:"by_type,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	ByStatus         map[string]int64       `protobuf:"bytes,6,rep,name=by_status,json=byStatus,proto3" json:"by_status,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	AverageLatencyMs float64                `protobuf:"fixed64,7,opt,name=average_latency_ms,json=averageLatencyMs,proto3" json:"average_latency_ms,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *GetStatsResponse) Reset() {
	*x = GetStatsResponse{}
	mi := &file_api_grpc_notifier_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetStatsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetStatsResponse) ProtoMessage() {}

func (x *GetStatsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetStatsResponse.ProtoReflect.Descriptor instead.
func (*GetStatsResponse) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{16}
}

func (x *GetStatsResponse) GetTotalSent() int64 {
	if x != nil {
		return x.TotalSent
	}
	return 0
}

func (x *GetStatsResponse) GetTotalFailed() int64 {
	if x != nil {
		return x.TotalFailed
	}
	return 0
}

func (x *GetStatsResponse) GetTotalPending() int64 {
	if x != nil {
		return x.TotalPending
	}
	return 0
}

func (x *GetStatsResponse) GetTotalQueued() int64 {
	if x != nil {
		return x.TotalQueued
	}
	return 0
}

func (x *GetStatsResponse) GetByType() map[string]int64 {
	if x != nil {
		return x.ByType
	}
	return nil
}

func (x *GetStatsResponse) GetByStatus() map[string]int64 {
	if x != nil {
		return x.ByStatus
	}
	return nil
}

func (x *GetStatsResponse) GetAverageLatencyMs() float64 {
	if x != nil {
		return x.AverageLatencyMs
	}
	return 0
}

// HealthCheckRequest requests health status
type HealthCheckRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HealthCheckRequest) Reset() {
	*x = HealthCheckRequest{}
	mi := &file_api_grpc_notifier_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HealthCheckRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HealthCheckRequest) ProtoMessage() {}

func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HealthCheckRequest.ProtoReflect.Descriptor instead.
func (*HealthCheckRequest) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{17}
}

// HealthCheckResponse returns health status
type HealthCheckResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Healthy       bool                   `protobuf:"varint,1,opt,name=healthy,proto3" json:"healthy,omitempty"`
	Status        string                 `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	Components    map[string]string      `protobuf:"bytes,3,rep,name=components,proto3" json:"components,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HealthCheckResponse) Reset() {
	*x = HealthCheckResponse{}
	mi := &file_api_grpc_notifier_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HealthCheckResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HealthCheckResponse) ProtoMessage() {}

func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_grpc_notifier_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HealthCheckResponse.ProtoReflect.Descriptor instead.
func (*HealthCheckResponse) Descriptor() ([]byte, []int) {
	return file_api_grpc_notifier_proto_rawDescGZIP(), []int{18}
}

func (x *HealthCheckResponse) GetHealthy() bool {
	if x != nil {
		return x.Healthy
	}
	return false
}

func (x *HealthCheckResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *HealthCheckResponse) GetComponents() map[string]string {
	if x != nil {
		return x.Components
	}
	return nil
}

var File_api_grpc_notifier_proto protoreflect.FileDescriptor

const file_api_grpc_notifier_proto_rawDesc = "" +
	"\n" +
	"\x17api/grpc/notifier.proto\x12\vnotifier.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9f\x05\n" +
	"\fNotification\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x121\n" +
	"\x04type\x18\x02 \x01(\x0e2\x1d.notifier.v1.NotificationTypeR\x04type\x121\n" +
	"\bpriority\x18\x03 \x01(\x0e2\x15.notifier.v1.PriorityR\bpriority\x127\n" +
	"\x06status\x18\x04 \x01(\x0e2\x1f.notifier.v1.NotificationStatusR\x06status\x12\x18\n" +
	"\asubject\x18\x05 \x01(\tR\asubject\x12\x12\n" +
	"\x04body\x18\x06 \x01(\tR\x04body\x12\x1e\n" +
	"\n" +
	"recipients\x18\a \x03(\tR\n" +
	"recipients\x12C\n" +
	"\bmetadata\x18\b \x03(\v2'.notifier.v1.Notification.MetadataEntryR\bmetadata\x129\n" +
	"\n" +
	"created_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12?\n" +
	"\rscheduled_for\x18\n" +
	" \x01(\v2\x1a.google.protobuf.TimestampR\fscheduledFor\x123\n" +
	"\asent_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampR\x06sentAt\x12\x1f\n" +
	"\vretry_count\x18\f \x01(\x05R\n" +
	"retryCount\x12\x1f\n" +
	"\vmax_retries\x18\r \x01(\x05R\n" +
	"maxRetries\x12\x1d\n" +
	"\n" +
	"last_error\x18\x0e \x01(\tR\tlastError\x1a;\n" +
	"\rMetadataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xe5\x02\n" +
	"\x12NotificationResult\x12'\n" +
	"\x0fnotification_id\x18\x01 \x01(\tR\x0enotificationId\x12\x18\n" +
	"\asuccess\x18\x02 \x01(\bR\asuccess\x12\x18\n" +
	"\amessage\x18\x03 \x01(\tR\amessage\x12\x14\n" +
	"\x05error\x18\x04 \x01(\tR\x05error\x123\n" +
	"\asent_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\x06sentAt\x12b\n" +
	"\x11provider_response\x18\x06 \x03(\v25.notifier.v1.NotificationResult.ProviderResponseEntryR\x10providerResponse\x1aC\n" +
	"\x15ProviderResponseEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xbc\x03\n" +
	"\x17SendNotificationRequest\x121\n" +
	"\x04type\x18\x01 \x01(\x0e2\x1d.notifier.v1.NotificationTypeR\x04type\x121\n" +
	"\bpriority\x18\x02 \x01(\x0e2\x15.notifier.v1.PriorityR\bpriority\x12\x18\n" +
	"\asubject\x18\x03 \x01(\tR\asubject\x12\x12\n" +
	"\x04body\x18\x04 \x01(\tR\x04body\x12\x1e\n" +
	"\n" +
	"recipients\x18\x05 \x03(\tR\n" +
	"recipients\x12N\n" +
	"\bmetadata\x18\x06 \x03(\v22.notifier.v1.SendNotificationRequest.MetadataEntryR\bmetadata\x12?\n" +
	"\rscheduled_for\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\fscheduledFor\x12\x1f\n" +
	"\vmax_retries\x18\b \x01(\x05R\n" +
	"maxRetries\x1a;\n" +
	"\rMetadataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"S\n" +
	"\x18SendNotificationResponse\x127\n" +
	"\x06result\x18\x01 \x01(\v2\x1f.notifier.v1.NotificationResultR\x06result\"k\n" +
	"\x1dSendBatchNotificationsRequest\x12J\n" +
	"\rnotifications\x18\x01 \x03(\v2$.notifier.v1.SendNotificationRequestR\rnotifications\"[\n" +
	"\x1eSendBatchNotificationsResponse\x129\n" +
	"\aresults\x18\x01 \x03(\v2\x1f.notifier.v1.NotificationResultR\aresults\"(\n" +
	"\x16GetNotificationRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"X\n" +
	"\x17GetNotificationResponse\x12=\n" +
	"\fnotification\x18\x01 \x01(\v2\x19.notifier.v1.NotificationR\fnotification\"\xea\x02\n" +
	"\x12NotificationFilter\x12\x10\n" +
	"\x03ids\x18\x01 \x03(\tR\x03ids\x123\n" +
	"\x05types\x18\x02 \x03(\x0e2\x1d.notifier.v1.NotificationTypeR\x05types\x12;\n" +
	"\bstatuses\x18\x03 \x03(\x0e2\x1f.notifier.v1.NotificationStatusR\bstatuses\x12\x1e\n" +
	"\n" +
	"recipients\x18\x04 \x03(\tR\n" +
	"recipients\x12?\n" +
	"\rcreated_after\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\fcreatedAfter\x12A\n" +
	"\x0ecreated_before\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\rcreatedBefore\x12\x14\n" +
	"\x05limit\x18\a \x01(\x05R\x05limit\x12\x16\n" +
	"\x06offset\x18\b \x01(\x05R\x06offset\"S\n" +
	"\x18ListNotificationsRequest\x127\n" +
	"\x06filter\x18\x01 \x01(\v2\x1f.notifier.v1.NotificationFilterR\x06filter\"r\n" +
	"\x19ListNotificationsResponse\x12?\n" +
	"\rnotifications\x18\x01 \x03(\v2\x19.notifier.v1.NotificationR\rnotifications\x12\x14\n" +
	"\x05total\x18\x02 \x01(\x03R\x05total\"+\n" +
	"\x19CancelNotificationRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"P\n" +
	"\x1aCancelNotificationResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" +
	"\amessage\x18\x02 \x01(\tR\amessage\"*\n" +
	"\x18RetryNotificationRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"T\n" +
	"\x19RetryNotificationResponse\x127\n" +
	"\x06result\x18\x01 \x01(\v2\x1f.notifier.v1.NotificationResultR\x06result\"\x11\n" +
	"\x0fGetStatsRequest\"\xd0\x03\n" +
	"\x10GetStatsResponse\x12\x1d\n" +
	"\n" +
	"total_sent\x18\x01 \x01(\x03R\ttotalSent\x12!\n" +
	"\ftotal_failed\x18\x02 \x01(\x03R\vtotalFailed\x12#\n" +
	"\rtotal_pending\x18\x03 \x01(\x03R\ftotalPending\x12!\n" +
	"\ftotal_queued\x18\x04 \x01(\x03R\vtotalQueued\x12B\n" +
	"\aby_type\x18\x05 \x03(\v2).notifier.v1.GetStatsResponse.ByTypeEntryR\x06byType\x12H\n" +
	"\tby_status\x18\x06 \x03(\v2+.notifier.v1.GetStatsResponse.ByStatusEntryR\bbyStatus\x12,\n" +
	"\x12average_latency_ms\x18\a \x01(\x01R\x10averageLatencyMs\x1a9\n" +
	"\vByTypeEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01\x1a;\n" +
	"\rByStatusEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01\"\x14\n" +
	"\x12HealthCheckRequest\"\xd8\x01\n" +
	"\x13HealthCheckResponse\x12\x18\n" +
	"\ahealthy\x18\x01 \x01(\bR\ahealthy\x12\x16\n" +
	"\x06status\x18\x02 \x01(\tR\x06status\x12P\n" +
	"\n" +
	"components\x18\x03 \x03(\v20.notifier.v1.HealthCheckResponse.ComponentsEntryR\n" +
	"components\x1a=\n" +
	"\x0fComponentsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01*\xa9\x01\n" +
	"\x10NotificationType\x12!\n" +
	"\x1dNOTIFICATION_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n" +
	"\x17NOTIFICATION_TYPE_EMAIL\x10\x01\x12\x1b\n" +
	"\x17NOTIFICATION_TYPE_SLACK\x10\x02\x12\x1a\n" +
	"\x16NOTIFICATION_TYPE_NTFY\x10\x03\x12\x1c\n" +
	"\x18NOTIFICATION_TYPE_STDOUT\x10\x04*u\n" +
	"\bPriority\x12\x18\n" +
	"\x14PRIORITY_UNSPECIFIED\x10\x00\x12\x10\n" +
	"\fPRIORITY_LOW\x10\x01\x12\x13\n" +
	"\x0fPRIORITY_NORMAL\x10\x02\x12\x11\n" +
	"\rPRIORITY_HIGH\x10\x03\x12\x15\n" +
	"\x11PRIORITY_CRITICAL\x10\x04*\xfe\x01\n" +
	"\x12NotificationStatus\x12#\n" +
	"\x1fNOTIFICATION_STATUS_UNSPECIFIED\x10\x00\x12\x1f\n" +
	"\x1bNOTIFICATION_STATUS_PENDING\x10\x01\x12\x1e\n" +
	"\x1aNOTIFICATION_STATUS_QUEUED\x10\x02\x12\"\n" +
	"\x1eNOTIFICATION_STATUS_PROCESSING\x10\x03\x12\x1c\n" +
	"\x18NOTIFICATION_STATUS_SENT\x10\x04\x12\x1e\n" +
	"\x1aNOTIFICATION_STATUS_FAILED\x10\x05\x12 \n" +
	"\x1cNOTIFICATION_STATUS_RETRYING\x10\x062\x8d\x06\n" +
	"\x0fNotifierService\x12_\n" +
	"\x10SendNotification\x12$.notifier.v1.SendNotificationRequest\x1a%.notifier.v1.SendNotificationResponse\x12q\n" +
	"\x16SendBatchNotifications\x12*.notifier.v1.SendBatchNotificationsRequest\x1a+.notifier.v1.SendBatchNotificationsResponse\x12\\\n" +
	"\x0fGetNotification\x12#.notifier.v1.GetNotificationRequest\x1a$.notifier.v1.GetNotificationResponse\x12b\n" +
	"\x11ListNotifications\x12%.notifier.v1.ListNotificationsRequest\x1a&.notifier.v1.ListNotificationsResponse\x12e\n" +
	"\x12CancelNotification\x12&.notifier.v1.CancelNotificationRequest\x1a'.notifier.v1.CancelNotificationResponse\x12b\n" +
	"\x11RetryNotification\x12%.notifier.v1.RetryNotificationRequest\x1a&.notifier.v1.RetryNotificationResponse\x12G\n" +
	"\bGetStats\x12\x1c.notifier.v1.GetStatsRequest\x1a\x1d.notifier.v1.GetStatsResponse\x12P\n" +
	"\vHealthCheck\x12\x1f.notifier.v1.HealthCheckRequest\x1a .notifier.v1.HealthCheckResponseB)Z'github.com/igodwin/notifier/api/grpc/pbb\x06proto3"

var (
	file_api_grpc_notifier_proto_rawDescOnce sync.Once
	file_api_grpc_notifier_proto_rawDescData []byte
)

func file_api_grpc_notifier_proto_rawDescGZIP() []byte {
	file_api_grpc_notifier_proto_rawDescOnce.Do(func() {
		file_api_grpc_notifier_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_grpc_notifier_proto_rawDesc), len(file_api_grpc_notifier_proto_rawDesc)))
	})
	return file_api_grpc_notifier_proto_rawDescData
}

var file_api_grpc_notifier_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_api_grpc_notifier_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_api_grpc_notifier_proto_goTypes = []any{
	(NotificationType)(0),                  // 0: notifier.v1.NotificationType
	(Priority)(0),                          // 1: notifier.v1.Priority
	(NotificationStatus)(0),                // 2: notifier.v1.NotificationStatus
	(*Notification)(nil),                   // 3: notifier.v1.Notification
	(*NotificationResult)(nil),             // 4: notifier.v1.NotificationResult
	(*SendNotificationRequest)(nil),        // 5: notifier.v1.SendNotificationRequest
	(*SendNotificationResponse)(nil),       // 6: notifier.v1.SendNotificationResponse
	(*SendBatchNotificationsRequest)(nil),  // 7: notifier.v1.SendBatchNotificationsRequest
	(*SendBatchNotificationsResponse)(nil), // 8: notifier.v1.SendBatchNotificationsResponse
	(*GetNotificationRequest)(nil),         // 9: notifier.v1.GetNotificationRequest
	(*GetNotificationResponse)(nil),        // 10: notifier.v1.GetNotificationResponse
	(*NotificationFilter)(nil),             // 11: notifier.v1.NotificationFilter
	(*ListNotificationsRequest)(nil),       // 12: notifier.v1.ListNotificationsRequest
	(*ListNotificationsResponse)(nil),      // 13: notifier.v1.ListNotificationsResponse
	(*CancelNotificationRequest)(nil),      // 14: notifier.v1.CancelNotificationRequest
	(*CancelNotificationResponse)(nil),     // 15: notifier.v1.CancelNotificationResponse
	(*RetryNotificationRequest)(nil),       // 16: notifier.v1.RetryNotificationRequest
	(*RetryNotificationResponse)(nil),      // 17: notifier.v1.RetryNotificationResponse
	(*GetStatsRequest)(nil),                // 18: notifier.v1.GetStatsRequest
	(*GetStatsResponse)(nil),               // 19: notifier.v1.GetStatsResponse
	(*HealthCheckRequest)(nil),             // 20: notifier.v1.HealthCheckRequest
	(*HealthCheckResponse)(nil),            // 21: notifier.v1.HealthCheckResponse
	nil,                                    // 22: notifier.v1.Notification.MetadataEntry
	nil,                                    // 23: notifier.v1.NotificationResult.ProviderResponseEntry
	nil,                                    // 24: notifier.v1.SendNotificationRequest.MetadataEntry
	nil,                                    // 25: notifier.v1.GetStatsResponse.ByTypeEntry
	nil,                                    // 26: notifier.v1.GetStatsResponse.ByStatusEntry
	nil,                                    // 27: notifier.v1.HealthCheckResponse.ComponentsEntry
	(*timestamppb.Timestamp)(nil),          // 28: google.protobuf.Timestamp
}
var file_api_grpc_notifier_proto_depIdxs = []int32{
	0,  // 0: notifier.v1.Notification.type:type_name -> notifier.v1.NotificationType
	1,  // 1: notifier.v1.Notification.priority:type_name -> notifier.v1.Priority
	2,  // 2: notifier.v1.Notification.status:type_name -> notifier.v1.NotificationStatus
	22, // 3: notifier.v1.Notification.metadata:type_name -> notifier.v1.Notification.MetadataEntry
	28, // 4: notifier.v1.Notification.created_at:type_name -> google.protobuf.Timestamp
	28, // 5: notifier.v1.Notification.scheduled_for:type_name -> google.protobuf.Timestamp
	28, // 6: notifier.v1.Notification.sent_at:type_name -> google.protobuf.Timestamp
	28, // 7: notifier.v1.NotificationResult.sent_at:type_name -> google.protobuf.Timestamp
	23, // 8: notifier.v1.NotificationResult.provider_response:type_name -> notifier.v1.NotificationResult.ProviderResponseEntry
	0,  // 9: notifier.v1.SendNotificationRequest.type:type_name -> notifier.v1.NotificationType
	1,  // 10: notifier.v1.SendNotificationRequest.priority:type_name -> notifier.v1.Priority
	24, // 11: notifier.v1.SendNotificationRequest.metadata:type_name -> notifier.v1.SendNotificationRequest.MetadataEntry
	28, // 12: notifier.v1.SendNotificationRequest.scheduled_for:type_name -> google.protobuf.Timestamp
	4,  // 13: notifier.v1.SendNotificationResponse.result:type_name -> notifier.v1.NotificationResult
	5,  // 14: notifier.v1.SendBatchNotificationsRequest.notifications:type_name -> notifier.v1.SendNotificationRequest
	4,  // 15: notifier.v1.SendBatchNotificationsResponse.results:type_name -> notifier.v1.NotificationResult
	3,  // 16: notifier.v1.GetNotificationResponse.notification:type_name -> notifier.v1.Notification
	0,  // 17: notifier.v1.NotificationFilter.types:type_name -> notifier.v1.NotificationType
	2,  // 18: notifier.v1.NotificationFilter.statuses:type_name -> notifier.v1.NotificationStatus
	28, // 19: notifier.v1.NotificationFilter.created_after:type_name -> google.protobuf.Timestamp
	28, // 20: notifier.v1.NotificationFilter.created_before:type_name -> google.protobuf.Timestamp
	11, // 21: notifier.v1.ListNotificationsRequest.filter:type_name -> notifier.v1.NotificationFilter
	3,  // 22: notifier.v1.ListNotificationsResponse.notifications:type_name -> notifier.v1.Notification
	4,  // 23: notifier.v1.RetryNotificationResponse.result:type_name -> notifier.v1.NotificationResult
	25, // 24: notifier.v1.GetStatsResponse.by_type:type_name -> notifier.v1.GetStatsResponse.ByTypeEntry
	26, // 25: notifier.v1.GetStatsResponse.by_status:type_name -> notifier.v1.GetStatsResponse.ByStatusEntry
	27, // 26: notifier.v1.HealthCheckResponse.components:type_name -> notifier.v1.HealthCheckResponse.ComponentsEntry
	5,  // 27: notifier.v1.NotifierService.SendNotification:input_type -> notifier.v1.SendNotificationRequest
	7,  // 28: notifier.v1.NotifierService.SendBatchNotifications:input_type -> notifier.v1.SendBatchNotificationsRequest
	9,  // 29: notifier.v1.NotifierService.GetNotification:input_type -> notifier.v1.GetNotificationRequest
	12, // 30: notifier.v1.NotifierService.ListNotifications:input_type -> notifier.v1.ListNotificationsRequest
	14, // 31: notifier.v1.NotifierService.CancelNotification:input_type -> notifier.v1.CancelNotificationRequest
	16, // 32: notifier.v1.NotifierService.RetryNotification:input_type -> notifier.v1.RetryNotificationRequest
	18, // 33: notifier.v1.NotifierService.GetStats:input_type -> notifier.v1.GetStatsRequest
	20, // 34: notifier.v1.NotifierService.HealthCheck:input_type -> notifier.v1.HealthCheckRequest
	6,  // 35: notifier.v1.NotifierService.SendNotification:output_type -> notifier.v1.SendNotificationResponse
	8,  // 36: notifier.v1.NotifierService.SendBatchNotifications:output_type -> notifier.v1.SendBatchNotificationsResponse
	10, // 37: notifier.v1.NotifierService.GetNotification:output_type -> notifier.v1.GetNotificationResponse
	13, // 38: notifier.v1.NotifierService.ListNotifications:output_type -> notifier.v1.ListNotificationsResponse
	15, // 39: notifier.v1.NotifierService.CancelNotification:output_type -> notifier.v1.CancelNotificationResponse
	17, // 40: notifier.v1.NotifierService.RetryNotification:output_type -> notifier.v1.RetryNotificationResponse
	19, // 41: notifier.v1.NotifierService.GetStats:output_type -> notifier.v1.GetStatsResponse
	21, // 42: notifier.v1.NotifierService.HealthCheck:output_type -> notifier.v1.HealthCheckResponse
	35, // [35:43] is the sub-list for method output_type
	27, // [27:35] is the sub-list for method input_type
	27, // [27:27] is the sub-list for extension type_name
	27, // [27:27] is the sub-list for extension extendee
	0,  // [0:27] is the sub-list for field type_name
}

func init() { file_api_grpc_notifier_proto_init() }
func file_api_grpc_notifier_proto_init() {
	if File_api_grpc_notifier_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_grpc_notifier_proto_rawDesc), len(file_api_grpc_notifier_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   25,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_api_grpc_notifier_proto_goTypes,
		DependencyIndexes: file_api_grpc_notifier_proto_depIdxs,
		EnumInfos:         file_api_grpc_notifier_proto_enumTypes,
		MessageInfos:      file_api_grpc_notifier_proto_msgTypes,
	}.Build()
	File_api_grpc_notifier_proto = out.File
	file_api_grpc_notifier_proto_goTypes = nil
	file_api_grpc_notifier_proto_depIdxs = nil
}
