// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v3.21.12
// source: yandex/cloud/smartcaptcha/v1/captcha.proto

package smartcaptcha

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)
)

// Captcha's complexity.
type CaptchaComplexity int32

const (
	CaptchaComplexity_CAPTCHA_COMPLEXITY_UNSPECIFIED CaptchaComplexity = 0
	// High chance to pass pre-check and easy advanced challenge.
	CaptchaComplexity_EASY CaptchaComplexity = 1
	// Medium chance to pass pre-check and normal advanced challenge.
	CaptchaComplexity_MEDIUM CaptchaComplexity = 2
	// Little chance to pass pre-check and hard advanced challenge.
	CaptchaComplexity_HARD CaptchaComplexity = 3
	// Impossible to pass pre-check and hard advanced challenge.
	CaptchaComplexity_FORCE_HARD CaptchaComplexity = 4
)

// Enum value maps for CaptchaComplexity.
var (
	CaptchaComplexity_name = map[int32]string{
		0: "CAPTCHA_COMPLEXITY_UNSPECIFIED",
		1: "EASY",
		2: "MEDIUM",
		3: "HARD",
		4: "FORCE_HARD",
	}
	CaptchaComplexity_value = map[string]int32{
		"CAPTCHA_COMPLEXITY_UNSPECIFIED": 0,
		"EASY":                           1,
		"MEDIUM":                         2,
		"HARD":                           3,
		"FORCE_HARD":                     4,
	}
)

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

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

func (CaptchaComplexity) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_enumTypes[0].Descriptor()
}

func (CaptchaComplexity) Type() protoreflect.EnumType {
	return &file_yandex_cloud_smartcaptcha_v1_captcha_proto_enumTypes[0]
}

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

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

// Captcha's basic check type, see [Task types / Main task](/docs/smartcaptcha/concepts/tasks#main-task).
type CaptchaPreCheckType int32

const (
	CaptchaPreCheckType_CAPTCHA_PRE_CHECK_TYPE_UNSPECIFIED CaptchaPreCheckType = 0
	// User must click the "I am not a robot" button.
	CaptchaPreCheckType_CHECKBOX CaptchaPreCheckType = 1
	// User must move the slider from left to right.
	CaptchaPreCheckType_SLIDER CaptchaPreCheckType = 2
)

// Enum value maps for CaptchaPreCheckType.
var (
	CaptchaPreCheckType_name = map[int32]string{
		0: "CAPTCHA_PRE_CHECK_TYPE_UNSPECIFIED",
		1: "CHECKBOX",
		2: "SLIDER",
	}
	CaptchaPreCheckType_value = map[string]int32{
		"CAPTCHA_PRE_CHECK_TYPE_UNSPECIFIED": 0,
		"CHECKBOX":                           1,
		"SLIDER":                             2,
	}
)

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

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

func (CaptchaPreCheckType) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_enumTypes[1].Descriptor()
}

func (CaptchaPreCheckType) Type() protoreflect.EnumType {
	return &file_yandex_cloud_smartcaptcha_v1_captcha_proto_enumTypes[1]
}

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

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

// Additional task, see [Task types / Additional task](/docs/smartcaptcha/concepts/tasks#additional-task).
type CaptchaChallengeType int32

const (
	CaptchaChallengeType_CAPTCHA_CHALLENGE_TYPE_UNSPECIFIED CaptchaChallengeType = 0
	// Text recognition: The user has to type a distorted text from the picture into a special field.
	CaptchaChallengeType_IMAGE_TEXT CaptchaChallengeType = 1
	// Silhouettes: The user has to mark several icons from the picture in a particular order.
	CaptchaChallengeType_SILHOUETTES CaptchaChallengeType = 2
	// Kaleidoscope: The user has to build a picture from individual parts by shuffling them using a slider.
	CaptchaChallengeType_KALEIDOSCOPE CaptchaChallengeType = 3
)

// Enum value maps for CaptchaChallengeType.
var (
	CaptchaChallengeType_name = map[int32]string{
		0: "CAPTCHA_CHALLENGE_TYPE_UNSPECIFIED",
		1: "IMAGE_TEXT",
		2: "SILHOUETTES",
		3: "KALEIDOSCOPE",
	}
	CaptchaChallengeType_value = map[string]int32{
		"CAPTCHA_CHALLENGE_TYPE_UNSPECIFIED": 0,
		"IMAGE_TEXT":                         1,
		"SILHOUETTES":                        2,
		"KALEIDOSCOPE":                       3,
	}
)

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

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

func (CaptchaChallengeType) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_enumTypes[2].Descriptor()
}

