// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v3.21.12
// source: yandex/cloud/smartwebsecurity/v1/security_profile.proto

package smartwebsecurity

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	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)
)

// Action to perform if none of rules matched.
type SecurityProfile_DefaultAction int32

const (
	SecurityProfile_DEFAULT_ACTION_UNSPECIFIED SecurityProfile_DefaultAction = 0
	// Pass request to service.
	SecurityProfile_ALLOW SecurityProfile_DefaultAction = 1
	// Deny request.
	SecurityProfile_DENY SecurityProfile_DefaultAction = 2
)

// Enum value maps for SecurityProfile_DefaultAction.
var (
	SecurityProfile_DefaultAction_name = map[int32]string{
		0: "DEFAULT_ACTION_UNSPECIFIED",
		1: "ALLOW",
		2: "DENY",
	}
	SecurityProfile_DefaultAction_value = map[string]int32{
		"DEFAULT_ACTION_UNSPECIFIED": 0,
		"ALLOW":                      1,
		"DENY":                       2,
	}
)

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

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

func (SecurityProfile_DefaultAction) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[0].Descriptor()
}

func (SecurityProfile_DefaultAction) Type() protoreflect.EnumType {
	return &file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[0]
}

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

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

// Action to perform if maximum size of body exceeded.
type SecurityProfile_AnalyzeRequestBody_Action int32

const (
	SecurityProfile_AnalyzeRequestBody_ACTION_UNSPECIFIED SecurityProfile_AnalyzeRequestBody_Action = 0
	// Ignore body.
	SecurityProfile_AnalyzeRequestBody_IGNORE SecurityProfile_AnalyzeRequestBody_Action = 1
	// Deny request.
	SecurityProfile_AnalyzeRequestBody_DENY SecurityProfile_AnalyzeRequestBody_Action = 2
)

// Enum value maps for SecurityProfile_AnalyzeRequestBody_Action.
var (
	SecurityProfile_AnalyzeRequestBody_Action_name = map[int32]string{
		0: "ACTION_UNSPECIFIED",
		1: "IGNORE",
		2: "DENY",
	}
	SecurityProfile_AnalyzeRequestBody_Action_value = map[string]int32{
		"ACTION_UNSPECIFIED": 0,
		"IGNORE":             1,
		"DENY":               2,
	}
)

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

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

func (SecurityProfile_AnalyzeRequestBody_Action) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[1].Descriptor()
}

func (SecurityProfile_AnalyzeRequestBody_Action) Type() protoreflect.EnumType {
	return &file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[1]
}

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

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

// Type of action to perform if this rule matched.
type SecurityRule_RuleCondition_Action int32

const (
	SecurityRule_RuleCondition_ACTION_UNSPECIFIED SecurityRule_RuleCondition_Action = 0
	// Pass request to service.
	SecurityRule_RuleCondition_ALLOW SecurityRule_RuleCondition_Action = 1
	// Deny request.
	SecurityRule_RuleCondition_DENY SecurityRule_RuleCondition_Action = 2
)

// Enum value maps for SecurityRule_RuleCondition_Action.
var (
	SecurityRule_RuleCondition_Action_name = map[int32]string{
		0: "ACTION_UNSPECIFIED",
		1: "ALLOW",
		2: "DENY",
	}
	SecurityRule_RuleCondition_Action_value = map[string]int32{
		"ACTION_UNSPECIFIED": 0,
		"ALLOW":              1,
		"DENY":               2,
	}
)

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

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

func (SecurityRule_RuleCondition_Action) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[2].Descriptor()
}

func (SecurityRule_RuleCondition_Action) Type() protoreflect.EnumType {
	return &file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[2]
}

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

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

// Mode of protection.
type SecurityRule_SmartProtection_Mode int32

const (
	SecurityRule_SmartProtection_MODE_UNSPECIFIED SecurityRule_SmartProtection_Mode = 0
	// Full protection means that the traffic will be checked based on ML models and behavioral analysis,
	// with suspicious requests being sent to SmartCaptcha.
	SecurityRule_SmartProtection_FULL SecurityRule_SmartProtection_Mode = 1
	// API protection means checking the traffic based on ML models and behavioral analysis without sending suspicious
	// requests to SmartCaptcha. The suspicious requests will be blocked.
	SecurityRule_SmartProtection_API SecurityRule_SmartProtection_Mode = 2
)

// Enum value maps for SecurityRule_SmartProtection_Mode.
var (
	SecurityRule_SmartProtection_Mode_name = map[int32]string{
		0: "MODE_UNSPECIFIED",
		1: "FULL",
		2: "API",
	}
	SecurityRule_SmartProtection_Mode_value = map[string]int32{
		"MODE_UNSPECIFIED": 0,
		"FULL":             1,
		"API":              2,
	}
)

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

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

func (SecurityRule_SmartProtection_Mode) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[3].Descriptor()
}

func (SecurityRule_SmartProtection_Mode) Type() protoreflect.EnumType {
	return &file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[3]
}

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

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

// Mode of protection.
type SecurityRule_Waf_Mode int32

const (
	SecurityRule_Waf_MODE_UNSPECIFIED SecurityRule_Waf_Mode = 0
	// Full protection means that the traffic will be checked based on ML models and behavioral analysis,
	// with suspicious requests being sent to SmartCaptcha.
	SecurityRule_Waf_FULL SecurityRule_Waf_Mode = 1
	// API protection means checking the traffic based on ML models and behavioral analysis without sending suspicious
	// requests to SmartCaptcha. The suspicious requests will be blocked.
	SecurityRule_Waf_API SecurityRule_Waf_Mode = 2
)

// Enum value maps for SecurityRule_Waf_Mode.
var (
	SecurityRule_Waf_Mode_name = map[int32]string{
		0: "MODE_UNSPECIFIED",
		1: "FULL",
		2: "API",
	}
	SecurityRule_Waf_Mode_value = map[string]int32{
		"MODE_UNSPECIFIED": 0,
		"FULL":             1,
		"API":              2,
	}
)

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

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

