#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![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_imports)]
#![allow(unused_results)]
pub mod exts {
pub const cl_private_field: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::FieldOptions, ::protobuf::types::ProtobufTypeBool> = ::protobuf::ext::ExtFieldOptional { field_number: 80320, phantom: ::std::marker::PhantomData };
pub const cl_private_rpc: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::MethodOptions, ::protobuf::types::ProtobufTypeBool> = ::protobuf::ext::ExtFieldOptional { field_number: 80321, phantom: ::std::marker::PhantomData };
pub const cl_depending_scopes: ::protobuf::ext::ExtFieldRepeated<::protobuf::descriptor::MethodOptions, ::protobuf::types::ProtobufTypeEnum<super::super::scope::S>> = ::protobuf::ext::ExtFieldRepeated { field_number: 80322, phantom: ::std::marker::PhantomData };
pub const cl_auth_type: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::MethodOptions, ::protobuf::types::ProtobufTypeEnum<super::super::types::AuthType>> = ::protobuf::ext::ExtFieldOptional { field_number: 80323, phantom: ::std::marker::PhantomData };
pub const cl_private_message: ::protobuf::ext::ExtFieldOptional<::protobuf::descriptor::MessageOptions, ::protobuf::types::ProtobufTypeBool> = ::protobuf::ext::ExtFieldOptional { field_number: 80324, phantom: ::std::marker::PhantomData };
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n(proto/clarifai/auth/util/extension.proto\x12\x12clarifai.auth.util\
\x1a%proto/clarifai/auth/scope/scope.proto\x1a%proto/clarifai/auth/types\
/types.proto\x1a\x20google/protobuf/descriptor.proto:I\n\x10cl_private_f\
ield\x18\xc0\xf3\x04\x20\x01(\x08\x12\x1d.google.protobuf.FieldOptionsR\
\x0eclPrivateField:F\n\x0ecl_private_rpc\x18\xc1\xf3\x04\x20\x01(\x08\
\x12\x1e.google.protobuf.MethodOptionsR\x0cclPrivateRpc:h\n\x13cl_depend\
ing_scopes\x18\xc2\xf3\x04\x20\x03(\x0e2\x16.clarifai.auth.scope.S\x12\
\x1e.google.protobuf.MethodOptionsR\x11clDependingScopes:a\n\x0ccl_auth_\
type\x18\xc3\xf3\x04\x20\x01(\x0e2\x1d.clarifai.auth.types.AuthType\x12\
\x1e.google.protobuf.MethodOptionsR\nclAuthType:O\n\x12cl_private_messag\
e\x18\xc4\xf3\x04\x20\x01(\x08\x12\x1f.google.protobuf.MessageOptionsR\
\x10clPrivateMessageBe\n\x1bcom.clarifai.grpc.auth.utilP\x01Z=github.com\
/Clarifai/clarifai-go-grpc/proto/clarifai/auth/util\xa2\x02\x04CAIPJ\xc0\
\x11\n\x06\x12\x04\0\04\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\t\n\x02\
\x03\0\x12\x03\x02\0/\n\t\n\x02\x03\x01\x12\x03\x03\0/\n\t\n\x02\x03\x02\
\x12\x03\x05\0*\n\x08\n\x01\x02\x12\x03\x07\0\x1b\n\x08\n\x01\x08\x12\
\x03\t\0T\n\t\n\x02\x08\x0b\x12\x03\t\0T\n\x08\n\x01\x08\x12\x03\n\0\"\n\
\t\n\x02\x08\n\x12\x03\n\0\"\n\x08\n\x01\x08\x12\x03\x0b\04\n\t\n\x02\
\x08\x01\x12\x03\x0b\04\n\x08\n\x01\x08\x12\x03\x0c\0\"\n\t\n\x02\x08$\
\x12\x03\x0c\0\"\n\t\n\x01\x07\x12\x04\x0e\0\x12\x01\n\x85\x01\n\x02\x07\
\0\x12\x03\x11\x02\x20\x1az\x20indicates\x20if\x20this\x20field\x20shoul\
d\x20be\x20private.\x20If\x20true,\x20then\x20internal\x20use\x20only.\
\x20If\x20False,\n\x20then\x20publicly\x20avaliable\x20to\x20world.\n\n\
\n\n\x03\x07\0\x02\x12\x03\x0e\x07#\n\n\n\x03\x07\0\x05\x12\x03\x11\x02\
\x06\n\n\n\x03\x07\0\x01\x12\x03\x11\x07\x17\n\n\n\x03\x07\0\x03\x12\x03\
\x11\x1a\x1f\n\t\n\x01\x07\x12\x04\x14\0.\x01\n\x83\x01\n\x02\x07\x01\
\x12\x03\x17\x02\x1e\x1ax\x20indicates\x20if\x20this\x20rpc\x20should\
\x20be\x20private.\x20If\x20true,\x20then\x20internal\x20use\x20only.\
\x20If\x20False,\n\x20then\x20publicly\x20available\x20to\x20world.\n\n\
\n\n\x03\x07\x01\x02\x12\x03\x14\x07$\n\n\n\x03\x07\x01\x05\x12\x03\x17\
\x02\x06\n\n\n\x03\x07\x01\x01\x12\x03\x17\x07\x15\n\n\n\x03\x07\x01\x03\
\x12\x03\x17\x18\x1d\n\x97\n\n\x02\x07\x02\x12\x03*\x02=\x1a\x8b\n\x20Fo\
r\x20each\x20grpc\x20method\x20we\x20define\x20a\x20list\x20of\x20requir\
ed\x20low-level\x20auth\x20scopes\x20that\x20are\x20needed\n\x20for\x20t\
he\x20key\x20that\x20is\x20issuing\x20the\x20request.\x20These\x20are\
\x20checked\x20at\x20authorization\x20time\x20for\x20the\n\x20request\
\x20as\x20one\x20of\x20the\x20first\x20things\x20in\x20the\x20life\x20of\
\x20a\x20request\x20once\x20it\x20reaches\x20out\x20API\n\x20servers.\
\x20There\x20are\x20additional\x20checks\x20for\x20each\x20scope\x20when\
\x20the\x20resource\x20is\x20used\x20throughout\x20the\n\x20backend\x20i\
n\x20order\x20to\x20protect\x20that\x20resource.\x20For\x20example,\x20I\
nputs_Add\x20protects\x20the\x20writes\x20to\x20the\n\x20inputs\x20DB\
\x20table.\x20Since\x20we\x20know\x20every\x20PostInputs\x20call\x20need\
s\x20to\x20do\x20that,\x20we\x20add\x20Inputs_Add\x20scope\n\x20to\x20th\
e\x20cl_depending_scopes\x20list\x20for\x20the\x20PostInputs\x20method.\
\n\n\x20This\x20is\x20only\x20checked\x20valid\x20when\x20used\x20with\
\x20KeyAuth\x20cl_auth_type.\n\n\x20This\x20should\x20be\x20the\x20absol\
ute\x20minimum\x20required\x20scopes\x20to\x20make\x20API\x20calls\x20wi\
th\x20the\x20method\n\x20that\x20this\x20options\x20is\x20used\x20for.\
\x20If\x20there\x20are\x20some\x20scopes\x20that\x20are\x20needed\x20som\
e\x20of\x20the\x20time\n\x20depending\x20on\x20the\x20request,\x20then\
\x20leave\x20those\x20out\x20as\x20they\x20will\x20be\x20checked\x20at\
\x20the\x20tighest\n\x20possible\x20portion\x20of\x20the\x20codebase\x20\
to\x20protect\x20that\x20resource\x20and\x20won't\x20effect\x20every\x20\
API\x20call.\x20For\n\x20example,\x20the\x20PostAnnotations\x20call\x20i\
s\x20often\x20used\x20to\x20add\x20concepts\x20as\x20well.\x20If\x20thos\
e\x20concepts\x20are\n\x20new,\x20then\x20the\x20Concepts_Add\x20scope\
\x20will\x20be\x20needed.\x20But\x20since\x20you\x20don't\x20always\x20a\
nnotate\x20with\n\x20concepts,\x20it\x20is\x20not\x20a\x20hard\x20requir\
ements\x20that\x20Concepts_Add\x20is\x20used.\n\n\n\n\x03\x07\x02\x02\
\x12\x03\x14\x07$\n\n\n\x03\x07\x02\x04\x12\x03*\x02\n\n\n\n\x03\x07\x02\
\x06\x12\x03*\x0b\x20\n\n\n\x03\x07\x02\x01\x12\x03*!4\n\n\n\x03\x07\x02\
\x03\x12\x03*7<\n^\n\x02\x07\x03\x12\x03-\x024\x1aS\x20This\x20is\x20the\
\x20authorizer\x20type\x20for\x20the\x20endpoint\x20our\x20of\x20multipl\
e\x20backend\x20authorizers.\n\n\n\n\x03\x07\x03\x02\x12\x03\x14\x07$\n\
\n\n\x03\x07\x03\x06\x12\x03-\x02\x1e\n\n\n\x03\x07\x03\x01\x12\x03-\x1f\
+\n\n\n\x03\x07\x03\x03\x12\x03-.3\n\t\n\x01\x07\x12\x040\04\x01\n\x87\
\x01\n\x02\x07\x04\x12\x033\x02\"\x1a|\x20indicates\x20if\x20this\x20mes\
sage\x20should\x20be\x20private.\x20If\x20true,\x20then\x20internal\x20u\
se\x20only.\x20If\x20False,\n\x20then\x20publicly\x20avaliable\x20to\x20\
world.\n\n\n\n\x03\x07\x04\x02\x12\x030\x07%\n\n\n\x03\x07\x04\x05\x12\
\x033\x02\x06\n\n\n\x03\x07\x04\x01\x12\x033\x07\x19\n\n\n\x03\x07\x04\
\x03\x12\x033\x1c!b\x06proto3\
";
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}
pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
file_descriptor_proto_lazy.get(|| {
parse_descriptor_proto()
})
}