func (CaptchaChallengeType) Type() protoreflect.EnumType {
	return &file_yandex_cloud_smartcaptcha_v1_captcha_proto_enumTypes[2]
}

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

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

// A Captcha resource.
type Captcha struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the folder that the captcha belongs to.
	FolderId string `protobuf:"bytes,2,opt,name=folder_id,json=folderId,proto3" json:"folder_id,omitempty"`
	// Client key of the captcha, see [CAPTCHA keys](/docs/smartcaptcha/concepts/keys).
	ClientKey string `protobuf:"bytes,3,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"`
	// Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Name of the captcha. The name is unique within the folder. 3-63 characters long.
	Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
	// List of allowed host names, see [Domain validation](/docs/smartcaptcha/concepts/domain-validation).
	AllowedSites []string `protobuf:"bytes,8,rep,name=allowed_sites,json=allowedSites,proto3" json:"allowed_sites,omitempty"`
	// Complexity of the captcha.
	Complexity CaptchaComplexity `protobuf:"varint,9,opt,name=complexity,proto3,enum=yandex.cloud.smartcaptcha.v1.CaptchaComplexity" json:"complexity,omitempty"`
	// JSON with variables to define the captcha appearance. For more details see generated JSON in cloud console.
	StyleJson string `protobuf:"bytes,10,opt,name=style_json,json=styleJson,proto3" json:"style_json,omitempty"`
	// ID of the cloud that the captcha belongs to.
	CloudId string `protobuf:"bytes,12,opt,name=cloud_id,json=cloudId,proto3" json:"cloud_id,omitempty"`
	// Determines that the captcha is currently in restricted mode, see [SmartCaptcha restricted mode](/docs/smartcaptcha/concepts/restricted-mode).
	Suspend bool `protobuf:"varint,13,opt,name=suspend,proto3" json:"suspend,omitempty"`
	// Turn off host name check, see [Domain validation](/docs/smartcaptcha/concepts/domain-validation).
	TurnOffHostnameCheck bool `protobuf:"varint,14,opt,name=turn_off_hostname_check,json=turnOffHostnameCheck,proto3" json:"turn_off_hostname_check,omitempty"`
	// Basic check type of the captcha.
	PreCheckType CaptchaPreCheckType `protobuf:"varint,16,opt,name=pre_check_type,json=preCheckType,proto3,enum=yandex.cloud.smartcaptcha.v1.CaptchaPreCheckType" json:"pre_check_type,omitempty"`
	// Additional task type of the captcha.
	ChallengeType CaptchaChallengeType `protobuf:"varint,17,opt,name=challenge_type,json=challengeType,proto3,enum=yandex.cloud.smartcaptcha.v1.CaptchaChallengeType" json:"challenge_type,omitempty"`
	// List of security rules.
	SecurityRules []*SecurityRule `protobuf:"bytes,19,rep,name=security_rules,json=securityRules,proto3" json:"security_rules,omitempty"`
	// ID of the captcha.
	Id string `protobuf:"bytes,21,opt,name=id,proto3" json:"id,omitempty"` // need to replace captcha_id in future
	// Determines whether captcha is protected from being deleted.
	DeletionProtection bool `protobuf:"varint,22,opt,name=deletion_protection,json=deletionProtection,proto3" json:"deletion_protection,omitempty"`
	// List of variants to use in security_rules
	OverrideVariants []*OverrideVariant `protobuf:"bytes,23,rep,name=override_variants,json=overrideVariants,proto3" json:"override_variants,omitempty"`
	// Disables the use of HTTP request data for training and improving the service's ML models.
	DisallowDataProcessing bool `protobuf:"varint,24,opt,name=disallow_data_processing,json=disallowDataProcessing,proto3" json:"disallow_data_processing,omitempty"`
	// Optional description of the captcha.
	Description string `protobuf:"bytes,25,opt,name=description,proto3" json:"description,omitempty"`
	// Labels as “ key:value “ pairs. Maximum of 64 per resource.
	Labels        map[string]string `protobuf:"bytes,26,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Captcha) ProtoMessage() {}

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

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

func (x *Captcha) GetClientKey() string {
	if x != nil {
		return x.ClientKey
	}
	return ""
}

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

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

func (x *Captcha) GetAllowedSites() []string {
	if x != nil {
		return x.AllowedSites
	}
	return nil
}

func (x *Captcha) GetComplexity() CaptchaComplexity {
	if x != nil {
		return x.Complexity
	}
	return CaptchaComplexity_CAPTCHA_COMPLEXITY_UNSPECIFIED
}

func (x *Captcha) GetStyleJson() string {
	if x != nil {
		return x.StyleJson
	}
	return ""
}

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

func (x *Captcha) GetSuspend() bool {
	if x != nil {
		return x.Suspend
	}
	return false
}

func (x *Captcha) GetTurnOffHostnameCheck() bool {
	if x != nil {
		return x.TurnOffHostnameCheck
	}
	return false
}

func (x *Captcha) GetPreCheckType() CaptchaPreCheckType {
	if x != nil {
		return x.PreCheckType
	}
	return CaptchaPreCheckType_CAPTCHA_PRE_CHECK_TYPE_UNSPECIFIED
}

func (x *Captcha) GetChallengeType() CaptchaChallengeType {
	if x != nil {
		return x.ChallengeType
	}
	return CaptchaChallengeType_CAPTCHA_CHALLENGE_TYPE_UNSPECIFIED
}

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

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

func (x *Captcha) GetDeletionProtection() bool {
	if x != nil {
		return x.DeletionProtection
	}
	return false
}

func (x *Captcha) GetOverrideVariants() []*OverrideVariant {
	if x != nil {
		return x.OverrideVariants
	}
	return nil
}

func (x *Captcha) GetDisallowDataProcessing() bool {
	if x != nil {
		return x.DisallowDataProcessing
	}
	return false
}

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

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

// OverrideVariant object. Contains the settings to override.
type OverrideVariant struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique identifier of the variant.
	Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
	// Optional description of the rule. 0-512 characters long.
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// Complexity of the captcha.
	Complexity CaptchaComplexity `protobuf:"varint,3,opt,name=complexity,proto3,enum=yandex.cloud.smartcaptcha.v1.CaptchaComplexity" json:"complexity,omitempty"`
	// Basic check type of the captcha.
	PreCheckType CaptchaPreCheckType `protobuf:"varint,4,opt,name=pre_check_type,json=preCheckType,proto3,enum=yandex.cloud.smartcaptcha.v1.CaptchaPreCheckType" json:"pre_check_type,omitempty"`
	// Additional task type of the captcha.
	ChallengeType CaptchaChallengeType `protobuf:"varint,5,opt,name=challenge_type,json=challengeType,proto3,enum=yandex.cloud.smartcaptcha.v1.CaptchaChallengeType" json:"challenge_type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*OverrideVariant) ProtoMessage() {}

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

