Constant ANNOTATIONS_PB
Source pub const ANNOTATIONS_PB: &[u8] = b"\n\xd9c\n google/protobuf/descriptor.proto\x12\x0fgoogle.protobuf\"]\n\x11FileDescriptorSet\x128\n\x04file\x18\x01 \x03(\x0b2$.google.protobuf.FileDescriptorProtoR\x04file*\x0e\x08\x80\xec\xca\xff\x01\x10\x81\xec\xca\xff\x01\x1a\x00\"\xc5\x05\n\x13FileDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07package\x18\x02 \x01(\tR\x07package\x12\x1e\n\ndependency\x18\x03 \x03(\tR\ndependency\x12+\n\x11public_dependency\x18\n \x03(\x05R\x10publicDependency\x12\'\n\x0fweak_dependency\x18\x0b \x03(\x05R\x0eweakDependency\x12+\n\x11option_dependency\x18\x0f \x03(\tR\x10optionDependency\x12C\n\x0cmessage_type\x18\x04 \x03(\x0b2 .google.protobuf.DescriptorProtoR\x0bmessageType\x12A\n\tenum_type\x18\x05 \x03(\x0b2$.google.protobuf.EnumDescriptorProtoR\x08enumType\x12A\n\x07service\x18\x06 \x03(\x0b2\'.google.protobuf.ServiceDescriptorProtoR\x07service\x12C\n\textension\x18\x07 \x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\textension\x126\n\x07options\x18\x08 \x01(\x0b2\x1c.google.protobuf.FileOptionsR\x07options\x12I\n\x10source_code_info\x18\t \x01(\x0b2\x1f.google.protobuf.SourceCodeInfoR\x0esourceCodeInfo\x12\x16\n\x06syntax\x18\x0c \x01(\tR\x06syntax\x122\n\x07edition\x18\x0e \x01(\x0e2\x18.google.protobuf.EditionR\x07edition\"\xfc\x06\n\x0fDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\x05field\x18\x02 \x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\x05field\x12C\n\textension\x18\x06 \x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\textension\x12A\n\x0bnested_type\x18\x03 \x03(\x0b2 .google.protobuf.DescriptorProtoR\nnestedType\x12A\n\tenum_type\x18\x04 \x03(\x0b2$.google.protobuf.EnumDescriptorProtoR\x08enumType\x12X\n\x0fextension_range\x18\x05 \x03(\x0b2/.google.protobuf.DescriptorProto.ExtensionRangeR\x0eextensionRange\x12D\n\noneof_decl\x18\x08 \x03(\x0b2%.google.protobuf.OneofDescriptorProtoR\toneofDecl\x129\n\x07options\x18\x07 \x01(\x0b2\x1f.google.protobuf.MessageOptionsR\x07options\x12U\n\x0ereserved_range\x18\t \x03(\x0b2..google.protobuf.DescriptorProto.ReservedRangeR\rreservedRange\x12#\n\rreserved_name\x18\n \x03(\tR\x0creservedName\x12A\n\nvisibility\x18\x0b \x01(\x0e2!.google.protobuf.SymbolVisibilityR\nvisibility\x1az\n\x0eExtensionRange\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03end\x12@\n\x07options\x18\x03 \x01(\x0b2&.google.protobuf.ExtensionRangeOptionsR\x07options\x1a7\n\rReservedRange\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03end\"\xc6\x04\n\x15ExtensionRangeOptions\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\x12V\n\x0bdeclaration\x18\x02 \x03(\x0b22.google.protobuf.ExtensionRangeOptions.DeclarationB\x00R\x0bdeclaration\x127\n\x08features\x182 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12j\n\x0cverification\x18\x03 \x01(\x0e28.google.protobuf.ExtensionRangeOptions.VerificationState:\nUNVERIFIEDB\x00R\x0cverification\x1a\x94\x01\n\x0bDeclaration\x12\x16\n\x06number\x18\x01 \x01(\x05R\x06number\x12\x1b\n\tfull_name\x18\x02 \x01(\tR\x08fullName\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\x12\x1a\n\x08reserved\x18\x05 \x01(\x08R\x08reserved\x12\x1a\n\x08repeated\x18\x06 \x01(\x08R\x08repeatedJ\x04\x08\x04\x10\x05\"4\n\x11VerificationState\x12\x0f\n\x0bDECLARATION\x10\x00\x12\x0e\n\nUNVERIFIED\x10\x01*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xc1\x06\n\x14FieldDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06number\x18\x03 \x01(\x05R\x06number\x12A\n\x05label\x18\x04 \x01(\x0e2+.google.protobuf.FieldDescriptorProto.LabelR\x05label\x12>\n\x04type\x18\x05 \x01(\x0e2*.google.protobuf.FieldDescriptorProto.TypeR\x04type\x12\x1b\n\ttype_name\x18\x06 \x01(\tR\x08typeName\x12\x1a\n\x08extendee\x18\x02 \x01(\tR\x08extendee\x12#\n\rdefault_value\x18\x07 \x01(\tR\x0cdefaultValue\x12\x1f\n\x0boneof_index\x18\t \x01(\x05R\noneofIndex\x12\x1b\n\tjson_name\x18\n \x01(\tR\x08jsonName\x127\n\x07options\x18\x08 \x01(\x0b2\x1d.google.protobuf.FieldOptionsR\x07options\x12\'\n\x0fproto3_optional\x18\x11 \x01(\x08R\x0eproto3Optional\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REPEATED\x10\x03\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\"c\n\x14OneofDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x127\n\x07options\x18\x02 \x01(\x0b2\x1d.google.protobuf.OneofOptionsR\x07options\"\xa6\x03\n\x13EnumDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12?\n\x05value\x18\x02 \x03(\x0b2).google.protobuf.EnumValueDescriptorProtoR\x05value\x126\n\x07options\x18\x03 \x01(\x0b2\x1c.google.protobuf.EnumOptionsR\x07options\x12]\n\x0ereserved_range\x18\x04 \x03(\x0b26.google.protobuf.EnumDescriptorProto.EnumReservedRangeR\rreservedRange\x12#\n\rreserved_name\x18\x05 \x03(\tR\x0creservedName\x12A\n\nvisibility\x18\x06 \x01(\x0e2!.google.protobuf.SymbolVisibilityR\nvisibility\x1a;\n\x11EnumReservedRange\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03end\"\x83\x01\n\x18EnumValueDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06number\x18\x02 \x01(\x05R\x06number\x12;\n\x07options\x18\x03 \x01(\x0b2!.google.protobuf.EnumValueOptionsR\x07options\"\xa7\x01\n\x16ServiceDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12>\n\x06method\x18\x02 \x03(\x0b2&.google.protobuf.MethodDescriptorProtoR\x06method\x129\n\x07options\x18\x03 \x01(\x0b2\x1f.google.protobuf.ServiceOptionsR\x07options\"\x89\x02\n\x15MethodDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1d\n\ninput_type\x18\x02 \x01(\tR\tinputType\x12\x1f\n\x0boutput_type\x18\x03 \x01(\tR\noutputType\x128\n\x07options\x18\x04 \x01(\x0b2\x1e.google.protobuf.MethodOptionsR\x07options\x120\n\x10client_streaming\x18\x05 \x01(\x08:\x05falseR\x0fclientStreaming\x120\n\x10server_streaming\x18\x06 \x01(\x08:\x05falseR\x0fserverStreaming\"\xad\t\n\x0bFileOptions\x12!\n\x0cjava_package\x18\x01 \x01(\tR\x0bjavaPackage\x120\n\x14java_outer_classname\x18\x08 \x01(\tR\x12javaOuterClassname\x125\n\x13java_multiple_files\x18\n \x01(\x08:\x05falseR\x11javaMultipleFiles\x12D\n\x1djava_generate_equals_and_hash\x18\x14 \x01(\x08B\x02\x18\x01R\x19javaGenerateEqualsAndHash\x12:\n\x16java_string_check_utf8\x18\x1b \x01(\x08:\x05falseR\x13javaStringCheckUtf8\x12S\n\x0coptimize_for\x18\t \x01(\x0e2).google.protobuf.FileOptions.OptimizeMode:\x05SPEEDR\x0boptimizeFor\x12\x1d\n\ngo_package\x18\x0b \x01(\tR\tgoPackage\x125\n\x13cc_generic_services\x18\x10 \x01(\x08:\x05falseR\x11ccGenericServices\x129\n\x15java_generic_services\x18\x11 \x01(\x08:\x05falseR\x13javaGenericServices\x125\n\x13py_generic_services\x18\x12 \x01(\x08:\x05falseR\x11pyGenericServices\x12%\n\ndeprecated\x18\x17 \x01(\x08:\x05falseR\ndeprecated\x12.\n\x10cc_enable_arenas\x18\x1f \x01(\x08:\x04trueR\x0eccEnableArenas\x12*\n\x11objc_class_prefix\x18$ \x01(\tR\x0fobjcClassPrefix\x12)\n\x10csharp_namespace\x18% \x01(\tR\x0fcsharpNamespace\x12!\n\x0cswift_prefix\x18\' \x01(\tR\x0bswiftPrefix\x12(\n\x10php_class_prefix\x18( \x01(\tR\x0ephpClassPrefix\x12#\n\rphp_namespace\x18) \x01(\tR\x0cphpNamespace\x124\n\x16php_metadata_namespace\x18, \x01(\tR\x14phpMetadataNamespace\x12!\n\x0cruby_package\x18- \x01(\tR\x0brubyPackage\x127\n\x08features\x182 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\":\n\x0cOptimizeMode\x12\t\n\x05SPEED\x10\x01\x12\r\n\tCODE_SIZE\x10\x02\x12\x10\n\x0cLITE_RUNTIME\x10\x03*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08*\x10+J\x04\x08&\x10\'R\x14php_generic_services\"\xf4\x03\n\x0eMessageOptions\x12<\n\x17message_set_wire_format\x18\x01 \x01(\x08:\x05falseR\x14messageSetWireFormat\x12L\n\x1fno_standard_descriptor_accessor\x18\x02 \x01(\x08:\x05falseR\x1cnoStandardDescriptorAccessor\x12%\n\ndeprecated\x18\x03 \x01(\x08:\x05falseR\ndeprecated\x12\x1b\n\tmap_entry\x18\x07 \x01(\x08R\x08mapEntry\x12V\n&deprecated_legacy_json_field_conflicts\x18\x0b \x01(\x08B\x02\x18\x01R\"deprecatedLegacyJsonFieldConflicts\x127\n\x08features\x18\x0c \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\x9d\r\n\x0cFieldOptions\x12A\n\x05ctype\x18\x01 \x01(\x0e2#.google.protobuf.FieldOptions.CType:\x06STRINGR\x05ctype\x12\x16\n\x06packed\x18\x02 \x01(\x08R\x06packed\x12G\n\x06jstype\x18\x06 \x01(\x0e2$.google.protobuf.FieldOptions.JSType:\tJS_NORMALR\x06jstype\x12\x19\n\x04lazy\x18\x05 \x01(\x08:\x05falseR\x04lazy\x12.\n\x0funverified_lazy\x18\x0f \x01(\x08:\x05falseR\x0eunverifiedLazy\x12%\n\ndeprecated\x18\x03 \x01(\x08:\x05falseR\ndeprecated\x12\x19\n\x04weak\x18\n \x01(\x08:\x05falseR\x04weak\x12(\n\x0cdebug_redact\x18\x10 \x01(\x08:\x05falseR\x0bdebugRedact\x12K\n\tretention\x18\x11 \x01(\x0e2-.google.protobuf.FieldOptions.OptionRetentionR\tretention\x12H\n\x07targets\x18\x13 \x03(\x0e2..google.protobuf.FieldOptions.OptionTargetTypeR\x07targets\x12W\n\x10edition_defaults\x18\x14 \x03(\x0b2,.google.protobuf.FieldOptions.EditionDefaultR\x0feditionDefaults\x127\n\x08features\x18\x15 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12U\n\x0ffeature_support\x18\x16 \x01(\x0b2,.google.protobuf.FieldOptions.FeatureSupportR\x0efeatureSupport\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\x1aZ\n\x0eEditionDefault\x122\n\x07edition\x18\x03 \x01(\x0e2\x18.google.protobuf.EditionR\x07edition\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x1a\x96\x02\n\x0eFeatureSupport\x12G\n\x12edition_introduced\x18\x01 \x01(\x0e2\x18.google.protobuf.EditionR\x11editionIntroduced\x12G\n\x12edition_deprecated\x18\x02 \x01(\x0e2\x18.google.protobuf.EditionR\x11editionDeprecated\x12/\n\x13deprecation_warning\x18\x03 \x01(\tR\x12deprecationWarning\x12A\n\x0fedition_removed\x18\x04 \x01(\x0e2\x18.google.protobuf.EditionR\x0eeditionRemoved\"/\n\x05CType\x12\n\n\x06STRING\x10\x00\x12\x08\n\x04CORD\x10\x01\x12\x10\n\x0cSTRING_PIECE\x10\x02\"5\n\x06JSType\x12\r\n\tJS_NORMAL\x10\x00\x12\r\n\tJS_STRING\x10\x01\x12\r\n\tJS_NUMBER\x10\x02\"U\n\x0fOptionRetention\x12\x15\n\x11RETENTION_UNKNOWN\x10\x00\x12\x15\n\x11RETENTION_RUNTIME\x10\x01\x12\x14\n\x10RETENTION_SOURCE\x10\x02\"\x8c\x02\n\x10OptionTargetType\x12\x17\n\x13TARGET_TYPE_UNKNOWN\x10\x00\x12\x14\n\x10TARGET_TYPE_FILE\x10\x01\x12\x1f\n\x1bTARGET_TYPE_EXTENSION_RANGE\x10\x02\x12\x17\n\x13TARGET_TYPE_MESSAGE\x10\x03\x12\x15\n\x11TARGET_TYPE_FIELD\x10\x04\x12\x15\n\x11TARGET_TYPE_ONEOF\x10\x05\x12\x14\n\x10TARGET_TYPE_ENUM\x10\x06\x12\x1a\n\x16TARGET_TYPE_ENUM_ENTRY\x10\x07\x12\x17\n\x13TARGET_TYPE_SERVICE\x10\x08\x12\x16\n\x12TARGET_TYPE_METHOD\x10\t*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05J\x04\x08\x12\x10\x13\"\xac\x01\n\x0cOneofOptions\x127\n\x08features\x18\x01 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xd1\x02\n\x0bEnumOptions\x12\x1f\n\x0ballow_alias\x18\x02 \x01(\x08R\nallowAlias\x12%\n\ndeprecated\x18\x03 \x01(\x08:\x05falseR\ndeprecated\x12V\n&deprecated_legacy_json_field_conflicts\x18\x06 \x01(\x08B\x02\x18\x01R\"deprecatedLegacyJsonFieldConflicts\x127\n\x08features\x18\x07 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x05\x10\x06\"\xd8\x02\n\x10EnumValueOptions\x12%\n\ndeprecated\x18\x01 \x01(\x08:\x05falseR\ndeprecated\x127\n\x08features\x18\x02 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12(\n\x0cdebug_redact\x18\x03 \x01(\x08:\x05falseR\x0bdebugRedact\x12U\n\x0ffeature_support\x18\x04 \x01(\x0b2,.google.protobuf.FieldOptions.FeatureSupportR\x0efeatureSupport\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xd5\x01\n\x0eServiceOptions\x127\n\x08features\x18\" \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12%\n\ndeprecated\x18! \x01(\x08:\x05falseR\ndeprecated\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x99\x03\n\rMethodOptions\x12%\n\ndeprecated\x18! \x01(\x08:\x05falseR\ndeprecated\x12q\n\x11idempotency_level\x18\" \x01(\x0e2/.google.protobuf.MethodOptions.IdempotencyLevel:\x13IDEMPOTENCY_UNKNOWNR\x10idempotencyLevel\x127\n\x08features\x18# \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\"P\n\x10IdempotencyLevel\x12\x17\n\x13IDEMPOTENCY_UNKNOWN\x10\x00\x12\x13\n\x0fNO_SIDE_EFFECTS\x10\x01\x12\x0e\n\nIDEMPOTENT\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x9a\x03\n\x13UninterpretedOption\x12A\n\x04name\x18\x02 \x03(\x0b2-.google.protobuf.UninterpretedOption.NamePartR\x04name\x12)\n\x10identifier_value\x18\x03 \x01(\tR\x0fidentifierValue\x12,\n\x12positive_int_value\x18\x04 \x01(\x04R\x10positiveIntValue\x12,\n\x12negative_int_value\x18\x05 \x01(\x03R\x10negativeIntValue\x12!\n\x0cdouble_value\x18\x06 \x01(\x01R\x0bdoubleValue\x12!\n\x0cstring_value\x18\x07 \x01(\x0cR\x0bstringValue\x12\'\n\x0faggregate_value\x18\x08 \x01(\tR\x0eaggregateValue\x1aJ\n\x08NamePart\x12\x1b\n\tname_part\x18\x01 \x02(\tR\x08namePart\x12!\n\x0cis_extension\x18\x02 \x02(\x08R\x0bisExtension\"\xf0\x0b\n\nFeatureSet\x12R\n\x0efield_presence\x18\x01 \x01(\x0e2).google.protobuf.FeatureSet.FieldPresenceB\x00R\rfieldPresence\x12C\n\tenum_type\x18\x02 \x01(\x0e2$.google.protobuf.FeatureSet.EnumTypeB\x00R\x08enumType\x12k\n\x17repeated_field_encoding\x18\x03 \x01(\x0e21.google.protobuf.FeatureSet.RepeatedFieldEncodingB\x00R\x15repeatedFieldEncoding\x12U\n\x0futf8_validation\x18\x04 \x01(\x0e2*.google.protobuf.FeatureSet.Utf8ValidationB\x00R\x0eutf8Validation\x12X\n\x10message_encoding\x18\x05 \x01(\x0e2+.google.protobuf.FeatureSet.MessageEncodingB\x00R\x0fmessageEncoding\x12I\n\x0bjson_format\x18\x06 \x01(\x0e2&.google.protobuf.FeatureSet.JsonFormatB\x00R\njsonFormat\x12b\n\x14enforce_naming_style\x18\x07 \x01(\x0e2..google.protobuf.FeatureSet.EnforceNamingStyleB\x00R\x12enforceNamingStyle\x12\x83\x01\n\x19default_symbol_visibility\x18\x08 \x01(\x0e2E.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibilityB\x00R\x17defaultSymbolVisibility\x1a\xa1\x01\n\x11VisibilityFeature\"\x81\x01\n\x17DefaultSymbolVisibility\x12%\n!DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\x10\x00\x12\x0e\n\nEXPORT_ALL\x10\x01\x12\x14\n\x10EXPORT_TOP_LEVEL\x10\x02\x12\r\n\tLOCAL_ALL\x10\x03\x12\n\n\x06STRICT\x10\x04J\x08\x08\x01\x10\x80\x80\x80\x80\x02\"\\\n\rFieldPresence\x12\x1a\n\x16FIELD_PRESENCE_UNKNOWN\x10\x00\x12\x0c\n\x08EXPLICIT\x10\x01\x12\x0c\n\x08IMPLICIT\x10\x02\x12\x13\n\x0fLEGACY_REQUIRED\x10\x03\"7\n\x08EnumType\x12\x15\n\x11ENUM_TYPE_UNKNOWN\x10\x00\x12\x08\n\x04OPEN\x10\x01\x12\n\n\x06CLOSED\x10\x02\"V\n\x15RepeatedFieldEncoding\x12#\n\x1fREPEATED_FIELD_ENCODING_UNKNOWN\x10\x00\x12\n\n\x06PACKED\x10\x01\x12\x0c\n\x08EXPANDED\x10\x02\"I\n\x0eUtf8Validation\x12\x1b\n\x17UTF8_VALIDATION_UNKNOWN\x10\x00\x12\n\n\x06VERIFY\x10\x02\x12\x08\n\x04NONE\x10\x03\"\x04\x08\x01\x10\x01\"S\n\x0fMessageEncoding\x12\x1c\n\x18MESSAGE_ENCODING_UNKNOWN\x10\x00\x12\x13\n\x0fLENGTH_PREFIXED\x10\x01\x12\r\n\tDELIMITED\x10\x02\"H\n\nJsonFormat\x12\x17\n\x13JSON_FORMAT_UNKNOWN\x10\x00\x12\t\n\x05ALLOW\x10\x01\x12\x16\n\x12LEGACY_BEST_EFFORT\x10\x02\"W\n\x12EnforceNamingStyle\x12 \n\x1cENFORCE_NAMING_STYLE_UNKNOWN\x10\x00\x12\r\n\tSTYLE2024\x10\x01\x12\x10\n\x0cSTYLE_LEGACY\x10\x02*\x08\x08\xe8\x07\x10\x8bN\x1a\x00*\x06\x08\x8bN\x10\x90N*\x06\x08\x90N\x10\x91NJ\x06\x08\xe7\x07\x10\xe8\x07\"\xef\x03\n\x12FeatureSetDefaults\x12X\n\x08defaults\x18\x01 \x03(\x0b2<.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefaultR\x08defaults\x12A\n\x0fminimum_edition\x18\x04 \x01(\x0e2\x18.google.protobuf.EditionR\x0eminimumEdition\x12A\n\x0fmaximum_edition\x18\x05 \x01(\x0e2\x18.google.protobuf.EditionR\x0emaximumEdition\x1a\xf8\x01\n\x18FeatureSetEditionDefault\x122\n\x07edition\x18\x03 \x01(\x0e2\x18.google.protobuf.EditionR\x07edition\x12N\n\x14overridable_features\x18\x04 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x13overridableFeatures\x12B\n\x0efixed_features\x18\x05 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\rfixedFeaturesJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x08features\"\xb7\x02\n\x0eSourceCodeInfo\x12D\n\x08location\x18\x01 \x03(\x0b2(.google.protobuf.SourceCodeInfo.LocationR\x08location\x1a\xce\x01\n\x08Location\x12\x16\n\x04path\x18\x01 \x03(\x05B\x02\x10\x01R\x04path\x12\x16\n\x04span\x18\x02 \x03(\x05B\x02\x10\x01R\x04span\x12)\n\x10leading_comments\x18\x03 \x01(\tR\x0fleadingComments\x12+\n\x11trailing_comments\x18\x04 \x01(\tR\x10trailingComments\x12:\n\x19leading_detached_comments\x18\x06 \x03(\tR\x17leadingDetachedComments*\x0e\x08\x80\xec\xca\xff\x01\x10\x81\xec\xca\xff\x01\x1a\x00\"\xd0\x02\n\x11GeneratedCodeInfo\x12M\n\nannotation\x18\x01 \x03(\x0b2-.google.protobuf.GeneratedCodeInfo.AnnotationR\nannotation\x1a\xeb\x01\n\nAnnotation\x12\x16\n\x04path\x18\x01 \x03(\x05B\x02\x10\x01R\x04path\x12\x1f\n\x0bsource_file\x18\x02 \x01(\tR\nsourceFile\x12\x14\n\x05begin\x18\x03 \x01(\x05R\x05begin\x12\x10\n\x03end\x18\x04 \x01(\x05R\x03end\x12R\n\x08semantic\x18\x05 \x01(\x0e26.google.protobuf.GeneratedCodeInfo.Annotation.SemanticR\x08semantic\"(\n\x08Semantic\x12\x08\n\x04NONE\x10\x00\x12\x07\n\x03SET\x10\x01\x12\t\n\x05ALIAS\x10\x02*\xa7\x02\n\x07Edition\x12\x13\n\x0fEDITION_UNKNOWN\x10\x00\x12\x13\n\x0eEDITION_LEGACY\x10\x84\x07\x12\x13\n\x0eEDITION_PROTO2\x10\xe6\x07\x12\x13\n\x0eEDITION_PROTO3\x10\xe7\x07\x12\x11\n\x0cEDITION_2023\x10\xe8\x07\x12\x11\n\x0cEDITION_2024\x10\xe9\x07\x12\x17\n\x13EDITION_1_TEST_ONLY\x10\x01\x12\x17\n\x13EDITION_2_TEST_ONLY\x10\x02\x12\x1d\n\x17EDITION_99997_TEST_ONLY\x10\x9d\x8d\x06\x12\x1d\n\x17EDITION_99998_TEST_ONLY\x10\x9e\x8d\x06\x12\x1d\n\x17EDITION_99999_TEST_ONLY\x10\x9f\x8d\x06\x12\x13\n\x0bEDITION_MAX\x10\xff\xff\xff\xff\x07*U\n\x10SymbolVisibility\x12\x14\n\x10VISIBILITY_UNSET\x10\x00\x12\x14\n\x10VISIBILITY_LOCAL\x10\x01\x12\x15\n\x11VISIBILITY_EXPORT\x10\x02B~\n\x13com.google.protobufB\x10DescriptorProtosH\x01Z-google.golang.org/protobuf/types/descriptorpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.Reflection\n\xc8D\n\x16tinc/annotations.proto\x12\x04tinc\x1a google/protobuf/descriptor.proto\"8\n\x0eServiceOptions\x12\x1b\n\x06prefix\x18\x01 \x01(\tH\x00R\x06prefix\x88\x01\x01B\t\n\x07_prefix\"m\n\rMethodOptions\x125\n\x08endpoint\x18\x01 \x03(\x0b2\x19.tinc.HttpEndpointOptionsR\x08endpoint\x12%\n\x03cel\x18\x02 \x03(\x0b2\x13.tinc.CelExpressionR\x03cel\"\xeb\x01\n\x0eMessageOptions\x12\x1f\n\x08generate\x18\x01 \x01(\x08H\x00R\x08generate\x88\x01\x01\x123\n\nrename_all\x18\x02 \x01(\x0e2\x0f.tinc.RenameAllH\x01R\trenameAll\x88\x01\x01\x12,\n\x0fskip_validation\x18e \x01(\x08H\x02R\x0eskipValidation\x88\x01\x01\x12%\n\x03cel\x18d \x03(\x0b2\x13.tinc.CelExpressionR\x03celB\x0b\n\t_generateB\r\n\x0b_rename_allB\x12\n\x10_skip_validation\"\xf0\x01\n\x15PredefinedConstraints\x12%\n\x03cel\x18\x01 \x03(\x0b2\x13.tinc.CelExpressionR\x03cel\x124\n\x04type\x18\x02 \x01(\x0e2 .tinc.PredefinedConstraints.TypeR\x04type\"z\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WRAPPER_REPEATED_ITEM\x10\x01\x12\x13\n\x0fWRAPPER_MAP_KEY\x10\x02\x12\x15\n\x11WRAPPER_MAP_VALUE\x10\x03\x12\x15\n\x11CUSTOM_EXPRESSION\x10\x04\"\xb2\x02\n\x0cFieldOptions\x12\x1b\n\x06rename\x18\x01 \x01(\tH\x00R\x06rename\x88\x01\x01\x12;\n\x0ejson_omittable\x18\xc8\x01 \x01(\x0e2\x13.tinc.JsonOmittableR\rjsonOmittable\x12\x1e\n\x07flatten\x18\xcd\x01 \x01(\x08H\x01R\x07flatten\x88\x01\x01\x126\n\nvisibility\x18\xca\x01 \x01(\x0e2\x10.tinc.VisibilityH\x02R\nvisibility\x88\x01\x01\x12;\n\nconstraint\x18e \x01(\x0b2\x16.tinc.FieldConstraintsH\x03R\nconstraint\x88\x01\x01B\t\n\x07_renameB\n\n\x08_flattenB\r\n\x0b_visibilityB\r\n\x0b_constraint\"\xd0\x02\n\x10FloatConstraints\x12\x12\n\x02gt\x18\x01 \x01(\x02B\x00H\x00R\x02gt\x12\x14\n\x03gte\x18\x02 \x01(\x02B\x00H\x00R\x03gte\x12\x12\n\x02lt\x18\x03 \x01(\x02B\x00H\x01R\x02lt\x12\x14\n\x03lte\x18\x04 \x01(\x02B\x00H\x01R\x03lte\x12\x10\n\x02in\x18\x05 \x03(\x02B\x00R\x02in\x12\x17\n\x06not_in\x18\x06 \x03(\x02B\x00R\x05notIn\x12\x1b\n\x05const\x18\x08 \x01(\x02B\x00H\x02R\x05const\x88\x01\x01\x12(\n\x0cdisallow_nan\x18\t \x01(\x08B\x00H\x03R\x0bdisallowNan\x88\x01\x01\x122\n\x11disallow_infinity\x18\n \x01(\x08B\x00H\x04R\x10disallowInfinity\x88\x01\x01B\t\n\x07greaterB\x06\n\x04lessB\x08\n\x06_constB\x0f\n\r_disallow_nanB\x14\n\x12_disallow_infinity\"\xd1\x02\n\x11DoubleConstraints\x12\x12\n\x02gt\x18\x01 \x01(\x01B\x00H\x00R\x02gt\x12\x14\n\x03gte\x18\x02 \x01(\x01B\x00H\x00R\x03gte\x12\x12\n\x02lt\x18\x03 \x01(\x01B\x00H\x01R\x02lt\x12\x14\n\x03lte\x18\x04 \x01(\x01B\x00H\x01R\x03lte\x12\x10\n\x02in\x18\x05 \x03(\x01B\x00R\x02in\x12\x17\n\x06not_in\x18\x06 \x03(\x01B\x00R\x05notIn\x12\x1b\n\x05const\x18\x08 \x01(\x01B\x00H\x02R\x05const\x88\x01\x01\x12(\n\x0cdisallow_nan\x18\t \x01(\x08B\x00H\x03R\x0bdisallowNan\x88\x01\x01\x122\n\x11disallow_infinity\x18\n \x01(\x08B\x00H\x04R\x10disallowInfinity\x88\x01\x01B\t\n\x07greaterB\x06\n\x04lessB\x08\n\x06_constB\x0f\n\r_disallow_nanB\x14\n\x12_disallow_infinity\"\xcb\x01\n\x10Int32Constraints\x12\x12\n\x02gt\x18\x01 \x01(\x05B\x00H\x00R\x02gt\x12\x14\n\x03gte\x18\x02 \x01(\x05B\x00H\x00R\x03gte\x12\x12\n\x02lt\x18\x03 \x01(\x05B\x00H\x01R\x02lt\x12\x14\n\x03lte\x18\x04 \x01(\x05B\x00H\x01R\x03lte\x12\x10\n\x02in\x18\x05 \x03(\x05B\x00R\x02in\x12\x17\n\x06not_in\x18\x06 \x03(\x05B\x00R\x05notIn\x12\x1b\n\x05const\x18\x08 \x01(\x05B\x00H\x02R\x05const\x88\x01\x01B\t\n\x07greaterB\x06\n\x04lessB\x08\n\x06_const\"\xcb\x01\n\x10Int64Constraints\x12\x12\n\x02gt\x18\x01 \x01(\x03B\x00H\x00R\x02gt\x12\x14\n\x03gte\x18\x02 \x01(\x03B\x00H\x00R\x03gte\x12\x12\n\x02lt\x18\x03 \x01(\x03B\x00H\x01R\x02lt\x12\x14\n\x03lte\x18\x04 \x01(\x03B\x00H\x01R\x03lte\x12\x10\n\x02in\x18\x05 \x03(\x03B\x00R\x02in\x12\x17\n\x06not_in\x18\x06 \x03(\x03B\x00R\x05notIn\x12\x1b\n\x05const\x18\x08 \x01(\x03B\x00H\x02R\x05const\x88\x01\x01B\t\n\x07greaterB\x06\n\x04lessB\x08\n\x06_const\"\xcc\x01\n\x11UInt32Constraints\x12\x12\n\x02gt\x18\x01 \x01(\rB\x00H\x00R\x02gt\x12\x14\n\x03gte\x18\x02 \x01(\rB\x00H\x00R\x03gte\x12\x12\n\x02lt\x18\x03 \x01(\rB\x00H\x01R\x02lt\x12\x14\n\x03lte\x18\x04 \x01(\rB\x00H\x01R\x03lte\x12\x10\n\x02in\x18\x05 \x03(\rB\x00R\x02in\x12\x17\n\x06not_in\x18\x06 \x03(\rB\x00R\x05notIn\x12\x1b\n\x05const\x18\x08 \x01(\rB\x00H\x02R\x05const\x88\x01\x01B\t\n\x07greaterB\x06\n\x04lessB\x08\n\x06_const\"\xcc\x01\n\x11UInt64Constraints\x12\x12\n\x02gt\x18\x01 \x01(\x03B\x00H\x00R\x02gt\x12\x14\n\x03gte\x18\x02 \x01(\x04B\x00H\x00R\x03gte\x12\x12\n\x02lt\x18\x03 \x01(\x04B\x00H\x01R\x02lt\x12\x14\n\x03lte\x18\x04 \x01(\x04B\x00H\x01R\x03lte\x12\x10\n\x02in\x18\x05 \x03(\x04B\x00R\x02in\x12\x17\n\x06not_in\x18\x06 \x03(\x04B\x00R\x05notIn\x12\x1b\n\x05const\x18\x08 \x01(\x04B\x00H\x02R\x05const\x88\x01\x01B\t\n\x07greaterB\x06\n\x04lessB\x08\n\x06_const\"\xc8\x05\n\x11StringConstraints\x12\x1b\n\x05const\x18\x01 \x01(\tB\x00H\x01R\x05const\x88\x01\x01\x12\x17\n\x03len\x18\x02 \x01(\x04B\x00H\x02R\x03len\x88\x01\x01\x12\x1e\n\x07min_len\x18\x03 \x01(\x04B\x00H\x03R\x06minLen\x88\x01\x01\x12\x1e\n\x07max_len\x18\x04 \x01(\x04B\x00H\x04R\x06maxLen\x88\x01\x01\x12\x1b\n\x05match\x18\x05 \x01(\tB\x00H\x05R\x05match\x88\x01\x01\x12\"\n\tnot_match\x18\x06 \x01(\tB\x00H\x06R\x08notMatch\x88\x01\x01\x12\x1d\n\x06prefix\x18\x07 \x01(\tB\x00H\x07R\x06prefix\x88\x01\x01\x12\x1d\n\x06suffix\x18\x08 \x01(\tB\x00H\x08R\x06suffix\x88\x01\x01\x12!\n\x08contains\x18\t \x01(\tB\x00H\tR\x08contains\x88\x01\x01\x12(\n\x0cnot_contains\x18\n \x01(\tB\x00H\nR\x0bnotContains\x88\x01\x01\x12\x10\n\x02in\x18\x0b \x03(\tB\x00R\x02in\x12\x17\n\x06not_in\x18\x0c \x03(\tB\x00R\x05notIn\x12\x18\n\x05email\x18\r \x01(\x08B\x00H\x00R\x05email\x12\x12\n\x02ip\x18\x0e \x01(\x08B\x00H\x00R\x02ip\x12\x16\n\x04ipv4\x18\x0f \x01(\x08B\x00H\x00R\x04ipv4\x12\x16\n\x04ipv6\x18\x10 \x01(\x08B\x00H\x00R\x04ipv6\x12\x16\n\x04uuid\x18\x11 \x01(\x08B\x00H\x00R\x04uuid\x12\x1e\n\x08hostname\x18\x12 \x01(\x08B\x00H\x00R\x08hostname\x12\x14\n\x03uri\x18\x13 \x01(\x08B\x00H\x00R\x03uri\x12\x16\n\x04ulid\x18\x14 \x01(\x08B\x00H\x00R\x04ulidB\x0c\n\nwell_knownB\x08\n\x06_constB\x06\n\x04_lenB\n\n\x08_min_lenB\n\n\x08_max_lenB\x08\n\x06_matchB\x0c\n\n_not_matchB\t\n\x07_prefixB\t\n\x07_suffixB\x0b\n\t_containsB\x0f\n\r_not_contains\"\xb2\x01\n\x10BytesConstraints\x12\x1b\n\x05const\x18\x01 \x01(\x0cB\x00H\x00R\x05const\x88\x01\x01\x12\x17\n\x03len\x18\x02 \x01(\x04B\x00H\x01R\x03len\x88\x01\x01\x12\x1e\n\x07min_len\x18\x03 \x01(\x04B\x00H\x02R\x06minLen\x88\x01\x01\x12\x1e\n\x07max_len\x18\x04 \x01(\x04B\x00H\x03R\x06maxLen\x88\x01\x01B\x08\n\x06_constB\x06\n\x04_lenB\n\n\x08_min_lenB\n\n\x08_max_len\"\x90\x01\n\x0fEnumConstraints\x12\x1b\n\x05const\x18\x01 \x01(\x05B\x00H\x00R\x05const\x88\x01\x01\x12\x1f\n\x07defined\x18\x02 \x01(\x08B\x00H\x01R\x07defined\x88\x01\x01\x12\x10\n\x02in\x18\x03 \x03(\x05B\x00R\x02in\x12\x17\n\x06not_in\x18\x04 \x03(\x05B\x00R\x05notInB\x08\n\x06_constB\n\n\x08_defined\"\xce\x01\n\x13RepeatedConstraints\x12\x1e\n\x07min_len\x18\x01 \x01(\x04B\x00H\x00R\x06minLen\x88\x01\x01\x12\x1e\n\x07max_len\x18\x02 \x01(\x04B\x00H\x01R\x06maxLen\x88\x01\x01\x12\x17\n\x03len\x18\x03 \x01(\x04B\x00H\x02R\x03len\x88\x01\x01\x125\n\x04item\x18\x05 \x01(\x0b2\x1a.tinc.PrimitiveConstraintsB\x00H\x03R\x04item\x88\x01\x01B\n\n\x08_min_lenB\n\n\x08_max_lenB\x06\n\x04_lenB\x07\n\x05_item\"\xdb\x04\n\x0eMapConstraints\x12\x1e\n\x07min_len\x18\x01 \x01(\x04B\x00H\x00R\x06minLen\x88\x01\x01\x12\x1e\n\x07max_len\x18\x02 \x01(\x04B\x00H\x01R\x06maxLen\x88\x01\x01\x12\x17\n\x03len\x18\x03 \x01(\x04B\x00H\x02R\x03len\x88\x01\x01\x12?\n\x03key\x18\x04 \x01(\x0b2&.tinc.MapConstraints.MapKeyConstraintsB\x00H\x03R\x03key\x88\x01\x01\x127\n\x05value\x18\x05 \x01(\x0b2\x1a.tinc.PrimitiveConstraintsB\x00H\x04R\x05value\x88\x01\x01\x1a\xc3\x02\n\x11MapKeyConstraints\x12.\n\x05int32\x18\x01 \x01(\x0b2\x16.tinc.Int32ConstraintsH\x00R\x05int32\x12.\n\x05int64\x18\x02 \x01(\x0b2\x16.tinc.Int64ConstraintsH\x00R\x05int64\x121\n\x06uint32\x18\x03 \x01(\x0b2\x17.tinc.UInt32ConstraintsH\x00R\x06uint32\x121\n\x06uint64\x18\x04 \x01(\x0b2\x17.tinc.UInt64ConstraintsH\x00R\x06uint64\x121\n\x06string\x18\x05 \x01(\x0b2\x17.tinc.StringConstraintsH\x00R\x06string\x12\'\n\x03cel\x18\x08 \x03(\x0b2\x13.tinc.CelExpressionB\x00R\x03celB\x0c\n\nconstraintB\n\n\x08_min_lenB\n\n\x08_max_lenB\x06\n\x04_lenB\x06\n\x04_keyB\x08\n\x06_value\"\x86\x04\n\x14PrimitiveConstraints\x12.\n\x05float\x18\x01 \x01(\x0b2\x16.tinc.FloatConstraintsH\x00R\x05float\x121\n\x06double\x18\x02 \x01(\x0b2\x17.tinc.DoubleConstraintsH\x00R\x06double\x12.\n\x05int32\x18\x03 \x01(\x0b2\x16.tinc.Int32ConstraintsH\x00R\x05int32\x12.\n\x05int64\x18\x04 \x01(\x0b2\x16.tinc.Int64ConstraintsH\x00R\x05int64\x121\n\x06uint32\x18\x05 \x01(\x0b2\x17.tinc.UInt32ConstraintsH\x00R\x06uint32\x121\n\x06uint64\x18\x06 \x01(\x0b2\x17.tinc.UInt64ConstraintsH\x00R\x06uint64\x121\n\x06string\x18\x07 \x01(\x0b2\x17.tinc.StringConstraintsH\x00R\x06string\x12.\n\x05bytes\x18\x08 \x01(\x0b2\x16.tinc.BytesConstraintsH\x00R\x05bytes\x12+\n\x04enum\x18\t \x01(\x0b2\x15.tinc.EnumConstraintsH\x00R\x04enum\x12\'\n\x03cel\x18\x0b \x03(\x0b2\x13.tinc.CelExpressionB\x00R\x03celB\x0c\n\nconstraint\"\xe5\x04\n\x10FieldConstraints\x12.\n\x05float\x18\x01 \x01(\x0b2\x16.tinc.FloatConstraintsH\x00R\x05float\x121\n\x06double\x18\x02 \x01(\x0b2\x17.tinc.DoubleConstraintsH\x00R\x06double\x12.\n\x05int32\x18\x03 \x01(\x0b2\x16.tinc.Int32ConstraintsH\x00R\x05int32\x12.\n\x05int64\x18\x04 \x01(\x0b2\x16.tinc.Int64ConstraintsH\x00R\x05int64\x121\n\x06uint32\x18\x05 \x01(\x0b2\x17.tinc.UInt32ConstraintsH\x00R\x06uint32\x121\n\x06uint64\x18\x06 \x01(\x0b2\x17.tinc.UInt64ConstraintsH\x00R\x06uint64\x121\n\x06string\x18\x07 \x01(\x0b2\x17.tinc.StringConstraintsH\x00R\x06string\x12.\n\x05bytes\x18\x08 \x01(\x0b2\x16.tinc.BytesConstraintsH\x00R\x05bytes\x12+\n\x04enum\x18\t \x01(\x0b2\x15.tinc.EnumConstraintsH\x00R\x04enum\x127\n\x08repeated\x18\n \x01(\x0b2\x19.tinc.RepeatedConstraintsH\x00R\x08repeated\x12(\n\x03map\x18\x0b \x01(\x0b2\x14.tinc.MapConstraintsH\x00R\x03map\x12\'\n\x03cel\x18\r \x03(\x0b2\x13.tinc.CelExpressionB\x00R\x03celB\x0c\n\nconstraint\"k\n\rCelExpression\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1e\n\nexpression\x18\x03 \x01(\tR\nexpression\x12 \n\x0bjsonschemas\x18\x05 \x03(\tR\x0bjsonschemas\"\x81\x01\n\x0bEnumOptions\x12 \n\trepr_enum\x18\x02 \x01(\x08H\x00R\x08reprEnum\x88\x01\x01\x123\n\nrename_all\x18\x03 \x01(\x0e2\x0f.tinc.RenameAllH\x01R\trenameAll\x88\x01\x01B\x0c\n\n_repr_enumB\r\n\x0b_rename_all\"\x82\x01\n\x12EnumVariantOptions\x12\x1b\n\x06rename\x18\x01 \x01(\tH\x00R\x06rename\x88\x01\x01\x125\n\nvisibility\x18\x02 \x01(\x0e2\x10.tinc.VisibilityH\x01R\nvisibility\x88\x01\x01B\t\n\x07_renameB\r\n\x0b_visibility\"\x93\x0b\n\x13HttpEndpointOptions\x12\x12\n\x03get\x18\x01 \x01(\tH\x00R\x03get\x12\x14\n\x04post\x18\x02 \x01(\tH\x00R\x04post\x12\x12\n\x03put\x18\x03 \x01(\tH\x00R\x03put\x12\x18\n\x06delete\x18\x04 \x01(\tH\x00R\x06delete\x12\x16\n\x05patch\x18\x05 \x01(\tH\x00R\x05patch\x12;\n\x07request\x18\x08 \x01(\x0b2!.tinc.HttpEndpointOptions.RequestR\x07request\x12>\n\x08response\x18\t \x01(\x0b2\".tinc.HttpEndpointOptions.ResponseR\x08response\x1a\x88\x05\n\x07Request\x12@\n\x04json\x18\x01 \x01(\x0b2*.tinc.HttpEndpointOptions.Request.JsonBodyH\x00R\x04json\x12@\n\x04text\x18\x02 \x01(\x0b2*.tinc.HttpEndpointOptions.Request.TextBodyH\x00R\x04text\x12F\n\x06binary\x18\x03 \x01(\x0b2,.tinc.HttpEndpointOptions.Request.BinaryBodyH\x00R\x06binary\x12E\n\x05query\x18\x04 \x01(\x0b2-.tinc.HttpEndpointOptions.Request.QueryParamsH\x00R\x05query\x1a/\n\x08JsonBody\x12\x19\n\x05field\x18\x01 \x01(\tH\x00R\x05field\x88\x01\x01B\x08\n\x06_field\x1a/\n\x08TextBody\x12\x19\n\x05field\x18\x01 \x01(\tH\x00R\x05field\x88\x01\x01B\x08\n\x06_field\x1a\xcb\x01\n\nBinaryBody\x12\x19\n\x05field\x18\x01 \x01(\tH\x00R\x05field\x88\x01\x01\x121\n\x12content_type_field\x18\x02 \x01(\tH\x01R\x10contentTypeField\x88\x01\x01\x125\n\x14content_type_accepts\x18\x03 \x01(\tH\x02R\x12contentTypeAccepts\x88\x01\x01B\x08\n\x06_fieldB\x15\n\x13_content_type_fieldB\x17\n\x15_content_type_accepts\x1a2\n\x0bQueryParams\x12\x19\n\x05field\x18\x01 \x01(\tH\x00R\x05field\x88\x01\x01B\x08\n\x06_fieldB\x06\n\x04mode\x1a\xf9\x03\n\x08Response\x12=\n\x04json\x18\x01 \x01(\x0b2\'.tinc.HttpEndpointOptions.Response.JsonH\x00R\x04json\x12=\n\x04text\x18\x02 \x01(\x0b2\'.tinc.HttpEndpointOptions.Response.TextH\x00R\x04text\x12C\n\x06binary\x18\x03 \x01(\x0b2).tinc.HttpEndpointOptions.Response.BinaryH\x00R\x06binary\x1a+\n\x04Json\x12\x19\n\x05field\x18\x01 \x01(\tH\x00R\x05field\x88\x01\x01B\x08\n\x06_field\x1a+\n\x04Text\x12\x19\n\x05field\x18\x01 \x01(\tH\x00R\x05field\x88\x01\x01B\x08\n\x06_field\x1a\xc7\x01\n\x06Binary\x12\x19\n\x05field\x18\x01 \x01(\tH\x00R\x05field\x88\x01\x01\x121\n\x12content_type_field\x18\x02 \x01(\tH\x01R\x10contentTypeField\x88\x01\x01\x125\n\x14content_type_accepts\x18\x03 \x01(\tH\x02R\x12contentTypeAccepts\x88\x01\x01B\x08\n\x06_fieldB\x15\n\x13_content_type_fieldB\x17\n\x15_content_type_acceptsB\x06\n\x04modeB\x08\n\x06method\"\xa2\x03\n\x0cOneofOptions\x12\x1b\n\x06rename\x18\x01 \x01(\tH\x00R\x06rename\x88\x01\x01\x123\n\nrename_all\x18\x04 \x01(\x0e2\x0f.tinc.RenameAllH\x01R\trenameAll\x88\x01\x01\x12;\n\x0ejson_omittable\x18\xc8\x01 \x01(\x0e2\x13.tinc.JsonOmittableR\rjsonOmittable\x126\n\nvisibility\x18\xca\x01 \x01(\x0e2\x10.tinc.VisibilityH\x02R\nvisibility\x88\x01\x01\x126\n\x06tagged\x18d \x01(\x0b2\x19.tinc.OneofOptions.TaggedH\x03R\x06tagged\x88\x01\x01\x12\x1d\n\x07flatten\x18e \x01(\x08H\x04R\x07flatten\x88\x01\x01\x1a4\n\x06Tagged\x12\x10\n\x03tag\x18\x01 \x01(\tR\x03tag\x12\x18\n\x07content\x18\x02 \x01(\tR\x07contentB\t\n\x07_renameB\r\n\x0b_rename_allB\r\n\x0b_visibilityB\t\n\x07_taggedB\n\n\x08_flatten*\xbc\x01\n\tRenameAll\x12\x1a\n\x16RENAME_ALL_UNSPECIFIED\x10\x00\x12\x0e\n\nLOWER_CASE\x10\x01\x12\x0e\n\nUPPER_CASE\x10\x02\x12\x0f\n\x0bPASCAL_CASE\x10\x03\x12\x0e\n\nCAMEL_CASE\x10\x04\x12\x0e\n\nSNAKE_CASE\x10\x05\x12\x18\n\x14SCREAMING_SNAKE_CASE\x10\x06\x12\x0e\n\nKEBAB_CASE\x10\x07\x12\x18\n\x14SCREAMING_KEBAB_CASE\x10\x08*S\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x08\n\x04SKIP\x10\x01\x12\x0e\n\nINPUT_ONLY\x10\x02\x12\x0f\n\x0bOUTPUT_ONLY\x10\x03*b\n\rJsonOmittable\x12\x1e\n\x1aJSON_OMITTABLE_UNSPECIFIED\x10\x00\x12\x08\n\x04TRUE\x10\x01\x12\t\n\x05FALSE\x10\x02\x12\x1c\n\x18TRUE_BUT_STILL_SERIALIZE\x10\x03:P\n\x07message\x12\x1f.google.protobuf.MessageOptions\x18\x8dy \x01(\x0b2\x14.tinc.MessageOptionsR\x07message:H\n\x05field\x12\x1d.google.protobuf.FieldOptions\x18\x8ey \x01(\x0b2\x12.tinc.FieldOptionsR\x05field:^\n\npredefined\x12\x1d.google.protobuf.FieldOptions\x18\x94y \x01(\x0b2\x1b.tinc.PredefinedConstraintsR\npredefined\x88\x01\x01:D\n\x04enum\x12\x1c.google.protobuf.EnumOptions\x18\x8fy \x01(\x0b2\x11.tinc.EnumOptionsR\x04enum:V\n\x07variant\x12!.google.protobuf.EnumValueOptions\x18\x90y \x01(\x0b2\x18.tinc.EnumVariantOptionsR\x07variant:L\n\x06method\x12\x1e.google.protobuf.MethodOptions\x18\x91y \x01(\x0b2\x13.tinc.MethodOptionsR\x06method:P\n\x07service\x12\x1f.google.protobuf.ServiceOptions\x18\x92y \x01(\x0b2\x14.tinc.ServiceOptionsR\x07service:H\n\x05oneof\x12\x1d.google.protobuf.OneofOptions\x18\x93y \x01(\x0b2\x12.tinc.OneofOptionsR\x05oneofb\x06proto3\n\xbe\x01\n\x1bgoogle/protobuf/empty.proto\x12\x0fgoogle.protobuf\"\x07\n\x05EmptyB}\n\x13com.google.protobufB\nEmptyProtoP\x01Z.google.golang.org/protobuf/types/known/emptypb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3\n\xff\x01\n\x1fgoogle/protobuf/timestamp.proto\x12\x0fgoogle.protobuf\";\n\tTimestamp\x12\x18\n\x07seconds\x18\x01 \x01(\x03R\x07seconds\x12\x14\n\x05nanos\x18\x02 \x01(\x05R\x05nanosB\x85\x01\n\x13com.google.protobufB\x0eTimestampProtoP\x01Z2google.golang.org/protobuf/types/known/timestamppb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3\n\xd8\x01\n!scufflecloud/core/v1/common.proto\x12\x14scufflecloud.core.v1\"s\n\x18CaptchaChallengeResponse\x12A\n\x08provider\x18\x01 \x01(\x0e2%.scufflecloud.core.v1.CaptchaProviderR\x08provider\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token* \n\x0fCaptchaProvider\x12\r\n\tTURNSTILE\x10\x00b\x06proto3\n\xb9\x02\n&scufflecloud/core/v1/constraints.proto\x12\x14scufflecloud.core.v1\x1a google/protobuf/descriptor.proto\x1a\x16tinc/annotations.proto\"B\n\x10StringConstraint\x12\x10\n\x02id\x18\x01 \x01(\x08B\x00R\x02id\x12\x1c\n\x08password\x18\x02 \x01(\x08B\x00R\x08password:s\n\x11string_constraint\x12\x1d.google.protobuf.FieldOptions\x18\x89\' \x01(\x0b2&.scufflecloud.core.v1.StringConstraintR\x10stringConstraintb\x06proto3\n\xc5\x08\n(scufflecloud/core/v1/organizations.proto\x12\x14scufflecloud.core.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&scufflecloud/core/v1/constraints.proto\x1a\x16tinc/annotations.proto\"\xde\x01\n\x0cOrganization\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x125\n\x14google_hosted_domain\x18\x02 \x01(\tH\x00R\x12googleHostedDomain\x88\x01\x01\x12\x14\n\x04name\x18\x03 \x01(\tB\x00R\x04name\x12\x1b\n\x08owner_id\x18\x04 \x01(\tB\x00R\x07ownerId\x129\n\ncreated_at\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedAtB\x17\n\x15_google_hosted_domain\"\xd2\x01\n\x12OrganizationMember\x12)\n\x0forganization_id\x18\x01 \x01(\tB\x00R\x0eorganizationId\x12\x19\n\x07user_id\x18\x02 \x01(\tB\x00R\x06userId\x12)\n\rinvited_by_id\x18\x03 \x01(\tB\x00H\x00R\x0binvitedById\x88\x01\x01\x129\n\ncreated_at\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedAtB\x10\n\x0e_invited_by_id\"\xc9\x02\n\x16OrganizationInvitation\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x1e\n\x07user_id\x18\x02 \x01(\tB\x00H\x00R\x06userId\x88\x01\x01\x12)\n\x0forganization_id\x18\x03 \x01(\tB\x00R\x0eorganizationId\x12\x16\n\x05email\x18\x04 \x01(\tB\x00R\x05email\x12$\n\rinvited_by_id\x18\x05 \x01(\tB\x00R\x0binvitedById\x12>\n\nexpires_at\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampH\x01R\texpiresAt\x88\x01\x01\x129\n\ncreated_at\x18\x07 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedAtB\n\n\x08_user_idB\r\n\x0b_expires_at\"\x97\x01\n\x07Project\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x14\n\x04name\x18\x02 \x01(\tB\x00R\x04name\x12)\n\x0forganization_id\x18\x03 \x01(\tB\x00R\x0eorganizationId\x129\n\ncreated_at\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedAtb\x06proto3\n\xbd\x04\n scufflecloud/core/v1/users.proto\x12\x14scufflecloud.core.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&scufflecloud/core/v1/constraints.proto\x1a\x16tinc/annotations.proto\"\xb9\x02\n\x04User\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12,\n\x0epreferred_name\x18\x02 \x01(\tB\x00H\x00R\rpreferredName\x88\x01\x01\x12$\n\nfirst_name\x18\x03 \x01(\tB\x00H\x01R\tfirstName\x88\x01\x01\x12\"\n\tlast_name\x18\x04 \x01(\tB\x00H\x02R\x08lastName\x88\x01\x01\x12*\n\rprimary_email\x18\x05 \x01(\tB\x00H\x03R\x0cprimaryEmail\x88\x01\x01\x129\n\ncreated_at\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedAtB\x11\n\x0f_preferred_nameB\r\n\x0b_first_nameB\x0c\n\n_last_nameB\x10\n\x0e_primary_email\"^\n\tUserEmail\x12\x16\n\x05email\x18\x01 \x01(\tB\x00R\x05email\x129\n\ncreated_at\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedAtb\x06proto3\n\xab\r\n;scufflecloud/core/v1/organization_invitations_service.proto\x12\x14scufflecloud.core.v1\x1a\x1bgoogle/protobuf/empty.proto\x1a&scufflecloud/core/v1/constraints.proto\x1a(scufflecloud/core/v1/organizations.proto\x1a scufflecloud/core/v1/users.proto\x1a\x16tinc/annotations.proto\"\xa0\x01\n#CreateOrganizationInvitationRequest\x12)\n\x0forganization_id\x18\x01 \x01(\tB\x00R\x0eorganizationId\x12\x16\n\x05email\x18\x02 \x01(\tB\x00R\x05email\x12%\n\x0cexpires_in_s\x18\x03 \x01(\x04H\x00R\nexpiresInS\x88\x01\x01B\x0f\n\r_expires_in_s\"7\n#ListOrgnizationInvitesByUserRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"D\n0ListOrganizationInvitationsByOrganizationRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"l\n\x1aOrganizationInvitationList\x12N\n\x0binvitations\x18\x01 \x03(\x0b2,.scufflecloud.core.v1.OrganizationInvitationR\x0binvitations\"4\n GetOrganizationInvitationRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"7\n#AcceptOrganizationInvitationRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"8\n$DeclineOrganizationInvitationRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id2\xeb\x06\n\x1eOrganizationInvitationsService\x12\x89\x01\n\x1cCreateOrganizationInvitation\x129.scufflecloud.core.v1.CreateOrganizationInvitationRequest\x1a,.scufflecloud.core.v1.OrganizationInvitation\"\x00\x12\xa7\x01\n)ListOrganizationInvitationsByOrganization\x12F.scufflecloud.core.v1.ListOrganizationInvitationsByOrganizationRequest\x1a0.scufflecloud.core.v1.OrganizationInvitationList\"\x00\x12\x8d\x01\n\x1cListOrgnizationInvitesByUser\x129.scufflecloud.core.v1.ListOrgnizationInvitesByUserRequest\x1a0.scufflecloud.core.v1.OrganizationInvitationList\"\x00\x12\x83\x01\n\x19GetOrganizationInvitation\x126.scufflecloud.core.v1.GetOrganizationInvitationRequest\x1a,.scufflecloud.core.v1.OrganizationInvitation\"\x00\x12\x85\x01\n\x1cAcceptOrganizationInvitation\x129.scufflecloud.core.v1.AcceptOrganizationInvitationRequest\x1a(.scufflecloud.core.v1.OrganizationMember\"\x00\x12u\n\x1dDeclineOrganizationInvitation\x12:.scufflecloud.core.v1.DeclineOrganizationInvitationRequest\x1a\x16.google.protobuf.Empty\"\x00b\x06proto3\n\xe9\x0e\n0scufflecloud/core/v1/organizations_service.proto\x12\x14scufflecloud.core.v1\x1a&scufflecloud/core/v1/constraints.proto\x1a(scufflecloud/core/v1/organizations.proto\x1a scufflecloud/core/v1/users.proto\x1a\x16tinc/annotations.proto\"1\n\x19CreateOrganizationRequest\x12\x14\n\x04name\x18\x01 \x01(\tB\x00R\x04name\"*\n\x16GetOrganizationRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"\xd1\x01\n\x19UpdateOrganizationRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12H\n\x05owner\x18\x02 \x01(\x0b2-.scufflecloud.core.v1.UpdateOrganizationOwnerH\x00R\x05owner\x88\x01\x01\x12E\n\x04name\x18\x03 \x01(\x0b2,.scufflecloud.core.v1.UpdateOrganizationNameH\x01R\x04name\x88\x01\x01B\x08\n\x06_ownerB\x07\n\x05_name\"6\n\x17UpdateOrganizationOwner\x12\x1b\n\x08owner_id\x18\x01 \x01(\tB\x00R\x07ownerId\".\n\x16UpdateOrganizationName\x12\x14\n\x04name\x18\x01 \x01(\tB\x00R\x04name\"2\n\x1eListOrganizationsByUserRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"]\n\x11OrganizationsList\x12H\n\rorganizations\x18\x01 \x03(\x0b2\".scufflecloud.core.v1.OrganizationR\rorganizations\"2\n\x1eListOrganizationMembersRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"]\n\x17OrganizationMembersList\x12B\n\x07members\x18\x01 \x03(\x0b2(.scufflecloud.core.v1.OrganizationMemberR\x07members\">\n\x14CreateProjectRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x14\n\x04name\x18\x02 \x01(\tB\x00R\x04name\"\'\n\x13ListProjectsRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"I\n\x0cProjectsList\x129\n\x08projects\x18\x01 \x03(\x0b2\x1d.scufflecloud.core.v1.ProjectR\x08projects2\x95\x06\n\x14OrganizationsService\x12k\n\x12CreateOrganization\x12/.scufflecloud.core.v1.CreateOrganizationRequest\x1a\".scufflecloud.core.v1.Organization\"\x00\x12e\n\x0fGetOrganization\x12,.scufflecloud.core.v1.GetOrganizationRequest\x1a\".scufflecloud.core.v1.Organization\"\x00\x12k\n\x12UpdateOrganization\x12/.scufflecloud.core.v1.UpdateOrganizationRequest\x1a\".scufflecloud.core.v1.Organization\"\x00\x12\x80\x01\n\x17ListOrganizationMembers\x124.scufflecloud.core.v1.ListOrganizationMembersRequest\x1a-.scufflecloud.core.v1.OrganizationMembersList\"\x00\x12z\n\x17ListOrganizationsByUser\x124.scufflecloud.core.v1.ListOrganizationsByUserRequest\x1a\'.scufflecloud.core.v1.OrganizationsList\"\x00\x12\\\n\rCreateProject\x12*.scufflecloud.core.v1.CreateProjectRequest\x1a\x1d.scufflecloud.core.v1.Project\"\x00\x12_\n\x0cListProjects\x12).scufflecloud.core.v1.ListProjectsRequest\x1a\".scufflecloud.core.v1.ProjectsList\"\x00b\x06proto3\n\xa8\x04\n#scufflecloud/core/v1/sessions.proto\x12\x14scufflecloud.core.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&scufflecloud/core/v1/constraints.proto\"\x99\x03\n\x0bUserSession\x12\x19\n\x07user_id\x18\x01 \x01(\tB\x00R\x06userId\x12-\n\x12device_fingerprint\x18\x02 \x01(\x0cR\x11deviceFingerprint\x12<\n\x0clast_used_at\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\nlastUsedAt\x12\x17\n\x07last_ip\x18\x04 \x01(\tR\x06lastIp\x12 \n\x08token_id\x18\x05 \x01(\tB\x00H\x00R\x07tokenId\x88\x01\x01\x12I\n\x10token_expires_at\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampH\x01R\x0etokenExpiresAt\x88\x01\x01\x129\n\nexpires_at\x18\x07 \x01(\x0b2\x1a.google.protobuf.TimestampR\texpiresAt\x12\x1f\n\x0bmfa_pending\x18\x08 \x01(\x08R\nmfaPendingB\x0b\n\t_token_idB\x13\n\x11_token_expires_atb\x06proto3\n\xf8+\n+scufflecloud/core/v1/sessions_service.proto\x12\x14scufflecloud.core.v1\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a!scufflecloud/core/v1/common.proto\x1a&scufflecloud/core/v1/constraints.proto\x1a(scufflecloud/core/v1/organizations.proto\x1a#scufflecloud/core/v1/sessions.proto\x1a\x16tinc/annotations.proto\"u\n\x06Device\x12C\n\talgorithm\x18\x01 \x01(\x0e2%.scufflecloud.core.v1.DeviceAlgorithmR\talgorithm\x12&\n\x0fpublic_key_data\x18\x02 \x01(\x0cR\rpublicKeyData\"\xfd\x01\n\x13NewUserSessionToken\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\'\n\x0fencrypted_token\x18\x02 \x01(\x0cR\x0eencryptedToken\x129\n\nexpires_at\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\texpiresAt\x12.\n\x13session_mfa_pending\x18\x04 \x01(\x08R\x11sessionMfaPending\x12@\n\x0bmfa_options\x18\x05 \x03(\x0e2\x1f.scufflecloud.core.v1.MfaOptionR\nmfaOptions\"|\n\x18RegisterWithEmailRequest\x12H\n\x07captcha\x18\x01 \x01(\x0b2..scufflecloud.core.v1.CaptchaChallengeResponseR\x07captcha\x12\x16\n\x05email\x18\x02 \x01(\tB\x00R\x05email\"l\n CompleteRegisterWithEmailRequest\x12\x12\n\x04code\x18\x01 \x01(\x0cR\x04code\x124\n\x06device\x18\x02 \x01(\x0b2\x1c.scufflecloud.core.v1.DeviceR\x06device\"\x80\x01\n\x1cLoginWithEmailOptionsRequest\x12H\n\x07captcha\x18\x01 \x01(\x0b2..scufflecloud.core.v1.CaptchaChallengeResponseR\x07captcha\x12\x16\n\x05email\x18\x02 \x01(\tB\x00R\x05email\"f\n\x1dLoginWithEmailOptionsResponse\x12E\n\x07options\x18\x01 \x03(\x0e2+.scufflecloud.core.v1.LoginWithEmailOptionsR\x07options\"\xd8\x01\n LoginWithEmailAndPasswordRequest\x12H\n\x07captcha\x18\x01 \x01(\x0b2..scufflecloud.core.v1.CaptchaChallengeResponseR\x07captcha\x12\x16\n\x05email\x18\x02 \x01(\tB\x00R\x05email\x12\x1c\n\x08password\x18\x03 \x01(\tB\x00R\x08password\x124\n\x06device\x18\x04 \x01(\x0b2\x1c.scufflecloud.core.v1.DeviceR\x06device\"}\n\x19LoginWithMagicLinkRequest\x12H\n\x07captcha\x18\x01 \x01(\x0b2..scufflecloud.core.v1.CaptchaChallengeResponseR\x07captcha\x12\x16\n\x05email\x18\x02 \x01(\tB\x00R\x05email\"m\n!CompleteLoginWithMagicLinkRequest\x12\x12\n\x04code\x18\x01 \x01(\x0cR\x04code\x124\n\x06device\x18\x02 \x01(\x0b2\x1c.scufflecloud.core.v1.DeviceR\x06device\"N\n\x16LoginWithGoogleRequest\x124\n\x06device\x18\x01 \x01(\x0b2\x1c.scufflecloud.core.v1.DeviceR\x06device\"F\n\x17LoginWithGoogleResponse\x12+\n\x11authorization_url\x18\x01 \x01(\tR\x10authorizationUrl\"\x80\x01\n\x1eCompleteLoginWithGoogleRequest\x12\x12\n\x04code\x18\x01 \x01(\tR\x04code\x12\x14\n\x05state\x18\x02 \x01(\tR\x05state\x124\n\x06device\x18\x03 \x01(\x0b2\x1c.scufflecloud.core.v1.DeviceR\x06device\"\xc1\x02\n\x1fCompleteLoginWithGoogleResponse\x12^\n\x16new_user_session_token\x18\x01 \x01(\x0b2).scufflecloud.core.v1.NewUserSessionTokenR\x13newUserSessionToken\x12\x1f\n\x0bfirst_login\x18\x02 \x01(\x08R\nfirstLogin\x12<\n\x06joined\x18\x03 \x01(\x0b2\".scufflecloud.core.v1.OrganizationH\x00R\x06joined\x12K\n!unassociated_google_hosted_domain\x18\x04 \x01(\tH\x00R\x1eunassociatedGoogleHostedDomainB\x12\n\x10google_workspace\"\x90\x01\n\x18LoginWithWebauthnRequest\x12\x19\n\x07user_id\x18\x01 \x01(\tB\x00R\x06userId\x12#\n\rresponse_json\x18\x02 \x01(\tR\x0cresponseJson\x124\n\x06device\x18\x03 \x01(\x0b2\x1c.scufflecloud.core.v1.DeviceR\x06device\"5\n\x1fCreateUserSessionRequestRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\xbd\x01\n\x12UserSessionRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x0e\n\x02ip\x18\x03 \x01(\tR\x02ip\x12&\n\x0bapproved_by\x18\x04 \x01(\tB\x00H\x00R\napprovedBy\x88\x01\x01\x129\n\nexpires_at\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\texpiresAtB\x0e\n\x0c_approved_by\"0\n\x1cGetUserSessionRequestRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\":\n\"GetUserSessionRequestByCodeRequest\x12\x14\n\x04code\x18\x01 \x01(\tB\x00R\x04code\">\n&ApproveUserSessionRequestByCodeRequest\x12\x14\n\x04code\x18\x01 \x01(\tB\x00R\x04code\"k\n!CompleteUserSessionRequestRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x124\n\x06device\x18\x02 \x01(\x0b2\x1c.scufflecloud.core.v1.DeviceR\x06device\"5\n\x1dValidateMfaForUserSessionTotp\x12\x14\n\x04code\x18\x01 \x01(\tB\x00R\x04code\"H\n!ValidateMfaForUserSessionWebauthn\x12#\n\rresponse_json\x18\x01 \x01(\tR\x0cresponseJson\"=\n%ValidateMfaForUserSessionRecoveryCode\x12\x14\n\x04code\x18\x01 \x01(\tB\x00R\x04code\"\xb4\x02\n ValidateMfaForUserSessionRequest\x12I\n\x04totp\x18\x01 \x01(\x0b23.scufflecloud.core.v1.ValidateMfaForUserSessionTotpH\x00R\x04totp\x12U\n\x08webauthn\x18\x02 \x01(\x0b27.scufflecloud.core.v1.ValidateMfaForUserSessionWebauthnH\x00R\x08webauthn\x12b\n\rrecovery_code\x18\x03 \x01(\x0b2;.scufflecloud.core.v1.ValidateMfaForUserSessionRecoveryCodeH\x00R\x0crecoveryCodeB\n\n\x08response*&\n\x0fDeviceAlgorithm\x12\x13\n\x0fRSA_OAEP_SHA256\x10\x00*8\n\tMfaOption\x12\x08\n\x04TOTP\x10\x00\x12\r\n\tWEB_AUTHN\x10\x01\x12\x12\n\x0eRECOVERY_CODES\x10\x02*C\n\x15LoginWithEmailOptions\x12\x0c\n\x08PASSWORD\x10\x00\x12\x0e\n\nMAGIC_LINK\x10\x01\x12\x0c\n\x08WEBAUTHN\x10\x022\x81\x10\n\x0fSessionsService\x12]\n\x11RegisterWithEmail\x12..scufflecloud.core.v1.RegisterWithEmailRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x80\x01\n\x19CompleteRegisterWithEmail\x126.scufflecloud.core.v1.CompleteRegisterWithEmailRequest\x1a).scufflecloud.core.v1.NewUserSessionToken\"\x00\x12\x82\x01\n\x15LoginWithEmailOptions\x122.scufflecloud.core.v1.LoginWithEmailOptionsRequest\x1a3.scufflecloud.core.v1.LoginWithEmailOptionsResponse\"\x00\x12\x80\x01\n\x19LoginWithEmailAndPassword\x126.scufflecloud.core.v1.LoginWithEmailAndPasswordRequest\x1a).scufflecloud.core.v1.NewUserSessionToken\"\x00\x12_\n\x12LoginWithMagicLink\x12/.scufflecloud.core.v1.LoginWithMagicLinkRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x82\x01\n\x1aCompleteLoginWithMagicLink\x127.scufflecloud.core.v1.CompleteLoginWithMagicLinkRequest\x1a).scufflecloud.core.v1.NewUserSessionToken\"\x00\x12p\n\x0fLoginWithGoogle\x12,.scufflecloud.core.v1.LoginWithGoogleRequest\x1a-.scufflecloud.core.v1.LoginWithGoogleResponse\"\x00\x12\x88\x01\n\x17CompleteLoginWithGoogle\x124.scufflecloud.core.v1.CompleteLoginWithGoogleRequest\x1a5.scufflecloud.core.v1.CompleteLoginWithGoogleResponse\"\x00\x12p\n\x11LoginWithWebauthn\x12..scufflecloud.core.v1.LoginWithWebauthnRequest\x1a).scufflecloud.core.v1.NewUserSessionToken\"\x00\x12}\n\x18CreateUserSessionRequest\x125.scufflecloud.core.v1.CreateUserSessionRequestRequest\x1a(.scufflecloud.core.v1.UserSessionRequest\"\x00\x12w\n\x15GetUserSessionRequest\x122.scufflecloud.core.v1.GetUserSessionRequestRequest\x1a(.scufflecloud.core.v1.UserSessionRequest\"\x00\x12\x83\x01\n\x1bGetUserSessionRequestByCode\x128.scufflecloud.core.v1.GetUserSessionRequestByCodeRequest\x1a(.scufflecloud.core.v1.UserSessionRequest\"\x00\x12\x8b\x01\n\x1fApproveUserSessionRequestByCode\x12<.scufflecloud.core.v1.ApproveUserSessionRequestByCodeRequest\x1a(.scufflecloud.core.v1.UserSessionRequest\"\x00\x12\x82\x01\n\x1aCompleteUserSessionRequest\x127.scufflecloud.core.v1.CompleteUserSessionRequestRequest\x1a).scufflecloud.core.v1.NewUserSessionToken\"\x00\x12x\n\x19ValidateMfaForUserSession\x126.scufflecloud.core.v1.ValidateMfaForUserSessionRequest\x1a!.scufflecloud.core.v1.UserSession\"\x00\x12Y\n\x12RefreshUserSession\x12\x16.google.protobuf.Empty\x1a).scufflecloud.core.v1.NewUserSessionToken\"\x00\x12I\n\x15InvalidateUserSession\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00b\x06proto3\n\xc3%\n(scufflecloud/core/v1/users_service.proto\x12\x14scufflecloud.core.v1\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a!scufflecloud/core/v1/common.proto\x1a&scufflecloud/core/v1/constraints.proto\x1a scufflecloud/core/v1/users.proto\x1a\x16tinc/annotations.proto\"\"\n\x0eGetUserRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"\xb3\x02\n\x11UpdateUserRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12I\n\x08password\x18\x02 \x01(\x0b2(.scufflecloud.core.v1.UpdateUserPasswordH\x00R\x08password\x88\x01\x01\x12@\n\x05names\x18\x03 \x01(\x0b2%.scufflecloud.core.v1.UpdateUserNamesH\x01R\x05names\x88\x01\x01\x12V\n\rprimary_email\x18\x04 \x01(\x0b2,.scufflecloud.core.v1.UpdateUserPrimaryEmailH\x02R\x0cprimaryEmail\x88\x01\x01B\x0b\n\t_passwordB\x08\n\x06_namesB\x10\n\x0e_primary_email\"\x80\x01\n\x12UpdateUserPassword\x120\n\x10current_password\x18\x01 \x01(\tB\x00H\x00R\x0fcurrentPassword\x88\x01\x01\x12#\n\x0cnew_password\x18\x02 \x01(\tB\x00R\x0bnewPasswordB\x13\n\x11_current_password\"z\n\x0fUpdateUserNames\x12\'\n\x0epreferred_name\x18\x01 \x01(\tB\x00R\rpreferredName\x12\x1f\n\nfirst_name\x18\x02 \x01(\tB\x00R\tfirstName\x12\x1d\n\tlast_name\x18\x03 \x01(\tB\x00R\x08lastName\"?\n\x16UpdateUserPrimaryEmail\x12%\n\rprimary_email\x18\x01 \x01(\tB\x00R\x0cprimaryEmail\")\n\x15ListUserEmailsRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"I\n\x0eUserEmailsList\x127\n\x06emails\x18\x01 \x03(\x0b2\x1f.scufflecloud.core.v1.UserEmailR\x06emails\"\x8c\x01\n\x16CreateUserEmailRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12H\n\x07captcha\x18\x02 \x01(\x0b2..scufflecloud.core.v1.CaptchaChallengeResponseR\x07captcha\x12\x16\n\x05email\x18\x03 \x01(\tB\x00R\x05email\"H\n\x1eCompleteCreateUserEmailRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x14\n\x04code\x18\x02 \x01(\x0cB\x00R\x04code\"B\n\x16DeleteUserEmailRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x16\n\x05email\x18\x02 \x01(\tB\x00R\x05email\"/\n\x1bCreateTotpCredentialRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"i\n\x1cCreateTotpCredentialResponse\x12*\n\x11secret_qrcode_png\x18\x01 \x01(\x0cR\x0fsecretQrcodePng\x12\x1d\n\nsecret_url\x18\x02 \x01(\tR\tsecretUrl\"c\n#CompleteCreateTotpCredentialRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x14\n\x04name\x18\x02 \x01(\tB\x00R\x04name\x12\x14\n\x04code\x18\x03 \x01(\tB\x00R\x04code\"2\n\x1eListWebauthnCredentialsRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"\x9c\x01\n\x12WebauthnCredential\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x19\n\x07user_id\x18\x02 \x01(\tB\x00R\x06userId\x12\x14\n\x04name\x18\x03 \x01(\tB\x00R\x04name\x12C\n\x10last_used_at_utc\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\rlastUsedAtUtc\"e\n\x17WebauthnCredentialsList\x12J\n\x0bcredentials\x18\x01 \x03(\x0b2(.scufflecloud.core.v1.WebauthnCredentialR\x0bcredentials\"3\n\x1fCreateWebauthnCredentialRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"E\n CreateWebauthnCredentialResponse\x12!\n\x0coptions_json\x18\x01 \x01(\tR\x0boptionsJson\"v\n\'CompleteCreateWebauthnCredentialRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x14\n\x04name\x18\x02 \x01(\tB\x00R\x04name\x12#\n\rresponse_json\x18\x03 \x01(\tR\x0cresponseJson\"N\n\x1fDeleteWebauthnCredentialRequest\x12\x19\n\x07user_id\x18\x01 \x01(\tB\x00R\x06userId\x12\x10\n\x02id\x18\x02 \x01(\tB\x00R\x02id\"6\n\x11WebauthnChallenge\x12!\n\x0coptions_json\x18\x01 \x01(\tR\x0boptionsJson\"2\n\x1eCreateWebauthnChallengeRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"\x98\x01\n\x0eTotpCredential\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\x12\x19\n\x07user_id\x18\x02 \x01(\tB\x00R\x06userId\x12\x14\n\x04name\x18\x03 \x01(\tB\x00R\x04name\x12C\n\x10last_used_at_utc\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\rlastUsedAtUtc\".\n\x1aListTotpCredentialsRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"]\n\x13TotpCredentialsList\x12F\n\x0bcredentials\x18\x01 \x03(\x0b2$.scufflecloud.core.v1.TotpCredentialR\x0bcredentials\"J\n\x1bDeleteTotpCredentialRequest\x12\x19\n\x07user_id\x18\x01 \x01(\tB\x00R\x06userId\x12\x10\n\x02id\x18\x02 \x01(\tB\x00R\x02id\"2\n\x1eRegenerateRecoveryCodesRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id\"\'\n\rRecoveryCodes\x12\x16\n\x05codes\x18\x01 \x03(\tB\x00R\x05codes\"%\n\x11DeleteUserRequest\x12\x10\n\x02id\x18\x01 \x01(\tB\x00R\x02id2\xa3\x0f\n\x0cUsersService\x12M\n\x07GetUser\x12$.scufflecloud.core.v1.GetUserRequest\x1a\x1a.scufflecloud.core.v1.User\"\x00\x12S\n\nUpdateUser\x12\'.scufflecloud.core.v1.UpdateUserRequest\x1a\x1a.scufflecloud.core.v1.User\"\x00\x12e\n\x0eListUserEmails\x12+.scufflecloud.core.v1.ListUserEmailsRequest\x1a$.scufflecloud.core.v1.UserEmailsList\"\x00\x12Y\n\x0fCreateUserEmail\x12,.scufflecloud.core.v1.CreateUserEmailRequest\x1a\x16.google.protobuf.Empty\"\x00\x12r\n\x17CompleteCreateUserEmail\x124.scufflecloud.core.v1.CompleteCreateUserEmailRequest\x1a\x1f.scufflecloud.core.v1.UserEmail\"\x00\x12b\n\x0fDeleteUserEmail\x12,.scufflecloud.core.v1.DeleteUserEmailRequest\x1a\x1f.scufflecloud.core.v1.UserEmail\"\x00\x12\x8b\x01\n\x18CreateWebauthnCredential\x125.scufflecloud.core.v1.CreateWebauthnCredentialRequest\x1a6.scufflecloud.core.v1.CreateWebauthnCredentialResponse\"\x00\x12\x8d\x01\n CompleteCreateWebauthnCredential\x12=.scufflecloud.core.v1.CompleteCreateWebauthnCredentialRequest\x1a(.scufflecloud.core.v1.WebauthnCredential\"\x00\x12\x80\x01\n\x17ListWebauthnCredentials\x124.scufflecloud.core.v1.ListWebauthnCredentialsRequest\x1a-.scufflecloud.core.v1.WebauthnCredentialsList\"\x00\x12}\n\x18DeleteWebauthnCredential\x125.scufflecloud.core.v1.DeleteWebauthnCredentialRequest\x1a(.scufflecloud.core.v1.WebauthnCredential\"\x00\x12z\n\x17CreateWebauthnChallenge\x124.scufflecloud.core.v1.CreateWebauthnChallengeRequest\x1a\'.scufflecloud.core.v1.WebauthnChallenge\"\x00\x12\x7f\n\x14CreateTotpCredential\x121.scufflecloud.core.v1.CreateTotpCredentialRequest\x1a2.scufflecloud.core.v1.CreateTotpCredentialResponse\"\x00\x12\x81\x01\n\x1cCompleteCreateTotpCredential\x129.scufflecloud.core.v1.CompleteCreateTotpCredentialRequest\x1a$.scufflecloud.core.v1.TotpCredential\"\x00\x12t\n\x13ListTotpCredentials\x120.scufflecloud.core.v1.ListTotpCredentialsRequest\x1a).scufflecloud.core.v1.TotpCredentialsList\"\x00\x12q\n\x14DeleteTotpCredential\x121.scufflecloud.core.v1.DeleteTotpCredentialRequest\x1a$.scufflecloud.core.v1.TotpCredential\"\x00\x12v\n\x17RegenerateRecoveryCodes\x124.scufflecloud.core.v1.RegenerateRecoveryCodesRequest\x1a#.scufflecloud.core.v1.RecoveryCodes\"\x00\x12S\n\nDeleteUser\x12\'.scufflecloud.core.v1.DeleteUserRequest\x1a\x1a.scufflecloud.core.v1.User\"\x00b\x06proto3\n\xe0\x02\n#scufflecloud/email/v1/service.proto\x12\x15scufflecloud.email.v1\x1a\x1bgoogle/protobuf/empty.proto\x1a\x16tinc/annotations.proto\"\x91\x01\n\x05Email\x12%\n\x0esource_address\x18\x01 \x01(\tR\rsourceAddress\x12\x1f\n\nto_address\x18\x02 \x01(\tB\x00R\ttoAddress\x12\x18\n\x07subject\x18\x03 \x01(\tR\x07subject\x12\x12\n\x04text\x18\x04 \x01(\tR\x04text\x12\x12\n\x04html\x18\x05 \x01(\tR\x04html2Q\n\x0cEmailService\x12A\n\tSendEmail\x12\x1c.scufflecloud.email.v1.Email\x1a\x16.google.protobuf.Emptyb\x06proto3";