// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.7
// 	protoc        v5.27.5
// source: github.com/cloudprober/cloudprober/internal/alerting/proto/config.proto

package proto

import (
	proto "github.com/cloudprober/cloudprober/internal/httpreq/proto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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)
)

type Opsgenie_Responder_Type int32

const (
	Opsgenie_Responder_UNKNOWN_RESPONDER Opsgenie_Responder_Type = 0
	Opsgenie_Responder_USER              Opsgenie_Responder_Type = 1
	Opsgenie_Responder_TEAM              Opsgenie_Responder_Type = 2
	Opsgenie_Responder_ESCALATION        Opsgenie_Responder_Type = 3
	Opsgenie_Responder_SCHEDULE          Opsgenie_Responder_Type = 4
)

// Enum value maps for Opsgenie_Responder_Type.
var (
	Opsgenie_Responder_Type_name = map[int32]string{
		0: "UNKNOWN_RESPONDER",
		1: "USER",
		2: "TEAM",
		3: "ESCALATION",
		4: "SCHEDULE",
	}
	Opsgenie_Responder_Type_value = map[string]int32{
		"UNKNOWN_RESPONDER": 0,
		"USER":              1,
		"TEAM":              2,
		"ESCALATION":        3,
		"SCHEDULE":          4,
	}
)

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

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

func (Opsgenie_Responder_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_enumTypes[0].Descriptor()
}

func (Opsgenie_Responder_Type) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_enumTypes[0]
}

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

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

// Severity of the alert. If provided it's included in the alert
// notifications. If severity is not defined, we set it to ERROR for
// PagerDuty notifications.
type AlertConf_Severity int32

const (
	AlertConf_UNKNOWN_SEVERITY AlertConf_Severity = 0
	AlertConf_CRITICAL         AlertConf_Severity = 1
	AlertConf_ERROR            AlertConf_Severity = 2
	AlertConf_WARNING          AlertConf_Severity = 3
	AlertConf_INFO             AlertConf_Severity = 4
)

// Enum value maps for AlertConf_Severity.
var (
	AlertConf_Severity_name = map[int32]string{
		0: "UNKNOWN_SEVERITY",
		1: "CRITICAL",
		2: "ERROR",
		3: "WARNING",
		4: "INFO",
	}
	AlertConf_Severity_value = map[string]int32{
		"UNKNOWN_SEVERITY": 0,
		"CRITICAL":         1,
		"ERROR":            2,
		"WARNING":          3,
		"INFO":             4,
	}
)

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

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

func (AlertConf_Severity) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_enumTypes[1].Descriptor()
}

func (AlertConf_Severity) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_enumTypes[1]
}

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

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