func (x *OverrideVariant) GetUuid() string {
	if x != nil {
		return x.Uuid
	}
	return ""
}

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

func (x *OverrideVariant) GetComplexity() CaptchaComplexity {
	if x != nil {
		return x.Complexity
	}
	return CaptchaComplexity_CAPTCHA_COMPLEXITY_UNSPECIFIED
}

func (x *OverrideVariant) GetPreCheckType() CaptchaPreCheckType {
	if x != nil {
		return x.PreCheckType
	}
	return CaptchaPreCheckType_CAPTCHA_PRE_CHECK_TYPE_UNSPECIFIED
}

func (x *OverrideVariant) GetChallengeType() CaptchaChallengeType {
	if x != nil {
		return x.ChallengeType
	}
	return CaptchaChallengeType_CAPTCHA_CHALLENGE_TYPE_UNSPECIFIED
}

// SecurityRule object. Defines the condition and action: when and which variant to show.
type SecurityRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of the rule. The name is unique within the captcha. 1-50 characters long.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Priority of the rule. Lower value means higher priority.
	Priority int64 `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"`
	// Optional description of the rule. 0-512 characters long.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// The condition for matching the rule.
	Condition *Condition `protobuf:"bytes,4,opt,name=condition,proto3" json:"condition,omitempty"`
	// Variant UUID to show in case of match the rule. Keep empty to use defaults.
	OverrideVariantUuid string `protobuf:"bytes,6,opt,name=override_variant_uuid,json=overrideVariantUuid,proto3" json:"override_variant_uuid,omitempty"` // Keep empty to use defaults
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

func (x *SecurityRule) Reset() {
	*x = SecurityRule{}
	mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[2]
	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_smartcaptcha_v1_captcha_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 SecurityRule.ProtoReflect.Descriptor instead.
func (*SecurityRule) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescGZIP(), []int{2}
}

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) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

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

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

