// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.34.2
// 	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"
)

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
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ID of the captcha.
	Id string `protobuf:"bytes,21,opt,name=id,proto3" json:"id,omitempty"`
	// 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"`
	// 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"`
	// 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"`
	// 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"`
	// 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"`
}

func (x *Captcha) Reset() {
	*x = Captcha{}
	if protoimpl.UnsafeEnabled {
		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 protoimpl.UnsafeEnabled && 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) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

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

func (x *Captcha) GetCloudId() string {
	if x != nil {
		return x.CloudId
	}
	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) 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) GetDeletionProtection() bool {
	if x != nil {
		return x.DeletionProtection
	}
	return false
}

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

// OverrideVariant object. Contains the settings to override.
type OverrideVariant struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 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"`
}

func (x *OverrideVariant) Reset() {
	*x = OverrideVariant{}
	if protoimpl.UnsafeEnabled {
		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 protoimpl.UnsafeEnabled && 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
}

// CaptchaSecretKey object. Contains captcha data that need to keep in secret.
type CaptchaSecretKey struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 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"`
}

func (x *CaptchaSecretKey) Reset() {
	*x = CaptchaSecretKey{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[2]
		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[2]
	if protoimpl.UnsafeEnabled && 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{2}
}

func (x *CaptchaSecretKey) GetServerKey() string {
	if x != nil {
		return x.ServerKey
	}
	return ""
}

// SecurityRule object. Defines the condition and action: when and which variant to show.
type SecurityRule struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 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"`
}

func (x *SecurityRule) Reset() {
	*x = SecurityRule{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[3]
		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[3]
	if protoimpl.UnsafeEnabled && 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{3}
}

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
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host where captcha placed.
	Host *Condition_HostMatcher `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	// URI where captcha placed.
	Uri *Condition_UriMatcher `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"`
	// Captcha request headers.
	Headers []*Condition_HeaderMatcher `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"`
	// The IP address of the requester.
	SourceIp *Condition_IpMatcher `protobuf:"bytes,4,opt,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"`
}

func (x *Condition) Reset() {
	*x = Condition{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[4]
		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[4]
	if protoimpl.UnsafeEnabled && 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{4}
}

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
}

// StringMatcher object.
type Condition_StringMatcher struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable 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"`
}