func (SecurityRule_Waf_Mode) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[4].Descriptor()
}

func (SecurityRule_Waf_Mode) Type() protoreflect.EnumType {
	return &file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes[4]
}

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

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

// A SecurityProfile resource.
type SecurityProfile struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the security profile.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// ID of the folder that the security profile belongs to.
	FolderId string `protobuf:"bytes,2,opt,name=folder_id,json=folderId,proto3" json:"folder_id,omitempty"`
	// Labels as “ key:value “ pairs. Maximum of 64 per resource.
	Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Name of the security profile. The name is unique within the folder. 1-50 characters long.
	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
	// Optional description of the security profile.
	Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	// Action to perform if none of rules matched.
	DefaultAction SecurityProfile_DefaultAction `protobuf:"varint,6,opt,name=default_action,json=defaultAction,proto3,enum=yandex.cloud.smartwebsecurity.v1.SecurityProfile_DefaultAction" json:"default_action,omitempty"`
	// List of security rules.
	SecurityRules []*SecurityRule `protobuf:"bytes,7,rep,name=security_rules,json=securityRules,proto3" json:"security_rules,omitempty"`
	// Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// ID of the cloud that the security profile belongs to.
	CloudId string `protobuf:"bytes,10,opt,name=cloud_id,json=cloudId,proto3" json:"cloud_id,omitempty"`
	// Captcha ID to use with this security profile. Set empty to use default.
	CaptchaId string `protobuf:"bytes,11,opt,name=captcha_id,json=captchaId,proto3" json:"captcha_id,omitempty"`
	// Advanced rate limiter profile ID to use with this security profile. Set empty to use default.
	AdvancedRateLimiterProfileId string `protobuf:"bytes,12,opt,name=advanced_rate_limiter_profile_id,json=advancedRateLimiterProfileId,proto3" json:"advanced_rate_limiter_profile_id,omitempty"`
	// Parameters for request body analyzer.
	AnalyzeRequestBody *SecurityProfile_AnalyzeRequestBody `protobuf:"bytes,13,opt,name=analyze_request_body,json=analyzeRequestBody,proto3" json:"analyze_request_body,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*SecurityProfile) ProtoMessage() {}

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

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

func (x *SecurityProfile) GetFolderId() string {
	if x != nil {
		return x.FolderId
	}
	return ""
}

func (x *SecurityProfile) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

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

func (x *SecurityProfile) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *SecurityProfile) GetDefaultAction() SecurityProfile_DefaultAction {
	if x != nil {
		return x.DefaultAction
	}
	return SecurityProfile_DEFAULT_ACTION_UNSPECIFIED
}

func (x *SecurityProfile) GetSecurityRules() []*SecurityRule {
	if x != nil {
		return x.SecurityRules
	}
	return nil
}

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

func (x *SecurityProfile) GetCloudId() string {
	if x != nil {
		return x.CloudId
	}
	return ""
}

func (x *SecurityProfile) GetCaptchaId() string {
	if x != nil {
		return x.CaptchaId
	}
	return ""
}

func (x *SecurityProfile) GetAdvancedRateLimiterProfileId() string {
	if x != nil {
		return x.AdvancedRateLimiterProfileId
	}
	return ""
}

func (x *SecurityProfile) GetAnalyzeRequestBody() *SecurityProfile_AnalyzeRequestBody {
	if x != nil {
		return x.AnalyzeRequestBody
	}
	return nil
}

// A SecurityRule object, see [Rules](/docs/smartwebsecurity/concepts/rules).
type SecurityRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of the rule. The name is unique within the security profile. 1-50 characters long.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Determines the priority for checking the incoming traffic.
	// Enter an integer within the range of 1 and 999999.
	// The rule priority must be unique within the entire security profile.
	// A lower numeric value means a higher priority.
	// The default_action has the lowest priority.
	Priority int64 `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"`
	// This mode allows you to test your security profile or a single rule.
	// For example, you can have the number of alarms for a specific rule displayed.
	// Note: if this option is true, no real action affecting your traffic regarding this rule will be taken.
	DryRun bool `protobuf:"varint,3,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`
	// Types that are valid to be assigned to RuleSpecifier:
	//
	//	*SecurityRule_RuleCondition_
	//	*SecurityRule_SmartProtection_
	//	*SecurityRule_Waf_
	RuleSpecifier isSecurityRule_RuleSpecifier `protobuf_oneof:"rule_specifier"`
	// Optional description of the rule. 0-512 characters long.
	Description   string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SecurityRule) ProtoMessage() {}

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

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

func (x *SecurityRule) GetPriority() int64 {
	if x != nil {
		return x.Priority
	}
	return 0
}

func (x *SecurityRule) GetDryRun() bool {
	if x != nil {
		return x.DryRun
	}
	return false
}

func (x *SecurityRule) GetRuleSpecifier() isSecurityRule_RuleSpecifier {
	if x != nil {
		return x.RuleSpecifier
	}
	return nil
}

func (x *SecurityRule) GetRuleCondition() *SecurityRule_RuleCondition {
	if x != nil {
		if x, ok := x.RuleSpecifier.(*SecurityRule_RuleCondition_); ok {
			return x.RuleCondition
		}
	}
	return nil
}

func (x *SecurityRule) GetSmartProtection() *SecurityRule_SmartProtection {
	if x != nil {
		if x, ok := x.RuleSpecifier.(*SecurityRule_SmartProtection_); ok {
			return x.SmartProtection
		}
	}
	return nil
}

func (x *SecurityRule) GetWaf() *SecurityRule_Waf {
	if x != nil {
		if x, ok := x.RuleSpecifier.(*SecurityRule_Waf_); ok {
			return x.Waf
		}
	}
	return nil
}

func (x *SecurityRule) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

type isSecurityRule_RuleSpecifier interface {
	isSecurityRule_RuleSpecifier()
}

type SecurityRule_RuleCondition_ struct {
	// Rule actions, see [Rule actions](/docs/smartwebsecurity/concepts/rules#rule-action).
	RuleCondition *SecurityRule_RuleCondition `protobuf:"bytes,4,opt,name=rule_condition,json=ruleCondition,proto3,oneof"`
}