// Condition object. AND semantics implied.
type Condition struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// *AND* semantics implied.
	Host *Condition_HostMatcher `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` // host where captcha placed
	// URI where captcha placed.
	Uri *Condition_UriMatcher `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` // URL where captcha placed
	// Captcha request headers.
	Headers []*Condition_HeaderMatcher `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"` // captcha request headers
	// The IP address of the requester.
	SourceIp      *Condition_IpMatcher `protobuf:"bytes,4,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_smartcaptcha_v1_captcha_proto_msgTypes[3]
	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_smartcaptcha_v1_captcha_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 Condition.ProtoReflect.Descriptor instead.
func (*Condition) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescGZIP(), []int{3}
}

func (x *Condition) GetHost() *Condition_HostMatcher {
	if x != nil {
		return x.Host
	}
	return nil
}

func (x *Condition) GetUri() *Condition_UriMatcher {
	if x != nil {
		return x.Uri
	}
	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
}

// CaptchaSecretKey object. Contains captcha data that need to keep in secret.
type CaptchaSecretKey struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Server key of the captcha, see [CAPTCHA keys](/docs/smartcaptcha/concepts/keys).
	ServerKey     string `protobuf:"bytes,1,opt,name=server_key,json=serverKey,proto3" json:"server_key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CaptchaSecretKey) ProtoMessage() {}

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

func (x *CaptchaSecretKey) GetServerKey() string {
	if x != nil {
		return x.ServerKey
	}
	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_smartcaptcha_v1_captcha_proto_msgTypes[6]
	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_smartcaptcha_v1_captcha_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 Condition_StringMatcher.ProtoReflect.Descriptor instead.
func (*Condition_StringMatcher) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescGZIP(), []int{3, 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 {
	// Exact match condition.
	ExactMatch string `protobuf:"bytes,1,opt,name=exact_match,json=exactMatch,proto3,oneof"`
}

type Condition_StringMatcher_ExactNotMatch struct {
	// Exact not match condition.
	ExactNotMatch string `protobuf:"bytes,2,opt,name=exact_not_match,json=exactNotMatch,proto3,oneof"`
}

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

type Condition_StringMatcher_PrefixNotMatch struct {
	// Prefix not match condition.
	PrefixNotMatch string `protobuf:"bytes,4,opt,name=prefix_not_match,json=prefixNotMatch,proto3,oneof"`
}

type Condition_StringMatcher_PireRegexMatch struct {
	// PIRE regex match condition.
	PireRegexMatch string `protobuf:"bytes,5,opt,name=pire_regex_match,json=pireRegexMatch,proto3,oneof"`
}

type Condition_StringMatcher_PireRegexNotMatch struct {
	// PIRE regex not match condition.
	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() {}

// HostMatcher object.
type Condition_HostMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of hosts. OR semantics implied.
	//
	// Deprecated: Marked as deprecated in yandex/cloud/smartcaptcha/v1/captcha.proto.
	Hosts []*Condition_StringMatcher `protobuf:"bytes,1,rep,name=hosts,proto3" json:"hosts,omitempty"`
	// Host matcher.
	HostMatcher   *Condition_StringMatcher `protobuf:"bytes,2,opt,name=host_matcher,json=hostMatcher,proto3" json:"host_matcher,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition_HostMatcher) ProtoMessage() {}

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

// Deprecated: Marked as deprecated in yandex/cloud/smartcaptcha/v1/captcha.proto.
func (x *Condition_HostMatcher) GetHosts() []*Condition_StringMatcher {
	if x != nil {
		return x.Hosts
	}
	return nil
}

func (x *Condition_HostMatcher) GetHostMatcher() *Condition_StringMatcher {
	if x != nil {
		return x.HostMatcher
	}
	return nil
}

// UriMatcher object. AND semantics implied.
type Condition_UriMatcher 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"`
	// *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_UriMatcher) Reset() {
	*x = Condition_UriMatcher{}
	mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Condition_UriMatcher) ProtoMessage() {}

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

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

func (x *Condition_UriMatcher) 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_smartcaptcha_v1_captcha_proto_msgTypes[9]
	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_smartcaptcha_v1_captcha_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_QueryMatcher.ProtoReflect.Descriptor instead.
func (*Condition_QueryMatcher) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescGZIP(), []int{3, 3}
}

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_smartcaptcha_v1_captcha_proto_msgTypes[10]
	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_smartcaptcha_v1_captcha_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_HeaderMatcher.ProtoReflect.Descriptor instead.
func (*Condition_HeaderMatcher) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescGZIP(), []int{3, 4}
}

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"`
	// IP ranges to match with.
	IpRangesMatch *Condition_IpRangesMatcher `protobuf:"bytes,1,opt,name=ip_ranges_match,json=ipRangesMatch,proto3" json:"ip_ranges_match,omitempty"`
	// IP ranges to not match with.
	IpRangesNotMatch *Condition_IpRangesMatcher `protobuf:"bytes,2,opt,name=ip_ranges_not_match,json=ipRangesNotMatch,proto3" json:"ip_ranges_not_match,omitempty"`
	// Geo locations to match with.
	GeoIpMatch *Condition_GeoIpMatcher `protobuf:"bytes,3,opt,name=geo_ip_match,json=geoIpMatch,proto3" json:"geo_ip_match,omitempty"`
	// Geo locations to not match with.
	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_smartcaptcha_v1_captcha_proto_msgTypes[11]
	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_smartcaptcha_v1_captcha_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_IpMatcher.ProtoReflect.Descriptor instead.