type Email struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Email addresses to send the alert to.
	To []string `protobuf:"bytes,1,rep,name=to,proto3" json:"to,omitempty"`
	// From address in the alert email.
	// If not set, defaults to the value of smtp_user if smtp_user is set,
	// otherwise defaults to cloudprober-alert@<hostname>.
	From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"`
	// Default: Environment variable SMTP_SERVER
	SmtpServer string `protobuf:"bytes,3,opt,name=smtp_server,json=smtpServer,proto3" json:"smtp_server,omitempty"`
	// Default: Environment variable SMTP_USERNAME
	SmtpUsername string `protobuf:"bytes,4,opt,name=smtp_username,json=smtpUsername,proto3" json:"smtp_username,omitempty"`
	// Default: Environment variable SMTP_PASSWORD
	SmtpPassword  string `protobuf:"bytes,5,opt,name=smtp_password,json=smtpPassword,proto3" json:"smtp_password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Email) ProtoMessage() {}

func (x *Email) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_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 Email.ProtoReflect.Descriptor instead.
func (*Email) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescGZIP(), []int{0}
}

func (x *Email) GetTo() []string {
	if x != nil {
		return x.To
	}
	return nil
}

func (x *Email) GetFrom() string {
	if x != nil {
		return x.From
	}
	return ""
}

func (x *Email) GetSmtpServer() string {
	if x != nil {
		return x.SmtpServer
	}
	return ""
}

func (x *Email) GetSmtpUsername() string {
	if x != nil {
		return x.SmtpUsername
	}
	return ""
}

func (x *Email) GetSmtpPassword() string {
	if x != nil {
		return x.SmtpPassword
	}
	return ""
}

type Opsgenie struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// API key to access Opsgenie. It's usually tied to a team and is
	// obtained by creating a new API integration or using an existing one.
	ApiKey string `protobuf:"bytes,1,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"`
	// Environment variable name Default: OPSGENIE_API_KEY
	ApiKeyEnvVar string `protobuf:"bytes,2,opt,name=api_key_env_var,json=apiKeyEnvVar,proto3" json:"api_key_env_var,omitempty"`
	// Opsgenie responders. Opsgenie uses the responders to route the alerts if
	// API key doesn't belong to a team integration.
	// Example:
	//
	//	responders {
	//	  id: "4513b7ea-3b91-438f-b7e4-e3e54af9147c"
	//	  type: TEAM
	//	}
	Responders []*Opsgenie_Responder `protobuf:"bytes,3,rep,name=responders,proto3" json:"responders,omitempty"`
	// Opsgenie API URL.
	// Default: https://api.opsgenie.com/v2/alerts
	ApiUrl string `protobuf:"bytes,4,opt,name=api_url,json=apiUrl,proto3" json:"api_url,omitempty"`
	// Whether to send resolve notifications or not. Default is to send resolve
	// notifications.
	DisableSendResolved bool `protobuf:"varint,5,opt,name=disable_send_resolved,json=disableSendResolved,proto3" json:"disable_send_resolved,omitempty"` // Default: false
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*Opsgenie) ProtoMessage() {}

func (x *Opsgenie) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_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 Opsgenie.ProtoReflect.Descriptor instead.
func (*Opsgenie) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescGZIP(), []int{1}
}

func (x *Opsgenie) GetApiKey() string {
	if x != nil {
		return x.ApiKey
	}
	return ""
}

func (x *Opsgenie) GetApiKeyEnvVar() string {
	if x != nil {
		return x.ApiKeyEnvVar
	}
	return ""
}

func (x *Opsgenie) GetResponders() []*Opsgenie_Responder {
	if x != nil {
		return x.Responders
	}
	return nil
}

func (x *Opsgenie) GetApiUrl() string {
	if x != nil {
		return x.ApiUrl
	}
	return ""
}

func (x *Opsgenie) GetDisableSendResolved() bool {
	if x != nil {
		return x.DisableSendResolved
	}
	return false
}

type PagerDuty struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// PagerDuty Routing Key.
	// The routing key is used to authenticate to PagerDuty and is tied to a
	// service. You can obtain the routing key from the service page, under the
	// integrations tab.
	// Note: set either routing_key or routing_key_env_var. routing_key
	// takes precedence over routing_key_env_var.
	RoutingKey string `protobuf:"bytes,1,opt,name=routing_key,json=routingKey,proto3" json:"routing_key,omitempty"`
	// The environment variable containing the pagerduty routing key.
	// Default: PAGERDUTY_ROUTING_KEY;
	RoutingKeyEnvVar string `protobuf:"bytes,2,opt,name=routing_key_env_var,json=routingKeyEnvVar,proto3" json:"routing_key_env_var,omitempty"`
	// PagerDuty API URL.
	// Used to overwrite the default PagerDuty API URL.
	ApiUrl string `protobuf:"bytes,3,opt,name=api_url,json=apiUrl,proto3" json:"api_url,omitempty"` // Default: https://event.pagerduty.com
	// Whether to send resolve notifications or not. Default is to send resolve
	// notifications.
	DisableSendResolved bool `protobuf:"varint,4,opt,name=disable_send_resolved,json=disableSendResolved,proto3" json:"disable_send_resolved,omitempty"` // Default: false
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*PagerDuty) ProtoMessage() {}

func (x *PagerDuty) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_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 PagerDuty.ProtoReflect.Descriptor instead.
func (*PagerDuty) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescGZIP(), []int{2}
}

func (x *PagerDuty) GetRoutingKey() string {
	if x != nil {
		return x.RoutingKey
	}
	return ""
}

func (x *PagerDuty) GetRoutingKeyEnvVar() string {
	if x != nil {
		return x.RoutingKeyEnvVar
	}
	return ""
}

func (x *PagerDuty) GetApiUrl() string {
	if x != nil {
		return x.ApiUrl
	}
	return ""
}

func (x *PagerDuty) GetDisableSendResolved() bool {
	if x != nil {
		return x.DisableSendResolved
	}
	return false
}

type Slack struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Webhook URL
	// The Slack notifications use a webhook URL to send the notifications to
	// a Slack channel. The webhook URL can be found in the Slack console under
	// the "Incoming Webhooks" section.
	// https://api.slack.com/messaging/webhooks
	// Note: set either webhook_url or webhook_url_env_var. webhook_url
	// takes precedence over webhook_url_env_var.
	WebhookUrl string `protobuf:"bytes,1,opt,name=webhook_url,json=webhookUrl,proto3" json:"webhook_url,omitempty"`
	// The environment variable that is used to contain the slack webhook URL.
	WebhookUrlEnvVar string `protobuf:"bytes,2,opt,name=webhook_url_env_var,json=webhookUrlEnvVar,proto3" json:"webhook_url_env_var,omitempty"` // Default: SLACK_WEBHOOK_URL;
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*Slack) ProtoMessage() {}

func (x *Slack) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_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 Slack.ProtoReflect.Descriptor instead.
func (*Slack) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescGZIP(), []int{3}
}

func (x *Slack) GetWebhookUrl() string {
	if x != nil {
		return x.WebhookUrl
	}
	return ""
}

func (x *Slack) GetWebhookUrlEnvVar() string {
	if x != nil {
		return x.WebhookUrlEnvVar
	}
	return ""
}

type NotifyConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Command to run when alert is fired. You can use this command to do
	// various things, e.g.:
	//   - Send a notification using a method not supported by Cloudprober.
	//   - Collect more information, e.g. send mtr report on ping failures.
	//   - Attempt fix the issue, e.g. restart a pod or clear cache.
	//
	// In the command line following fields are substituted:
	//
	//	@alert@: Alert name
	//	@probe@: Probe name
	//	@target@: Target name, or target and port if port is specified.
	//	@target.label.<label>@: Label <label> value, e.g. target.label.role.
	//	@failures@: Count of failures.
	//	@total@: Out of.
	//	@since@: Time since the alert condition started.
	//	@json@: JSON representation of the alert fields.
	//
	// For example, if you want to send an email when an alert is fired, you can
	// use the following command:
	// command: "/usr/bin/mail -s 'Alert @alert@ fired for @target@' manu@a.b"
	Command string `protobuf:"bytes,10,opt,name=command,proto3" json:"command,omitempty"`
	// Email notification configuration.
	Email *Email `protobuf:"bytes,11,opt,name=email,proto3" json:"email,omitempty"`
	// PagerDuty configuration.
	PagerDuty *PagerDuty `protobuf:"bytes,12,opt,name=pager_duty,json=pagerDuty,proto3" json:"pager_duty,omitempty"`
	// Slack configuration.
	Slack *Slack `protobuf:"bytes,13,opt,name=slack,proto3" json:"slack,omitempty"`
	// Opsgenie configuration.
	Opsgenie *Opsgenie `protobuf:"bytes,14,opt,name=opsgenie,proto3" json:"opsgenie,omitempty"`
	// Notify using an HTTP request. HTTP request fields are expanded using the
	// same template expansion rules as "command" above:
	// For example, to send a notification using rest API:
	//
	//	http_notify {
	//	  url: "http://localhost:8080/alert"
	//	  method: POST
	//	  header {
	//	    key: "Authorization"
	//	    value: "Bearer {{env 'AUTH_TOKEN'}}"
	//	  }
	//	  data: "{\"message\": \"@alert@ fired for @target@\", \"details\": \"name\"}"
	//	}
	HttpNotify    *proto.HTTPRequest `protobuf:"bytes,3,opt,name=http_notify,json=httpNotify,proto3" json:"http_notify,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*NotifyConfig) ProtoMessage() {}