type SecurityRule_SmartProtection_ struct {
	// Smart Protection rule, see [Smart Protection rules](/docs/smartwebsecurity/concepts/rules#smart-protection-rules).
	SmartProtection *SecurityRule_SmartProtection `protobuf:"bytes,5,opt,name=smart_protection,json=smartProtection,proto3,oneof"`
}

type SecurityRule_Waf_ struct {
	// Web Application Firewall (WAF) rule, see [WAF rules](/docs/smartwebsecurity/concepts/rules#waf-rules).
	Waf *SecurityRule_Waf `protobuf:"bytes,6,opt,name=waf,proto3,oneof"`
}

func (*SecurityRule_RuleCondition_) isSecurityRule_RuleSpecifier() {}

func (*SecurityRule_SmartProtection_) isSecurityRule_RuleSpecifier() {}

func (*SecurityRule_Waf_) isSecurityRule_RuleSpecifier() {}

// Condition object. AND semantics implied.
// See [documentation](/docs/smartwebsecurity/concepts/conditions) for matchers description.
type Condition struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Match authority (Host header).
	Authority *Condition_AuthorityMatcher `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
	// Match HTTP method.
	HttpMethod *Condition_HttpMethodMatcher `protobuf:"bytes,2,opt,name=http_method,json=httpMethod,proto3" json:"http_method,omitempty"`
	// Match Request URI.
	RequestUri *Condition_RequestUriMatcher `protobuf:"bytes,3,opt,name=request_uri,json=requestUri,proto3" json:"request_uri,omitempty"`
	// Match HTTP headers.
	Headers []*Condition_HeaderMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"`
	// Match IP.
	SourceIp      *Condition_IpMatcher `protobuf:"bytes,5,opt,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Condition) Reset() {
	*x = Condition{}
	mi := &file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_msgTypes[2]
	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_yandex_cloud_smartwebsecurity_v1_security_profile_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 Condition.ProtoReflect.Descriptor instead.
func (*Condition) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDescGZIP(), []int{2}
}

func (x *Condition) GetAuthority() *Condition_AuthorityMatcher {
	if x != nil {
		return x.Authority
	}
	return nil
}

func (x *Condition) GetHttpMethod() *Condition_HttpMethodMatcher {
	if x != nil {
		return x.HttpMethod
	}
	return nil
}

func (x *Condition) GetRequestUri() *Condition_RequestUriMatcher {
	if x != nil {
		return x.RequestUri
	}
	return nil
}

func (x *Condition) GetHeaders() []*Condition_HeaderMatcher {
	if x != nil {
		return x.Headers
	}
	return nil
}

func (x *Condition) GetSourceIp() *Condition_IpMatcher {
	if x != nil {
		return x.SourceIp
	}
	return nil
}

type SecurityProfile_AnalyzeRequestBody struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Maximum size of body to pass to analyzer. In kilobytes.
	SizeLimit int64 `protobuf:"varint,1,opt,name=size_limit,json=sizeLimit,proto3" json:"size_limit,omitempty"`
	// Action to perform if maximum size of body exceeded.
	SizeLimitAction SecurityProfile_AnalyzeRequestBody_Action `protobuf:"varint,2,opt,name=size_limit_action,json=sizeLimitAction,proto3,enum=yandex.cloud.smartwebsecurity.v1.SecurityProfile_AnalyzeRequestBody_Action" json:"size_limit_action,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*SecurityProfile_AnalyzeRequestBody) ProtoMessage() {}

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

func (x *SecurityProfile_AnalyzeRequestBody) GetSizeLimit() int64 {
	if x != nil {
		return x.SizeLimit
	}
	return 0
}

func (x *SecurityProfile_AnalyzeRequestBody) GetSizeLimitAction() SecurityProfile_AnalyzeRequestBody_Action {
	if x != nil {
		return x.SizeLimitAction
	}
	return SecurityProfile_AnalyzeRequestBody_ACTION_UNSPECIFIED
}

// RuleCondition object.
type SecurityRule_RuleCondition struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Action to perform if this rule matched.
	Action SecurityRule_RuleCondition_Action `protobuf:"varint,1,opt,name=action,proto3,enum=yandex.cloud.smartwebsecurity.v1.SecurityRule_RuleCondition_Action" json:"action,omitempty"`
	// The condition for matching the rule.
	Condition     *Condition `protobuf:"bytes,2,opt,name=condition,proto3" json:"condition,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SecurityRule_RuleCondition) ProtoMessage() {}

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

func (x *SecurityRule_RuleCondition) GetAction() SecurityRule_RuleCondition_Action {
	if x != nil {
		return x.Action
	}
	return SecurityRule_RuleCondition_ACTION_UNSPECIFIED
}

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

// SmartProtection object.
type SecurityRule_SmartProtection struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Mode of protection.
	Mode SecurityRule_SmartProtection_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=yandex.cloud.smartwebsecurity.v1.SecurityRule_SmartProtection_Mode" json:"mode,omitempty"`
	// The condition for matching the rule.
	Condition     *Condition `protobuf:"bytes,2,opt,name=condition,proto3" json:"condition,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SecurityRule_SmartProtection) ProtoMessage() {}

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

func (x *SecurityRule_SmartProtection) GetMode() SecurityRule_SmartProtection_Mode {
	if x != nil {
		return x.Mode
	}
	return SecurityRule_SmartProtection_MODE_UNSPECIFIED
}

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

// Waf object.
type SecurityRule_Waf struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Mode of protection.
	Mode SecurityRule_Waf_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=yandex.cloud.smartwebsecurity.v1.SecurityRule_Waf_Mode" json:"mode,omitempty"`
	// The condition for matching the rule.
	Condition *Condition `protobuf:"bytes,2,opt,name=condition,proto3" json:"condition,omitempty"`
	// ID of WAF profile to use in this rule.
	WafProfileId  string `protobuf:"bytes,3,opt,name=waf_profile_id,json=wafProfileId,proto3" json:"waf_profile_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SecurityRule_Waf) ProtoMessage() {}

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

func (x *SecurityRule_Waf) GetMode() SecurityRule_Waf_Mode {
	if x != nil {
		return x.Mode
	}
	return SecurityRule_Waf_MODE_UNSPECIFIED
}

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

func (x *SecurityRule_Waf) GetWafProfileId() string {
	if x != nil {
		return x.WafProfileId
	}
	return ""
}

// StringMatcher object.
type Condition_StringMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Match:
	//
	//	*Condition_StringMatcher_ExactMatch
	//	*Condition_StringMatcher_ExactNotMatch
	//	*Condition_StringMatcher_PrefixMatch
	//	*Condition_StringMatcher_PrefixNotMatch
	//	*Condition_StringMatcher_PireRegexMatch
	//	*Condition_StringMatcher_PireRegexNotMatch
	Match         isCondition_StringMatcher_Match `protobuf_oneof:"match"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition_StringMatcher) ProtoMessage() {}

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