func (*Condition_IpMatcher) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescGZIP(), []int{3, 5}
}

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"`
	// *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_smartcaptcha_v1_captcha_proto_msgTypes[12]
	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_smartcaptcha_v1_captcha_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_IpRangesMatcher.ProtoReflect.Descriptor instead.
func (*Condition_IpRangesMatcher) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescGZIP(), []int{3, 6}
}

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"`
	// *OR semantics implied. ISO 3166-1 alpha 2
	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_smartcaptcha_v1_captcha_proto_msgTypes[13]
	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_smartcaptcha_v1_captcha_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_GeoIpMatcher.ProtoReflect.Descriptor instead.
func (*Condition_GeoIpMatcher) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescGZIP(), []int{3, 7}
}

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

var File_yandex_cloud_smartcaptcha_v1_captcha_proto protoreflect.FileDescriptor

const file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDesc = "" +
	"\n" +
	"*yandex/cloud/smartcaptcha/v1/captcha.proto\x12\x1cyandex.cloud.smartcaptcha.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dyandex/cloud/validation.proto\"\x98\t\n" +
	"\aCaptcha\x12\x1b\n" +
	"\tfolder_id\x18\x02 \x01(\tR\bfolderId\x12\x1d\n" +
	"\n" +
	"client_key\x18\x03 \x01(\tR\tclientKey\x129\n" +
	"\n" +
	"created_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x12\n" +
	"\x04name\x18\a \x01(\tR\x04name\x12#\n" +
	"\rallowed_sites\x18\b \x03(\tR\fallowedSites\x12O\n" +
	"\n" +
	"complexity\x18\t \x01(\x0e2/.yandex.cloud.smartcaptcha.v1.CaptchaComplexityR\n" +
	"complexity\x12\x1d\n" +
	"\n" +
	"style_json\x18\n" +
	" \x01(\tR\tstyleJson\x12\x19\n" +
	"\bcloud_id\x18\f \x01(\tR\acloudId\x12\x18\n" +
	"\asuspend\x18\r \x01(\bR\asuspend\x125\n" +
	"\x17turn_off_hostname_check\x18\x0e \x01(\bR\x14turnOffHostnameCheck\x12W\n" +
	"\x0epre_check_type\x18\x10 \x01(\x0e21.yandex.cloud.smartcaptcha.v1.CaptchaPreCheckTypeR\fpreCheckType\x12Y\n" +
	"\x0echallenge_type\x18\x11 \x01(\x0e22.yandex.cloud.smartcaptcha.v1.CaptchaChallengeTypeR\rchallengeType\x12Q\n" +
	"\x0esecurity_rules\x18\x13 \x03(\v2*.yandex.cloud.smartcaptcha.v1.SecurityRuleR\rsecurityRules\x12\x0e\n" +
	"\x02id\x18\x15 \x01(\tR\x02id\x12/\n" +
	"\x13deletion_protection\x18\x16 \x01(\bR\x12deletionProtection\x12d\n" +
	"\x11override_variants\x18\x17 \x03(\v2-.yandex.cloud.smartcaptcha.v1.OverrideVariantB\b\x82\xc81\x04<=32R\x10overrideVariants\x128\n" +
	"\x18disallow_data_processing\x18\x18 \x01(\bR\x16disallowDataProcessing\x12+\n" +
	"\vdescription\x18\x19 \x01(\tB\t\x8a\xc81\x05<=512R\vdescription\x12\x86\x01\n" +
	"\x06labels\x18\x1a \x03(\v21.yandex.cloud.smartcaptcha.v1.Captcha.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\x1a9\n" +
	"\vLabelsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01J\x04\b\x01\x10\x02J\x04\b\x04\x10\x05J\x04\b\x06\x10\aJ\x04\b\v\x10\fJ\x04\b\x0f\x10\x10J\x04\b\x12\x10\x13J\x04\b\x14\x10\x15\"\xff\x02\n" +
	"\x0fOverrideVariant\x12:\n" +
	"\x04uuid\x18\x01 \x01(\tB&\xf2\xc71\x1a[a-zA-Z0-9][a-zA-Z0-9-_.]*\x8a\xc81\x04<=64R\x04uuid\x12+\n" +
	"\vdescription\x18\x02 \x01(\tB\t\x8a\xc81\x05<=512R\vdescription\x12O\n" +
	"\n" +
	"complexity\x18\x03 \x01(\x0e2/.yandex.cloud.smartcaptcha.v1.CaptchaComplexityR\n" +
	"complexity\x12W\n" +
	"\x0epre_check_type\x18\x04 \x01(\x0e21.yandex.cloud.smartcaptcha.v1.CaptchaPreCheckTypeR\fpreCheckType\x12Y\n" +
	"\x0echallenge_type\x18\x05 \x01(\x0e22.yandex.cloud.smartcaptcha.v1.CaptchaChallengeTypeR\rchallengeType\"\xa6\x02\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+\n" +
	"\vdescription\x18\x03 \x01(\tB\t\x8a\xc81\x05<=512R\vdescription\x12E\n" +
	"\tcondition\x18\x04 \x01(\v2'.yandex.cloud.smartcaptcha.v1.ConditionR\tcondition\x122\n" +
	"\x15override_variant_uuid\x18\x06 \x01(\tR\x13overrideVariantUuidJ\x04\b\x05\x10\x06\"\xb4\x0e\n" +
	"\tCondition\x12G\n" +
	"\x04host\x18\x01 \x01(\v23.yandex.cloud.smartcaptcha.v1.Condition.HostMatcherR\x04host\x12D\n" +
	"\x03uri\x18\x02 \x01(\v22.yandex.cloud.smartcaptcha.v1.Condition.UriMatcherR\x03uri\x12Y\n" +
	"\aheaders\x18\x03 \x03(\v25.yandex.cloud.smartcaptcha.v1.Condition.HeaderMatcherB\b\x82\xc81\x04<=20R\aheaders\x12N\n" +
	"\tsource_ip\x18\x04 \x01(\v21.yandex.cloud.smartcaptcha.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\xc0\x01\n" +
	"\vHostMatcher\x12W\n" +
	"\x05hosts\x18\x01 \x03(\v25.yandex.cloud.smartcaptcha.v1.Condition.StringMatcherB\n" +
	"\x82\xc81\x04<=20\x18\x01R\x05hosts\x12X\n" +
	"\fhost_matcher\x18\x02 \x01(\v25.yandex.cloud.smartcaptcha.v1.Condition.StringMatcherR\vhostMatcher\x1a\xb1\x01\n" +
	"\n" +
	"UriMatcher\x12I\n" +
	"\x04path\x18\x01 \x01(\v25.yandex.cloud.smartcaptcha.v1.Condition.StringMatcherR\x04path\x12X\n" +
	"\aqueries\x18\x02 \x03(\v24.yandex.cloud.smartcaptcha.v1.Condition.QueryMatcherB\b\x82\xc81\x04<=20R\aqueries\x1a\x82\x01\n" +
	"\fQueryMatcher\x12\x1f\n" +
	"\x03key\x18\x01 \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x051-255R\x03key\x12Q\n" +
	"\x05value\x18\x02 \x01(\v25.yandex.cloud.smartcaptcha.v1.Condition.StringMatcherB\x04\xe8\xc71\x01R\x05value\x1a\x85\x01\n" +
	"\rHeaderMatcher\x12!\n" +
	"\x04name\x18\x01 \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x051-255R\x04name\x12Q\n" +
	"\x05value\x18\x02 \x01(\v25.yandex.cloud.smartcaptcha.v1.Condition.StringMatcherB\x04\xe8\xc71\x01R\x05value\x1a\x8b\x03\n" +
	"\tIpMatcher\x12_\n" +
	"\x0fip_ranges_match\x18\x01 \x01(\v27.yandex.cloud.smartcaptcha.v1.Condition.IpRangesMatcherR\ripRangesMatch\x12f\n" +
	"\x13ip_ranges_not_match\x18\x02 \x01(\v27.yandex.cloud.smartcaptcha.v1.Condition.IpRangesMatcherR\x10ipRangesNotMatch\x12V\n" +
	"\fgeo_ip_match\x18\x03 \x01(\v24.yandex.cloud.smartcaptcha.v1.Condition.GeoIpMatcherR\n" +
	"geoIpMatch\x12]\n" +
	"\x10geo_ip_not_match\x18\x04 \x01(\v24.yandex.cloud.smartcaptcha.v1.Condition.GeoIpMatcherR\rgeoIpNotMatch\x1aA\n" +
	"\x0fIpRangesMatcher\x12.\n" +
	"\tip_ranges\x18\x01 \x03(\tB\x11\x82\xc81\a<=10000\x8a\xc81\x02>0R\bipRanges\x1a>\n" +
	"\fGeoIpMatcher\x12.\n" +
	"\tlocations\x18\x01 \x03(\tB\x10\x82\xc81\x03>=1\x8a\xc81\x012\x90\xc81\x01R\tlocations\"1\n" +
	"\x10CaptchaSecretKey\x12\x1d\n" +
	"\n" +
	"server_key\x18\x01 \x01(\tR\tserverKey*g\n" +
	"\x11CaptchaComplexity\x12\"\n" +
	"\x1eCAPTCHA_COMPLEXITY_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04EASY\x10\x01\x12\n" +
	"\n" +
	"\x06MEDIUM\x10\x02\x12\b\n" +
	"\x04HARD\x10\x03\x12\x0e\n" +
	"\n" +
	"FORCE_HARD\x10\x04*W\n" +
	"\x13CaptchaPreCheckType\x12&\n" +
	"\"CAPTCHA_PRE_CHECK_TYPE_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bCHECKBOX\x10\x01\x12\n" +
	"\n" +
	"\x06SLIDER\x10\x02*q\n" +
	"\x14CaptchaChallengeType\x12&\n" +
	"\"CAPTCHA_CHALLENGE_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n" +
	"\n" +
	"IMAGE_TEXT\x10\x01\x12\x0f\n" +
	"\vSILHOUETTES\x10\x02\x12\x10\n" +
	"\fKALEIDOSCOPE\x10\x03Bq\n" +
	" yandex.cloud.api.smartcaptcha.v1ZMgithub.com/yandex-cloud/go-genproto/yandex/cloud/smartcaptcha/v1;smartcaptchab\x06proto3"