func (x *NotifyConfig) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_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 NotifyConfig.ProtoReflect.Descriptor instead.
func (*NotifyConfig) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescGZIP(), []int{4}
}

func (x *NotifyConfig) GetCommand() string {
	if x != nil {
		return x.Command
	}
	return ""
}

func (x *NotifyConfig) GetEmail() *Email {
	if x != nil {
		return x.Email
	}
	return nil
}

func (x *NotifyConfig) GetPagerDuty() *PagerDuty {
	if x != nil {
		return x.PagerDuty
	}
	return nil
}

func (x *NotifyConfig) GetSlack() *Slack {
	if x != nil {
		return x.Slack
	}
	return nil
}

func (x *NotifyConfig) GetOpsgenie() *Opsgenie {
	if x != nil {
		return x.Opsgenie
	}
	return nil
}

func (x *NotifyConfig) GetHttpNotify() *proto.HTTPRequest {
	if x != nil {
		return x.HttpNotify
	}
	return nil
}

type Condition struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Failures      int32                  `protobuf:"varint,1,opt,name=failures,proto3" json:"failures,omitempty"`
	Total         int32                  `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition) ProtoMessage() {}

func (x *Condition) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_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 Condition.ProtoReflect.Descriptor instead.
func (*Condition) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescGZIP(), []int{5}
}

func (x *Condition) GetFailures() int32 {
	if x != nil {
		return x.Failures
	}
	return 0
}

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

type AlertConf struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of the alert. Default is to use the probe name. If you have multiple
	// alerts for the same probe, you must specify a name for each alert.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Condition for the alert. Default is to alert on any failure.
	// Example:
	// # Alert if 6 out of 10 probes fail.
	//
	//	condition {
	//	  failures: 6
	//	  total: 10
	//	}
	Condition *Condition `protobuf:"bytes,2,opt,name=condition,proto3,oneof" json:"condition,omitempty"`
	// How to notify in case of alert.
	Notify *NotifyConfig `protobuf:"bytes,3,opt,name=notify,proto3" json:"notify,omitempty"`
	// Dashboard URL template.
	// Default: http://localhost:9313/status?probe=@probe@
	DashboardUrlTemplate string `protobuf:"bytes,4,opt,name=dashboard_url_template,json=dashboardUrlTemplate,proto3" json:"dashboard_url_template,omitempty"` // Default: ""
	PlaybookUrlTemplate  string `protobuf:"bytes,5,opt,name=playbook_url_template,json=playbookUrlTemplate,proto3" json:"playbook_url_template,omitempty"`    // Default: ""
	// Default: Cloudprober alert "@alert@" for "@target@"
	SummaryTemplate string `protobuf:"bytes,6,opt,name=summary_template,json=summaryTemplate,proto3" json:"summary_template,omitempty"`
	// Default:
	// Cloudprober alert "@alert@" for "@target@":
	// Failures: @failures@ out of @total@ probes
	// Failing since: @since@
	// Probe: @probe@
	// Dashboard: @dashboard_url@
	// Playbook: @playbook_url@
	DetailsTemplate string `protobuf:"bytes,7,opt,name=details_template,json=detailsTemplate,proto3" json:"details_template,omitempty"` // Default: ""
	// Key values to be included in the alert. These fields are expanded
	// using the same template expansion rules as summary_template and
	// details_template (see above).
	OtherInfo map[string]string  `protobuf:"bytes,9,rep,name=other_info,json=otherInfo,proto3" json:"other_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Severity  AlertConf_Severity `protobuf:"varint,10,opt,name=severity,proto3,enum=cloudprober.alerting.AlertConf_Severity" json:"severity,omitempty"`
	// How often to repeat notification for the same alert. Default is 1hr.
	// To disable any kind of notification throttling, set this to 0.
	RepeatIntervalSec *int32 `protobuf:"varint,8,opt,name=repeat_interval_sec,json=repeatIntervalSec,proto3,oneof" json:"repeat_interval_sec,omitempty"` // Default: 1hr
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*AlertConf) ProtoMessage() {}