func (x *Condition_StringMatcher) GetMatch() isCondition_StringMatcher_Match {
	if x != nil {
		return x.Match
	}
	return nil
}

func (x *Condition_StringMatcher) GetExactMatch() string {
	if x != nil {
		if x, ok := x.Match.(*Condition_StringMatcher_ExactMatch); ok {
			return x.ExactMatch
		}
	}
	return ""
}

func (x *Condition_StringMatcher) GetExactNotMatch() string {
	if x != nil {
		if x, ok := x.Match.(*Condition_StringMatcher_ExactNotMatch); ok {
			return x.ExactNotMatch
		}
	}
	return ""
}

func (x *Condition_StringMatcher) GetPrefixMatch() string {
	if x != nil {
		if x, ok := x.Match.(*Condition_StringMatcher_PrefixMatch); ok {
			return x.PrefixMatch
		}
	}
	return ""
}

func (x *Condition_StringMatcher) GetPrefixNotMatch() string {
	if x != nil {
		if x, ok := x.Match.(*Condition_StringMatcher_PrefixNotMatch); ok {
			return x.PrefixNotMatch
		}
	}
	return ""
}

func (x *Condition_StringMatcher) GetPireRegexMatch() string {
	if x != nil {
		if x, ok := x.Match.(*Condition_StringMatcher_PireRegexMatch); ok {
			return x.PireRegexMatch
		}
	}
	return ""
}

func (x *Condition_StringMatcher) GetPireRegexNotMatch() string {
	if x != nil {
		if x, ok := x.Match.(*Condition_StringMatcher_PireRegexNotMatch); ok {
			return x.PireRegexNotMatch
		}
	}
	return ""
}

type isCondition_StringMatcher_Match interface {
	isCondition_StringMatcher_Match()
}

type Condition_StringMatcher_ExactMatch struct {
	ExactMatch string `protobuf:"bytes,1,opt,name=exact_match,json=exactMatch,proto3,oneof"`
}

type Condition_StringMatcher_ExactNotMatch struct {
	ExactNotMatch string `protobuf:"bytes,2,opt,name=exact_not_match,json=exactNotMatch,proto3,oneof"`
}

type Condition_StringMatcher_PrefixMatch struct {
	PrefixMatch string `protobuf:"bytes,3,opt,name=prefix_match,json=prefixMatch,proto3,oneof"`
}

type Condition_StringMatcher_PrefixNotMatch struct {
	PrefixNotMatch string `protobuf:"bytes,4,opt,name=prefix_not_match,json=prefixNotMatch,proto3,oneof"`
}

type Condition_StringMatcher_PireRegexMatch struct {
	PireRegexMatch string `protobuf:"bytes,5,opt,name=pire_regex_match,json=pireRegexMatch,proto3,oneof"`
}

type Condition_StringMatcher_PireRegexNotMatch struct {
	PireRegexNotMatch string `protobuf:"bytes,6,opt,name=pire_regex_not_match,json=pireRegexNotMatch,proto3,oneof"`
}

func (*Condition_StringMatcher_ExactMatch) isCondition_StringMatcher_Match() {}

func (*Condition_StringMatcher_ExactNotMatch) isCondition_StringMatcher_Match() {}

func (*Condition_StringMatcher_PrefixMatch) isCondition_StringMatcher_Match() {}

func (*Condition_StringMatcher_PrefixNotMatch) isCondition_StringMatcher_Match() {}

func (*Condition_StringMatcher_PireRegexMatch) isCondition_StringMatcher_Match() {}

func (*Condition_StringMatcher_PireRegexNotMatch) isCondition_StringMatcher_Match() {}

// HttpMethodMatcher object.
type Condition_HttpMethodMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of HTTP methods. OR semantics implied.
	HttpMethods   []*Condition_StringMatcher `protobuf:"bytes,1,rep,name=http_methods,json=httpMethods,proto3" json:"http_methods,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition_HttpMethodMatcher) ProtoMessage() {}

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

func (x *Condition_HttpMethodMatcher) GetHttpMethods() []*Condition_StringMatcher {
	if x != nil {
		return x.HttpMethods
	}
	return nil
}

// AuthorityMatcher object.
type Condition_AuthorityMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of authorities. OR semantics implied.
	Authorities   []*Condition_StringMatcher `protobuf:"bytes,1,rep,name=authorities,proto3" json:"authorities,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition_AuthorityMatcher) ProtoMessage() {}

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

func (x *Condition_AuthorityMatcher) GetAuthorities() []*Condition_StringMatcher {
	if x != nil {
		return x.Authorities
	}
	return nil
}