var (
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescOnce sync.Once
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescData []byte
)

func file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescGZIP() []byte {
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDesc), len(file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDesc)))
	})
	return file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescData
}

var file_yandex_cloud_smartcaptcha_v1_captcha_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_yandex_cloud_smartcaptcha_v1_captcha_proto_goTypes = []any{
	(CaptchaComplexity)(0),            // 0: yandex.cloud.smartcaptcha.v1.CaptchaComplexity
	(CaptchaPreCheckType)(0),          // 1: yandex.cloud.smartcaptcha.v1.CaptchaPreCheckType
	(CaptchaChallengeType)(0),         // 2: yandex.cloud.smartcaptcha.v1.CaptchaChallengeType
	(*Captcha)(nil),                   // 3: yandex.cloud.smartcaptcha.v1.Captcha
	(*OverrideVariant)(nil),           // 4: yandex.cloud.smartcaptcha.v1.OverrideVariant
	(*SecurityRule)(nil),              // 5: yandex.cloud.smartcaptcha.v1.SecurityRule
	(*Condition)(nil),                 // 6: yandex.cloud.smartcaptcha.v1.Condition
	(*CaptchaSecretKey)(nil),          // 7: yandex.cloud.smartcaptcha.v1.CaptchaSecretKey
	nil,                               // 8: yandex.cloud.smartcaptcha.v1.Captcha.LabelsEntry
	(*Condition_StringMatcher)(nil),   // 9: yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	(*Condition_HostMatcher)(nil),     // 10: yandex.cloud.smartcaptcha.v1.Condition.HostMatcher
	(*Condition_UriMatcher)(nil),      // 11: yandex.cloud.smartcaptcha.v1.Condition.UriMatcher
	(*Condition_QueryMatcher)(nil),    // 12: yandex.cloud.smartcaptcha.v1.Condition.QueryMatcher
	(*Condition_HeaderMatcher)(nil),   // 13: yandex.cloud.smartcaptcha.v1.Condition.HeaderMatcher
	(*Condition_IpMatcher)(nil),       // 14: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher
	(*Condition_IpRangesMatcher)(nil), // 15: yandex.cloud.smartcaptcha.v1.Condition.IpRangesMatcher
	(*Condition_GeoIpMatcher)(nil),    // 16: yandex.cloud.smartcaptcha.v1.Condition.GeoIpMatcher
	(*timestamppb.Timestamp)(nil),     // 17: google.protobuf.Timestamp
}
var file_yandex_cloud_smartcaptcha_v1_captcha_proto_depIdxs = []int32{
	17, // 0: yandex.cloud.smartcaptcha.v1.Captcha.created_at:type_name -> google.protobuf.Timestamp
	0,  // 1: yandex.cloud.smartcaptcha.v1.Captcha.complexity:type_name -> yandex.cloud.smartcaptcha.v1.CaptchaComplexity
	1,  // 2: yandex.cloud.smartcaptcha.v1.Captcha.pre_check_type:type_name -> yandex.cloud.smartcaptcha.v1.CaptchaPreCheckType
	2,  // 3: yandex.cloud.smartcaptcha.v1.Captcha.challenge_type:type_name -> yandex.cloud.smartcaptcha.v1.CaptchaChallengeType
	5,  // 4: yandex.cloud.smartcaptcha.v1.Captcha.security_rules:type_name -> yandex.cloud.smartcaptcha.v1.SecurityRule
	4,  // 5: yandex.cloud.smartcaptcha.v1.Captcha.override_variants:type_name -> yandex.cloud.smartcaptcha.v1.OverrideVariant
	8,  // 6: yandex.cloud.smartcaptcha.v1.Captcha.labels:type_name -> yandex.cloud.smartcaptcha.v1.Captcha.LabelsEntry
	0,  // 7: yandex.cloud.smartcaptcha.v1.OverrideVariant.complexity:type_name -> yandex.cloud.smartcaptcha.v1.CaptchaComplexity
	1,  // 8: yandex.cloud.smartcaptcha.v1.OverrideVariant.pre_check_type:type_name -> yandex.cloud.smartcaptcha.v1.CaptchaPreCheckType
	2,  // 9: yandex.cloud.smartcaptcha.v1.OverrideVariant.challenge_type:type_name -> yandex.cloud.smartcaptcha.v1.CaptchaChallengeType
	6,  // 10: yandex.cloud.smartcaptcha.v1.SecurityRule.condition:type_name -> yandex.cloud.smartcaptcha.v1.Condition
	10, // 11: yandex.cloud.smartcaptcha.v1.Condition.host:type_name -> yandex.cloud.smartcaptcha.v1.Condition.HostMatcher
	11, // 12: yandex.cloud.smartcaptcha.v1.Condition.uri:type_name -> yandex.cloud.smartcaptcha.v1.Condition.UriMatcher
	13, // 13: yandex.cloud.smartcaptcha.v1.Condition.headers:type_name -> yandex.cloud.smartcaptcha.v1.Condition.HeaderMatcher
	14, // 14: yandex.cloud.smartcaptcha.v1.Condition.source_ip:type_name -> yandex.cloud.smartcaptcha.v1.Condition.IpMatcher
	9,  // 15: yandex.cloud.smartcaptcha.v1.Condition.HostMatcher.hosts:type_name -> yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	9,  // 16: yandex.cloud.smartcaptcha.v1.Condition.HostMatcher.host_matcher:type_name -> yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	9,  // 17: yandex.cloud.smartcaptcha.v1.Condition.UriMatcher.path:type_name -> yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	12, // 18: yandex.cloud.smartcaptcha.v1.Condition.UriMatcher.queries:type_name -> yandex.cloud.smartcaptcha.v1.Condition.QueryMatcher
	9,  // 19: yandex.cloud.smartcaptcha.v1.Condition.QueryMatcher.value:type_name -> yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	9,  // 20: yandex.cloud.smartcaptcha.v1.Condition.HeaderMatcher.value:type_name -> yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	15, // 21: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher.ip_ranges_match:type_name -> yandex.cloud.smartcaptcha.v1.Condition.IpRangesMatcher
	15, // 22: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher.ip_ranges_not_match:type_name -> yandex.cloud.smartcaptcha.v1.Condition.IpRangesMatcher
	16, // 23: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher.geo_ip_match:type_name -> yandex.cloud.smartcaptcha.v1.Condition.GeoIpMatcher
	16, // 24: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher.geo_ip_not_match:type_name -> yandex.cloud.smartcaptcha.v1.Condition.GeoIpMatcher
	25, // [25:25] is the sub-list for method output_type
	25, // [25:25] is the sub-list for method input_type
	25, // [25:25] is the sub-list for extension type_name
	25, // [25:25] is the sub-list for extension extendee
	0,  // [0:25] is the sub-list for field type_name
}

func init() { file_yandex_cloud_smartcaptcha_v1_captcha_proto_init() }
func file_yandex_cloud_smartcaptcha_v1_captcha_proto_init() {
	if File_yandex_cloud_smartcaptcha_v1_captcha_proto != nil {
		return
	}
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[6].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_smartcaptcha_v1_captcha_proto_rawDesc), len(file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   14,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_smartcaptcha_v1_captcha_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_smartcaptcha_v1_captcha_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_smartcaptcha_v1_captcha_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes,
	}.Build()
	File_yandex_cloud_smartcaptcha_v1_captcha_proto = out.File
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_goTypes = nil
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_depIdxs = nil
}