func (x *Condition_StringMatcher) Reset() {
	*x = Condition_StringMatcher{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[5]
		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[5]
	if protoimpl.UnsafeEnabled && 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{4, 0}
}

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

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

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

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

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

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

func (x *Condition_StringMatcher) GetPireRegexNotMatch() string {
	if x, ok := x.GetMatch().(*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() {}

// HostMatcher object.
type Condition_HostMatcher struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// List of hosts. OR semantics implied.
	Hosts []*Condition_StringMatcher `protobuf:"bytes,1,rep,name=hosts,proto3" json:"hosts,omitempty"`
}

func (x *Condition_HostMatcher) Reset() {
	*x = Condition_HostMatcher{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[6]
		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[6]
	if protoimpl.UnsafeEnabled && 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{4, 1}
}

func (x *Condition_HostMatcher) GetHosts() []*Condition_StringMatcher {
	if x != nil {
		return x.Hosts
	}
	return nil
}

// UriMatcher object. AND semantics implied.
type Condition_UriMatcher struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 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"`
}

func (x *Condition_UriMatcher) Reset() {
	*x = Condition_UriMatcher{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[7]
		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[7]
	if protoimpl.UnsafeEnabled && 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{4, 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
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 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"`
}

func (x *Condition_QueryMatcher) Reset() {
	*x = Condition_QueryMatcher{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[8]
		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[8]
	if protoimpl.UnsafeEnabled && 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{4, 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
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 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"`
}

func (x *Condition_HeaderMatcher) Reset() {
	*x = Condition_HeaderMatcher{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[9]
		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[9]
	if protoimpl.UnsafeEnabled && 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{4, 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
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	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"`
}

func (x *Condition_IpMatcher) Reset() {
	*x = Condition_IpMatcher{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[10]
		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[10]
	if protoimpl.UnsafeEnabled && 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{4, 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
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// List of IP ranges. OR semantics implied.
	IpRanges []string `protobuf:"bytes,1,rep,name=ip_ranges,json=ipRanges,proto3" json:"ip_ranges,omitempty"`
}

func (x *Condition_IpRangesMatcher) Reset() {
	*x = Condition_IpRangesMatcher{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[11]
		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[11]
	if protoimpl.UnsafeEnabled && 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{4, 6}
}

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

// GeoIpMatcher object.
type Condition_GeoIpMatcher struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ISO 3166-1 alpha 2. OR semantics implied.
	Locations []string `protobuf:"bytes,1,rep,name=locations,proto3" json:"locations,omitempty"`
}

func (x *Condition_GeoIpMatcher) Reset() {
	*x = Condition_GeoIpMatcher{}
	if protoimpl.UnsafeEnabled {
		mi := &file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[12]
		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[12]
	if protoimpl.UnsafeEnabled && 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{4, 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

var file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDesc = []byte{
	0x0a, 0x2a, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73,
	0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x63,
	0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x79, 0x61,
	0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74,
	0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x79, 0x61, 0x6e,
	0x64, 0x65, 0x78, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xed, 0x06, 0x0a, 0x07, 0x43,
	0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6f, 0x6c, 0x64, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x69, 0x64, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x49, 0x64, 0x12, 0x1d,
	0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x39, 0x0a,
	0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d,
	0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x69, 0x74, 0x65,
	0x73, 0x12, 0x4f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68,
	0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x43, 0x6f, 0x6d, 0x70,
	0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69,
	0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x6a, 0x73, 0x6f, 0x6e,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x4a, 0x73, 0x6f,
	0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x0d, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x74,
	0x75, 0x72, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65,
	0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x74, 0x75,
	0x72, 0x6e, 0x4f, 0x66, 0x66, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x68, 0x65,
	0x63, 0x6b, 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x79, 0x61, 0x6e,
	0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63,
	0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68,
	0x61, 0x50, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x70,
	0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x63,
	0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65,
	0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e,
	0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69,
	0x74, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a,
	0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d,
	0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65,
	0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x75,
	0x72, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x6c,
	0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e,
	0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x11, 0x6f, 0x76,
	0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18,
	0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68,
	0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72,
	0x69, 0x61, 0x6e, 0x74, 0x42, 0x08, 0x82, 0xc8, 0x31, 0x04, 0x3c, 0x3d, 0x33, 0x32, 0x52, 0x10,
	0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73,
	0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x06,
	0x10, 0x07, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x4a, 0x04,
	0x08, 0x12, 0x10, 0x13, 0x4a, 0x04, 0x08, 0x14, 0x10, 0x15, 0x22, 0xff, 0x02, 0x0a, 0x0f, 0x4f,
	0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x3a,
	0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xf2, 0xc7,
	0x31, 0x1a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x5b, 0x61, 0x2d,
	0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x2d, 0x5f, 0x2e, 0x5d, 0x2a, 0x8a, 0xc8, 0x31, 0x04,
	0x3c, 0x3d, 0x36, 0x34, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x09, 0x8a, 0xc8, 0x31, 0x05, 0x3c, 0x3d, 0x35, 0x31, 0x32, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c,
	0x65, 0x78, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x79, 0x61,
	0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74,
	0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x63,
	0x68, 0x61, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x63, 0x6f,
	0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x5f,
	0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x31, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x50, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x59, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x79, 0x61, 0x6e, 0x64,
	0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61,
	0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61,
	0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x63,
	0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x10,
	0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79,
	0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x22,
	0xa6, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65,
	0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a,
	0xe8, 0xc7, 0x31, 0x01, 0xf2, 0xc7, 0x31, 0x1a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30,
	0x2d, 0x39, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x2d, 0x5f, 0x2e,
	0x5d, 0x2a, 0x8a, 0xc8, 0x31, 0x04, 0x31, 0x2d, 0x35, 0x30, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x28, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x42, 0x0c, 0xfa, 0xc7, 0x31, 0x08, 0x31, 0x2d, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39,
	0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x09, 0x8a, 0xc8, 0x31, 0x05, 0x3c, 0x3d, 0x35, 0x31, 0x32, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x79, 0x61, 0x6e,
	0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63,
	0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32,
	0x0a, 0x15, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61,
	0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f,
	0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x55, 0x75,
	0x69, 0x64, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0xd1, 0x0d, 0x0a, 0x09, 0x43, 0x6f, 0x6e,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x6f,
	0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12,
	0x44, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x79,
	0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72,
	0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x72, 0x69, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72,
	0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x59, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63,
	0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0x82,
	0xc8, 0x31, 0x04, 0x3c, 0x3d, 0x32, 0x30, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
	0x12, 0x4e, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x70, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x70,
	0x1a, 0xd7, 0x02, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68,
	0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0b, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63,
	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0x8a, 0xc8, 0x31, 0x05, 0x30, 0x2d, 0x32,
	0x35, 0x35, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68,
	0x12, 0x33, 0x0a, 0x0f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0x8a, 0xc8, 0x31, 0x05, 0x30,
	0x2d, 0x32, 0x35, 0x35, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x78, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x74,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f,
	0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0x8a, 0xc8, 0x31,
	0x05, 0x30, 0x2d, 0x32, 0x35, 0x35, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f,
	0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x09, 0x8a, 0xc8, 0x31, 0x05, 0x30, 0x2d, 0x32, 0x35, 0x35, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72,
	0x65, 0x66, 0x69, 0x78, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x10,
	0x70, 0x69, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0x8a, 0xc8, 0x31, 0x05, 0x30, 0x2d, 0x32, 0x35,
	0x35, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x69, 0x72, 0x65, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61,
	0x74, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x14, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x65,
	0x78, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x09, 0x8a, 0xc8, 0x31, 0x05, 0x30, 0x2d, 0x32, 0x35, 0x35, 0x48, 0x00, 0x52, 0x11,
	0x70, 0x69, 0x72, 0x65, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63,
	0x68, 0x42, 0x07, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x64, 0x0a, 0x0b, 0x48, 0x6f,
	0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x05, 0x68, 0x6f, 0x73,
	0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65,
	0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70,
	0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42,
	0x08, 0x82, 0xc8, 0x31, 0x04, 0x3c, 0x3d, 0x32, 0x30, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73,
	0x1a, 0xb1, 0x01, 0x0a, 0x0a, 0x55, 0x72, 0x69, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12,
	0x49, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e,
	0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61,
	0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74,
	0x63, 0x68, 0x65, 0x72, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x58, 0x0a, 0x07, 0x71, 0x75,
	0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x79, 0x61,
	0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74,
	0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65,
	0x72, 0x42, 0x08, 0x82, 0xc8, 0x31, 0x04, 0x3c, 0x3d, 0x32, 0x30, 0x52, 0x07, 0x71, 0x75, 0x65,
	0x72, 0x69, 0x65, 0x73, 0x1a, 0x82, 0x01, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61,
	0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x0d, 0xe8, 0xc7, 0x31, 0x01, 0x8a, 0xc8, 0x31, 0x05, 0x31, 0x2d, 0x32, 0x35,
	0x35, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68,
	0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53,
	0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x04, 0xe8, 0xc7,
	0x31, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x85, 0x01, 0x0a, 0x0d, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe8, 0xc7, 0x31, 0x01, 0x8a,
	0xc8, 0x31, 0x05, 0x31, 0x2d, 0x32, 0x35, 0x35, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e,
	0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61,
	0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74,
	0x63, 0x68, 0x65, 0x72, 0x42, 0x04, 0xe8, 0xc7, 0x31, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x1a, 0x8b, 0x03, 0x0a, 0x09, 0x49, 0x70, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12,
	0x5f, 0x0a, 0x0f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x6d, 0x61, 0x74,
	0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65,
	0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70,
	0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65,
	0x72, 0x52, 0x0d, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68,
	0x12, 0x66, 0x0a, 0x13, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x6e, 0x6f,
	0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e,
	0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61,
	0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x10, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73,
	0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x56, 0x0a, 0x0c, 0x67, 0x65, 0x6f, 0x5f,
	0x69, 0x70, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
	0x2e, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d,
	0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f,
	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6f, 0x49, 0x70, 0x4d, 0x61, 0x74,
	0x63, 0x68, 0x65, 0x72, 0x52, 0x0a, 0x67, 0x65, 0x6f, 0x49, 0x70, 0x4d, 0x61, 0x74, 0x63, 0x68,
	0x12, 0x5d, 0x0a, 0x10, 0x67, 0x65, 0x6f, 0x5f, 0x69, 0x70, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d,
	0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x79, 0x61, 0x6e,
	0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63,
	0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6f, 0x49, 0x70, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72,
	0x52, 0x0d, 0x67, 0x65, 0x6f, 0x49, 0x70, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x1a,
	0x3b, 0x0a, 0x0f, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68,
	0x65, 0x72, 0x12, 0x28, 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0b, 0x82, 0xc8, 0x31, 0x07, 0x3c, 0x3d, 0x31, 0x30, 0x30,
	0x30, 0x30, 0x52, 0x08, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1a, 0x3e, 0x0a, 0x0c,
	0x47, 0x65, 0x6f, 0x49, 0x70, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x09,
	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42,
	0x10, 0x82, 0xc8, 0x31, 0x03, 0x3e, 0x3d, 0x31, 0x8a, 0xc8, 0x31, 0x01, 0x32, 0x90, 0xc8, 0x31,
	0x01, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x67, 0x0a, 0x11,
	0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74,
	0x79, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x41, 0x50, 0x54, 0x43, 0x48, 0x41, 0x5f, 0x43, 0x4f, 0x4d,
	0x50, 0x4c, 0x45, 0x58, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x41, 0x53, 0x59, 0x10, 0x01, 0x12,
	0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48,
	0x41, 0x52, 0x44, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x48,
	0x41, 0x52, 0x44, 0x10, 0x04, 0x2a, 0x57, 0x0a, 0x13, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61,
	0x50, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x22,
	0x43, 0x41, 0x50, 0x54, 0x43, 0x48, 0x41, 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x43, 0x48, 0x45, 0x43,
	0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x42, 0x4f, 0x58,
	0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x4c, 0x49, 0x44, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x71,
	0x0a, 0x14, 0x43, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e,
	0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x43, 0x41, 0x50, 0x54, 0x43, 0x48,
	0x41, 0x5f, 0x43, 0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e,
	0x0a, 0x0a, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x12, 0x0f,
	0x0a, 0x0b, 0x53, 0x49, 0x4c, 0x48, 0x4f, 0x55, 0x45, 0x54, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12,
	0x10, 0x0a, 0x0c, 0x4b, 0x41, 0x4c, 0x45, 0x49, 0x44, 0x4f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x10,
	0x03, 0x42, 0x71, 0x0a, 0x20, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, 0x74, 0x63,
	0x68, 0x61, 0x2e, 0x76, 0x31, 0x5a, 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
	0x6d, 0x2f, 0x79, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x2d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67,
	0x6f, 0x2d, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x79, 0x61, 0x6e, 0x64, 0x65,
	0x78, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70,
	0x74, 0x63, 0x68, 0x61, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70,
	0x74, 0x63, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescOnce sync.Once
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescData = file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDesc
)

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(file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDescData)
	})
	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, 13)
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
	(*CaptchaSecretKey)(nil),          // 5: yandex.cloud.smartcaptcha.v1.CaptchaSecretKey
	(*SecurityRule)(nil),              // 6: yandex.cloud.smartcaptcha.v1.SecurityRule
	(*Condition)(nil),                 // 7: yandex.cloud.smartcaptcha.v1.Condition
	(*Condition_StringMatcher)(nil),   // 8: yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	(*Condition_HostMatcher)(nil),     // 9: yandex.cloud.smartcaptcha.v1.Condition.HostMatcher
	(*Condition_UriMatcher)(nil),      // 10: yandex.cloud.smartcaptcha.v1.Condition.UriMatcher
	(*Condition_QueryMatcher)(nil),    // 11: yandex.cloud.smartcaptcha.v1.Condition.QueryMatcher
	(*Condition_HeaderMatcher)(nil),   // 12: yandex.cloud.smartcaptcha.v1.Condition.HeaderMatcher
	(*Condition_IpMatcher)(nil),       // 13: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher
	(*Condition_IpRangesMatcher)(nil), // 14: yandex.cloud.smartcaptcha.v1.Condition.IpRangesMatcher
	(*Condition_GeoIpMatcher)(nil),    // 15: yandex.cloud.smartcaptcha.v1.Condition.GeoIpMatcher
	(*timestamppb.Timestamp)(nil),     // 16: google.protobuf.Timestamp
}
var file_yandex_cloud_smartcaptcha_v1_captcha_proto_depIdxs = []int32{
	16, // 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
	6,  // 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
	0,  // 6: yandex.cloud.smartcaptcha.v1.OverrideVariant.complexity:type_name -> yandex.cloud.smartcaptcha.v1.CaptchaComplexity
	1,  // 7: yandex.cloud.smartcaptcha.v1.OverrideVariant.pre_check_type:type_name -> yandex.cloud.smartcaptcha.v1.CaptchaPreCheckType
	2,  // 8: yandex.cloud.smartcaptcha.v1.OverrideVariant.challenge_type:type_name -> yandex.cloud.smartcaptcha.v1.CaptchaChallengeType
	7,  // 9: yandex.cloud.smartcaptcha.v1.SecurityRule.condition:type_name -> yandex.cloud.smartcaptcha.v1.Condition
	9,  // 10: yandex.cloud.smartcaptcha.v1.Condition.host:type_name -> yandex.cloud.smartcaptcha.v1.Condition.HostMatcher
	10, // 11: yandex.cloud.smartcaptcha.v1.Condition.uri:type_name -> yandex.cloud.smartcaptcha.v1.Condition.UriMatcher
	12, // 12: yandex.cloud.smartcaptcha.v1.Condition.headers:type_name -> yandex.cloud.smartcaptcha.v1.Condition.HeaderMatcher
	13, // 13: yandex.cloud.smartcaptcha.v1.Condition.source_ip:type_name -> yandex.cloud.smartcaptcha.v1.Condition.IpMatcher
	8,  // 14: yandex.cloud.smartcaptcha.v1.Condition.HostMatcher.hosts:type_name -> yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	8,  // 15: yandex.cloud.smartcaptcha.v1.Condition.UriMatcher.path:type_name -> yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	11, // 16: yandex.cloud.smartcaptcha.v1.Condition.UriMatcher.queries:type_name -> yandex.cloud.smartcaptcha.v1.Condition.QueryMatcher
	8,  // 17: yandex.cloud.smartcaptcha.v1.Condition.QueryMatcher.value:type_name -> yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	8,  // 18: yandex.cloud.smartcaptcha.v1.Condition.HeaderMatcher.value:type_name -> yandex.cloud.smartcaptcha.v1.Condition.StringMatcher
	14, // 19: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher.ip_ranges_match:type_name -> yandex.cloud.smartcaptcha.v1.Condition.IpRangesMatcher
	14, // 20: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher.ip_ranges_not_match:type_name -> yandex.cloud.smartcaptcha.v1.Condition.IpRangesMatcher
	15, // 21: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher.geo_ip_match:type_name -> yandex.cloud.smartcaptcha.v1.Condition.GeoIpMatcher
	15, // 22: yandex.cloud.smartcaptcha.v1.Condition.IpMatcher.geo_ip_not_match:type_name -> yandex.cloud.smartcaptcha.v1.Condition.GeoIpMatcher
	23, // [23:23] is the sub-list for method output_type
	23, // [23:23] is the sub-list for method input_type
	23, // [23:23] is the sub-list for extension type_name
	23, // [23:23] is the sub-list for extension extendee
	0,  // [0:23] 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
	}
	if !protoimpl.UnsafeEnabled {
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[0].Exporter = func(v any, i int) any {
			switch v := v.(*Captcha); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[1].Exporter = func(v any, i int) any {
			switch v := v.(*OverrideVariant); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[2].Exporter = func(v any, i int) any {
			switch v := v.(*CaptchaSecretKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[3].Exporter = func(v any, i int) any {
			switch v := v.(*SecurityRule); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[4].Exporter = func(v any, i int) any {
			switch v := v.(*Condition); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[5].Exporter = func(v any, i int) any {
			switch v := v.(*Condition_StringMatcher); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[6].Exporter = func(v any, i int) any {
			switch v := v.(*Condition_HostMatcher); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[7].Exporter = func(v any, i int) any {
			switch v := v.(*Condition_UriMatcher); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[8].Exporter = func(v any, i int) any {
			switch v := v.(*Condition_QueryMatcher); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[9].Exporter = func(v any, i int) any {
			switch v := v.(*Condition_HeaderMatcher); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[10].Exporter = func(v any, i int) any {
			switch v := v.(*Condition_IpMatcher); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[11].Exporter = func(v any, i int) any {
			switch v := v.(*Condition_IpRangesMatcher); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[12].Exporter = func(v any, i int) any {
			switch v := v.(*Condition_GeoIpMatcher); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_msgTypes[5].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: file_yandex_cloud_smartcaptcha_v1_captcha_proto_rawDesc,
			NumEnums:      3,
			NumMessages:   13,
			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_rawDesc = nil
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_goTypes = nil
	file_yandex_cloud_smartcaptcha_v1_captcha_proto_depIdxs = nil
}