func (x *AlertConf) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_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 AlertConf.ProtoReflect.Descriptor instead.
func (*AlertConf) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescGZIP(), []int{6}
}

func (x *AlertConf) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *AlertConf) GetCondition() *Condition {
	if x != nil {
		return x.Condition
	}
	return nil
}

func (x *AlertConf) GetNotify() *NotifyConfig {
	if x != nil {
		return x.Notify
	}
	return nil
}

func (x *AlertConf) GetDashboardUrlTemplate() string {
	if x != nil {
		return x.DashboardUrlTemplate
	}
	return ""
}

func (x *AlertConf) GetPlaybookUrlTemplate() string {
	if x != nil {
		return x.PlaybookUrlTemplate
	}
	return ""
}

func (x *AlertConf) GetSummaryTemplate() string {
	if x != nil {
		return x.SummaryTemplate
	}
	return ""
}

func (x *AlertConf) GetDetailsTemplate() string {
	if x != nil {
		return x.DetailsTemplate
	}
	return ""
}

func (x *AlertConf) GetOtherInfo() map[string]string {
	if x != nil {
		return x.OtherInfo
	}
	return nil
}

func (x *AlertConf) GetSeverity() AlertConf_Severity {
	if x != nil {
		return x.Severity
	}
	return AlertConf_UNKNOWN_SEVERITY
}