// RequestUriMatcher object. AND semantics implied.
type Condition_RequestUriMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Path of the URI [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#section-3.3).
	Path *Condition_StringMatcher `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// List of query matchers. AND semantics implied.
	Queries       []*Condition_QueryMatcher `protobuf:"bytes,2,rep,name=queries,proto3" json:"queries,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition_RequestUriMatcher) ProtoMessage() {}

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

func (x *Condition_RequestUriMatcher) GetPath() *Condition_StringMatcher {
	if x != nil {
		return x.Path
	}
	return nil
}

func (x *Condition_RequestUriMatcher) GetQueries() []*Condition_QueryMatcher {
	if x != nil {
		return x.Queries
	}
	return nil
}

// QueryMatcher object.
type Condition_QueryMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Key of the query parameter.
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// Value of the query parameter.
	Value         *Condition_StringMatcher `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition_QueryMatcher) ProtoMessage() {}

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

func (x *Condition_QueryMatcher) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *Condition_QueryMatcher) GetValue() *Condition_StringMatcher {
	if x != nil {
		return x.Value
	}
	return nil
}

// HeaderMatcher object.
type Condition_HeaderMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of header (case insensitive).
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Value of the header.
	Value         *Condition_StringMatcher `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition_HeaderMatcher) ProtoMessage() {}

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

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

func (x *Condition_HeaderMatcher) GetValue() *Condition_StringMatcher {
	if x != nil {
		return x.Value
	}
	return nil
}

