# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: yandex/cloud/smartwebsecurity/v1/security_profile.proto
# Protobuf Python Version: 5.29.0
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
    _runtime_version.Domain.PUBLIC,
    5,
    29,
    0,
    '',
    'yandex/cloud/smartwebsecurity/v1/security_profile.proto'
)
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from yandex.cloud import validation_pb2 as yandex_dot_cloud_dot_validation__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n7yandex/cloud/smartwebsecurity/v1/security_profile.proto\x12 yandex.cloud.smartwebsecurity.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dyandex/cloud/validation.proto\"\x86\x08\n\x0fSecurityProfile\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tfolder_id\x18\x02 \x01(\t\x12\x8a\x01\n\x06labels\x18\x03 \x03(\x0b\x32=.yandex.cloud.smartwebsecurity.v1.SecurityProfile.LabelsEntryB;\xf2\xc7\x31\x0b[-_0-9a-z]*\x82\xc8\x31\x04<=64\x8a\xc8\x31\x04<=63\xb2\xc8\x31\x18\x12\x10[a-z][-_0-9a-z]*\x1a\x04\x31-63\x12\x38\n\x04name\x18\x04 \x01(\tB*\xe8\xc7\x31\x01\xf2\xc7\x31\x1a[a-zA-Z0-9][a-zA-Z0-9-_.]*\x8a\xc8\x31\x04\x31-50\x12\x1e\n\x0b\x64\x65scription\x18\x05 \x01(\tB\t\x8a\xc8\x31\x05<=512\x12]\n\x0e\x64\x65\x66\x61ult_action\x18\x06 \x01(\x0e\x32?.yandex.cloud.smartwebsecurity.v1.SecurityProfile.DefaultActionB\x04\xe8\xc7\x31\x01\x12\x46\n\x0esecurity_rules\x18\x07 \x03(\x0b\x32..yandex.cloud.smartwebsecurity.v1.SecurityRule\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x63loud_id\x18\n \x01(\t\x12\x12\n\ncaptcha_id\x18\x0b \x01(\t\x12(\n advanced_rate_limiter_profile_id\x18\x0c \x01(\t\x12\x62\n\x14\x61nalyze_request_body\x18\r \x01(\x0b\x32\x44.yandex.cloud.smartwebsecurity.v1.SecurityProfile.AnalyzeRequestBody\x1a\xe6\x01\n\x12\x41nalyzeRequestBody\x12\x30\n\nsize_limit\x18\x01 \x01(\x03\x42\x1c\xfa\xc7\x31\x18\x30,8,16,32,64,128,256,512\x12\x66\n\x11size_limit_action\x18\x02 \x01(\x0e\x32K.yandex.cloud.smartwebsecurity.v1.SecurityProfile.AnalyzeRequestBody.Action\"6\n\x06\x41\x63tion\x12\x16\n\x12\x41\x43TION_UNSPECIFIED\x10\x00\x12\n\n\x06IGNORE\x10\x01\x12\x08\n\x04\x44\x45NY\x10\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"D\n\rDefaultAction\x12\x1e\n\x1a\x44\x45\x46\x41ULT_ACTION_UNSPECIFIED\x10\x00\x12\t\n\x05\x41LLOW\x10\x01\x12\x08\n\x04\x44\x45NY\x10\x02J\x04\x08\t\x10\n\"\xb6\x08\n\x0cSecurityRule\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe8\xc7\x31\x01\xf2\xc7\x31\x1a[a-zA-Z0-9][a-zA-Z0-9-_.]*\x8a\xc8\x31\x04\x31-50\x12\x1e\n\x08priority\x18\x02 \x01(\x03\x42\x0c\xfa\xc7\x31\x08\x31-999999\x12\x0f\n\x07\x64ry_run\x18\x03 \x01(\x08\x12V\n\x0erule_condition\x18\x04 \x01(\x0b\x32<.yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleConditionH\x00\x12Z\n\x10smart_protection\x18\x05 \x01(\x0b\x32>.yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtectionH\x00\x12\x41\n\x03waf\x18\x06 \x01(\x0b\x32\x32.yandex.cloud.smartwebsecurity.v1.SecurityRule.WafH\x00\x12\x1e\n\x0b\x64\x65scription\x18\x07 \x01(\tB\t\x8a\xc8\x31\x05<=512\x1a\xdb\x01\n\rRuleCondition\x12S\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x43.yandex.cloud.smartwebsecurity.v1.SecurityRule.RuleCondition.Action\x12>\n\tcondition\x18\x02 \x01(\x0b\x32+.yandex.cloud.smartwebsecurity.v1.Condition\"5\n\x06\x41\x63tion\x12\x16\n\x12\x41\x43TION_UNSPECIFIED\x10\x00\x12\t\n\x05\x41LLOW\x10\x01\x12\x08\n\x04\x44\x45NY\x10\x02\x1a\xd5\x01\n\x0fSmartProtection\x12Q\n\x04mode\x18\x01 \x01(\x0e\x32\x43.yandex.cloud.smartwebsecurity.v1.SecurityRule.SmartProtection.Mode\x12>\n\tcondition\x18\x02 \x01(\x0b\x32+.yandex.cloud.smartwebsecurity.v1.Condition\"/\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01\x12\x07\n\x03\x41PI\x10\x02\x1a\xdb\x01\n\x03Waf\x12\x45\n\x04mode\x18\x01 \x01(\x0e\x32\x37.yandex.cloud.smartwebsecurity.v1.SecurityRule.Waf.Mode\x12>\n\tcondition\x18\x02 \x01(\x0b\x32+.yandex.cloud.smartwebsecurity.v1.Condition\x12\x1c\n\x0ewaf_profile_id\x18\x03 \x01(\tB\x04\xe8\xc7\x31\x01\"/\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01\x12\x07\n\x03\x41PI\x10\x02\x42\x10\n\x0erule_specifier\"\xf9\r\n\tCondition\x12O\n\tauthority\x18\x01 \x01(\x0b\x32<.yandex.cloud.smartwebsecurity.v1.Condition.AuthorityMatcher\x12R\n\x0bhttp_method\x18\x02 \x01(\x0b\x32=.yandex.cloud.smartwebsecurity.v1.Condition.HttpMethodMatcher\x12R\n\x0brequest_uri\x18\x03 \x01(\x0b\x32=.yandex.cloud.smartwebsecurity.v1.Condition.RequestUriMatcher\x12T\n\x07headers\x18\x04 \x03(\x0b\x32\x39.yandex.cloud.smartwebsecurity.v1.Condition.HeaderMatcherB\x08\x82\xc8\x31\x04<=20\x12H\n\tsource_ip\x18\x05 \x01(\x0b\x32\x35.yandex.cloud.smartwebsecurity.v1.Condition.IpMatcher\x1a\xfc\x01\n\rStringMatcher\x12 \n\x0b\x65xact_match\x18\x01 \x01(\tB\t\x8a\xc8\x31\x05\x30-255H\x00\x12$\n\x0f\x65xact_not_match\x18\x02 \x01(\tB\t\x8a\xc8\x31\x05\x30-255H\x00\x12!\n\x0cprefix_match\x18\x03 \x01(\tB\t\x8a\xc8\x31\x05\x30-255H\x00\x12%\n\x10prefix_not_match\x18\x04 \x01(\tB\t\x8a\xc8\x31\x05\x30-255H\x00\x12%\n\x10pire_regex_match\x18\x05 \x01(\tB\t\x8a\xc8\x31\x05\x30-255H\x00\x12)\n\x14pire_regex_not_match\x18\x06 \x01(\tB\t\x8a\xc8\x31\x05\x30-255H\x00\x42\x07\n\x05match\x1an\n\x11HttpMethodMatcher\x12Y\n\x0chttp_methods\x18\x01 \x03(\x0b\x32\x39.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcherB\x08\x82\xc8\x31\x04<=20\x1al\n\x10\x41uthorityMatcher\x12X\n\x0b\x61uthorities\x18\x01 \x03(\x0b\x32\x39.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcherB\x08\x82\xc8\x31\x04<=20\x1a\xb1\x01\n\x11RequestUriMatcher\x12G\n\x04path\x18\x01 \x01(\x0b\x32\x39.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcher\x12S\n\x07queries\x18\x02 \x03(\x0b\x32\x38.yandex.cloud.smartwebsecurity.v1.Condition.QueryMatcherB\x08\x82\xc8\x31\x04<=20\x1az\n\x0cQueryMatcher\x12\x1a\n\x03key\x18\x01 \x01(\tB\r\xe8\xc7\x31\x01\x8a\xc8\x31\x05\x31-255\x12N\n\x05value\x18\x02 \x01(\x0b\x32\x39.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcherB\x04\xe8\xc7\x31\x01\x1a|\n\rHeaderMatcher\x12\x1b\n\x04name\x18\x01 \x01(\tB\r\xe8\xc7\x31\x01\x8a\xc8\x31\x05\x31-255\x12N\n\x05value\x18\x02 \x01(\x0b\x32\x39.yandex.cloud.smartwebsecurity.v1.Condition.StringMatcherB\x04\xe8\xc7\x31\x01\x1a\xdf\x02\n\tIpMatcher\x12T\n\x0fip_ranges_match\x18\x01 \x01(\x0b\x32;.yandex.cloud.smartwebsecurity.v1.Condition.IpRangesMatcher\x12X\n\x13ip_ranges_not_match\x18\x02 \x01(\x0b\x32;.yandex.cloud.smartwebsecurity.v1.Condition.IpRangesMatcher\x12N\n\x0cgeo_ip_match\x18\x03 \x01(\x0b\x32\x38.yandex.cloud.smartwebsecurity.v1.Condition.GeoIpMatcher\x12R\n\x10geo_ip_not_match\x18\x04 \x01(\x0b\x32\x38.yandex.cloud.smartwebsecurity.v1.Condition.GeoIpMatcher\x1a\x31\n\x0fIpRangesMatcher\x12\x1e\n\tip_ranges\x18\x01 \x03(\tB\x0b\x82\xc8\x31\x07<=10000\x1a\x33\n\x0cGeoIpMatcher\x12#\n\tlocations\x18\x01 \x03(\tB\x10\x82\xc8\x31\x03>=1\x8a\xc8\x31\x01\x32\x90\xc8\x31\x01\x42}\n$yandex.cloud.api.smartwebsecurity.v1ZUgithub.com/yandex-cloud/go-genproto/yandex/cloud/smartwebsecurity/v1;smartwebsecurityb\x06proto3')