func (x *AlertConf) GetRepeatIntervalSec() int32 {
	if x != nil && x.RepeatIntervalSec != nil {
		return *x.RepeatIntervalSec
	}
	return 0
}

type Opsgenie_Responder struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Ref:
	//
	//	*Opsgenie_Responder_Id
	//	*Opsgenie_Responder_Name
	Ref           isOpsgenie_Responder_Ref `protobuf_oneof:"ref"`
	Type          Opsgenie_Responder_Type  `protobuf:"varint,3,opt,name=type,proto3,enum=cloudprober.alerting.Opsgenie_Responder_Type" json:"type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Opsgenie_Responder) ProtoMessage() {}

func (x *Opsgenie_Responder) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_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 Opsgenie_Responder.ProtoReflect.Descriptor instead.
func (*Opsgenie_Responder) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescGZIP(), []int{1, 0}
}

func (x *Opsgenie_Responder) GetRef() isOpsgenie_Responder_Ref {
	if x != nil {
		return x.Ref
	}
	return nil
}

func (x *Opsgenie_Responder) GetId() string {
	if x != nil {
		if x, ok := x.Ref.(*Opsgenie_Responder_Id); ok {
			return x.Id
		}
	}
	return ""
}

func (x *Opsgenie_Responder) GetName() string {
	if x != nil {
		if x, ok := x.Ref.(*Opsgenie_Responder_Name); ok {
			return x.Name
		}
	}
	return ""
}

func (x *Opsgenie_Responder) GetType() Opsgenie_Responder_Type {
	if x != nil {
		return x.Type
	}
	return Opsgenie_Responder_UNKNOWN_RESPONDER
}

type isOpsgenie_Responder_Ref interface {
	isOpsgenie_Responder_Ref()
}

type Opsgenie_Responder_Id struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3,oneof"`
}

type Opsgenie_Responder_Name struct {
	Name string `protobuf:"bytes,2,opt,name=name,proto3,oneof"`
}

func (*Opsgenie_Responder_Id) isOpsgenie_Responder_Ref() {}

func (*Opsgenie_Responder_Name) isOpsgenie_Responder_Ref() {}

var File_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto protoreflect.FileDescriptor