// IpMatcher object. AND semantics implied.
type Condition_IpMatcher struct {
	state            protoimpl.MessageState     `protogen:"open.v1"`
	IpRangesMatch    *Condition_IpRangesMatcher `protobuf:"bytes,1,opt,name=ip_ranges_match,json=ipRangesMatch,proto3" json:"ip_ranges_match,omitempty"`
	IpRangesNotMatch *Condition_IpRangesMatcher `protobuf:"bytes,2,opt,name=ip_ranges_not_match,json=ipRangesNotMatch,proto3" json:"ip_ranges_not_match,omitempty"`
	GeoIpMatch       *Condition_GeoIpMatcher    `protobuf:"bytes,3,opt,name=geo_ip_match,json=geoIpMatch,proto3" json:"geo_ip_match,omitempty"`
	GeoIpNotMatch    *Condition_GeoIpMatcher    `protobuf:"bytes,4,opt,name=geo_ip_not_match,json=geoIpNotMatch,proto3" json:"geo_ip_not_match,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*Condition_IpMatcher) ProtoMessage() {}

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

func (x *Condition_IpMatcher) GetIpRangesMatch() *Condition_IpRangesMatcher {
	if x != nil {
		return x.IpRangesMatch
	}
	return nil
}

func (x *Condition_IpMatcher) GetIpRangesNotMatch() *Condition_IpRangesMatcher {
	if x != nil {
		return x.IpRangesNotMatch
	}
	return nil
}

func (x *Condition_IpMatcher) GetGeoIpMatch() *Condition_GeoIpMatcher {
	if x != nil {
		return x.GeoIpMatch
	}
	return nil
}

func (x *Condition_IpMatcher) GetGeoIpNotMatch() *Condition_GeoIpMatcher {
	if x != nil {
		return x.GeoIpNotMatch
	}
	return nil
}

// IpRangesMatcher object.
type Condition_IpRangesMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of IP ranges. OR semantics implied.
	IpRanges      []string `protobuf:"bytes,1,rep,name=ip_ranges,json=ipRanges,proto3" json:"ip_ranges,omitempty"` // v4/v6 - allow, exact IP == /32 or /128 range
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition_IpRangesMatcher) ProtoMessage() {}

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

func (x *Condition_IpRangesMatcher) GetIpRanges() []string {
	if x != nil {
		return x.IpRanges
	}
	return nil
}

// GeoIpMatcher object.
type Condition_GeoIpMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ISO 3166-1 alpha 2. OR semantics implied.
	Locations     []string `protobuf:"bytes,1,rep,name=locations,proto3" json:"locations,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition_GeoIpMatcher) ProtoMessage() {}

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

func (x *Condition_GeoIpMatcher) GetLocations() []string {
	if x != nil {
		return x.Locations
	}
	return nil
}

var File_yandex_cloud_smartwebsecurity_v1_security_profile_proto protoreflect.FileDescriptor

const file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDesc = "" +
	"\n" +
	"7yandex/cloud/smartwebsecurity/v1/security_profile.proto\x12 yandex.cloud.smartwebsecurity.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dyandex/cloud/validation.proto\"\xc6\t\n" +
	"\x0fSecurityProfile\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x1b\n" +
	"\tfolder_id\x18\x02 \x01(\tR\bfolderId\x12\x92\x01\n" +
	"\x06labels\x18\x03 \x03(\v2=.yandex.cloud.smartwebsecurity.v1.SecurityProfile.LabelsEntryB;\xf2\xc71\v[-_0-9a-z]*\x82\xc81\x04<=64\x8a\xc81\x04<=63\xb2\xc81\x18\x12\x10[a-z][-_0-9a-z]*\x1a\x041-63R\x06labels\x12>\n" +
	"\x04name\x18\x04 \x01(\tB*\xe8\xc71\x01\xf2\xc71\x1a[a-zA-Z0-9][a-zA-Z0-9-_.]*\x8a\xc81\x041-50R\x04name\x12+\n" +
	"\vdescription\x18\x05 \x01(\tB\t\x8a\xc81\x05<=512R\vdescription\x12l\n" +
	"\x0edefault_action\x18\x06 \x01(\x0e2?.yandex.cloud.smartwebsecurity.v1.SecurityProfile.DefaultActionB\x04\xe8\xc71\x01R\rdefaultAction\x12U\n" +
	"\x0esecurity_rules\x18\a \x03(\v2..yandex.cloud.smartwebsecurity.v1.SecurityRuleR\rsecurityRules\x129\n" +
	"\n" +
	"created_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x19\n" +
	"\bcloud_id\x18\n" +
	" \x01(\tR\acloudId\x12\x1d\n" +
	"\n" +
	"captcha_id\x18\v \x01(\tR\tcaptchaId\x12F\n" +
	" advanced_rate_limiter_profile_id\x18\f \x01(\tR\x1cadvancedRateLimiterProfileId\x12v\n" +
	"\x14analyze_request_body\x18\r \x01(\v2D.yandex.cloud.smartwebsecurity.v1.SecurityProfile.AnalyzeRequestBodyR\x12analyzeRequestBody\x1a\x82\x02\n" +
	"\x12AnalyzeRequestBody\x12;\n" +
	"\n" +
	"size_limit\x18\x01 \x01(\x03B\x1c\xfa\xc71\x180,8,16,32,64,128,256,512R\tsizeLimit\x12w\n" +
	"\x11size_limit_action\x18\x02 \x01(\x0e2K.yandex.cloud.smartwebsecurity.v1.SecurityProfile.AnalyzeRequestBody.ActionR\x0fsizeLimitAction\"6\n" +
	"\x06Action\x12\x16\n" +
	"\x12ACTION_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06IGNORE\x10\x01\x12\b\n" +
	"\x04DENY\x10\x02\x1a9\n" +
	"\vLabelsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"D\n" +
	"\rDefaultAction\x12\x1e\n" +
	"\x1aDEFAULT_ACTION_UNSPECIFIED\x10\x00\x12\t\n" +
	"\x05ALLOW\x10\x01\x12\b\n" +
	"\x04DENY\x10\x02J\x04\b\t\x10\n" +
	"\"\xc3\t\n" +
	"\fSecurityRule\x12>\n" +
	"\x04name\x18\x01 \x01(\tB*\xe8\xc71\x01\xf2\xc71\x1a[a-zA-Z0-9][a-zA-Z0-9-_.]*\x8a\xc81\x041-50R\x04name\x12(\n" +
	"\bpriority\x18\x02 \x01(\x03B\f\xfa\xc71\b1-999999R\bpriority\x12\x17\n" +
	"\adry_run\x18\x03 \x01(\bR\x06dryRun\x12e\n" +
	"\x0erule_condition\x18\x04 \x01(\v2<.yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleConditionH\x00R\rruleCondition\x12k\n" +
	"\x10smart_protection\x18\x05 \x01(\v2>.yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtectionH\x00R\x0fsmartProtection\x12F\n" +
	"\x03waf\x18\x06 \x01(\v22.yandex.cloud.smartwebsecurity.v1.SecurityRule.WafH\x00R\x03waf\x12+\n" +
	"\vdescription\x18\a \x01(\tB\t\x8a\xc81\x05<=512R\vdescription\x1a\xee\x01\n" +
	"\rRuleCondition\x12[\n" +
	"\x06action\x18\x01 \x01(\x0e2C.yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleCondition.ActionR\x06action\x12I\n" +
	"\tcondition\x18\x02 \x01(\v2+.yandex.cloud.smartwebsecurity.v1.ConditionR\tcondition\"5\n" +
	"\x06Action\x12\x16\n" +
	"\x12ACTION_UNSPECIFIED\x10\x00\x12\t\n" +
	"\x05ALLOW\x10\x01\x12\b\n" +
	"\x04DENY\x10\x02\x1a\xe6\x01\n" +
	"\x0fSmartProtection\x12W\n" +
	"\x04mode\x18\x01 \x01(\x0e2C.yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtection.ModeR\x04mode\x12I\n" +
	"\tcondition\x18\x02 \x01(\v2+.yandex.cloud.smartwebsecurity.v1.ConditionR\tcondition\"/\n" +
	"\x04Mode\x12\x14\n" +
	"\x10MODE_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04FULL\x10\x01\x12\a\n" +
	"\x03API\x10\x02\x1a\xfa\x01\n" +
	"\x03Waf\x12K\n" +
	"\x04mode\x18\x01 \x01(\x0e27.yandex.cloud.smartwebsecurity.v1.SecurityRule.Waf.ModeR\x04mode\x12I\n" +
	"\tcondition\x18\x02 \x01(\v2+.yandex.cloud.smartwebsecurity.v1.ConditionR\tcondition\x12*\n" +
	"\x0ewaf_profile_id\x18\x03 \x01(\tB\x04\xe8\xc71\x01R\fwafProfileId\"/\n" +
	"\x04Mode\x12\x14\n" +
	"\x10MODE_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04FULL\x10\x01\x12\a\n" +
	"\x03API\x10\x02B\x10\n" +
	"\x0erule_specifier\"\x9f\x10\n" +
	"\tCondition\x12Z\n" +
	"\tauthority\x18\x01 \x01(\v2<.yandex.cloud.smartwebsecurity.v1.Condition.AuthorityMatcherR\tauthority\x12^\n" +
	"\vhttp_method\x18\x02 \x01(\v2=.yandex.cloud.smartwebsecurity.v1.Condition.HttpMethodMatcherR\n" +
	"httpMethod\x12^\n" +
	"\vrequest_uri\x18\x03 \x01(\v2=.yandex.cloud.smartwebsecurity.v1.Condition.RequestUriMatcherR\n" +
	"requestUri\x12]\n" +
	"\aheaders\x18\x04 \x03(\v29.yandex.cloud.smartwebsecurity.v1.Condition.HeaderMatcherB\b\x82\xc81\x04<=20R\aheaders\x12R\n" +
	"\tsource_ip\x18\x05 \x01(\v25.yandex.cloud.smartwebsecurity.v1.Condition.IpMatcherR\bsourceIp\x1a\xd7\x02\n" +
	"\rStringMatcher\x12,\n" +
	"\vexact_match\x18\x01 \x01(\tB\t\x8a\xc81\x050-255H\x00R\n" +
	"exactMatch\x123\n" +
	"\x0fexact_not_match\x18\x02 \x01(\tB\t\x8a\xc81\x050-255H\x00R\rexactNotMatch\x12.\n" +
	"\fprefix_match\x18\x03 \x01(\tB\t\x8a\xc81\x050-255H\x00R\vprefixMatch\x125\n" +
	"\x10prefix_not_match\x18\x04 \x01(\tB\t\x8a\xc81\x050-255H\x00R\x0eprefixNotMatch\x125\n" +
	"\x10pire_regex_match\x18\x05 \x01(\tB\t\x8a\xc81\x050-255H\x00R\x0epireRegexMatch\x12<\n" +
	"\x14pire_regex_not_match\x18\x06 \x01(\tB\t\x8a\xc81\x050-255H\x00R\x11pireRegexNotMatchB\a\n" +
	"\x05match\x1a{\n" +
	"\x11HttpMethodMatcher\x12f\n" +
	"\fhttp_methods\x18\x01 \x03(\v29.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcherB\b\x82\xc81\x04<=20R\vhttpMethods\x1ay\n" +
	"\x10AuthorityMatcher\x12e\n" +
	"\vauthorities\x18\x01 \x03(\v29.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcherB\b\x82\xc81\x04<=20R\vauthorities\x1a\xc0\x01\n" +
	"\x11RequestUriMatcher\x12M\n" +
	"\x04path\x18\x01 \x01(\v29.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcherR\x04path\x12\\\n" +
	"\aqueries\x18\x02 \x03(\v28.yandex.cloud.smartwebsecurity.v1.Condition.QueryMatcherB\b\x82\xc81\x04<=20R\aqueries\x1a\x86\x01\n" +
	"\fQueryMatcher\x12\x1f\n" +
	"\x03key\x18\x01 \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x051-255R\x03key\x12U\n" +
	"\x05value\x18\x02 \x01(\v29.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcherB\x04\xe8\xc71\x01R\x05value\x1a\x89\x01\n" +
	"\rHeaderMatcher\x12!\n" +
	"\x04name\x18\x01 \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x051-255R\x04name\x12U\n" +
	"\x05value\x18\x02 \x01(\v29.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcherB\x04\xe8\xc71\x01R\x05value\x1a\x9b\x03\n" +
	"\tIpMatcher\x12c\n" +
	"\x0fip_ranges_match\x18\x01 \x01(\v2;.yandex.cloud.smartwebsecurity.v1.Condition.IpRangesMatcherR\ripRangesMatch\x12j\n" +
	"\x13ip_ranges_not_match\x18\x02 \x01(\v2;.yandex.cloud.smartwebsecurity.v1.Condition.IpRangesMatcherR\x10ipRangesNotMatch\x12Z\n" +
	"\fgeo_ip_match\x18\x03 \x01(\v28.yandex.cloud.smartwebsecurity.v1.Condition.GeoIpMatcherR\n" +
	"geoIpMatch\x12a\n" +
	"\x10geo_ip_not_match\x18\x04 \x01(\v28.yandex.cloud.smartwebsecurity.v1.Condition.GeoIpMatcherR\rgeoIpNotMatch\x1a;\n" +
	"\x0fIpRangesMatcher\x12(\n" +
	"\tip_ranges\x18\x01 \x03(\tB\v\x82\xc81\a<=10000R\bipRanges\x1a>\n" +
	"\fGeoIpMatcher\x12.\n" +
	"\tlocations\x18\x01 \x03(\tB\x10\x82\xc81\x03>=1\x8a\xc81\x012\x90\xc81\x01R\tlocationsB}\n" +
	"$yandex.cloud.api.smartwebsecurity.v1ZUgithub.com/yandex-cloud/go-genproto/yandex/cloud/smartwebsecurity/v1;smartwebsecurityb\x06proto3"

var (
	file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDescOnce sync.Once
	file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDescData []byte
)

func file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDescGZIP() []byte {
	file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDesc), len(file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDesc)))
	})
	return file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDescData
}

