#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_results)]
#![allow(unused_mut)]
const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_3_4_0;
#[derive(PartialEq,Clone,Default,Debug)]
pub struct DetectiveStep {
pub path: ::std::option::Option<::std::string::String>,
pub args: ::std::vec::Vec<::std::string::String>,
pub negate: ::std::option::Option<bool>,
pub type_: ::protobuf::EnumOrUnknown<DetectiveType>,
pub pii_keyword_mode: ::std::option::Option<::protobuf::EnumOrUnknown<DetectiveTypePIIKeywordMode>>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a DetectiveStep {
fn default() -> &'a DetectiveStep {
<DetectiveStep as ::protobuf::Message>::default_instance()
}
}
impl DetectiveStep {
pub fn new() -> DetectiveStep {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(5);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"path",
|m: &DetectiveStep| { &m.path },
|m: &mut DetectiveStep| { &mut m.path },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"args",
|m: &DetectiveStep| { &m.args },
|m: &mut DetectiveStep| { &mut m.args },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"negate",
|m: &DetectiveStep| { &m.negate },
|m: &mut DetectiveStep| { &mut m.negate },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"type",
|m: &DetectiveStep| { &m.type_ },
|m: &mut DetectiveStep| { &mut m.type_ },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"pii_keyword_mode",
|m: &DetectiveStep| { &m.pii_keyword_mode },
|m: &mut DetectiveStep| { &mut m.pii_keyword_mode },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DetectiveStep>(
"DetectiveStep",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for DetectiveStep {
const NAME: &'static str = "DetectiveStep";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.path = ::std::option::Option::Some(is.read_string()?);
},
18 => {
self.args.push(is.read_string()?);
},
24 => {
self.negate = ::std::option::Option::Some(is.read_bool()?);
},
32 => {
self.type_ = is.read_enum_or_unknown()?;
},
40 => {
self.pii_keyword_mode = ::std::option::Option::Some(is.read_enum_or_unknown()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.path.as_ref() {
my_size += ::protobuf::rt::string_size(1, &v);
}
for value in &self.args {
my_size += ::protobuf::rt::string_size(2, &value);
};
if let Some(v) = self.negate {
my_size += 1 + 1;
}
if self.type_ != ::protobuf::EnumOrUnknown::new(DetectiveType::DETECTIVE_TYPE_UNKNOWN) {
my_size += ::protobuf::rt::int32_size(4, self.type_.value());
}
if let Some(v) = self.pii_keyword_mode {
my_size += ::protobuf::rt::int32_size(5, v.value());
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.path.as_ref() {
os.write_string(1, v)?;
}
for v in &self.args {
os.write_string(2, &v)?;
};
if let Some(v) = self.negate {
os.write_bool(3, v)?;
}
if self.type_ != ::protobuf::EnumOrUnknown::new(DetectiveType::DETECTIVE_TYPE_UNKNOWN) {
os.write_enum(4, ::protobuf::EnumOrUnknown::value(&self.type_))?;
}
if let Some(v) = self.pii_keyword_mode {
os.write_enum(5, ::protobuf::EnumOrUnknown::value(&v))?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> DetectiveStep {
DetectiveStep::new()
}
fn clear(&mut self) {
self.path = ::std::option::Option::None;
self.args.clear();
self.negate = ::std::option::Option::None;
self.type_ = ::protobuf::EnumOrUnknown::new(DetectiveType::DETECTIVE_TYPE_UNKNOWN);
self.pii_keyword_mode = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static DetectiveStep {
static instance: DetectiveStep = DetectiveStep {
path: ::std::option::Option::None,
args: ::std::vec::Vec::new(),
negate: ::std::option::Option::None,
type_: ::protobuf::EnumOrUnknown::from_i32(0),
pii_keyword_mode: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for DetectiveStep {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("DetectiveStep").unwrap()).clone()
}
}
impl ::std::fmt::Display for DetectiveStep {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for DetectiveStep {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct DetectiveStepResultMatch {
pub type_: ::protobuf::EnumOrUnknown<DetectiveType>,
pub path: ::std::string::String,
pub char_index_start: i32,
pub char_index_end: i32,
pub value: ::std::vec::Vec<u8>,
pub pii_type: ::std::string::String,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a DetectiveStepResultMatch {
fn default() -> &'a DetectiveStepResultMatch {
<DetectiveStepResultMatch as ::protobuf::Message>::default_instance()
}
}
impl DetectiveStepResultMatch {
pub fn new() -> DetectiveStepResultMatch {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(6);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"type",
|m: &DetectiveStepResultMatch| { &m.type_ },
|m: &mut DetectiveStepResultMatch| { &mut m.type_ },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"path",
|m: &DetectiveStepResultMatch| { &m.path },
|m: &mut DetectiveStepResultMatch| { &mut m.path },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"char_index_start",
|m: &DetectiveStepResultMatch| { &m.char_index_start },
|m: &mut DetectiveStepResultMatch| { &mut m.char_index_start },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"char_index_end",
|m: &DetectiveStepResultMatch| { &m.char_index_end },
|m: &mut DetectiveStepResultMatch| { &mut m.char_index_end },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"value",
|m: &DetectiveStepResultMatch| { &m.value },
|m: &mut DetectiveStepResultMatch| { &mut m.value },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"pii_type",
|m: &DetectiveStepResultMatch| { &m.pii_type },
|m: &mut DetectiveStepResultMatch| { &mut m.pii_type },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DetectiveStepResultMatch>(
"DetectiveStepResultMatch",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for DetectiveStepResultMatch {
const NAME: &'static str = "DetectiveStepResultMatch";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
8 => {
self.type_ = is.read_enum_or_unknown()?;
},
18 => {
self.path = is.read_string()?;
},
24 => {
self.char_index_start = is.read_int32()?;
},
32 => {
self.char_index_end = is.read_int32()?;
},
42 => {
self.value = is.read_bytes()?;
},
50 => {
self.pii_type = is.read_string()?;
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if self.type_ != ::protobuf::EnumOrUnknown::new(DetectiveType::DETECTIVE_TYPE_UNKNOWN) {
my_size += ::protobuf::rt::int32_size(1, self.type_.value());
}
if !self.path.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.path);
}
if self.char_index_start != 0 {
my_size += ::protobuf::rt::int32_size(3, self.char_index_start);
}
if self.char_index_end != 0 {
my_size += ::protobuf::rt::int32_size(4, self.char_index_end);
}
if !self.value.is_empty() {
my_size += ::protobuf::rt::bytes_size(5, &self.value);
}
if !self.pii_type.is_empty() {
my_size += ::protobuf::rt::string_size(6, &self.pii_type);
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if self.type_ != ::protobuf::EnumOrUnknown::new(DetectiveType::DETECTIVE_TYPE_UNKNOWN) {
os.write_enum(1, ::protobuf::EnumOrUnknown::value(&self.type_))?;
}
if !self.path.is_empty() {
os.write_string(2, &self.path)?;
}
if self.char_index_start != 0 {
os.write_int32(3, self.char_index_start)?;
}
if self.char_index_end != 0 {
os.write_int32(4, self.char_index_end)?;
}
if !self.value.is_empty() {
os.write_bytes(5, &self.value)?;
}
if !self.pii_type.is_empty() {
os.write_string(6, &self.pii_type)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> DetectiveStepResultMatch {
DetectiveStepResultMatch::new()
}
fn clear(&mut self) {
self.type_ = ::protobuf::EnumOrUnknown::new(DetectiveType::DETECTIVE_TYPE_UNKNOWN);
self.path.clear();
self.char_index_start = 0;
self.char_index_end = 0;
self.value.clear();
self.pii_type.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static DetectiveStepResultMatch {
static instance: DetectiveStepResultMatch = DetectiveStepResultMatch {
type_: ::protobuf::EnumOrUnknown::from_i32(0),
path: ::std::string::String::new(),
char_index_start: 0,
char_index_end: 0,
value: ::std::vec::Vec::new(),
pii_type: ::std::string::String::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for DetectiveStepResultMatch {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("DetectiveStepResultMatch").unwrap()).clone()
}
}
impl ::std::fmt::Display for DetectiveStepResultMatch {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for DetectiveStepResultMatch {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct DetectiveStepResult {
pub matches: ::std::vec::Vec<DetectiveStepResultMatch>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a DetectiveStepResult {
fn default() -> &'a DetectiveStepResult {
<DetectiveStepResult as ::protobuf::Message>::default_instance()
}
}
impl DetectiveStepResult {
pub fn new() -> DetectiveStepResult {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(1);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"matches",
|m: &DetectiveStepResult| { &m.matches },
|m: &mut DetectiveStepResult| { &mut m.matches },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DetectiveStepResult>(
"DetectiveStepResult",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for DetectiveStepResult {
const NAME: &'static str = "DetectiveStepResult";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
self.matches.push(is.read_message()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
for value in &self.matches {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
for v in &self.matches {
::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
};
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> DetectiveStepResult {
DetectiveStepResult::new()
}
fn clear(&mut self) {
self.matches.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static DetectiveStepResult {
static instance: DetectiveStepResult = DetectiveStepResult {
matches: ::std::vec::Vec::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for DetectiveStepResult {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("DetectiveStepResult").unwrap()).clone()
}
}
impl ::std::fmt::Display for DetectiveStepResult {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for DetectiveStepResult {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum DetectiveType {
DETECTIVE_TYPE_UNKNOWN = 0,
DETECTIVE_TYPE_IS_EMPTY = 1000,
DETECTIVE_TYPE_HAS_FIELD = 1001,
DETECTIVE_TYPE_IS_TYPE = 1002,
DETECTIVE_TYPE_STRING_CONTAINS_ANY = 1003,
DETECTIVE_TYPE_STRING_CONTAINS_ALL = 1004,
DETECTIVE_TYPE_STRING_EQUAL = 1005,
DETECTIVE_TYPE_IPV4_ADDRESS = 1006,
DETECTIVE_TYPE_IPV6_ADDRESS = 1007,
DETECTIVE_TYPE_MAC_ADDRESS = 1008,
DETECTIVE_TYPE_REGEX = 1009,
DETECTIVE_TYPE_TIMESTAMP_RFC3339 = 1010,
DETECTIVE_TYPE_TIMESTAMP_UNIX_NANO = 1011,
DETECTIVE_TYPE_TIMESTAMP_UNIX = 1012,
DETECTIVE_TYPE_BOOLEAN_TRUE = 1013,
DETECTIVE_TYPE_BOOLEAN_FALSE = 1014,
DETECTIVE_TYPE_UUID = 1015,
DETECTIVE_TYPE_URL = 1016,
DETECTIVE_TYPE_HOSTNAME = 1017,
DETECTIVE_TYPE_STRING_LENGTH_MIN = 1018,
DETECTIVE_TYPE_STRING_LENGTH_MAX = 1019,
DETECTIVE_TYPE_STRING_LENGTH_RANGE = 1020,
DETECTIVE_TYPE_SEMVER = 1021,
DETECTIVE_TYPE_PII_ANY = 2000,
DETECTIVE_TYPE_PII_CREDIT_CARD = 2001,
DETECTIVE_TYPE_PII_SSN = 2002,
DETECTIVE_TYPE_PII_EMAIL = 2003,
DETECTIVE_TYPE_PII_PHONE = 2004,
DETECTIVE_TYPE_PII_DRIVER_LICENSE = 2005,
DETECTIVE_TYPE_PII_PASSPORT_ID = 2006,
DETECTIVE_TYPE_PII_VIN_NUMBER = 2007,
DETECTIVE_TYPE_PII_SERIAL_NUMBER = 2008,
DETECTIVE_TYPE_PII_LOGIN = 2009,
DETECTIVE_TYPE_PII_TAXPAYER_ID = 2010,
DETECTIVE_TYPE_PII_ADDRESS = 2011,
DETECTIVE_TYPE_PII_SIGNATURE = 2012,
DETECTIVE_TYPE_PII_GEOLOCATION = 2013,
DETECTIVE_TYPE_PII_EDUCATION = 2014,
DETECTIVE_TYPE_PII_FINANCIAL = 2015,
DETECTIVE_TYPE_PII_HEALTH = 2016,
DETECTIVE_TYPE_PII_AWS_KEY_ID = 2017,
DETECTIVE_TYPE_PII_RSA_KEY = 2018,
DETECTIVE_TYPE_PII_TITLE = 2019,
DETECTIVE_TYPE_PII_RELIGION = 2020,
DETECTIVE_TYPE_PII_SLACK_TOKEN = 2021,
DETECTIVE_TYPE_PII_STRIPE_KEY = 2022,
DETECTIVE_TYPE_PII_IBAN = 2023,
DETECTIVE_TYPE_PII_SWIFT_BIC = 2024,
DETECTIVE_TYPE_PII_BANK_ROUTING_NUMBER = 2025,
DETECTIVE_TYPE_PII_CRYPTO_ADDRESS = 2026,
DETECTIVE_TYPE_PII_GITHUB_PAT = 2027,
DETECTIVE_TYPE_PII_BRAINTREE_ACCESS_TOKEN = 2028,
DETECTIVE_TYPE_PII_AWS_MWS_AUTH_TOKEN = 2029,
DETECTIVE_TYPE_PII_DATABRICKS_PAT = 2030,
DETECTIVE_TYPE_PII_SENDGRID_KEY = 2031,
DETECTIVE_TYPE_PII_AZURE_SQL_CONN_STRING = 2032,
DETECTIVE_TYPE_PII_JWT = 2033,
DETECTIVE_TYPE_PII_DOCKER_SWARM_TOKEN = 2034,
DETECTIVE_TYPE_PII_BEARER_TOKEN = 2035,
DETECTIVE_TYPE_PII_KEYWORD = 2036,
DETECTIVE_TYPE_PII_PLAINTEXT_ANY = 2037,
DETECTIVE_TYPE_UK_INSURANCE_NUMBER = 2038,
DETECTIVE_TYPE_CANADA_SIN = 2039,
DETECTIVE_TYPE_NUMERIC_EQUAL_TO = 3000,
DETECTIVE_TYPE_NUMERIC_GREATER_THAN = 3001,
DETECTIVE_TYPE_NUMERIC_GREATER_EQUAL = 3002,
DETECTIVE_TYPE_NUMERIC_LESS_THAN = 3003,
DETECTIVE_TYPE_NUMERIC_LESS_EQUAL = 3004,
DETECTIVE_TYPE_NUMERIC_RANGE = 3005,
DETECTIVE_TYPE_NUMERIC_MIN = 3006,
DETECTIVE_TYPE_NUMERIC_MAX = 3007,
}
impl ::protobuf::Enum for DetectiveType {
const NAME: &'static str = "DetectiveType";
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<DetectiveType> {
match value {
0 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_UNKNOWN),
1000 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_IS_EMPTY),
1001 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_HAS_FIELD),
1002 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_IS_TYPE),
1003 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_CONTAINS_ANY),
1004 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_CONTAINS_ALL),
1005 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_EQUAL),
1006 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_IPV4_ADDRESS),
1007 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_IPV6_ADDRESS),
1008 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_MAC_ADDRESS),
1009 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_REGEX),
1010 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_TIMESTAMP_RFC3339),
1011 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_TIMESTAMP_UNIX_NANO),
1012 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_TIMESTAMP_UNIX),
1013 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_BOOLEAN_TRUE),
1014 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_BOOLEAN_FALSE),
1015 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_UUID),
1016 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_URL),
1017 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_HOSTNAME),
1018 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_MIN),
1019 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_MAX),
1020 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_RANGE),
1021 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_SEMVER),
2000 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_ANY),
2001 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_CREDIT_CARD),
2002 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SSN),
2003 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_EMAIL),
2004 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_PHONE),
2005 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_DRIVER_LICENSE),
2006 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_PASSPORT_ID),
2007 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_VIN_NUMBER),
2008 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SERIAL_NUMBER),
2009 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_LOGIN),
2010 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_TAXPAYER_ID),
2011 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_ADDRESS),
2012 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SIGNATURE),
2013 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_GEOLOCATION),
2014 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_EDUCATION),
2015 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_FINANCIAL),
2016 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_HEALTH),
2017 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_AWS_KEY_ID),
2018 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_RSA_KEY),
2019 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_TITLE),
2020 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_RELIGION),
2021 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SLACK_TOKEN),
2022 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_STRIPE_KEY),
2023 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_IBAN),
2024 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SWIFT_BIC),
2025 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_BANK_ROUTING_NUMBER),
2026 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_CRYPTO_ADDRESS),
2027 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_GITHUB_PAT),
2028 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_BRAINTREE_ACCESS_TOKEN),
2029 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_AWS_MWS_AUTH_TOKEN),
2030 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_DATABRICKS_PAT),
2031 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SENDGRID_KEY),
2032 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_AZURE_SQL_CONN_STRING),
2033 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_JWT),
2034 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_DOCKER_SWARM_TOKEN),
2035 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_BEARER_TOKEN),
2036 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_KEYWORD),
2037 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_PLAINTEXT_ANY),
2038 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_UK_INSURANCE_NUMBER),
2039 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_CANADA_SIN),
3000 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_EQUAL_TO),
3001 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_GREATER_THAN),
3002 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_GREATER_EQUAL),
3003 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_LESS_THAN),
3004 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_LESS_EQUAL),
3005 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_RANGE),
3006 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_MIN),
3007 => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_MAX),
_ => ::std::option::Option::None
}
}
fn from_str(str: &str) -> ::std::option::Option<DetectiveType> {
match str {
"DETECTIVE_TYPE_UNKNOWN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_UNKNOWN),
"DETECTIVE_TYPE_IS_EMPTY" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_IS_EMPTY),
"DETECTIVE_TYPE_HAS_FIELD" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_HAS_FIELD),
"DETECTIVE_TYPE_IS_TYPE" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_IS_TYPE),
"DETECTIVE_TYPE_STRING_CONTAINS_ANY" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_CONTAINS_ANY),
"DETECTIVE_TYPE_STRING_CONTAINS_ALL" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_CONTAINS_ALL),
"DETECTIVE_TYPE_STRING_EQUAL" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_EQUAL),
"DETECTIVE_TYPE_IPV4_ADDRESS" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_IPV4_ADDRESS),
"DETECTIVE_TYPE_IPV6_ADDRESS" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_IPV6_ADDRESS),
"DETECTIVE_TYPE_MAC_ADDRESS" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_MAC_ADDRESS),
"DETECTIVE_TYPE_REGEX" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_REGEX),
"DETECTIVE_TYPE_TIMESTAMP_RFC3339" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_TIMESTAMP_RFC3339),
"DETECTIVE_TYPE_TIMESTAMP_UNIX_NANO" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_TIMESTAMP_UNIX_NANO),
"DETECTIVE_TYPE_TIMESTAMP_UNIX" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_TIMESTAMP_UNIX),
"DETECTIVE_TYPE_BOOLEAN_TRUE" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_BOOLEAN_TRUE),
"DETECTIVE_TYPE_BOOLEAN_FALSE" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_BOOLEAN_FALSE),
"DETECTIVE_TYPE_UUID" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_UUID),
"DETECTIVE_TYPE_URL" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_URL),
"DETECTIVE_TYPE_HOSTNAME" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_HOSTNAME),
"DETECTIVE_TYPE_STRING_LENGTH_MIN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_MIN),
"DETECTIVE_TYPE_STRING_LENGTH_MAX" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_MAX),
"DETECTIVE_TYPE_STRING_LENGTH_RANGE" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_RANGE),
"DETECTIVE_TYPE_SEMVER" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_SEMVER),
"DETECTIVE_TYPE_PII_ANY" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_ANY),
"DETECTIVE_TYPE_PII_CREDIT_CARD" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_CREDIT_CARD),
"DETECTIVE_TYPE_PII_SSN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SSN),
"DETECTIVE_TYPE_PII_EMAIL" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_EMAIL),
"DETECTIVE_TYPE_PII_PHONE" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_PHONE),
"DETECTIVE_TYPE_PII_DRIVER_LICENSE" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_DRIVER_LICENSE),
"DETECTIVE_TYPE_PII_PASSPORT_ID" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_PASSPORT_ID),
"DETECTIVE_TYPE_PII_VIN_NUMBER" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_VIN_NUMBER),
"DETECTIVE_TYPE_PII_SERIAL_NUMBER" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SERIAL_NUMBER),
"DETECTIVE_TYPE_PII_LOGIN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_LOGIN),
"DETECTIVE_TYPE_PII_TAXPAYER_ID" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_TAXPAYER_ID),
"DETECTIVE_TYPE_PII_ADDRESS" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_ADDRESS),
"DETECTIVE_TYPE_PII_SIGNATURE" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SIGNATURE),
"DETECTIVE_TYPE_PII_GEOLOCATION" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_GEOLOCATION),
"DETECTIVE_TYPE_PII_EDUCATION" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_EDUCATION),
"DETECTIVE_TYPE_PII_FINANCIAL" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_FINANCIAL),
"DETECTIVE_TYPE_PII_HEALTH" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_HEALTH),
"DETECTIVE_TYPE_PII_AWS_KEY_ID" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_AWS_KEY_ID),
"DETECTIVE_TYPE_PII_RSA_KEY" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_RSA_KEY),
"DETECTIVE_TYPE_PII_TITLE" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_TITLE),
"DETECTIVE_TYPE_PII_RELIGION" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_RELIGION),
"DETECTIVE_TYPE_PII_SLACK_TOKEN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SLACK_TOKEN),
"DETECTIVE_TYPE_PII_STRIPE_KEY" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_STRIPE_KEY),
"DETECTIVE_TYPE_PII_IBAN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_IBAN),
"DETECTIVE_TYPE_PII_SWIFT_BIC" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SWIFT_BIC),
"DETECTIVE_TYPE_PII_BANK_ROUTING_NUMBER" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_BANK_ROUTING_NUMBER),
"DETECTIVE_TYPE_PII_CRYPTO_ADDRESS" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_CRYPTO_ADDRESS),
"DETECTIVE_TYPE_PII_GITHUB_PAT" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_GITHUB_PAT),
"DETECTIVE_TYPE_PII_BRAINTREE_ACCESS_TOKEN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_BRAINTREE_ACCESS_TOKEN),
"DETECTIVE_TYPE_PII_AWS_MWS_AUTH_TOKEN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_AWS_MWS_AUTH_TOKEN),
"DETECTIVE_TYPE_PII_DATABRICKS_PAT" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_DATABRICKS_PAT),
"DETECTIVE_TYPE_PII_SENDGRID_KEY" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_SENDGRID_KEY),
"DETECTIVE_TYPE_PII_AZURE_SQL_CONN_STRING" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_AZURE_SQL_CONN_STRING),
"DETECTIVE_TYPE_PII_JWT" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_JWT),
"DETECTIVE_TYPE_PII_DOCKER_SWARM_TOKEN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_DOCKER_SWARM_TOKEN),
"DETECTIVE_TYPE_PII_BEARER_TOKEN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_BEARER_TOKEN),
"DETECTIVE_TYPE_PII_KEYWORD" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_KEYWORD),
"DETECTIVE_TYPE_PII_PLAINTEXT_ANY" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_PII_PLAINTEXT_ANY),
"DETECTIVE_TYPE_UK_INSURANCE_NUMBER" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_UK_INSURANCE_NUMBER),
"DETECTIVE_TYPE_CANADA_SIN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_CANADA_SIN),
"DETECTIVE_TYPE_NUMERIC_EQUAL_TO" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_EQUAL_TO),
"DETECTIVE_TYPE_NUMERIC_GREATER_THAN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_GREATER_THAN),
"DETECTIVE_TYPE_NUMERIC_GREATER_EQUAL" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_GREATER_EQUAL),
"DETECTIVE_TYPE_NUMERIC_LESS_THAN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_LESS_THAN),
"DETECTIVE_TYPE_NUMERIC_LESS_EQUAL" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_LESS_EQUAL),
"DETECTIVE_TYPE_NUMERIC_RANGE" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_RANGE),
"DETECTIVE_TYPE_NUMERIC_MIN" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_MIN),
"DETECTIVE_TYPE_NUMERIC_MAX" => ::std::option::Option::Some(DetectiveType::DETECTIVE_TYPE_NUMERIC_MAX),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [DetectiveType] = &[
DetectiveType::DETECTIVE_TYPE_UNKNOWN,
DetectiveType::DETECTIVE_TYPE_IS_EMPTY,
DetectiveType::DETECTIVE_TYPE_HAS_FIELD,
DetectiveType::DETECTIVE_TYPE_IS_TYPE,
DetectiveType::DETECTIVE_TYPE_STRING_CONTAINS_ANY,
DetectiveType::DETECTIVE_TYPE_STRING_CONTAINS_ALL,
DetectiveType::DETECTIVE_TYPE_STRING_EQUAL,
DetectiveType::DETECTIVE_TYPE_IPV4_ADDRESS,
DetectiveType::DETECTIVE_TYPE_IPV6_ADDRESS,
DetectiveType::DETECTIVE_TYPE_MAC_ADDRESS,
DetectiveType::DETECTIVE_TYPE_REGEX,
DetectiveType::DETECTIVE_TYPE_TIMESTAMP_RFC3339,
DetectiveType::DETECTIVE_TYPE_TIMESTAMP_UNIX_NANO,
DetectiveType::DETECTIVE_TYPE_TIMESTAMP_UNIX,
DetectiveType::DETECTIVE_TYPE_BOOLEAN_TRUE,
DetectiveType::DETECTIVE_TYPE_BOOLEAN_FALSE,
DetectiveType::DETECTIVE_TYPE_UUID,
DetectiveType::DETECTIVE_TYPE_URL,
DetectiveType::DETECTIVE_TYPE_HOSTNAME,
DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_MIN,
DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_MAX,
DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_RANGE,
DetectiveType::DETECTIVE_TYPE_SEMVER,
DetectiveType::DETECTIVE_TYPE_PII_ANY,
DetectiveType::DETECTIVE_TYPE_PII_CREDIT_CARD,
DetectiveType::DETECTIVE_TYPE_PII_SSN,
DetectiveType::DETECTIVE_TYPE_PII_EMAIL,
DetectiveType::DETECTIVE_TYPE_PII_PHONE,
DetectiveType::DETECTIVE_TYPE_PII_DRIVER_LICENSE,
DetectiveType::DETECTIVE_TYPE_PII_PASSPORT_ID,
DetectiveType::DETECTIVE_TYPE_PII_VIN_NUMBER,
DetectiveType::DETECTIVE_TYPE_PII_SERIAL_NUMBER,
DetectiveType::DETECTIVE_TYPE_PII_LOGIN,
DetectiveType::DETECTIVE_TYPE_PII_TAXPAYER_ID,
DetectiveType::DETECTIVE_TYPE_PII_ADDRESS,
DetectiveType::DETECTIVE_TYPE_PII_SIGNATURE,
DetectiveType::DETECTIVE_TYPE_PII_GEOLOCATION,
DetectiveType::DETECTIVE_TYPE_PII_EDUCATION,
DetectiveType::DETECTIVE_TYPE_PII_FINANCIAL,
DetectiveType::DETECTIVE_TYPE_PII_HEALTH,
DetectiveType::DETECTIVE_TYPE_PII_AWS_KEY_ID,
DetectiveType::DETECTIVE_TYPE_PII_RSA_KEY,
DetectiveType::DETECTIVE_TYPE_PII_TITLE,
DetectiveType::DETECTIVE_TYPE_PII_RELIGION,
DetectiveType::DETECTIVE_TYPE_PII_SLACK_TOKEN,
DetectiveType::DETECTIVE_TYPE_PII_STRIPE_KEY,
DetectiveType::DETECTIVE_TYPE_PII_IBAN,
DetectiveType::DETECTIVE_TYPE_PII_SWIFT_BIC,
DetectiveType::DETECTIVE_TYPE_PII_BANK_ROUTING_NUMBER,
DetectiveType::DETECTIVE_TYPE_PII_CRYPTO_ADDRESS,
DetectiveType::DETECTIVE_TYPE_PII_GITHUB_PAT,
DetectiveType::DETECTIVE_TYPE_PII_BRAINTREE_ACCESS_TOKEN,
DetectiveType::DETECTIVE_TYPE_PII_AWS_MWS_AUTH_TOKEN,
DetectiveType::DETECTIVE_TYPE_PII_DATABRICKS_PAT,
DetectiveType::DETECTIVE_TYPE_PII_SENDGRID_KEY,
DetectiveType::DETECTIVE_TYPE_PII_AZURE_SQL_CONN_STRING,
DetectiveType::DETECTIVE_TYPE_PII_JWT,
DetectiveType::DETECTIVE_TYPE_PII_DOCKER_SWARM_TOKEN,
DetectiveType::DETECTIVE_TYPE_PII_BEARER_TOKEN,
DetectiveType::DETECTIVE_TYPE_PII_KEYWORD,
DetectiveType::DETECTIVE_TYPE_PII_PLAINTEXT_ANY,
DetectiveType::DETECTIVE_TYPE_UK_INSURANCE_NUMBER,
DetectiveType::DETECTIVE_TYPE_CANADA_SIN,
DetectiveType::DETECTIVE_TYPE_NUMERIC_EQUAL_TO,
DetectiveType::DETECTIVE_TYPE_NUMERIC_GREATER_THAN,
DetectiveType::DETECTIVE_TYPE_NUMERIC_GREATER_EQUAL,
DetectiveType::DETECTIVE_TYPE_NUMERIC_LESS_THAN,
DetectiveType::DETECTIVE_TYPE_NUMERIC_LESS_EQUAL,
DetectiveType::DETECTIVE_TYPE_NUMERIC_RANGE,
DetectiveType::DETECTIVE_TYPE_NUMERIC_MIN,
DetectiveType::DETECTIVE_TYPE_NUMERIC_MAX,
];
}
impl ::protobuf::EnumFull for DetectiveType {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().enum_by_package_relative_name("DetectiveType").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = match self {
DetectiveType::DETECTIVE_TYPE_UNKNOWN => 0,
DetectiveType::DETECTIVE_TYPE_IS_EMPTY => 1,
DetectiveType::DETECTIVE_TYPE_HAS_FIELD => 2,
DetectiveType::DETECTIVE_TYPE_IS_TYPE => 3,
DetectiveType::DETECTIVE_TYPE_STRING_CONTAINS_ANY => 4,
DetectiveType::DETECTIVE_TYPE_STRING_CONTAINS_ALL => 5,
DetectiveType::DETECTIVE_TYPE_STRING_EQUAL => 6,
DetectiveType::DETECTIVE_TYPE_IPV4_ADDRESS => 7,
DetectiveType::DETECTIVE_TYPE_IPV6_ADDRESS => 8,
DetectiveType::DETECTIVE_TYPE_MAC_ADDRESS => 9,
DetectiveType::DETECTIVE_TYPE_REGEX => 10,
DetectiveType::DETECTIVE_TYPE_TIMESTAMP_RFC3339 => 11,
DetectiveType::DETECTIVE_TYPE_TIMESTAMP_UNIX_NANO => 12,
DetectiveType::DETECTIVE_TYPE_TIMESTAMP_UNIX => 13,
DetectiveType::DETECTIVE_TYPE_BOOLEAN_TRUE => 14,
DetectiveType::DETECTIVE_TYPE_BOOLEAN_FALSE => 15,
DetectiveType::DETECTIVE_TYPE_UUID => 16,
DetectiveType::DETECTIVE_TYPE_URL => 17,
DetectiveType::DETECTIVE_TYPE_HOSTNAME => 18,
DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_MIN => 19,
DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_MAX => 20,
DetectiveType::DETECTIVE_TYPE_STRING_LENGTH_RANGE => 21,
DetectiveType::DETECTIVE_TYPE_SEMVER => 22,
DetectiveType::DETECTIVE_TYPE_PII_ANY => 23,
DetectiveType::DETECTIVE_TYPE_PII_CREDIT_CARD => 24,
DetectiveType::DETECTIVE_TYPE_PII_SSN => 25,
DetectiveType::DETECTIVE_TYPE_PII_EMAIL => 26,
DetectiveType::DETECTIVE_TYPE_PII_PHONE => 27,
DetectiveType::DETECTIVE_TYPE_PII_DRIVER_LICENSE => 28,
DetectiveType::DETECTIVE_TYPE_PII_PASSPORT_ID => 29,
DetectiveType::DETECTIVE_TYPE_PII_VIN_NUMBER => 30,
DetectiveType::DETECTIVE_TYPE_PII_SERIAL_NUMBER => 31,
DetectiveType::DETECTIVE_TYPE_PII_LOGIN => 32,
DetectiveType::DETECTIVE_TYPE_PII_TAXPAYER_ID => 33,
DetectiveType::DETECTIVE_TYPE_PII_ADDRESS => 34,
DetectiveType::DETECTIVE_TYPE_PII_SIGNATURE => 35,
DetectiveType::DETECTIVE_TYPE_PII_GEOLOCATION => 36,
DetectiveType::DETECTIVE_TYPE_PII_EDUCATION => 37,
DetectiveType::DETECTIVE_TYPE_PII_FINANCIAL => 38,
DetectiveType::DETECTIVE_TYPE_PII_HEALTH => 39,
DetectiveType::DETECTIVE_TYPE_PII_AWS_KEY_ID => 40,
DetectiveType::DETECTIVE_TYPE_PII_RSA_KEY => 41,
DetectiveType::DETECTIVE_TYPE_PII_TITLE => 42,
DetectiveType::DETECTIVE_TYPE_PII_RELIGION => 43,
DetectiveType::DETECTIVE_TYPE_PII_SLACK_TOKEN => 44,
DetectiveType::DETECTIVE_TYPE_PII_STRIPE_KEY => 45,
DetectiveType::DETECTIVE_TYPE_PII_IBAN => 46,
DetectiveType::DETECTIVE_TYPE_PII_SWIFT_BIC => 47,
DetectiveType::DETECTIVE_TYPE_PII_BANK_ROUTING_NUMBER => 48,
DetectiveType::DETECTIVE_TYPE_PII_CRYPTO_ADDRESS => 49,
DetectiveType::DETECTIVE_TYPE_PII_GITHUB_PAT => 50,
DetectiveType::DETECTIVE_TYPE_PII_BRAINTREE_ACCESS_TOKEN => 51,
DetectiveType::DETECTIVE_TYPE_PII_AWS_MWS_AUTH_TOKEN => 52,
DetectiveType::DETECTIVE_TYPE_PII_DATABRICKS_PAT => 53,
DetectiveType::DETECTIVE_TYPE_PII_SENDGRID_KEY => 54,
DetectiveType::DETECTIVE_TYPE_PII_AZURE_SQL_CONN_STRING => 55,
DetectiveType::DETECTIVE_TYPE_PII_JWT => 56,
DetectiveType::DETECTIVE_TYPE_PII_DOCKER_SWARM_TOKEN => 57,
DetectiveType::DETECTIVE_TYPE_PII_BEARER_TOKEN => 58,
DetectiveType::DETECTIVE_TYPE_PII_KEYWORD => 59,
DetectiveType::DETECTIVE_TYPE_PII_PLAINTEXT_ANY => 60,
DetectiveType::DETECTIVE_TYPE_UK_INSURANCE_NUMBER => 61,
DetectiveType::DETECTIVE_TYPE_CANADA_SIN => 62,
DetectiveType::DETECTIVE_TYPE_NUMERIC_EQUAL_TO => 63,
DetectiveType::DETECTIVE_TYPE_NUMERIC_GREATER_THAN => 64,
DetectiveType::DETECTIVE_TYPE_NUMERIC_GREATER_EQUAL => 65,
DetectiveType::DETECTIVE_TYPE_NUMERIC_LESS_THAN => 66,
DetectiveType::DETECTIVE_TYPE_NUMERIC_LESS_EQUAL => 67,
DetectiveType::DETECTIVE_TYPE_NUMERIC_RANGE => 68,
DetectiveType::DETECTIVE_TYPE_NUMERIC_MIN => 69,
DetectiveType::DETECTIVE_TYPE_NUMERIC_MAX => 70,
};
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for DetectiveType {
fn default() -> Self {
DetectiveType::DETECTIVE_TYPE_UNKNOWN
}
}
impl DetectiveType {
fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<DetectiveType>("DetectiveType")
}
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum DetectiveTypePIIKeywordMode {
DETECTIVE_TYPE_PII_KEYWORD_MODE_UNSET = 0,
DETECTIVE_TYPE_PII_KEYWORD_MODE_PERFORMANCE = 1,
DETECTIVE_TYPE_PII_KEYWORD_MODE_ACCURACY = 2,
}
impl ::protobuf::Enum for DetectiveTypePIIKeywordMode {
const NAME: &'static str = "DetectiveTypePIIKeywordMode";
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<DetectiveTypePIIKeywordMode> {
match value {
0 => ::std::option::Option::Some(DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_UNSET),
1 => ::std::option::Option::Some(DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_PERFORMANCE),
2 => ::std::option::Option::Some(DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_ACCURACY),
_ => ::std::option::Option::None
}
}
fn from_str(str: &str) -> ::std::option::Option<DetectiveTypePIIKeywordMode> {
match str {
"DETECTIVE_TYPE_PII_KEYWORD_MODE_UNSET" => ::std::option::Option::Some(DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_UNSET),
"DETECTIVE_TYPE_PII_KEYWORD_MODE_PERFORMANCE" => ::std::option::Option::Some(DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_PERFORMANCE),
"DETECTIVE_TYPE_PII_KEYWORD_MODE_ACCURACY" => ::std::option::Option::Some(DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_ACCURACY),
_ => ::std::option::Option::None
}
}
const VALUES: &'static [DetectiveTypePIIKeywordMode] = &[
DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_UNSET,
DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_PERFORMANCE,
DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_ACCURACY,
];
}
impl ::protobuf::EnumFull for DetectiveTypePIIKeywordMode {
fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().enum_by_package_relative_name("DetectiveTypePIIKeywordMode").unwrap()).clone()
}
fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor {
let index = *self as usize;
Self::enum_descriptor().value_by_index(index)
}
}
impl ::std::default::Default for DetectiveTypePIIKeywordMode {
fn default() -> Self {
DetectiveTypePIIKeywordMode::DETECTIVE_TYPE_PII_KEYWORD_MODE_UNSET
}
}
impl DetectiveTypePIIKeywordMode {
fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData {
::protobuf::reflect::GeneratedEnumDescriptorData::new::<DetectiveTypePIIKeywordMode>("DetectiveTypePIIKeywordMode")
}
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n\x1esteps/sp_steps_detective.proto\x12\x0cprotos.steps\"\x8d\x02\n\rDe\
tectiveStep\x12\x17\n\x04path\x18\x01\x20\x01(\tH\0R\x04path\x88\x01\x01\
\x12\x12\n\x04args\x18\x02\x20\x03(\tR\x04args\x12\x1b\n\x06negate\x18\
\x03\x20\x01(\x08H\x01R\x06negate\x88\x01\x01\x12/\n\x04type\x18\x04\x20\
\x01(\x0e2\x1b.protos.steps.DetectiveTypeR\x04type\x12X\n\x10pii_keyword\
_mode\x18\x05\x20\x01(\x0e2).protos.steps.DetectiveTypePIIKeywordModeH\
\x02R\x0epiiKeywordMode\x88\x01\x01B\x07\n\x05_pathB\t\n\x07_negateB\x13\
\n\x11_pii_keyword_mode\"\xe0\x01\n\x18DetectiveStepResultMatch\x12/\n\
\x04type\x18\x01\x20\x01(\x0e2\x1b.protos.steps.DetectiveTypeR\x04type\
\x12\x12\n\x04path\x18\x02\x20\x01(\tR\x04path\x12(\n\x10char_index_star\
t\x18\x03\x20\x01(\x05R\x0echarIndexStart\x12$\n\x0echar_index_end\x18\
\x04\x20\x01(\x05R\x0ccharIndexEnd\x12\x14\n\x05value\x18\x05\x20\x01(\
\x0cR\x05value\x12\x19\n\x08pii_type\x18\x06\x20\x01(\tR\x07piiType\"W\n\
\x13DetectiveStepResult\x12@\n\x07matches\x18\x01\x20\x03(\x0b2&.protos.\
steps.DetectiveStepResultMatchR\x07matches*\xef\x13\n\rDetectiveType\x12\
\x1a\n\x16DETECTIVE_TYPE_UNKNOWN\x10\0\x12\x1c\n\x17DETECTIVE_TYPE_IS_EM\
PTY\x10\xe8\x07\x12\x1d\n\x18DETECTIVE_TYPE_HAS_FIELD\x10\xe9\x07\x12\
\x1b\n\x16DETECTIVE_TYPE_IS_TYPE\x10\xea\x07\x12'\n\"DETECTIVE_TYPE_STRI\
NG_CONTAINS_ANY\x10\xeb\x07\x12'\n\"DETECTIVE_TYPE_STRING_CONTAINS_ALL\
\x10\xec\x07\x12\x20\n\x1bDETECTIVE_TYPE_STRING_EQUAL\x10\xed\x07\x12\
\x20\n\x1bDETECTIVE_TYPE_IPV4_ADDRESS\x10\xee\x07\x12\x20\n\x1bDETECTIVE\
_TYPE_IPV6_ADDRESS\x10\xef\x07\x12\x1f\n\x1aDETECTIVE_TYPE_MAC_ADDRESS\
\x10\xf0\x07\x12\x19\n\x14DETECTIVE_TYPE_REGEX\x10\xf1\x07\x12%\n\x20DET\
ECTIVE_TYPE_TIMESTAMP_RFC3339\x10\xf2\x07\x12'\n\"DETECTIVE_TYPE_TIMESTA\
MP_UNIX_NANO\x10\xf3\x07\x12\"\n\x1dDETECTIVE_TYPE_TIMESTAMP_UNIX\x10\
\xf4\x07\x12\x20\n\x1bDETECTIVE_TYPE_BOOLEAN_TRUE\x10\xf5\x07\x12!\n\x1c\
DETECTIVE_TYPE_BOOLEAN_FALSE\x10\xf6\x07\x12\x18\n\x13DETECTIVE_TYPE_UUI\
D\x10\xf7\x07\x12\x17\n\x12DETECTIVE_TYPE_URL\x10\xf8\x07\x12\x1c\n\x17D\
ETECTIVE_TYPE_HOSTNAME\x10\xf9\x07\x12%\n\x20DETECTIVE_TYPE_STRING_LENGT\
H_MIN\x10\xfa\x07\x12%\n\x20DETECTIVE_TYPE_STRING_LENGTH_MAX\x10\xfb\x07\
\x12'\n\"DETECTIVE_TYPE_STRING_LENGTH_RANGE\x10\xfc\x07\x12\x1a\n\x15DET\
ECTIVE_TYPE_SEMVER\x10\xfd\x07\x12\x1b\n\x16DETECTIVE_TYPE_PII_ANY\x10\
\xd0\x0f\x12#\n\x1eDETECTIVE_TYPE_PII_CREDIT_CARD\x10\xd1\x0f\x12\x1b\n\
\x16DETECTIVE_TYPE_PII_SSN\x10\xd2\x0f\x12\x1d\n\x18DETECTIVE_TYPE_PII_E\
MAIL\x10\xd3\x0f\x12\x1d\n\x18DETECTIVE_TYPE_PII_PHONE\x10\xd4\x0f\x12&\
\n!DETECTIVE_TYPE_PII_DRIVER_LICENSE\x10\xd5\x0f\x12#\n\x1eDETECTIVE_TYP\
E_PII_PASSPORT_ID\x10\xd6\x0f\x12\"\n\x1dDETECTIVE_TYPE_PII_VIN_NUMBER\
\x10\xd7\x0f\x12%\n\x20DETECTIVE_TYPE_PII_SERIAL_NUMBER\x10\xd8\x0f\x12\
\x1d\n\x18DETECTIVE_TYPE_PII_LOGIN\x10\xd9\x0f\x12#\n\x1eDETECTIVE_TYPE_\
PII_TAXPAYER_ID\x10\xda\x0f\x12\x1f\n\x1aDETECTIVE_TYPE_PII_ADDRESS\x10\
\xdb\x0f\x12!\n\x1cDETECTIVE_TYPE_PII_SIGNATURE\x10\xdc\x0f\x12#\n\x1eDE\
TECTIVE_TYPE_PII_GEOLOCATION\x10\xdd\x0f\x12!\n\x1cDETECTIVE_TYPE_PII_ED\
UCATION\x10\xde\x0f\x12!\n\x1cDETECTIVE_TYPE_PII_FINANCIAL\x10\xdf\x0f\
\x12\x1e\n\x19DETECTIVE_TYPE_PII_HEALTH\x10\xe0\x0f\x12\"\n\x1dDETECTIVE\
_TYPE_PII_AWS_KEY_ID\x10\xe1\x0f\x12\x1f\n\x1aDETECTIVE_TYPE_PII_RSA_KEY\
\x10\xe2\x0f\x12\x1d\n\x18DETECTIVE_TYPE_PII_TITLE\x10\xe3\x0f\x12\x20\n\
\x1bDETECTIVE_TYPE_PII_RELIGION\x10\xe4\x0f\x12#\n\x1eDETECTIVE_TYPE_PII\
_SLACK_TOKEN\x10\xe5\x0f\x12\"\n\x1dDETECTIVE_TYPE_PII_STRIPE_KEY\x10\
\xe6\x0f\x12\x1c\n\x17DETECTIVE_TYPE_PII_IBAN\x10\xe7\x0f\x12!\n\x1cDETE\
CTIVE_TYPE_PII_SWIFT_BIC\x10\xe8\x0f\x12+\n&DETECTIVE_TYPE_PII_BANK_ROUT\
ING_NUMBER\x10\xe9\x0f\x12&\n!DETECTIVE_TYPE_PII_CRYPTO_ADDRESS\x10\xea\
\x0f\x12\"\n\x1dDETECTIVE_TYPE_PII_GITHUB_PAT\x10\xeb\x0f\x12.\n)DETECTI\
VE_TYPE_PII_BRAINTREE_ACCESS_TOKEN\x10\xec\x0f\x12*\n%DETECTIVE_TYPE_PII\
_AWS_MWS_AUTH_TOKEN\x10\xed\x0f\x12&\n!DETECTIVE_TYPE_PII_DATABRICKS_PAT\
\x10\xee\x0f\x12$\n\x1fDETECTIVE_TYPE_PII_SENDGRID_KEY\x10\xef\x0f\x12-\
\n(DETECTIVE_TYPE_PII_AZURE_SQL_CONN_STRING\x10\xf0\x0f\x12\x1b\n\x16DET\
ECTIVE_TYPE_PII_JWT\x10\xf1\x0f\x12*\n%DETECTIVE_TYPE_PII_DOCKER_SWARM_T\
OKEN\x10\xf2\x0f\x12$\n\x1fDETECTIVE_TYPE_PII_BEARER_TOKEN\x10\xf3\x0f\
\x12\x1f\n\x1aDETECTIVE_TYPE_PII_KEYWORD\x10\xf4\x0f\x12%\n\x20DETECTIVE\
_TYPE_PII_PLAINTEXT_ANY\x10\xf5\x0f\x12'\n\"DETECTIVE_TYPE_UK_INSURANCE_\
NUMBER\x10\xf6\x0f\x12\x1e\n\x19DETECTIVE_TYPE_CANADA_SIN\x10\xf7\x0f\
\x12$\n\x1fDETECTIVE_TYPE_NUMERIC_EQUAL_TO\x10\xb8\x17\x12(\n#DETECTIVE_\
TYPE_NUMERIC_GREATER_THAN\x10\xb9\x17\x12)\n$DETECTIVE_TYPE_NUMERIC_GREA\
TER_EQUAL\x10\xba\x17\x12%\n\x20DETECTIVE_TYPE_NUMERIC_LESS_THAN\x10\xbb\
\x17\x12&\n!DETECTIVE_TYPE_NUMERIC_LESS_EQUAL\x10\xbc\x17\x12!\n\x1cDETE\
CTIVE_TYPE_NUMERIC_RANGE\x10\xbd\x17\x12\x1f\n\x1aDETECTIVE_TYPE_NUMERIC\
_MIN\x10\xbe\x17\x12\x1f\n\x1aDETECTIVE_TYPE_NUMERIC_MAX\x10\xbf\x17*\
\xa7\x01\n\x1bDetectiveTypePIIKeywordMode\x12)\n%DETECTIVE_TYPE_PII_KEYW\
ORD_MODE_UNSET\x10\0\x12/\n+DETECTIVE_TYPE_PII_KEYWORD_MODE_PERFORMANCE\
\x10\x01\x12,\n(DETECTIVE_TYPE_PII_KEYWORD_MODE_ACCURACY\x10\x02BVZ@gith\
ub.com/streamdal/streamdal/libs/protos/build/go/protos/steps\xea\x02\x11\
Streamdal::ProtosJ\xd21\n\x07\x12\x05\0\0\x9c\x01\x01\n\x08\n\x01\x0c\
\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x02\0\x15\n\x08\n\x01\x08\x12\
\x03\x04\0W\n\t\n\x02\x08\x0b\x12\x03\x04\0W\n\x08\n\x01\x08\x12\x03\x05\
\0*\n\t\n\x02\x08-\x12\x03\x05\0*\n5\n\x02\x05\0\x12\x04\x07\0p\x01\")\
\x201000-1999\x20reserved\x20for\x20core\x20match\x20types\n\n\n\n\x03\
\x05\0\x01\x12\x03\x07\x05\x12\n\x0b\n\x04\x05\0\x02\0\x12\x03\n\x02\x1d\
\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\n\x02\x18\n\x0c\n\x05\x05\0\x02\0\
\x02\x12\x03\n\x1b\x1c\n\x0b\n\x04\x05\0\x02\x01\x12\x03\x0b\x02!\n\x0c\
\n\x05\x05\0\x02\x01\x01\x12\x03\x0b\x02\x19\n\x0c\n\x05\x05\0\x02\x01\
\x02\x12\x03\x0b\x1c\x20\n\x0b\n\x04\x05\0\x02\x02\x12\x03\x0c\x02\"\n\
\x0c\n\x05\x05\0\x02\x02\x01\x12\x03\x0c\x02\x1a\n\x0c\n\x05\x05\0\x02\
\x02\x02\x12\x03\x0c\x1d!\n\x0b\n\x04\x05\0\x02\x03\x12\x03\r\x02\x20\n\
\x0c\n\x05\x05\0\x02\x03\x01\x12\x03\r\x02\x18\n\x0c\n\x05\x05\0\x02\x03\
\x02\x12\x03\r\x1b\x1f\n\x0b\n\x04\x05\0\x02\x04\x12\x03\x0e\x02,\n\x0c\
\n\x05\x05\0\x02\x04\x01\x12\x03\x0e\x02$\n\x0c\n\x05\x05\0\x02\x04\x02\
\x12\x03\x0e'+\n\x0b\n\x04\x05\0\x02\x05\x12\x03\x0f\x02,\n\x0c\n\x05\
\x05\0\x02\x05\x01\x12\x03\x0f\x02$\n\x0c\n\x05\x05\0\x02\x05\x02\x12\
\x03\x0f'+\n\x0b\n\x04\x05\0\x02\x06\x12\x03\x10\x02%\n\x0c\n\x05\x05\0\
\x02\x06\x01\x12\x03\x10\x02\x1d\n\x0c\n\x05\x05\0\x02\x06\x02\x12\x03\
\x10\x20$\n\x0b\n\x04\x05\0\x02\x07\x12\x03\x11\x02%\n\x0c\n\x05\x05\0\
\x02\x07\x01\x12\x03\x11\x02\x1d\n\x0c\n\x05\x05\0\x02\x07\x02\x12\x03\
\x11\x20$\n\x0b\n\x04\x05\0\x02\x08\x12\x03\x12\x02%\n\x0c\n\x05\x05\0\
\x02\x08\x01\x12\x03\x12\x02\x1d\n\x0c\n\x05\x05\0\x02\x08\x02\x12\x03\
\x12\x20$\n\x0b\n\x04\x05\0\x02\t\x12\x03\x13\x02$\n\x0c\n\x05\x05\0\x02\
\t\x01\x12\x03\x13\x02\x1c\n\x0c\n\x05\x05\0\x02\t\x02\x12\x03\x13\x1f#\
\n\x0b\n\x04\x05\0\x02\n\x12\x03\x14\x02\x1e\n\x0c\n\x05\x05\0\x02\n\x01\
\x12\x03\x14\x02\x16\n\x0c\n\x05\x05\0\x02\n\x02\x12\x03\x14\x19\x1d\n\
\x0b\n\x04\x05\0\x02\x0b\x12\x03\x15\x02*\n\x0c\n\x05\x05\0\x02\x0b\x01\
\x12\x03\x15\x02\"\n\x0c\n\x05\x05\0\x02\x0b\x02\x12\x03\x15%)\n\x0b\n\
\x04\x05\0\x02\x0c\x12\x03\x16\x02,\n\x0c\n\x05\x05\0\x02\x0c\x01\x12\
\x03\x16\x02$\n\x0c\n\x05\x05\0\x02\x0c\x02\x12\x03\x16'+\n\x0b\n\x04\
\x05\0\x02\r\x12\x03\x17\x02'\n\x0c\n\x05\x05\0\x02\r\x01\x12\x03\x17\
\x02\x1f\n\x0c\n\x05\x05\0\x02\r\x02\x12\x03\x17\"&\n\x0b\n\x04\x05\0\
\x02\x0e\x12\x03\x18\x02%\n\x0c\n\x05\x05\0\x02\x0e\x01\x12\x03\x18\x02\
\x1d\n\x0c\n\x05\x05\0\x02\x0e\x02\x12\x03\x18\x20$\n\x0b\n\x04\x05\0\
\x02\x0f\x12\x03\x19\x02&\n\x0c\n\x05\x05\0\x02\x0f\x01\x12\x03\x19\x02\
\x1e\n\x0c\n\x05\x05\0\x02\x0f\x02\x12\x03\x19!%\n\x0b\n\x04\x05\0\x02\
\x10\x12\x03\x1a\x02\x1d\n\x0c\n\x05\x05\0\x02\x10\x01\x12\x03\x1a\x02\
\x15\n\x0c\n\x05\x05\0\x02\x10\x02\x12\x03\x1a\x18\x1c\n\x0b\n\x04\x05\0\
\x02\x11\x12\x03\x1b\x02\x1c\n\x0c\n\x05\x05\0\x02\x11\x01\x12\x03\x1b\
\x02\x14\n\x0c\n\x05\x05\0\x02\x11\x02\x12\x03\x1b\x17\x1b\n\x0b\n\x04\
\x05\0\x02\x12\x12\x03\x1c\x02!\n\x0c\n\x05\x05\0\x02\x12\x01\x12\x03\
\x1c\x02\x19\n\x0c\n\x05\x05\0\x02\x12\x02\x12\x03\x1c\x1c\x20\n\x0b\n\
\x04\x05\0\x02\x13\x12\x03\x1d\x02*\n\x0c\n\x05\x05\0\x02\x13\x01\x12\
\x03\x1d\x02\"\n\x0c\n\x05\x05\0\x02\x13\x02\x12\x03\x1d%)\n\x0b\n\x04\
\x05\0\x02\x14\x12\x03\x1e\x02*\n\x0c\n\x05\x05\0\x02\x14\x01\x12\x03\
\x1e\x02\"\n\x0c\n\x05\x05\0\x02\x14\x02\x12\x03\x1e%)\n\x0b\n\x04\x05\0\
\x02\x15\x12\x03\x1f\x02,\n\x0c\n\x05\x05\0\x02\x15\x01\x12\x03\x1f\x02$\
\n\x0c\n\x05\x05\0\x02\x15\x02\x12\x03\x1f'+\n\x0b\n\x04\x05\0\x02\x16\
\x12\x03\x20\x02\x1f\n\x0c\n\x05\x05\0\x02\x16\x01\x12\x03\x20\x02\x17\n\
\x0c\n\x05\x05\0\x02\x16\x02\x12\x03\x20\x1a\x1e\nk\n\x04\x05\0\x02\x17\
\x12\x03%\x02\x20\x1aB/\x20Payloads\x20containing\x20values\x20with\x20a\
ny\x20PII\x20-\x20runs\x20all\x20PII\x20matchers\n2\x1a\x20PII\x20matche\
rs\x20(2000-2999)\n\n\x0c\n\x05\x05\0\x02\x17\x01\x12\x03%\x02\x18\n\x0c\
\n\x05\x05\0\x02\x17\x02\x12\x03%\x1b\x1f\nC\n\x04\x05\0\x02\x18\x12\x03\
'\x02(\x1a6\x20Payloads\x20containing\x20values\x20with\x20a\x20credit\
\x20card\x20number\n\n\x0c\n\x05\x05\0\x02\x18\x01\x12\x03'\x02\x20\n\
\x0c\n\x05\x05\0\x02\x18\x02\x12\x03'#'\nG\n\x04\x05\0\x02\x19\x12\x03)\
\x02\x20\x1a:\x20Payloads\x20containing\x20values\x20with\x20a\x20social\
\x20security\x20number\n\n\x0c\n\x05\x05\0\x02\x19\x01\x12\x03)\x02\x18\
\n\x0c\n\x05\x05\0\x02\x19\x02\x12\x03)\x1b\x1f\n?\n\x04\x05\0\x02\x1a\
\x12\x03+\x02\"\x1a2\x20Payloads\x20containing\x20values\x20with\x20an\
\x20email\x20address\n\n\x0c\n\x05\x05\0\x02\x1a\x01\x12\x03+\x02\x1a\n\
\x0c\n\x05\x05\0\x02\x1a\x02\x12\x03+\x1d!\n=\n\x04\x05\0\x02\x1b\x12\
\x03-\x02\"\x1a0\x20Payloads\x20containing\x20values\x20with\x20a\x20pho\
ne\x20number\n\n\x0c\n\x05\x05\0\x02\x1b\x01\x12\x03-\x02\x1a\n\x0c\n\
\x05\x05\0\x02\x1b\x02\x12\x03-\x1d!\nA\n\x04\x05\0\x02\x1c\x12\x03/\x02\
+\x1a4\x20Payloads\x20containing\x20values\x20with\x20a\x20driver's\x20l\
icense\n\n\x0c\n\x05\x05\0\x02\x1c\x01\x12\x03/\x02#\n\x0c\n\x05\x05\0\
\x02\x1c\x02\x12\x03/&*\n<\n\x04\x05\0\x02\x1d\x12\x031\x02(\x1a/\x20Pay\
loads\x20containing\x20values\x20with\x20a\x20passport\x20ID\n\n\x0c\n\
\x05\x05\0\x02\x1d\x01\x12\x031\x02\x20\n\x0c\n\x05\x05\0\x02\x1d\x02\
\x12\x031#'\n;\n\x04\x05\0\x02\x1e\x12\x033\x02'\x1a.\x20Payloads\x20con\
taining\x20values\x20with\x20a\x20VIN\x20number\n\n\x0c\n\x05\x05\0\x02\
\x1e\x01\x12\x033\x02\x1f\n\x0c\n\x05\x05\0\x02\x1e\x02\x12\x033\"&\nL\n\
\x04\x05\0\x02\x1f\x12\x035\x02*\x1a?\x20Payloads\x20containing\x20value\
s\x20with\x20various\x20serial\x20number\x20formats\n\n\x0c\n\x05\x05\0\
\x02\x1f\x01\x12\x035\x02\"\n\x0c\n\x05\x05\0\x02\x1f\x02\x12\x035%)\n\
\x8e\x01\n\x04\x05\0\x02\x20\x12\x037\x02\"\x1a\x80\x01\x20Payloads\x20c\
ontaining\x20fields\x20named\x20\"login\",\x20\"username\",\x20\"user\",\
\x20\"userid\",\x20\"user_id\",\x20\"user\",\x20\"password\",\x20\"pass\
\",\x20\"passwd\",\x20\"pwd\"\n\n\x0c\n\x05\x05\0\x02\x20\x01\x12\x037\
\x02\x1a\n\x0c\n\x05\x05\0\x02\x20\x02\x12\x037\x1d!\n^\n\x04\x05\0\x02!\
\x12\x039\x02(\x1aQ\x20Payloads\x20containing\x20fields\x20named\x20\"ta\
xpayer_id\",\x20\"tax_id\",\x20\"taxpayerid\",\x20\"taxid\"\n\n\x0c\n\
\x05\x05\0\x02!\x01\x12\x039\x02\x20\n\x0c\n\x05\x05\0\x02!\x02\x12\x039\
#'\n}\n\x04\x05\0\x02\"\x12\x03;\x02$\x1ap\x20Payloads\x20containing\x20\
fields\x20named\x20\"address\",\x20\"street\",\x20\"city\",\x20\"state\"\
,\x20\"zip\",\x20\"zipcode\",\x20\"zip_code\",\x20\"country\"\n\n\x0c\n\
\x05\x05\0\x02\"\x01\x12\x03;\x02\x1c\n\x0c\n\x05\x05\0\x02\"\x02\x12\
\x03;\x1f#\n|\n\x04\x05\0\x02#\x12\x03=\x02&\x1ao\x20Payloads\x20contain\
ing\x20fields\x20named\x20\"signature\",\x20\"signature_image\",\x20\"si\
gnature_image_url\",\x20\"signature_image_uri\"\n\n\x0c\n\x05\x05\0\x02#\
\x01\x12\x03=\x02\x1e\n\x0c\n\x05\x05\0\x02#\x02\x12\x03=!%\ny\n\x04\x05\
\0\x02$\x12\x03?\x02(\x1al\x20Payloads\x20containing\x20values\x20that\
\x20contain\x20GPS\x20data\x20or\x20coordinates\x20like\x20\"lat\",\x20\
\"lon\",\x20\"latitude\",\x20\"longitude\"\n\n\x0c\n\x05\x05\0\x02$\x01\
\x12\x03?\x02\x20\n\x0c\n\x05\x05\0\x02$\x02\x12\x03?#'\n]\n\x04\x05\0\
\x02%\x12\x03A\x02&\x1aP\x20Payloads\x20containing\x20fields\x20like\x20\
\"school\",\x20\"university\",\x20\"college\",\x20\"education\"\n\n\x0c\
\n\x05\x05\0\x02%\x01\x12\x03A\x02\x1e\n\x0c\n\x05\x05\0\x02%\x02\x12\
\x03A!%\nk\n\x04\x05\0\x02&\x12\x03C\x02&\x1a^\x20Payloads\x20containing\
\x20fields\x20like\x20\"account\",\x20\"bank\",\x20\"credit\",\x20\"debi\
t\",\x20\"financial\",\x20\"finance\"\n\n\x0c\n\x05\x05\0\x02&\x01\x12\
\x03C\x02\x1e\n\x0c\n\x05\x05\0\x02&\x02\x12\x03C!%\nj\n\x04\x05\0\x02'\
\x12\x03E\x02#\x1a]\x20Payloads\x20containing\x20fields\x20like\x20\"pat\
ient\",\x20\"health\",\x20\"healthcare\",\x20\"health\x20care\",\x20\"me\
dical\"\n\n\x0c\n\x05\x05\0\x02'\x01\x12\x03E\x02\x1b\n\x0c\n\x05\x05\0\
\x02'\x02\x12\x03E\x1e\"\n\x0b\n\x04\x05\0\x02(\x12\x03G\x02'\n\x0c\n\
\x05\x05\0\x02(\x01\x12\x03G\x02\x1f\n\x0c\n\x05\x05\0\x02(\x02\x12\x03G\
\"&\n\x0b\n\x04\x05\0\x02)\x12\x03H\x02$\n\x0c\n\x05\x05\0\x02)\x01\x12\
\x03H\x02\x1c\n\x0c\n\x05\x05\0\x02)\x02\x12\x03H\x1f#\n\x0b\n\x04\x05\0\
\x02*\x12\x03I\x02\"\n\x0c\n\x05\x05\0\x02*\x01\x12\x03I\x02\x1a\n\x0c\n\
\x05\x05\0\x02*\x02\x12\x03I\x1d!\n\x0b\n\x04\x05\0\x02+\x12\x03J\x02%\n\
\x0c\n\x05\x05\0\x02+\x01\x12\x03J\x02\x1d\n\x0c\n\x05\x05\0\x02+\x02\
\x12\x03J\x20$\n\x0b\n\x04\x05\0\x02,\x12\x03K\x02(\n\x0c\n\x05\x05\0\
\x02,\x01\x12\x03K\x02\x20\n\x0c\n\x05\x05\0\x02,\x02\x12\x03K#'\n\x0b\n\
\x04\x05\0\x02-\x12\x03L\x02'\n\x0c\n\x05\x05\0\x02-\x01\x12\x03L\x02\
\x1f\n\x0c\n\x05\x05\0\x02-\x02\x12\x03L\"&\n\x0b\n\x04\x05\0\x02.\x12\
\x03M\x02!\n\x0c\n\x05\x05\0\x02.\x01\x12\x03M\x02\x19\n\x0c\n\x05\x05\0\
\x02.\x02\x12\x03M\x1c\x20\n\x0b\n\x04\x05\0\x02/\x12\x03N\x02&\n\x0c\n\
\x05\x05\0\x02/\x01\x12\x03N\x02\x1e\n\x0c\n\x05\x05\0\x02/\x02\x12\x03N\
!%\n\x0b\n\x04\x05\0\x020\x12\x03O\x020\n\x0c\n\x05\x05\0\x020\x01\x12\
\x03O\x02(\n\x0c\n\x05\x05\0\x020\x02\x12\x03O+/\n\x0b\n\x04\x05\0\x021\
\x12\x03P\x02+\n\x0c\n\x05\x05\0\x021\x01\x12\x03P\x02#\n\x0c\n\x05\x05\
\0\x021\x02\x12\x03P&*\n\x0b\n\x04\x05\0\x022\x12\x03Q\x02'\n\x0c\n\x05\
\x05\0\x022\x01\x12\x03Q\x02\x1f\n\x0c\n\x05\x05\0\x022\x02\x12\x03Q\"&\
\n\x0b\n\x04\x05\0\x023\x12\x03R\x023\n\x0c\n\x05\x05\0\x023\x01\x12\x03\
R\x02+\n\x0c\n\x05\x05\0\x023\x02\x12\x03R.2\n\x0b\n\x04\x05\0\x024\x12\
\x03S\x02/\n\x0c\n\x05\x05\0\x024\x01\x12\x03S\x02'\n\x0c\n\x05\x05\0\
\x024\x02\x12\x03S*.\n\x0b\n\x04\x05\0\x025\x12\x03T\x02+\n\x0c\n\x05\
\x05\0\x025\x01\x12\x03T\x02#\n\x0c\n\x05\x05\0\x025\x02\x12\x03T&*\n\
\x0b\n\x04\x05\0\x026\x12\x03U\x02)\n\x0c\n\x05\x05\0\x026\x01\x12\x03U\
\x02!\n\x0c\n\x05\x05\0\x026\x02\x12\x03U$(\n\x0b\n\x04\x05\0\x027\x12\
\x03V\x022\n\x0c\n\x05\x05\0\x027\x01\x12\x03V\x02*\n\x0c\n\x05\x05\0\
\x027\x02\x12\x03V-1\n\x0b\n\x04\x05\0\x028\x12\x03W\x02\x20\n\x0c\n\x05\
\x05\0\x028\x01\x12\x03W\x02\x18\n\x0c\n\x05\x05\0\x028\x02\x12\x03W\x1b\
\x1f\n\x0b\n\x04\x05\0\x029\x12\x03X\x02/\n\x0c\n\x05\x05\0\x029\x01\x12\
\x03X\x02'\n\x0c\n\x05\x05\0\x029\x02\x12\x03X*.\n\x0b\n\x04\x05\0\x02:\
\x12\x03Y\x02)\n\x0c\n\x05\x05\0\x02:\x01\x12\x03Y\x02!\n\x0c\n\x05\x05\
\0\x02:\x02\x12\x03Y$(\n\\\n\x04\x05\0\x02;\x12\x03\\\x02$\x1aO\x20Uses\
\x20field/path\x20keyword\x20matching\x20to\x20detect\x20PII,\x20rather\
\x20than\x20the\x20field's\x20value\n\n\x0c\n\x05\x05\0\x02;\x01\x12\x03\
\\\x02\x1c\n\x0c\n\x05\x05\0\x02;\x02\x12\x03\\\x1f#\n0\n\x04\x05\0\x02<\
\x12\x03_\x02*\x1a#\x20Works\x20on\x20plaintext\x20pipelines\x20only\n\n\
\x0c\n\x05\x05\0\x02<\x01\x12\x03_\x02\"\n\x0c\n\x05\x05\0\x02<\x02\x12\
\x03_%)\n\x0b\n\x04\x05\0\x02=\x12\x03a\x02,\n\x0c\n\x05\x05\0\x02=\x01\
\x12\x03a\x02$\n\x0c\n\x05\x05\0\x02=\x02\x12\x03a'+\n\x0b\n\x04\x05\0\
\x02>\x12\x03b\x02#\n\x0c\n\x05\x05\0\x02>\x01\x12\x03b\x02\x1b\n\x0c\n\
\x05\x05\0\x02>\x02\x12\x03b\x1e\"\n+\n\x04\x05\0\x02?\x12\x03h\x02)2\
\x1e\x20Numeric\x20matchers\x20(3000-3999)\n\n\x0c\n\x05\x05\0\x02?\x01\
\x12\x03h\x02!\n\x0c\n\x05\x05\0\x02?\x02\x12\x03h$(\n\x0b\n\x04\x05\0\
\x02@\x12\x03i\x02-\n\x0c\n\x05\x05\0\x02@\x01\x12\x03i\x02%\n\x0c\n\x05\
\x05\0\x02@\x02\x12\x03i(,\n\x0b\n\x04\x05\0\x02A\x12\x03j\x02.\n\x0c\n\
\x05\x05\0\x02A\x01\x12\x03j\x02&\n\x0c\n\x05\x05\0\x02A\x02\x12\x03j)-\
\n\x0b\n\x04\x05\0\x02B\x12\x03k\x02*\n\x0c\n\x05\x05\0\x02B\x01\x12\x03\
k\x02\"\n\x0c\n\x05\x05\0\x02B\x02\x12\x03k%)\n\x0b\n\x04\x05\0\x02C\x12\
\x03l\x02+\n\x0c\n\x05\x05\0\x02C\x01\x12\x03l\x02#\n\x0c\n\x05\x05\0\
\x02C\x02\x12\x03l&*\n\x0b\n\x04\x05\0\x02D\x12\x03m\x02&\n\x0c\n\x05\
\x05\0\x02D\x01\x12\x03m\x02\x1e\n\x0c\n\x05\x05\0\x02D\x02\x12\x03m!%\n\
\x0b\n\x04\x05\0\x02E\x12\x03n\x02$\n\x0c\n\x05\x05\0\x02E\x01\x12\x03n\
\x02\x1c\n\x0c\n\x05\x05\0\x02E\x02\x12\x03n\x1f#\n\x0b\n\x04\x05\0\x02F\
\x12\x03o\x02$\n\x0c\n\x05\x05\0\x02F\x01\x12\x03o\x02\x1c\n\x0c\n\x05\
\x05\0\x02F\x02\x12\x03o\x1f#\n\x81\x02\n\x02\x05\x01\x12\x04v\0z\x01\
\x1a\xf4\x01\x20DetectiveTypePIIKeywordMode\x20is\x20used\x20by\x20Wasm\
\x20to\x20determine\x20what\x20method\x20to\x20use\n\x20when\x20performi\
ng\x20keyword\x20matching.\x20Performance\x20==\x20hashmap\x20lookups;\n\
\x20accuracy\x20==\x20hashmap\x20lookups\x20and\x20\"string\x20contains\
\".\n\x20protolint:disable:next\x20ENUM_FIELD_NAMES_PREFIX\n\n\n\n\x03\
\x05\x01\x01\x12\x03v\x05\x20\n$\n\x04\x05\x01\x02\0\x12\x03w\x02,\"\x17\
\x20default\x20\"performance\"\n\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x03w\
\x02'\n\x0c\n\x05\x05\x01\x02\0\x02\x12\x03w*+\n\x0b\n\x04\x05\x01\x02\
\x01\x12\x03x\x022\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03x\x02-\n\x0c\n\
\x05\x05\x01\x02\x01\x02\x12\x03x01\n\x0b\n\x04\x05\x01\x02\x02\x12\x03y\
\x02/\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03y\x02*\n\x0c\n\x05\x05\x01\
\x02\x02\x02\x12\x03y-.\n\x0b\n\x02\x04\0\x12\x05|\0\x84\x01\x01\n\n\n\
\x03\x04\0\x01\x12\x03|\x08\x15\n\x0b\n\x04\x04\0\x02\0\x12\x03}\x02\x1b\
\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03}\x02\n\n\x0c\n\x05\x04\0\x02\0\x05\
\x12\x03}\x0b\x11\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03}\x12\x16\n\x0c\n\
\x05\x04\0\x02\0\x03\x12\x03}\x19\x1a\n,\n\x04\x04\0\x02\x01\x12\x03~\
\x02\x1b\"\x1f\x20args\x20determined\x20by\x20match_type\n\n\x0c\n\x05\
\x04\0\x02\x01\x04\x12\x03~\x02\n\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03~\
\x0b\x11\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03~\x12\x16\n\x0c\n\x05\x04\
\0\x02\x01\x03\x12\x03~\x19\x1a\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x7f\
\x02\x1b\n\x0c\n\x05\x04\0\x02\x02\x04\x12\x03\x7f\x02\n\n\x0c\n\x05\x04\
\0\x02\x02\x05\x12\x03\x7f\x0b\x0f\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\
\x7f\x10\x16\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x7f\x19\x1a\n\x0c\n\
\x04\x04\0\x02\x03\x12\x04\x80\x01\x02\x19\n\r\n\x05\x04\0\x02\x03\x06\
\x12\x04\x80\x01\x02\x0f\n\r\n\x05\x04\0\x02\x03\x01\x12\x04\x80\x01\x10\
\x14\n\r\n\x05\x04\0\x02\x03\x03\x12\x04\x80\x01\x17\x18\nO\n\x04\x04\0\
\x02\x04\x12\x04\x83\x01\x02<\x1aA\x20Only\x20used\x20if\x20DetectiveTyp\
e\x20is\x20set\x20to\x20DETECTIVE_TYPE_PII_KEYWORD\n\n\r\n\x05\x04\0\x02\
\x04\x04\x12\x04\x83\x01\x02\n\n\r\n\x05\x04\0\x02\x04\x06\x12\x04\x83\
\x01\x0b&\n\r\n\x05\x04\0\x02\x04\x01\x12\x04\x83\x01'7\n\r\n\x05\x04\0\
\x02\x04\x03\x12\x04\x83\x01:;\n\x0c\n\x02\x04\x01\x12\x06\x86\x01\0\x98\
\x01\x01\n\x0b\n\x03\x04\x01\x01\x12\x04\x86\x01\x08\x20\n\x0c\n\x04\x04\
\x01\x02\0\x12\x04\x87\x01\x02\x19\n\r\n\x05\x04\x01\x02\0\x06\x12\x04\
\x87\x01\x02\x0f\n\r\n\x05\x04\x01\x02\0\x01\x12\x04\x87\x01\x10\x14\n\r\
\n\x05\x04\x01\x02\0\x03\x12\x04\x87\x01\x17\x18\n8\n\x04\x04\x01\x02\
\x01\x12\x04\x8a\x01\x02\x12\x1a*\x20For\x20JSON\x20payloads,\x20the\x20\
path\x20to\x20the\x20match\n\n\r\n\x05\x04\x01\x02\x01\x05\x12\x04\x8a\
\x01\x02\x08\n\r\n\x05\x04\x01\x02\x01\x01\x12\x04\x8a\x01\t\r\n\r\n\x05\
\x04\x01\x02\x01\x03\x12\x04\x8a\x01\x10\x11\n\x81\x01\n\x04\x04\x01\x02\
\x02\x12\x04\x8e\x01\x02\x1d\x1as\x20For\x20string\x20payloads,\x20the\
\x20start\x20and\x20end\x20characters\x20of\x20the\x20match\n\x20Placeho\
lder\x20for\x20now,\x20will\x20implement\x20in\x20the\x20future\n\n\r\n\
\x05\x04\x01\x02\x02\x05\x12\x04\x8e\x01\x02\x07\n\r\n\x05\x04\x01\x02\
\x02\x01\x12\x04\x8e\x01\x08\x18\n\r\n\x05\x04\x01\x02\x02\x03\x12\x04\
\x8e\x01\x1b\x1c\n\x0c\n\x04\x04\x01\x02\x03\x12\x04\x8f\x01\x02\x1b\n\r\
\n\x05\x04\x01\x02\x03\x05\x12\x04\x8f\x01\x02\x07\n\r\n\x05\x04\x01\x02\
\x03\x01\x12\x04\x8f\x01\x08\x16\n\r\n\x05\x04\x01\x02\x03\x03\x12\x04\
\x8f\x01\x19\x1a\n\"\n\x04\x04\x01\x02\x04\x12\x04\x92\x01\x02\x12\x1a\
\x14\x20Value\x20of\x20the\x20match\n\n\r\n\x05\x04\x01\x02\x04\x05\x12\
\x04\x92\x01\x02\x07\n\r\n\x05\x04\x01\x02\x04\x01\x12\x04\x92\x01\x08\r\
\n\r\n\x05\x04\x01\x02\x04\x03\x12\x04\x92\x01\x10\x11\n\x84\x02\n\x04\
\x04\x01\x02\x05\x12\x04\x97\x01\x02\x16\x1a\xf5\x01\x20Used\x20to\x20re\
turn\x20the\x20type\x20of\x20PII\x20we\x20detected.\n\x20This\x20differs\
\x20from\x20`type`\x20in\x20that\x20it\x20is\x20the\x20type\x20of\x20PII\
\x20we\x20detected,\x20not\x20the\x20type\x20of\x20match\x20we\x20used\
\x20to\x20detect\x20it.\n\x20This\x20value\x20is\x20freeform\x20and\x20d\
etermined\x20based\x20on\x20the\x20values\x20inside\x20the\x20keyword\
\x20matcher.\n\n\r\n\x05\x04\x01\x02\x05\x05\x12\x04\x97\x01\x02\x08\n\r\
\n\x05\x04\x01\x02\x05\x01\x12\x04\x97\x01\t\x11\n\r\n\x05\x04\x01\x02\
\x05\x03\x12\x04\x97\x01\x14\x15\n\x0c\n\x02\x04\x02\x12\x06\x9a\x01\0\
\x9c\x01\x01\n\x0b\n\x03\x04\x02\x01\x12\x04\x9a\x01\x08\x1b\n\x0c\n\x04\
\x04\x02\x02\0\x12\x04\x9b\x01\x020\n\r\n\x05\x04\x02\x02\0\x04\x12\x04\
\x9b\x01\x02\n\n\r\n\x05\x04\x02\x02\0\x06\x12\x04\x9b\x01\x0b#\n\r\n\
\x05\x04\x02\x02\0\x01\x12\x04\x9b\x01$+\n\r\n\x05\x04\x02\x02\0\x03\x12\
\x04\x9b\x01./b\x06proto3\
";
fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
static file_descriptor_proto_lazy: ::protobuf::rt::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::Lazy::new();
file_descriptor_proto_lazy.get(|| {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
})
}
pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
static generated_file_descriptor_lazy: ::protobuf::rt::Lazy<::protobuf::reflect::GeneratedFileDescriptor> = ::protobuf::rt::Lazy::new();
static file_descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::FileDescriptor> = ::protobuf::rt::Lazy::new();
file_descriptor.get(|| {
let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
let mut deps = ::std::vec::Vec::with_capacity(0);
let mut messages = ::std::vec::Vec::with_capacity(3);
messages.push(DetectiveStep::generated_message_descriptor_data());
messages.push(DetectiveStepResultMatch::generated_message_descriptor_data());
messages.push(DetectiveStepResult::generated_message_descriptor_data());
let mut enums = ::std::vec::Vec::with_capacity(2);
enums.push(DetectiveType::generated_enum_descriptor_data());
enums.push(DetectiveTypePIIKeywordMode::generated_enum_descriptor_data());
::protobuf::reflect::GeneratedFileDescriptor::new_generated(
file_descriptor_proto(),
deps,
messages,
enums,
)
});
::protobuf::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
})
}