const file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDesc = "" +
	"\n" +
	"Ggithub.com/cloudprober/cloudprober/internal/alerting/proto/config.proto\x12\x14cloudprober.alerting\x1aFgithub.com/cloudprober/cloudprober/internal/httpreq/proto/config.proto\"\x96\x01\n" +
	"\x05Email\x12\x0e\n" +
	"\x02to\x18\x01 \x03(\tR\x02to\x12\x12\n" +
	"\x04from\x18\x02 \x01(\tR\x04from\x12\x1f\n" +
	"\vsmtp_server\x18\x03 \x01(\tR\n" +
	"smtpServer\x12#\n" +
	"\rsmtp_username\x18\x04 \x01(\tR\fsmtpUsername\x12#\n" +
	"\rsmtp_password\x18\x05 \x01(\tR\fsmtpPassword\"\xb2\x03\n" +
	"\bOpsgenie\x12\x17\n" +
	"\aapi_key\x18\x01 \x01(\tR\x06apiKey\x12%\n" +
	"\x0fapi_key_env_var\x18\x02 \x01(\tR\fapiKeyEnvVar\x12H\n" +
	"\n" +
	"responders\x18\x03 \x03(\v2(.cloudprober.alerting.Opsgenie.ResponderR\n" +
	"responders\x12\x17\n" +
	"\aapi_url\x18\x04 \x01(\tR\x06apiUrl\x122\n" +
	"\x15disable_send_resolved\x18\x05 \x01(\bR\x13disableSendResolved\x1a\xce\x01\n" +
	"\tResponder\x12\x10\n" +
	"\x02id\x18\x01 \x01(\tH\x00R\x02id\x12\x14\n" +
	"\x04name\x18\x02 \x01(\tH\x00R\x04name\x12A\n" +
	"\x04type\x18\x03 \x01(\x0e2-.cloudprober.alerting.Opsgenie.Responder.TypeR\x04type\"O\n" +
	"\x04Type\x12\x15\n" +
	"\x11UNKNOWN_RESPONDER\x10\x00\x12\b\n" +
	"\x04USER\x10\x01\x12\b\n" +
	"\x04TEAM\x10\x02\x12\x0e\n" +
	"\n" +
	"ESCALATION\x10\x03\x12\f\n" +
	"\bSCHEDULE\x10\x04B\x05\n" +
	"\x03ref\"\xa8\x01\n" +
	"\tPagerDuty\x12\x1f\n" +
	"\vrouting_key\x18\x01 \x01(\tR\n" +
	"routingKey\x12-\n" +
	"\x13routing_key_env_var\x18\x02 \x01(\tR\x10routingKeyEnvVar\x12\x17\n" +
	"\aapi_url\x18\x03 \x01(\tR\x06apiUrl\x122\n" +
	"\x15disable_send_resolved\x18\x04 \x01(\bR\x13disableSendResolved\"W\n" +
	"\x05Slack\x12\x1f\n" +
	"\vwebhook_url\x18\x01 \x01(\tR\n" +
	"webhookUrl\x12-\n" +
	"\x13webhook_url_env_var\x18\x02 \x01(\tR\x10webhookUrlEnvVar\"\xd3\x02\n" +
	"\fNotifyConfig\x12\x18\n" +
	"\acommand\x18\n" +
	" \x01(\tR\acommand\x121\n" +
	"\x05email\x18\v \x01(\v2\x1b.cloudprober.alerting.EmailR\x05email\x12>\n" +
	"\n" +
	"pager_duty\x18\f \x01(\v2\x1f.cloudprober.alerting.PagerDutyR\tpagerDuty\x121\n" +
	"\x05slack\x18\r \x01(\v2\x1b.cloudprober.alerting.SlackR\x05slack\x12:\n" +
	"\bopsgenie\x18\x0e \x01(\v2\x1e.cloudprober.alerting.OpsgenieR\bopsgenie\x12G\n" +
	"\vhttp_notify\x18\x03 \x01(\v2&.cloudprober.utils.httpreq.HTTPRequestR\n" +
	"httpNotify\"=\n" +
	"\tCondition\x12\x1a\n" +
	"\bfailures\x18\x01 \x01(\x05R\bfailures\x12\x14\n" +
	"\x05total\x18\x02 \x01(\x05R\x05total\"\xdf\x05\n" +
	"\tAlertConf\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12B\n" +
	"\tcondition\x18\x02 \x01(\v2\x1f.cloudprober.alerting.ConditionH\x00R\tcondition\x88\x01\x01\x12:\n" +
	"\x06notify\x18\x03 \x01(\v2\".cloudprober.alerting.NotifyConfigR\x06notify\x124\n" +
	"\x16dashboard_url_template\x18\x04 \x01(\tR\x14dashboardUrlTemplate\x122\n" +
	"\x15playbook_url_template\x18\x05 \x01(\tR\x13playbookUrlTemplate\x12)\n" +
	"\x10summary_template\x18\x06 \x01(\tR\x0fsummaryTemplate\x12)\n" +
	"\x10details_template\x18\a \x01(\tR\x0fdetailsTemplate\x12M\n" +
	"\n" +
	"other_info\x18\t \x03(\v2..cloudprober.alerting.AlertConf.OtherInfoEntryR\totherInfo\x12D\n" +
	"\bseverity\x18\n" +
	" \x01(\x0e2(.cloudprober.alerting.AlertConf.SeverityR\bseverity\x123\n" +
	"\x13repeat_interval_sec\x18\b \x01(\x05H\x01R\x11repeatIntervalSec\x88\x01\x01\x1a<\n" +
	"\x0eOtherInfoEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"P\n" +
	"\bSeverity\x12\x14\n" +
	"\x10UNKNOWN_SEVERITY\x10\x00\x12\f\n" +
	"\bCRITICAL\x10\x01\x12\t\n" +
	"\x05ERROR\x10\x02\x12\v\n" +
	"\aWARNING\x10\x03\x12\b\n" +
	"\x04INFO\x10\x04B\f\n" +
	"\n" +
	"_conditionB\x16\n" +
	"\x14_repeat_interval_secB<Z:github.com/cloudprober/cloudprober/internal/alerting/protob\x06proto3"