var file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_goTypes = []any{
	(SecurityProfile_DefaultAction)(0),             // 0: yandex.cloud.smartwebsecurity.v1.SecurityProfile.DefaultAction
	(SecurityProfile_AnalyzeRequestBody_Action)(0), // 1: yandex.cloud.smartwebsecurity.v1.SecurityProfile.AnalyzeRequestBody.Action
	(SecurityRule_RuleCondition_Action)(0),         // 2: yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleCondition.Action
	(SecurityRule_SmartProtection_Mode)(0),         // 3: yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtection.Mode
	(SecurityRule_Waf_Mode)(0),                     // 4: yandex.cloud.smartwebsecurity.v1.SecurityRule.Waf.Mode
	(*SecurityProfile)(nil),                        // 5: yandex.cloud.smartwebsecurity.v1.SecurityProfile
	(*SecurityRule)(nil),                           // 6: yandex.cloud.smartwebsecurity.v1.SecurityRule
	(*Condition)(nil),                              // 7: yandex.cloud.smartwebsecurity.v1.Condition
	(*SecurityProfile_AnalyzeRequestBody)(nil),     // 8: yandex.cloud.smartwebsecurity.v1.SecurityProfile.AnalyzeRequestBody
	nil,                                  // 9: yandex.cloud.smartwebsecurity.v1.SecurityProfile.LabelsEntry
	(*SecurityRule_RuleCondition)(nil),   // 10: yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleCondition
	(*SecurityRule_SmartProtection)(nil), // 11: yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtection
	(*SecurityRule_Waf)(nil),             // 12: yandex.cloud.smartwebsecurity.v1.SecurityRule.Waf
	(*Condition_StringMatcher)(nil),      // 13: yandex.cloud.smartwebsecurity.v1.Condition.StringMatcher
	(*Condition_HttpMethodMatcher)(nil),  // 14: yandex.cloud.smartwebsecurity.v1.Condition.HttpMethodMatcher
	(*Condition_AuthorityMatcher)(nil),   // 15: yandex.cloud.smartwebsecurity.v1.Condition.AuthorityMatcher
	(*Condition_RequestUriMatcher)(nil),  // 16: yandex.cloud.smartwebsecurity.v1.Condition.RequestUriMatcher
	(*Condition_QueryMatcher)(nil),       // 17: yandex.cloud.smartwebsecurity.v1.Condition.QueryMatcher
	(*Condition_HeaderMatcher)(nil),      // 18: yandex.cloud.smartwebsecurity.v1.Condition.HeaderMatcher
	(*Condition_IpMatcher)(nil),          // 19: yandex.cloud.smartwebsecurity.v1.Condition.IpMatcher
	(*Condition_IpRangesMatcher)(nil),    // 20: yandex.cloud.smartwebsecurity.v1.Condition.IpRangesMatcher
	(*Condition_GeoIpMatcher)(nil),       // 21: yandex.cloud.smartwebsecurity.v1.Condition.GeoIpMatcher
	(*timestamppb.Timestamp)(nil),        // 22: google.protobuf.Timestamp
}
var file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_depIdxs = []int32{
	9,  // 0: yandex.cloud.smartwebsecurity.v1.SecurityProfile.labels:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityProfile.LabelsEntry
	0,  // 1: yandex.cloud.smartwebsecurity.v1.SecurityProfile.default_action:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityProfile.DefaultAction
	6,  // 2: yandex.cloud.smartwebsecurity.v1.SecurityProfile.security_rules:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityRule
	22, // 3: yandex.cloud.smartwebsecurity.v1.SecurityProfile.created_at:type_name -> google.protobuf.Timestamp
	8,  // 4: yandex.cloud.smartwebsecurity.v1.SecurityProfile.analyze_request_body:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityProfile.AnalyzeRequestBody
	10, // 5: yandex.cloud.smartwebsecurity.v1.SecurityRule.rule_condition:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleCondition
	11, // 6: yandex.cloud.smartwebsecurity.v1.SecurityRule.smart_protection:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtection
	12, // 7: yandex.cloud.smartwebsecurity.v1.SecurityRule.waf:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityRule.Waf
	15, // 8: yandex.cloud.smartwebsecurity.v1.Condition.authority:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.AuthorityMatcher
	14, // 9: yandex.cloud.smartwebsecurity.v1.Condition.http_method:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.HttpMethodMatcher
	16, // 10: yandex.cloud.smartwebsecurity.v1.Condition.request_uri:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.RequestUriMatcher
	18, // 11: yandex.cloud.smartwebsecurity.v1.Condition.headers:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.HeaderMatcher
	19, // 12: yandex.cloud.smartwebsecurity.v1.Condition.source_ip:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.IpMatcher
	1,  // 13: yandex.cloud.smartwebsecurity.v1.SecurityProfile.AnalyzeRequestBody.size_limit_action:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityProfile.AnalyzeRequestBody.Action
	2,  // 14: yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleCondition.action:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleCondition.Action
	7,  // 15: yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleCondition.condition:type_name -> yandex.cloud.smartwebsecurity.v1.Condition
	3,  // 16: yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtection.mode:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtection.Mode
	7,  // 17: yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtection.condition:type_name -> yandex.cloud.smartwebsecurity.v1.Condition
	4,  // 18: yandex.cloud.smartwebsecurity.v1.SecurityRule.Waf.mode:type_name -> yandex.cloud.smartwebsecurity.v1.SecurityRule.Waf.Mode
	7,  // 19: yandex.cloud.smartwebsecurity.v1.SecurityRule.Waf.condition:type_name -> yandex.cloud.smartwebsecurity.v1.Condition
	13, // 20: yandex.cloud.smartwebsecurity.v1.Condition.HttpMethodMatcher.http_methods:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.StringMatcher
	13, // 21: yandex.cloud.smartwebsecurity.v1.Condition.AuthorityMatcher.authorities:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.StringMatcher
	13, // 22: yandex.cloud.smartwebsecurity.v1.Condition.RequestUriMatcher.path:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.StringMatcher
	17, // 23: yandex.cloud.smartwebsecurity.v1.Condition.RequestUriMatcher.queries:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.QueryMatcher
	13, // 24: yandex.cloud.smartwebsecurity.v1.Condition.QueryMatcher.value:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.StringMatcher
	13, // 25: yandex.cloud.smartwebsecurity.v1.Condition.HeaderMatcher.value:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.StringMatcher
	20, // 26: yandex.cloud.smartwebsecurity.v1.Condition.IpMatcher.ip_ranges_match:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.IpRangesMatcher
	20, // 27: yandex.cloud.smartwebsecurity.v1.Condition.IpMatcher.ip_ranges_not_match:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.IpRangesMatcher
	21, // 28: yandex.cloud.smartwebsecurity.v1.Condition.IpMatcher.geo_ip_match:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.GeoIpMatcher
	21, // 29: yandex.cloud.smartwebsecurity.v1.Condition.IpMatcher.geo_ip_not_match:type_name -> yandex.cloud.smartwebsecurity.v1.Condition.GeoIpMatcher
	30, // [30:30] is the sub-list for method output_type
	30, // [30:30] is the sub-list for method input_type
	30, // [30:30] is the sub-list for extension type_name
	30, // [30:30] is the sub-list for extension extendee
	0,  // [0:30] is the sub-list for field type_name
}

func init() { file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_init() }
func file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_init() {
	if File_yandex_cloud_smartwebsecurity_v1_security_profile_proto != nil {
		return
	}
	file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_msgTypes[1].OneofWrappers = []any{
		(*SecurityRule_RuleCondition_)(nil),
		(*SecurityRule_SmartProtection_)(nil),
		(*SecurityRule_Waf_)(nil),
	}
	file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_msgTypes[8].OneofWrappers = []any{
		(*Condition_StringMatcher_ExactMatch)(nil),
		(*Condition_StringMatcher_ExactNotMatch)(nil),
		(*Condition_StringMatcher_PrefixMatch)(nil),
		(*Condition_StringMatcher_PrefixNotMatch)(nil),
		(*Condition_StringMatcher_PireRegexMatch)(nil),
		(*Condition_StringMatcher_PireRegexNotMatch)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDesc), len(file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_rawDesc)),
			NumEnums:      5,
			NumMessages:   17,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_msgTypes,
	}.Build()
	File_yandex_cloud_smartwebsecurity_v1_security_profile_proto = out.File
	file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_goTypes = nil
	file_yandex_cloud_smartwebsecurity_v1_security_profile_proto_depIdxs = nil
}