_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'yandex.cloud.smartwebsecurity.v1.security_profile_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
  _globals['DESCRIPTOR']._loaded_options = None
  _globals['DESCRIPTOR']._serialized_options = b'\n$yandex.cloud.api.smartwebsecurity.v1ZUgithub.com/yandex-cloud/go-genproto/yandex/cloud/smartwebsecurity/v1;smartwebsecurity'
  _globals['_SECURITYPROFILE_ANALYZEREQUESTBODY'].fields_by_name['size_limit']._loaded_options = None
  _globals['_SECURITYPROFILE_ANALYZEREQUESTBODY'].fields_by_name['size_limit']._serialized_options = b'\372\3071\0300,8,16,32,64,128,256,512'
  _globals['_SECURITYPROFILE_LABELSENTRY']._loaded_options = None
  _globals['_SECURITYPROFILE_LABELSENTRY']._serialized_options = b'8\001'
  _globals['_SECURITYPROFILE'].fields_by_name['labels']._loaded_options = None
  _globals['_SECURITYPROFILE'].fields_by_name['labels']._serialized_options = b'\362\3071\013[-_0-9a-z]*\202\3101\004<=64\212\3101\004<=63\262\3101\030\022\020[a-z][-_0-9a-z]*\032\0041-63'
  _globals['_SECURITYPROFILE'].fields_by_name['name']._loaded_options = None
  _globals['_SECURITYPROFILE'].fields_by_name['name']._serialized_options = b'\350\3071\001\362\3071\032[a-zA-Z0-9][a-zA-Z0-9-_.]*\212\3101\0041-50'
  _globals['_SECURITYPROFILE'].fields_by_name['description']._loaded_options = None
  _globals['_SECURITYPROFILE'].fields_by_name['description']._serialized_options = b'\212\3101\005<=512'
  _globals['_SECURITYPROFILE'].fields_by_name['default_action']._loaded_options = None
  _globals['_SECURITYPROFILE'].fields_by_name['default_action']._serialized_options = b'\350\3071\001'
  _globals['_SECURITYRULE_WAF'].fields_by_name['waf_profile_id']._loaded_options = None
  _globals['_SECURITYRULE_WAF'].fields_by_name['waf_profile_id']._serialized_options = b'\350\3071\001'
  _globals['_SECURITYRULE'].fields_by_name['name']._loaded_options = None
  _globals['_SECURITYRULE'].fields_by_name['name']._serialized_options = b'\350\3071\001\362\3071\032[a-zA-Z0-9][a-zA-Z0-9-_.]*\212\3101\0041-50'
  _globals['_SECURITYRULE'].fields_by_name['priority']._loaded_options = None
  _globals['_SECURITYRULE'].fields_by_name['priority']._serialized_options = b'\372\3071\0101-999999'
  _globals['_SECURITYRULE'].fields_by_name['description']._loaded_options = None
  _globals['_SECURITYRULE'].fields_by_name['description']._serialized_options = b'\212\3101\005<=512'
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['exact_match']._loaded_options = None
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['exact_match']._serialized_options = b'\212\3101\0050-255'
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['exact_not_match']._loaded_options = None
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['exact_not_match']._serialized_options = b'\212\3101\0050-255'
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['prefix_match']._loaded_options = None
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['prefix_match']._serialized_options = b'\212\3101\0050-255'
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['prefix_not_match']._loaded_options = None
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['prefix_not_match']._serialized_options = b'\212\3101\0050-255'
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['pire_regex_match']._loaded_options = None
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['pire_regex_match']._serialized_options = b'\212\3101\0050-255'
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['pire_regex_not_match']._loaded_options = None
  _globals['_CONDITION_STRINGMATCHER'].fields_by_name['pire_regex_not_match']._serialized_options = b'\212\3101\0050-255'
  _globals['_CONDITION_HTTPMETHODMATCHER'].fields_by_name['http_methods']._loaded_options = None
  _globals['_CONDITION_HTTPMETHODMATCHER'].fields_by_name['http_methods']._serialized_options = b'\202\3101\004<=20'
  _globals['_CONDITION_AUTHORITYMATCHER'].fields_by_name['authorities']._loaded_options = None
  _globals['_CONDITION_AUTHORITYMATCHER'].fields_by_name['authorities']._serialized_options = b'\202\3101\004<=20'
  _globals['_CONDITION_REQUESTURIMATCHER'].fields_by_name['queries']._loaded_options = None
  _globals['_CONDITION_REQUESTURIMATCHER'].fields_by_name['queries']._serialized_options = b'\202\3101\004<=20'
  _globals['_CONDITION_QUERYMATCHER'].fields_by_name['key']._loaded_options = None
  _globals['_CONDITION_QUERYMATCHER'].fields_by_name['key']._serialized_options = b'\350\3071\001\212\3101\0051-255'
  _globals['_CONDITION_QUERYMATCHER'].fields_by_name['value']._loaded_options = None
  _globals['_CONDITION_QUERYMATCHER'].fields_by_name['value']._serialized_options = b'\350\3071\001'
  _globals['_CONDITION_HEADERMATCHER'].fields_by_name['name']._loaded_options = None
  _globals['_CONDITION_HEADERMATCHER'].fields_by_name['name']._serialized_options = b'\350\3071\001\212\3101\0051-255'
  _globals['_CONDITION_HEADERMATCHER'].fields_by_name['value']._loaded_options = None
  _globals['_CONDITION_HEADERMATCHER'].fields_by_name['value']._serialized_options = b'\350\3071\001'
  _globals['_CONDITION_IPRANGESMATCHER'].fields_by_name['ip_ranges']._loaded_options = None
  _globals['_CONDITION_IPRANGESMATCHER'].fields_by_name['ip_ranges']._serialized_options = b'\202\3101\007<=10000'
  _globals['_CONDITION_GEOIPMATCHER'].fields_by_name['locations']._loaded_options = None
  _globals['_CONDITION_GEOIPMATCHER'].fields_by_name['locations']._serialized_options = b'\202\3101\003>=1\212\3101\0012\220\3101\001'
  _globals['_CONDITION'].fields_by_name['headers']._loaded_options = None
  _globals['_CONDITION'].fields_by_name['headers']._serialized_options = b'\202\3101\004<=20'
  _globals['_SECURITYPROFILE']._serialized_start=158
  _globals['_SECURITYPROFILE']._serialized_end=1188
  _globals['_SECURITYPROFILE_ANALYZEREQUESTBODY']._serialized_start=835
  _globals['_SECURITYPROFILE_ANALYZEREQUESTBODY']._serialized_end=1065
  _globals['_SECURITYPROFILE_ANALYZEREQUESTBODY_ACTION']._serialized_start=1011
  _globals['_SECURITYPROFILE_ANALYZEREQUESTBODY_ACTION']._serialized_end=1065
  _globals['_SECURITYPROFILE_LABELSENTRY']._serialized_start=1067
  _globals['_SECURITYPROFILE_LABELSENTRY']._serialized_end=1112
  _globals['_SECURITYPROFILE_DEFAULTACTION']._serialized_start=1114
  _globals['_SECURITYPROFILE_DEFAULTACTION']._serialized_end=1182
  _globals['_SECURITYRULE']._serialized_start=1191
  _globals['_SECURITYRULE']._serialized_end=2269
  _globals['_SECURITYRULE_RULECONDITION']._serialized_start=1594
  _globals['_SECURITYRULE_RULECONDITION']._serialized_end=1813
  _globals['_SECURITYRULE_RULECONDITION_ACTION']._serialized_start=1760
  _globals['_SECURITYRULE_RULECONDITION_ACTION']._serialized_end=1813
  _globals['_SECURITYRULE_SMARTPROTECTION']._serialized_start=1816
  _globals['_SECURITYRULE_SMARTPROTECTION']._serialized_end=2029
  _globals['_SECURITYRULE_SMARTPROTECTION_MODE']._serialized_start=1982
  _globals['_SECURITYRULE_SMARTPROTECTION_MODE']._serialized_end=2029
  _globals['_SECURITYRULE_WAF']._serialized_start=2032
  _globals['_SECURITYRULE_WAF']._serialized_end=2251
  _globals['_SECURITYRULE_WAF_MODE']._serialized_start=1982
  _globals['_SECURITYRULE_WAF_MODE']._serialized_end=2029
  _globals['_CONDITION']._serialized_start=2272
  _globals['_CONDITION']._serialized_end=4057
  _globals['_CONDITION_STRINGMATCHER']._serialized_start=2695
  _globals['_CONDITION_STRINGMATCHER']._serialized_end=2947
  _globals['_CONDITION_HTTPMETHODMATCHER']._serialized_start=2949
  _globals['_CONDITION_HTTPMETHODMATCHER']._serialized_end=3059
  _globals['_CONDITION_AUTHORITYMATCHER']._serialized_start=3061
  _globals['_CONDITION_AUTHORITYMATCHER']._serialized_end=3169
  _globals['_CONDITION_REQUESTURIMATCHER']._serialized_start=3172
  _globals['_CONDITION_REQUESTURIMATCHER']._serialized_end=3349
  _globals['_CONDITION_QUERYMATCHER']._serialized_start=3351
  _globals['_CONDITION_QUERYMATCHER']._serialized_end=3473
  _globals['_CONDITION_HEADERMATCHER']._serialized_start=3475
  _globals['_CONDITION_HEADERMATCHER']._serialized_end=3599
  _globals['_CONDITION_IPMATCHER']._serialized_start=3602
  _globals['_CONDITION_IPMATCHER']._serialized_end=3953
  _globals['_CONDITION_IPRANGESMATCHER']._serialized_start=3955
  _globals['_CONDITION_IPRANGESMATCHER']._serialized_end=4004
  _globals['_CONDITION_GEOIPMATCHER']._serialized_start=4006
  _globals['_CONDITION_GEOIPMATCHER']._serialized_end=4057
# @@protoc_insertion_point(module_scope)