var (
	file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescOnce sync.Once
	file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescData []byte
)

func file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescGZIP() []byte {
	file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescOnce.Do(func() {
		file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDesc)))
	})
	return file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDescData
}

var file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_goTypes = []any{
	(Opsgenie_Responder_Type)(0), // 0: cloudprober.alerting.Opsgenie.Responder.Type
	(AlertConf_Severity)(0),      // 1: cloudprober.alerting.AlertConf.Severity
	(*Email)(nil),                // 2: cloudprober.alerting.Email
	(*Opsgenie)(nil),             // 3: cloudprober.alerting.Opsgenie
	(*PagerDuty)(nil),            // 4: cloudprober.alerting.PagerDuty
	(*Slack)(nil),                // 5: cloudprober.alerting.Slack
	(*NotifyConfig)(nil),         // 6: cloudprober.alerting.NotifyConfig
	(*Condition)(nil),            // 7: cloudprober.alerting.Condition
	(*AlertConf)(nil),            // 8: cloudprober.alerting.AlertConf
	(*Opsgenie_Responder)(nil),   // 9: cloudprober.alerting.Opsgenie.Responder
	nil,                          // 10: cloudprober.alerting.AlertConf.OtherInfoEntry
	(*proto.HTTPRequest)(nil),    // 11: cloudprober.utils.httpreq.HTTPRequest
}
var file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_depIdxs = []int32{
	9,  // 0: cloudprober.alerting.Opsgenie.responders:type_name -> cloudprober.alerting.Opsgenie.Responder
	2,  // 1: cloudprober.alerting.NotifyConfig.email:type_name -> cloudprober.alerting.Email
	4,  // 2: cloudprober.alerting.NotifyConfig.pager_duty:type_name -> cloudprober.alerting.PagerDuty
	5,  // 3: cloudprober.alerting.NotifyConfig.slack:type_name -> cloudprober.alerting.Slack
	3,  // 4: cloudprober.alerting.NotifyConfig.opsgenie:type_name -> cloudprober.alerting.Opsgenie
	11, // 5: cloudprober.alerting.NotifyConfig.http_notify:type_name -> cloudprober.utils.httpreq.HTTPRequest
	7,  // 6: cloudprober.alerting.AlertConf.condition:type_name -> cloudprober.alerting.Condition
	6,  // 7: cloudprober.alerting.AlertConf.notify:type_name -> cloudprober.alerting.NotifyConfig
	10, // 8: cloudprober.alerting.AlertConf.other_info:type_name -> cloudprober.alerting.AlertConf.OtherInfoEntry
	1,  // 9: cloudprober.alerting.AlertConf.severity:type_name -> cloudprober.alerting.AlertConf.Severity
	0,  // 10: cloudprober.alerting.Opsgenie.Responder.type:type_name -> cloudprober.alerting.Opsgenie.Responder.Type
	11, // [11:11] is the sub-list for method output_type
	11, // [11:11] is the sub-list for method input_type
	11, // [11:11] is the sub-list for extension type_name
	11, // [11:11] is the sub-list for extension extendee
	0,  // [0:11] is the sub-list for field type_name
}

func init() { file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_init() }
func file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_init() {
	if File_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto != nil {
		return
	}
	file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_msgTypes[6].OneofWrappers = []any{}
	file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_msgTypes[7].OneofWrappers = []any{
		(*Opsgenie_Responder_Id)(nil),
		(*Opsgenie_Responder_Name)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   9,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_goTypes,
		DependencyIndexes: file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_depIdxs,
		EnumInfos:         file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_enumTypes,
		MessageInfos:      file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_msgTypes,
	}.Build()
	File_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto = out.File
	file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_goTypes = nil
	file_github_com_cloudprober_cloudprober_internal_alerting_proto_config_proto_depIdxs = nil
}
